; Memahami Seeder dan Hubungannya dengan Tabel Database - Blog Rudi Kurniawan

Blog Laravel Indonesia

Belajar Laravel dengan Mudah dan Menyenangkan

Memahami Seeder dan Hubungannya dengan Tabel Database
11-07-2025 | Admin User Programming 25 x dilihat

Memahami Seeder dan Hubungannya dengan Tabel Database

Apa Itu Seeder di Laravel?

Seeder di Laravel adalah alat untuk mengisi tabel database dengan data awal atau data uji coba secara otomatis. Bayangkan seeder seperti cara untuk "menabur" data ke dalam tabel, sehingga kamu tidak perlu memasukkan data secara manual. Ini sangat berguna untuk menguji aplikasi atau menyediakan data default, seperti akun admin atau contoh postingan.

Hubungan Seeder dengan Tabel Database

Seeder bekerja dengan tabel yang sudah dibuat di database (biasanya melalui migration). Setelah tabel dibuat, seeder digunakan untuk mengisi tabel tersebut dengan data. Misalnya, jika kamu punya tabel posts, seeder bisa mengisi tabel itu dengan beberapa baris data, seperti judul dan isi postingan.

Tutorial Membuat Seeder Sederhana

Berikut langkah-langkah membuat seeder untuk mengisi tabel posts dengan data contoh. Kita asumsikan tabel posts sudah dibuat dengan kolom id, title, content, created_at, dan updated_at (lihat tutorial migration sebelumnya).

Persiapan

Pastikan kamu sudah:

  • Menginstal Laravel dan Composer.
  • Mengatur koneksi database di file .env.
  • Membuat tabel posts menggunakan migration (misalnya, dengan kolom title dan content).
  • Menjalankan php artisan migrate untuk membuat tabel di database.

Langkah-Langkah

  1. Buat File Seeder
    Buka terminal di folder proyek Laravel dan jalankan perintah berikut untuk membuat seeder:

    php artisan make:seeder PostsTableSeeder
    

    Ini akan membuat file seeder baru di folder database/seeders dengan nama PostsTableSeeder.php.

  2. Edit File Seeder
    Buka file database/seeders/PostsTableSeeder.php dan ubah metode run() untuk mengisi tabel posts dengan data contoh. Contoh kode:

    <?php
    
    namespace Database\Seeders;
    
    use Illuminate\Database\Seeder;
    use Illuminate\Support\Facades\DB;
    
    class PostsTableSeeder extends Seeder
    {
        public function run()
        {
            DB::table('posts')->insert([
                [
                    'title' => 'Belajar Laravel untuk Pemula',
                    'content' => 'Ini adalah artikel pertama tentang Laravel.',
                    'created_at' => now(),
                    'updated_at' => now(),
                ],
                [
                    'title' => 'Membuat Aplikasi Web dengan Laravel',
                    'content' => 'Laravel memudahkan pengembangan aplikasi web.',
                    'created_at' => now(),
                    'updated_at' => now(),
                ],
            ]);
        }
    }
    

    Penjelasan:

    • DB::table('posts')->insert(): Perintah untuk memasukkan data ke tabel posts.
    • Setiap array dalam insert() mewakili satu baris data dengan nilai untuk kolom title, content, created_at, dan updated_at.
    • now(): Fungsi Laravel untuk mengisi waktu saat ini.
  3. Jalankan Seeder
    Kembali ke terminal dan jalankan perintah berikut untuk menjalankan seeder:

    php artisan db:seed --class=PostsTableSeeder
    

    Perintah ini akan mengisi tabel posts dengan dua baris data sesuai kode di atas.

  4. Cek Hasilnya
    Buka database kamu (misalnya, menggunakan phpMyAdmin atau TablePlus) dan periksa tabel posts. Kamu akan melihat dua baris data dengan judul dan isi yang sudah ditentukan.

  5. Jalankan Semua Seeder (Opsional)
    Jika kamu punya beberapa seeder, kamu bisa mendaftarkannya di file database/seeders/DatabaseSeeder.php. Edit file tersebut seperti berikut:

    <?php
    
    namespace Database\Seeders;
    
    use Illuminate\Database\Seeder;
    
    class DatabaseSeeder extends Seeder
    {
        public function run()
        {
            $this->call(PostsTableSeeder::class);
        }
    }
    

    Lalu, jalankan semua seeder dengan perintah:

    php artisan db:seed
    

Mengapa Seeder Penting?

  • Efisiensi: Seeder memungkinkan kamu mengisi tabel dengan data uji coba dalam hitungan detik.
  • Konsistensi: Memastikan data awal sama di semua lingkungan (lokal, staging, produksi).
  • Pengujian: Membantu developer menguji aplikasi dengan data realistis tanpa input manual.
  • Data Default: Cocok untuk membuat data awal, seperti akun admin atau kategori default.

Langkah Selanjutnya

Setelah berhasil menggunakan seeder, kamu bisa:

  • Membuat seeder lain untuk tabel lain, seperti users atau categories.
  • Menggunakan factory untuk membuat data acak dalam jumlah besar.
  • Membaca dokumentasi resmi di laravel.com/docs/seeding untuk fitur lanjutan.

Selamat! Kamu sudah memahami dasar seeder dan berhasil mengisi tabel database dengan Laravel!

Share this

Facebook Whatsapp