🎯 Tujuan Pembelajaran

Pada materi ini, akan mempelajari:

  • Cara membuat Model di Laravel untuk mengelola data di database.
  • Cara membuat dan menjalankan Seeder untuk mengisi data awal.
  • Memahami fungsi $fillable pada Model.
  • Memahami struktur folder Model dan Seeder di Laravel.

Materi & Langkah Praktik

1. Membuat Model Product

Pertama, buat model baru untuk produk menggunakan Artisan:

php artisan make:model Product

Perintah ini akan menghasilkan file model di:

app/Models/Product.php

Model ini akan digunakan untuk berinteraksi dengan tabel products di database.


2. Mengedit Model Product.php

Tambahkan properti $fillable agar Laravel mengetahui kolom mana saja yang boleh diisi menggunakan mass assignment:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    protected $fillable = ['name', 'price', 'description', 'stock', 'image'];
}

Penjelasan:

  • $fillable adalah proteksi keamanan di Laravel.
  • Fungsinya mencegah pengisian kolom secara sembarangan.
  • Hanya kolom yang disebutkan di dalam array yang bisa diisi melalui method seperti create().

3. Membuat Seeder ProductSeeder

Seeder digunakan untuk mengisi data contoh (dummy data) ke dalam tabel. Buat seeder dengan perintah:

php artisan make:seeder ProductSeeder

Struktur folder seeder:

database/
└── seeders/
    ├── DatabaseSeeder.php      # Seeder induk
    └── ProductSeeder.php       # Tempat kita menambahkan data awal

File ProductSeeder.php akan berada di:

database/seeders/ProductSeeder.php

Isi file seeder:

<?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,
        ]);
    }
}

Catatan:

Karena kolom image bersifat nullable, maka pada tahap ini boleh dikosongkan terlebih dahulu.


4. Menjalankan Seeder Melalui DatabaseSeeder.php

Laravel membutuhkan pendaftaran seeder di file induknya sebelum bisa dijalankan.

Buka:

database/seeders/DatabaseSeeder.php

Tambahkan pemanggilan:

public function run(): void
{
    $this->call(ProductSeeder::class);
}

Penjelasan untuk mahasiswa:

  • DatabaseSeeder.php adalah seeder utama.
  • Semua seeder lain harus didaftarkan di sini agar bisa berjalan bersama.

5. Menjalankan Seeder

Jalankan perintah:

php artisan db:seed

Kemudian cek tabel products pada database. Jika berhasil, akan muncul data produk yang telah Anda buat di ProductSeeder.


Struktur Folder Penting

project-laravel/
├── 📁 app/
│   └── 📁 Models/
│       └── Product.php
├── 📁 database/
│   └── 📁 seeders/
│       ├── DatabaseSeeder.php
│       └── ProductSeeder.php
├── 📁 routes/
└── 📁 resources/

Penjelasan terkait struktur folder:

  • app/Models → tempat semua model Laravel disimpan.
  • database/seeders → tempat file seeder berada.
  • DatabaseSeeder.php → seeder utama yang menjalankan semua seeder lainnya.