🎯 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/