🎯 Tujuan
Memahami cara membuat Model untuk akses database dan mengisi data awal menggunakan Seeder di Laravel.
🧩 Materi & Langkah Praktik
1. Membuat Model Product
Jalankan perintah di terminal:
php artisan make:model Product
File model akan dibuat di:
app/Models/Product.php
2. Edit Model Product.php
Buka file app/Models/Product.php lalu tambahkan properti $fillable untuk menentukan kolom mana saja yang boleh diisi secara massal:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $fillable = ['name', 'price', 'description', 'stock'];
}
3. Membuat Seeder ProductSeeder
Buat seeder dengan perintah:
php artisan make:seeder ProductSeeder
File seeder akan ada di:
database/
└── seeders/
├── DatabaseSeeder.php # Seeder utama yang menjalankan seeder lain
└── ProductSeeder.php # Seeder untuk mengisi data produk awal
Jadi file ProductSeeder.php yang kamu buat ada di dalam folder:
database/seeders/ProductSeeder.php
Edit file tersebut menjadi seperti ini:
<?php
namespace Database\Seeders;
use App\Models\Product;
use Illuminate\Database\Seeder;
class ProductSeeder extends Seeder
{
public function run(): void
{
Product::create([
'name' => 'Laptop Asus',
'price' => 8500000,
'description' => 'Laptop untuk kebutuhan kantor dan kuliah',
'stock' => 10,
]);
Product::create([
'name' => 'Mouse Logitech',
'price' => 150000,
'description' => 'Mouse wireless nyaman digunakan',
'stock' => 50,
]);
}
}
4. Daftarkan Seeder di DatabaseSeeder.php
Buka file:
database/seeders/DatabaseSeeder.php
Lalu tambahkan pemanggilan ProductSeeder di dalam method run():
public function run(): void
{
$this->call(ProductSeeder::class);
}
5. Jalankan Seeder
Jalankan perintah berikut di terminal:
php artisan db:seed
Cek di database melalui phpMyAdmin, tabel products sekarang sudah berisi data contoh.
6. Tugas / Latihan
- Tambahkan minimal 2 produk baru di
ProductSeeder.php. - Jalankan ulang seeder (
php artisan db:seed) dan cek hasilnya di database.
✅ Struktur Folder Penting
project-laravel/
├── app/
│ └── Models/
│ └── Product.php
├── database/
│ └── seeders/
│ ├── DatabaseSeeder.php
│ └── ProductSeeder.php
├── routes/
└── resources/