Cara Menggunakan Seeder dan Factory di Laravel untuk Data Dummy - Perwira Learning Center

 

Cara Menggunakan Seeder dan Factory di Laravel untuk Data Dummy 

 

1. Latar Belakang

    Dalam proses pengembangan aplikasi, khususnya pada tahap pengujian dan pengembangan fitur, data menjadi elemen yang sangat penting. Tanpa data yang memadai, pengembang akan kesulitan menguji tampilan, relasi antar tabel, maupun performa query. Oleh karena itu, dibutuhkan cara untuk menghasilkan data uji secara cepat dan terstruktur.

    Laravel menyediakan fitur Seeder dan Factory untuk membantu pembuatan data dummy secara otomatis. Dengan fitur ini, pengembang dapat mengisi database dengan ribuan data dalam waktu singkat tanpa harus memasukkan data secara manual.

    Penggunaan Seeder dan Factory tidak hanya mempercepat proses pengembangan, tetapi juga meningkatkan konsistensi data uji serta memudahkan kolaborasi dalam tim. Data dummy yang terstandarisasi membuat proses testing dan debugging menjadi lebih efisien.

 


2. Alat dan Bahan

 a. Perangkat Lunak

    - Web browser (contoh: Google Chrome atau Mozilla Firefox) 

    - Code editor / text editor (contoh: Visual Studio Code)

    - Terminal / Command Prompt

    - Web server    

    - Composer 

    - PHP minimal versi 8.x 

b. Perangkat Keras

     - Laptop / Komputer.   

3. Pembahasan 

3.1 Pengertian Seeder

Seeder adalah fitur Laravel yang digunakan untuk mengisi database dengan data awal atau data dummy. File seeder berada di folder:

database/seeders/

Seeder biasanya digunakan untuk:

- Mengisi data awal seperti role atau kategori

- Membuat data uji dalam jumlah besar

- Mengisi database saat pertama kali deploy

3.2 Pengertian Factory

Factory digunakan untuk membuat blueprint atau pola data model. Factory menentukan bagaimana struktur data dummy akan dibuat, misalnya nama acak, email unik, atau tanggal acak.

Factory berada di folder:

database/factories/

Factory bekerja sama dengan Seeder untuk menghasilkan data dalam jumlah banyak secara otomatis.

3.3 Implementasi Menggunakan Seeder dan Factory 

Pada bab ini akan dijelaskan implementasi lengkap penggunaan Seeder dan Factory untuk membuat data dummy pada tabel students.

A. Membuat Proyek Laravel

Jalankan perintah berikut:

composer create-project laravel/laravel seeder-app
cd seeder-app
php artisan serve

Jika berhasil, buka browser di:

http://127.0.0.1:8000

B. Konfigurasi Database

Buka file .env dan ubah konfigurasi database:

DB_DATABASE=seeder_app
DB_USERNAME=root
DB_PASSWORD=

Buat database baru di MySQL dengan nama seeder_app.

C. Membuat Model dan Migration

Buat model Student sekaligus migration:

php artisan make:model Student -m

Edit file model di app/Models/Student.php:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory; //wajib ada ini

class Student extends Model
{
    use HasFactory; //wajib ada ini
    
    protected $table = 'students';

    protected $fillable = [
        'name',
        'email',
        'address'
    ];
}

Edit file migration di database/migrations:

public function up()
{
    Schema::create('students', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->integer('age');
        $table->timestamps();
    });
}

Jalankan migration:

php artisan migrate

Tabel students sekarang sudah dibuat.

D. Membuat Factory

Buat factory untuk Student:

php artisan make:factory StudentFactory --model=Student

Edit file di database/factories/StudentFactory.php:

public function definition()
{
    return [
        'name' => $this->faker->name(),
        'email' => $this->faker->unique()->safeEmail(),
        'age' => $this->faker->numberBetween(18, 25),
    ];
}

Penjelasan:

- Faker menghasilkan data acak

- unique() memastikan email tidak duplikat

- numberBetween() menghasilkan umur acak

Factory ini adalah blueprint pembuat data.

E. Membuat Seeder

Buat seeder:

php artisan make:seeder StudentSeeder

Edit file database/seeders/StudentSeeder.php:

use App\Models\Student;

public function run()
{
    Student::factory()->count(50)->create();
}

Artinya, sistem akan membuat 50 data student berdasarkan blueprint dari Factory.

F. Menjalankan Seeder

Jalankan perintah:

php artisan db:seed --class=StudentSeeder

Atau jika ingin reset database sekaligus isi ulang:

php artisan migrate:fresh --seed --seeder=StudentSeeder

Perintah tersebut akan:

Menghapus semua tabel -> Membuat ulang tabel -> Mengisi data dummy secara otomatis 

G. Hasil Implementasi

Setelah menjalankan seeder, tabel students akan berisi 50 data acak dengan:

- Nama berbeda-beda

- Email unik

- Umur antara 18–25 tahun

Data ini dapat digunakan untuk:

- Menguji pagination

- Menguji relasi database

- Menguji fitur pencarian

- Mengembangkan tampilan dashboard 

 


 

3.4 Kesimpulan

    Penggunaan Seeder dan Factory dalam Laravel memberikan solusi yang efisien untuk menghasilkan data dummy secara otomatis dan terstruktur. Dengan Factory sebagai blueprint pembuat data serta Seeder sebagai eksekutor pengisian database, proses pembuatan data uji dapat dilakukan dalam jumlah besar hanya dengan satu perintah. Hal ini sangat membantu dalam tahap pengembangan dan pengujian aplikasi, terutama untuk menguji tampilan, performa query, relasi antar tabel, serta fitur seperti pagination dan pencarian.

    Selain mempercepat proses kerja, penerapan Seeder dan Factory juga meningkatkan konsistensi data dalam tim pengembang. Database dapat dengan mudah direset dan diisi ulang tanpa perlu input manual, sehingga meminimalkan kesalahan serta mempercepat proses debugging. Dengan memahami dan menerapkan fitur ini secara tepat, pengembang dapat menciptakan lingkungan pengujian yang lebih stabil, efisien, dan siap digunakan pada berbagai tahap pengembangan aplikasi.

4, Daftar Pustaka

Laravel. (2024). Database: Seeding. https://laravel.com/docs/seeding

Malas Ngoding. (2023). Cara menggunakan seeder di Laravel. https://www.malasngoding.com

Petani Kode. (2023). Tutorial Laravel untuk pemula. https://www.petanikode.com

Santri Koding. (2023). Belajar Laravel lengkap bahasa Indonesia. https://santrikoding.com

 

 

Posting Komentar

0 Komentar