[{"data":1,"prerenderedAt":95},["ShallowReactive",2],{"\u002Fposts\u002Fmodel-seeder?{\"username\":\"irezabdullah\"}":3},{"success":4,"message":5,"data":6},true,"Post retrieved successfully",{"post":7,"seriesInfo":25,"seriesItems":28,"seoDescription":94},{"id":8,"title":9,"slug":10,"body":11,"cover_image_path":12,"view_count":13,"part_number":14,"created_at":15,"updated_at":16,"category":17,"author":20},52,"Model & Seeder","model-seeder","### 🎯 Tujuan Pembelajaran\n\nPada materi ini, akan mempelajari:\n\n* Cara membuat **Model** di Laravel untuk mengelola data di database.\n* Cara membuat dan menjalankan **Seeder** untuk mengisi data awal.\n* Memahami fungsi `$fillable` pada Model.\n* Memahami struktur folder Model dan Seeder di Laravel.\n\n---\n\n### Materi & Langkah Praktik\n\n#### 1. Membuat Model `Product`\n\nPertama, buat model baru untuk produk menggunakan Artisan:\n\n```bash\nphp artisan make:model Product\n```\n\nPerintah ini akan menghasilkan file model di:\n\n```\napp\u002FModels\u002FProduct.php\n```\n\nModel ini akan digunakan untuk berinteraksi dengan tabel `products` di database.\n\n---\n\n#### 2. Mengedit Model `Product.php`\n\nTambahkan properti `$fillable` agar Laravel mengetahui kolom mana saja yang boleh diisi menggunakan mass assignment:\n\n```php\n\u003C?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass Product extends Model\n{\n    protected $fillable = ['name', 'price', 'description', 'stock', 'image'];\n}\n```\n\n**Penjelasan:**\n\n* `$fillable` adalah proteksi keamanan di Laravel.\n* Fungsinya mencegah pengisian kolom secara sembarangan.\n* Hanya kolom yang disebutkan di dalam array yang bisa diisi melalui method seperti `create()`.\n\n---\n\n#### 3. Membuat Seeder `ProductSeeder`\n\nSeeder digunakan untuk mengisi data contoh (dummy data) ke dalam tabel.\nBuat seeder dengan perintah:\n\n```bash\nphp artisan make:seeder ProductSeeder\n```\n\nStruktur folder seeder:\n\n```\ndatabase\u002F\n└── seeders\u002F\n    ├── DatabaseSeeder.php      # Seeder induk\n    └── ProductSeeder.php       # Tempat kita menambahkan data awal\n```\n\nFile `ProductSeeder.php` akan berada di:\n\n```\ndatabase\u002Fseeders\u002FProductSeeder.php\n```\n\nIsi file seeder:\n\n```php\n\u003C?php\n\nnamespace Database\\Seeders;\n\nuse App\\Models\\Product;\nuse Illuminate\\Database\\Seeder;\n\nclass ProductSeeder extends Seeder\n{\n    public function run(): void\n    {\n        Product::create([\n            'name' => 'Laptop Asus',\n            'price' => 8500000,\n            'description' => 'Laptop untuk kebutuhan kantor dan kuliah',\n            'stock' => 10,\n        ]);\n\n        Product::create([\n            'name' => 'Mouse Logitech',\n            'price' => 150000,\n            'description' => 'Mouse wireless nyaman digunakan',\n            'stock' => 50,\n        ]);\n    }\n}\n```\n\n**Catatan:**\n> Karena kolom `image` bersifat nullable, maka pada tahap ini boleh dikosongkan terlebih dahulu.\n\n---\n\n#### 4. Menjalankan Seeder Melalui `DatabaseSeeder.php`\n\nLaravel membutuhkan pendaftaran seeder di file induknya sebelum bisa dijalankan.\n\nBuka:\n\n```\ndatabase\u002Fseeders\u002FDatabaseSeeder.php\n```\n\nTambahkan pemanggilan:\n\n```php\npublic function run(): void\n{\n    $this->call(ProductSeeder::class);\n}\n```\n\n**Penjelasan untuk mahasiswa:**\n\n* `DatabaseSeeder.php` adalah seeder utama.\n* Semua seeder lain harus didaftarkan di sini agar bisa berjalan bersama.\n\n---\n\n#### 5. Menjalankan Seeder\n\nJalankan perintah:\n\n```bash\nphp artisan db:seed\n```\n\nKemudian cek tabel `products` pada database.\nJika berhasil, akan muncul data produk yang telah Anda buat di `ProductSeeder`.\n\n![](https:\u002F\u002Fi.imgur.com\u002FKzQsjF5.png)\n\n---\n\n#### Struktur Folder Penting\n\n```\nproject-laravel\u002F\n├── 📁 app\u002F\n│   └── 📁 Models\u002F\n│       └── Product.php\n├── 📁 database\u002F\n│   └── 📁 seeders\u002F\n│       ├── DatabaseSeeder.php\n│       └── ProductSeeder.php\n├── 📁 routes\u002F\n└── 📁 resources\u002F\n```\n\n**Penjelasan terkait struktur folder:**\n\n* `app\u002FModels` → tempat semua model Laravel disimpan.\n* `database\u002Fseeders` → tempat file seeder berada.\n* `DatabaseSeeder.php` → seeder utama yang menjalankan semua seeder lainnya.\n\n---","https:\u002F\u002Fcdn.rezweb.my.id\u002Fposts\u002FJyyPuArfVNyTlLS92SMdLP7gf5OUx1QHM20IQrhS.jpg",856,5,"2025-10-14T16:14:29+07:00","2026-09-07T11:59:38+07:00",{"name":18,"slug":19},"LARAVEL","laravel",{"id":21,"name":22,"username":23,"avatar":24},1,"Irez Abdullah","irezabdullah","https:\u002F\u002Fcdn.rezweb.my.id\u002Favatars\u002Fd139726e-348f-4dab-95c6-bb87e2ad125e.jpeg",{"name":26,"slug":27},"Belajar Laravel dari Nol (Praktikum Web Framework) – Ringkas & Praktis","belajar-laravel-dari-nol-praktikum-web-framework-ringkas-praktis",[29,33,38,43,48,49,54,59,64,69,74,79,84,89],{"id":30,"slug":31,"title":32,"part_number":21},48,"pengenalan-web-framework-instalasi-laravel","Pengenalan Web Framework & Instalasi Laravel",{"id":34,"slug":35,"title":36,"part_number":37},49,"struktur-folder-routing-dasar","Struktur Folder & Routing Dasar",2,{"id":39,"slug":40,"title":41,"part_number":42},50,"blade-template-layouting-dengan-bootstrap-5-dmwo","Blade Template & Layouting dengan Bootstrap 5",3,{"id":44,"slug":45,"title":46,"part_number":47},51,"database-migration-qbsa","Database & Migration",4,{"id":8,"slug":10,"title":9,"part_number":14},{"id":50,"slug":51,"title":52,"part_number":53},53,"controller-read-data-menampilkan-produk","Controller & Read Data (Menampilkan Produk)",6,{"id":55,"slug":56,"title":57,"part_number":58},54,"form-tambah-produk-create","Form Tambah Produk (Create)",7,{"id":60,"slug":61,"title":62,"part_number":63},55,"edit-update-produk","Edit & Update Produk",8,{"id":65,"slug":66,"title":67,"part_number":68},56,"hapus-produk-validasi-form","Hapus Produk & Validasi Form",9,{"id":70,"slug":71,"title":72,"part_number":73},63,"upload-file-gambar-dan-validasi-cpw3","Upload File (Gambar) dan Validasi",10,{"id":75,"slug":76,"title":77,"part_number":78},62,"menampilkan-grafik-stok-produk","Menampilkan Grafik Stok Produk",11,{"id":80,"slug":81,"title":82,"part_number":83},64,"login-dan-implementasi-middleware-at","Login Dan Implementasi Middleware",12,{"id":85,"slug":86,"title":87,"part_number":88},61,"membuat-dashboard-admin-dengan-statistik-dan-grafik","Membuat Dashboard Admin dengan Statistik dan Grafik",13,{"id":90,"slug":91,"title":92,"part_number":93},65,"teknik-debugging-di-laravel","Teknik Debugging di Laravel",15,"🎯 Tujuan Pembelajaran Pada materi ini, akan mempelajari: Cara membuat Model** di Laravel untuk mengelola data di database. Cara membuat dan menjalankan Seeder*...",1788757407782]