feat: Add seeders for Buku and Kategori with initial data

This commit is contained in:
2026-03-17 22:10:16 +07:00
parent 5f00a0dbf1
commit 60eb58a6cf
4 changed files with 191 additions and 37 deletions

View File

@@ -0,0 +1,160 @@
<?php
namespace Database\Seeders;
use App\Models\Buku;
use Illuminate\Database\Seeder;
class BukuSeeder extends Seeder
{
public function run(): void
{
$bukus = [
// Fiksi (kategori_id: 1)
[
'kategori_id' => 1,
'judul' => 'Laskar Pelangi',
'pengarang' => 'Andrea Hirata',
'penerbit' => 'Bentang Pustaka',
'tahun_terbit' => 2005,
'isbn' => '978-979-1227-01-1',
'stok' => 5,
'stok_tersedia'=> 5,
'sinopsis' => 'Kisah persahabatan sepuluh anak kampung Belitung yang penuh semangat dalam menggapai mimpi.',
],
[
'kategori_id' => 1,
'judul' => 'Bumi Manusia',
'pengarang' => 'Pramoedya Ananta Toer',
'penerbit' => 'Hasta Mitra',
'tahun_terbit' => 1980,
'isbn' => '978-979-428-615-8',
'stok' => 4,
'stok_tersedia'=> 4,
'sinopsis' => 'Novel pertama dari Tetralogi Buru yang mengisahkan Minke, seorang pribumi terpelajar di era kolonial Belanda.',
],
[
'kategori_id' => 1,
'judul' => 'Negeri 5 Menara',
'pengarang' => 'Ahmad Fuadi',
'penerbit' => 'Gramedia Pustaka Utama',
'tahun_terbit' => 2009,
'isbn' => '978-979-22-4854-0',
'stok' => 3,
'stok_tersedia'=> 3,
'sinopsis' => 'Kisah inspiratif enam santri dari pelosok nusantara yang menuntut ilmu di Pondok Madani.',
],
// Non-Fiksi (kategori_id: 2)
[
'kategori_id' => 2,
'judul' => 'Sebuah Seni untuk Bersikap Bodo Amat',
'pengarang' => 'Mark Manson',
'penerbit' => 'Gramedia Pustaka Utama',
'tahun_terbit' => 2018,
'isbn' => '978-602-03-7458-2',
'stok' => 6,
'stok_tersedia'=> 6,
'sinopsis' => 'Pendekatan yang tidak konvensional untuk menjalani kehidupan yang baik dengan fokus pada hal-hal yang benar-benar penting.',
],
[
'kategori_id' => 2,
'judul' => 'Atomic Habits',
'pengarang' => 'James Clear',
'penerbit' => 'Penguin Random House',
'tahun_terbit' => 2018,
'isbn' => '978-0-7352-1129-2',
'stok' => 5,
'stok_tersedia'=> 5,
'sinopsis' => 'Panduan praktis tentang cara membangun kebiasaan baik dan menghilangkan kebiasaan buruk.',
],
// Sains & Teknologi (kategori_id: 3)
[
'kategori_id' => 3,
'judul' => 'A Brief History of Time',
'pengarang' => 'Stephen Hawking',
'penerbit' => 'Bantam Books',
'tahun_terbit' => 1988,
'isbn' => '978-0-553-38016-3',
'stok' => 3,
'stok_tersedia'=> 3,
'sinopsis' => 'Penjelasan ilmiah tentang asal usul alam semesta, lubang hitam, dan waktu untuk pembaca umum.',
],
[
'kategori_id' => 3,
'judul' => 'Clean Code',
'pengarang' => 'Robert C. Martin',
'penerbit' => 'Prentice Hall',
'tahun_terbit' => 2008,
'isbn' => '978-0-13-235088-4',
'stok' => 4,
'stok_tersedia'=> 4,
'sinopsis' => 'Panduan menulis kode program yang bersih, mudah dibaca, dan mudah dipelihara.',
],
[
'kategori_id' => 3,
'judul' => 'The Pragmatic Programmer',
'pengarang' => 'Andrew Hunt & David Thomas',
'penerbit' => 'Addison-Wesley',
'tahun_terbit' => 1999,
'isbn' => '978-0-201-61622-4',
'stok' => 3,
'stok_tersedia'=> 3,
'sinopsis' => 'Panduan klasik untuk menjadi programmer yang lebih efektif dan profesional.',
],
// Sejarah (kategori_id: 4)
[
'kategori_id' => 4,
'judul' => 'Sapiens: Riwayat Singkat Umat Manusia',
'pengarang' => 'Yuval Noah Harari',
'penerbit' => 'Gramedia Pustaka Utama',
'tahun_terbit' => 2015,
'isbn' => '978-602-03-1842-5',
'stok' => 5,
'stok_tersedia'=> 5,
'sinopsis' => 'Narasi besar tentang sejarah manusia dari zaman batu hingga era modern.',
],
[
'kategori_id' => 4,
'judul' => 'Indonesia Dalam Arus Sejarah',
'pengarang' => 'Taufik Abdullah',
'penerbit' => 'Ichtiar Baru van Hoeve',
'tahun_terbit' => 2012,
'isbn' => '978-979-9066-95-0',
'stok' => 4,
'stok_tersedia'=> 4,
'sinopsis' => 'Ensiklopedia sejarah Indonesia yang komprehensif dari masa prasejarah hingga reformasi.',
],
// Pendidikan (kategori_id: 5)
[
'kategori_id' => 5,
'judul' => 'Matematika Dasar untuk Perguruan Tinggi',
'pengarang' => 'Purcell & Varberg',
'penerbit' => 'Erlangga',
'tahun_terbit' => 2010,
'isbn' => '978-979-781-234-5',
'stok' => 8,
'stok_tersedia'=> 8,
'sinopsis' => 'Buku teks matematika dasar yang lengkap untuk mahasiswa perguruan tinggi.',
],
[
'kategori_id' => 5,
'judul' => 'Pengantar Ilmu Komputer',
'pengarang' => 'Rinaldi Munir',
'penerbit' => 'Informatika Bandung',
'tahun_terbit' => 2016,
'isbn' => '978-602-1514-10-5',
'stok' => 6,
'stok_tersedia'=> 6,
'sinopsis' => 'Buku pengantar ilmu komputer yang cocok untuk mahasiswa semester pertama.',
],
];
foreach ($bukus as $buku) {
Buku::create($buku);
}
}
}

View File

@@ -2,24 +2,15 @@
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
use WithoutModelEvents;
/**
* Seed the application's database.
*/
public function run(): void
{
// User::factory(10)->create();
User::factory()->create([
'name' => 'Test User',
'email' => 'test@example.com',
$this->call([
KategoriSeeder::class,
BukuSeeder::class
]);
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace Database\Seeders;
use App\Models\Kategori;
use Illuminate\Database\Seeder;
class KategoriSeeder extends Seeder
{
public function run(): void
{
$kategoris = [
['nama_kategori' => 'Fiksi', 'deskripsi' => 'Buku-buku fiksi dan novel'],
['nama_kategori' => 'Non-Fiksi', 'deskripsi' => 'Buku berdasarkan fakta'],
['nama_kategori' => 'Sains & Teknologi', 'deskripsi' => 'Buku ilmu pengetahuan dan teknologi'],
['nama_kategori' => 'Sejarah', 'deskripsi' => 'Buku sejarah'],
['nama_kategori' => 'Pendidikan', 'deskripsi' => 'Buku pelajaran dan pendidikan'],
];
foreach ($kategoris as $kategori) {
Kategori::create($kategori);
}
}
}