Tutorial Laravel: Membuat Sistem Pengaduan Masyarakat (Tahap 3: Seeder Data Dummy)

Setelah rancangan database selesai dibuat pada Tahap 2, kita memerlukan data awal (seed data) untuk pengujian. Di tahap ini, kita akan mengisi database dengan akun Admin dan akun User (Masyarakat) secara otomatis menggunakan fitur Database Seeder Laravel.
📋 Ringkasan Tahap 3
- Tujuan: Membuat akun pengujian awal untuk peran Admin dan User/Masyarakat ke dalam database.
- Fitur Utama: Otomatisasi seeding data akun terenkripsi (Bcrypt Hash).
- Estimasi Waktu: 2 – 4 Menit.
🛠️ Langkah-Langkah Eksekusi
1. Mengonfigurasi DatabaseSeeder.php
Laravel menyediakan file utama untuk menyuntikkan data ke database di path database/seeders/DatabaseSeeder.php.
Buka file tersebut dan sesuaikan kodenya menjadi seperti berikut:
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// 1. Membuat Akun Admin
User::create([
'name' => 'Administrator',
'email' => 'admin@gmail.com',
'password' => Hash::make('password123'),
'role' => 'admin',
]);
// 2. Membuat Akun User (Masyarakat)
User::create([
'name' => 'Budi Masyarakat',
'email' => 'user@gmail.com',
'password' => Hash::make('password123'),
'role' => 'user',
]);
}
}
Penjelasan Kode:
Hash::make('password123'): Mengenkripsi kata sandi teks biasa menjadi format hash terenkripsi yang aman sebelum disimpan ke database.'role' => 'admin'dan'role' => 'user': Menentukan hak akses yang akan diperiksa oleh sistem autentikasi.
2. Menjalankan Seeder ke Database
Untuk mengeksekusi seeder di atas, kamu dapat menggunakan salah satu dari perintah Artisan di bawah ini melalui terminal:
php artisan migrate:fresh --seed
💡 Tips Pengembang: Perintah
migrate:fresh --seedakan menghapus seluruh tabel di database, membuatnya ulang dari awal, lalu otomatis mengisi data seeder. Perintah ini sangat disukai developer saat masa pengembangan (local development) karena memastikan database selalu bersih dari data uji coba yang usang.
