#10-Laravel Trick Seeding & Faker

Seeding

Seeding pada laravel adalah sebuah fitur untuk mengisi data pada database dengan data sembarang. atau data testing.

Karena pada saat kita melakukan pengembangan pada aplikasi atau sistem informasi, pasti kita memerlukan beberapa data sebagai contoh untuk di olah pada aplikasi kita.

Misalnya pada saat kita membuat sistem informasi akademik, atau sistem informasi kepegawaian. pasti kita memerlukan beberapa contoh data yang kita input asal-asalan di table user. untuk contoh saja.

Nah, di laravel, sudah ada yang namanya seeding. dengan seeding laravel kita bisa menginput data ke database dengan cepat. menggunakan fitur perintah php artisan yang ada pada laravel.

Jadi kita tidak perlu repot-repot lagi menginput data testing nya ke database dengan cara manual. apalagi misalnya jika ada banyak sekali data testing yang perlu kita input ke database. pasti sangat tidak efektif dan akan menyita banyak waktu kita.

Untuk menggunakan fitur seeding ini, kita bisa membuat class seeder nya dulu dengan perintah php artisan.

Disini kita masih menggunakan project learning_laravel yang sudah kita buat pada tutorial sebelumnya. dan kita menggunakan database learning_laravel dan tabel user yang sudah kita buat pada tutorial membuat CRUD dengan laravel pada part sebelumnya.

Oke kita mulai membuat seedingnya. buka terminal atau CMD teman-teman. masuk ke direktori project learning_laravel nya.

Kemudian ketik perintah berikut.

php artisan make:seeder UserSeeder

Maka akan dibuat sebuah file seeder PegawaiSeeder.php nya secara otomatis. letaknya ada di belajar_laravel/database/seeds/PegawaiSeeder.php.

Kemudian buka file UserSeeder.php nya. di file UserSeeder.php tersebut sudah otomatis di isi dengan class UserSeeder. yang meng-extends class Seeder dari laravel.

learning_laravel/database/seeds/UserSeeder.php

<?php

use Illuminate\Database\Seeder;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
    }
}

perintah untuk menginput data ke table pegawai bisa kita tulis dalam method run()

ketik syntax berikut dalam method run()

<?php

use Illuminate\Database\Seeder;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
    	// insert data ke table pegawai
        DB::table('user')->insert([
        	'fullname' => 'John Doe',
        	'email' => 'john@ombagoes.com',
        	'password' => 'anonim',
        	'last_update' => date("Y-m-d H:i:s"),
        ]);
        
    }
}

Pada method run tersebut kita memerintahkan untuk menginput data testing user dengan data sesuai di atas.

Cara menjalankan fungsi/method run() ini untuk menginput data testing ini kita bisa menggunakan perintah php artisan berikut.

php artisan db:seed --class=UserSeeder

Buka Navicat atau sejenisnya lalu cek isi table user

Seperti kita lihat di atas isi table user bertambah sesuai class UserSeeder.php yang dibuat sebelumnya.

Jika anda mempunyai banyak seeder, untuk menjalankannya gunakan perintah sbb:

php artisan db:seed

Sampai di sini kita sudah paham kan maksud dan kegunaan fitur seeding pada laravel.

Untuk 1-10 Data okelah diketik. Tapi kalau kita butuh 100 bahkan sampai dengan 1000 data mengetik sagatlah tidak berfaedah.

Selanjutnya saya akan memperkenalkan library untuk mengatasi masalah pengetikan di atas.

Faker

Faker adalah library PHP yang dibuat oleh Francois Zaninotto. Faker merupakan library yang berguna untuk membuat data palsu. Faker mampu meng-generate ratusan bahkan ribuan data testing secara acak. Faker berguna untuk membuat contoh data-data. misalnya kita memerlukan 20 data pegawai sebagai data testing di aplikasi yangs sedang kita bangun, maka kita bisa menggunakan Faker.

Faker akan meng-generate secara otomatis nama-nama pegawai. nama pegawai yang di generate oleh Faker pun bukan nama asal-asalan. datanya persis seperti data asli.

Jadi ibaratnya si Faker ini sudah menyediakan banyak sekali data untuk kita gunakan.

Penasaran ? yuk langsung kita coba.

Faker sendiri sebenarnya sudah diterapkan pada Laravel. jadi kita tinggal memanggil dan langsung menggunakan class si Faker ini saja.

Dokumentasi lengkap tentang Library PHP Faker ini bisa teman-teman baca di sini.

Dokumentasi lengkap penggunaan Faker di Laravel bisa teman-teman baca di dokumentasi laravel. di sini.

Cara Penggunaan Faker

Kita ambil contoh misalnya kita membutuhkan 50 data pegawai. yang akan kita jadikan sebagai data testing pada aplikasi yang sedang kita bangun.

dan sekarang kita akan membuat data pegawai dengan menggunakan Faker.

Buka file seeder PegawaiSeeder.php yang sudah kita buat tadi. dan ketik syntax berikut.

learning_laravel/database/seeds/UserSeeder.php

<?php

use Illuminate\Database\Seeder;

use Faker\Factory as Faker;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {

    	$faker = Faker::create('id_ID');

    	for($i = 1; $i <= 50; $i++){

    	      // insert data ke table user menggunakan Faker
    		DB::table('user')->insert([
    			'fullname' => $faker->name,
    			'email' => $faker->email,
    			'password' => $faker->password,
    			'last_update' => $faker->date($format = 'Y-m-d', $max = 'now')
    		]);

    	}

    }
}

Perhatikan syntax di atas. untuk menggunakan Faker, yang pertama kali harus kita lakukan adalah memanggil class Faker. dan di sini kita mengubahnya sebagai Faker. agar lebih singkat saat kita tuliskan perintahnya.

use Faker\Factory as Faker;

kemudian kita simpan perintahnya ke dalam variabel $faker

$faker = Faker::create('id_ID');

di dalam parameter create() bisa teman-teman isi kode negara sesuai keinginan. di sini saya mengisi dengan ‘id_ID’. sehingga nanti nya data-data yang di berikan oleh si Faker ini adalah data dari negara indonesia. misalnya namanya nama-nama orang indonesia.

kemudian untuk menampilkan data-data nama yang disediakan oleh Faker kita bisa menggunakan perintah $faker->name. menampilkan data email bisa menggunakan $faker->email. Password bisa menggunakan $faker->password. Format dan Panduan disini

Di sini kita menggunakan perulangan for sebanyak 50 kali. agar si faker ini menampilkan 50 data.

Sekarang coba kita jalankan seeder PegawaiSeeder.php ini lagi dengan perintah php artisan. maka Faker akan membuatkan 50 data pegawai untuk data testing kita. dan terinput ke table pegawai.

ketik lagi perintah seeder nya.

php artisan db:seed --class=UserSeeder

Kita cek table user mengunakan Navicat atau sejenisnya

Seperti yang terlihat pada gambar table pegawai di atas. kita telah memiliki banyak data pegawai sekarang.

Sangat berguna untuk membuat demo.

Sumber:

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>