Laravel Seeder untuk Mengisi Data Default

Muhammad Naufal Andika Natsir Putra
DOT Intern
Published in
3 min readSep 1, 2020

Sebelum memasuki lebih jauh ke dalam artikel ini, saya rasa kita perlu menyeragamkan makna data default pada artikel ini. Data default adalah istilah yang saya gunakan untuk data yang seharusnya tersedia di dalam database agar suatu aplikasi atau website dapat berfungsi dengan baik.

Misalnya kita sedang mengembangkan suatu website e-commerce dalam negeri, tentu saja kita memerlukan data seluruh provinsi dan kota yang ada di Indonesia untuk menghitung ongkos kirim dari barang yang dibeli. Pada kasus ini, data seluruh provinsi dan kota yang ada di Indonesia dapat kita sebut sebagai data default (definisi saya). Karena jika data provinsi dan kota yang ada tidak lengkap, maka website e-commerce tersebut kemungkinan akan tidak bisa menghitung ongkos kirim dari barang yang di beli.

Lalu bagaimana kita akan mengisi data tersebut ke dalam database ?

Ada berbagai cara untuk melakukan nya, misal nya dengan membuat halaman admin untuk melakukan operasi CRUD pada tabel provinsi dan kota, atau dengan membuat script SQL yang akan melakukan insert data provinsi dan kota ke dalam database. namun saya rasa kedua cara tersebut tidak mudah dan fleksibel untuk dilakukan.

Ketika kita membuat halaman admin untuk memasukkan data provinsi dan kota, memasukkan data provinsi dan kota satu per satu melalui halaman admin pun bukan lah cara yang efisien karena akan memerlukan banyak waktu mengingat Indonesia memiliki 34 provinsi dan 514 kabupaten / kota, sangat banyak bukan. Waktu yang dibutuhkan untuk memasukkan data tersebut satu per satu dapat digunakan untuk hal yang lebih produktif seperti mengembangkan fitur baru. Terlebih lagi saat kita ingin berpindah database dari lokal ke produksi kita harus mengekspor data dari database lokal kita untuk di import ke database produksi, atau lebih buruk lagi kita bisa memasukkan data provinsi satu per satu kembali melalui halaman admin untuk database produksi.

Jika cara yang kita ambil adalah dengan membuat script SQL untuk melakukan insert data ke dalam database, kita sudah menyelesaikan permasalahan waktu pada solusi menggunakan halaman admin. Namun bagi saya hal ini kurang fleksibel dikarena kan bahasa yang digunakan untuk membangun website dan mengisi data nya berbeda. Kita mungkin membangun website nya menggunakan PHP, JavaScript, Ruby atau bahasa lain nya, namun perlu membuat script dengan syntax SQL untuk memasukkan data default. Belum lagi script tersebut secara alami bukanlah bagian dari projek yang sedang dibangun melainkan script tersendiri.

Laravel Seeder

Pada framework laravel telah disediakan suatu class untuk melakukan pengisian data ke dalam database dengan nama class Seeder. Class ini dapat dimanfaatkan untuk mengisi data dummy, maupun mengisi data default ke dalam database. Dengan class Seeder kita dapat memasukkan berbaris-baris data dengan cepat, tetap menggunakan bahasa yang sama dengan projek yang dibangun, dan class ini secara alami menjadi bagian dari projek.

Disini kita akan bersama-sama memanfaatkan class seeder untuk mengisi data provinsi yang ada di Indonesia. Namun sebelum itu pastikan kalian telah membuat tabel provinces dan juga model Province pada projek kalian.

Pertama-tama kita perlu membuat file seeder nya terlebih dahulu dengan menjalankan perintah berikut

php artisan make:seeder ProvinceSeeder

Setelah itu kita perlu menyediakan data nama seluruh provinsi yang ada di Indonesia dan memasukkan nya di dalam array dan melakukan insert pada function run()

Sudah jadi! Kita telah membuat data default untuk provinsi yang ada di Indonesia dan menjadikan nya bagian dari projek laravel yang sedang dibangun. Untuk menggunakan nya kita tinggal menjalankan perintah seperti ini

php artisan db:seed --class=ProvinceSeeder

Dan database pun akan terisi dengan data 34 provinsi yang ada di Indonesia

Sangat mudah bukan! Dengan begini siapapun yang akan terlibat di projek ini akan bisa memiliki data provinsi yang sama tanpa perlu melakukan export atau pun mengisi data satu per satu.

Kesimpulan

  • Data default merupakan data yang perlu ada dalam database agar website / aplikasi dapat berjalan dengan baik.
  • Laravel menyediakan tools untuk mempermudah mengisikan data default ke dalam database dengan singkat, dengan menggunakan bahasa yang sama dengan projek yang dibangun, dan bisa digunakan berulang-ulang.

--

--