- Apa Itu Model?
- Apa Itu Migration?
- Langkah 1 – Konfigurasi Koneksi Database
- Langkah 2 – Membuat Model dan Migration Product
- Langkah 3 – Mengatur Struktur Tabel Products
- Langkah 4 – Menambahkan Mass Assignment
- Langkah 5 – Menjalankan Migration
- Kesimpulan
Halo teman-teman semuanya. Pada artikel sebelumnya kita telah belajar bagaimana cara melakukan installasi dan menjalankan project Laravel 13, maka sekarang kita akan belajar bagaimana cara membuat Model dan Migration di dalam project Laravel 13 yang sudah kita install pada tutorial sebelumnya.
Sebelum masuk ke praktik, ada baiknya kita memahami terlebih dahulu apa itu Model dan Migration di Laravel, karena dua komponen ini merupakan fondasi utama dalam pengelolaan data dan database.
Apa Itu Model?
Model di Laravel digunakan untuk merepresentasikan data dari sebuah tabel di database. Model berfungsi sebagai penghubung antara aplikasi Laravel dengan database menggunakan fitur Eloquent ORM. Dengan Model, kita dapat melakukan operasi CRUD (Create, Read, Update, Delete) dengan cara yang lebih mudah, rapi, dan terstruktur tanpa harus menulis query SQL secara manual.
Biasanya, satu Model akan merepresentasikan satu tabel di database.
Apa Itu Migration?
Migration adalah fitur Laravel yang digunakan untuk mengelola struktur database menggunakan kode PHP. Migration memungkinkan kita untuk membuat, mengubah, dan menghapus tabel database dengan cara yang terkontrol dan terstruktur, sehingga memudahkan proses pengembangan dan kolaborasi tim.
Migration juga sangat berguna ketika aplikasi dipindahkan ke environment lain, karena struktur database dapat dibuat ulang hanya dengan menjalankan perintah Artisan.
Langkah 1 – Konfigurasi Koneksi Database
Langkah pertama dalam membuat Model dan Migration di Laravel 13 adalah mengkonfigurasi koneksi database. Pengaturan ini dilakukan di dalam file .env.
Silakan teman-teman buka file .env, kemudian cari konfigurasi berikut ini.
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Silakan ubah menjadi seperti berikut ini.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_laravel_13
DB_USERNAME=root
DB_PASSWORD=
Penjelasan dari perubahan di atas:
- Kita mengubah driver database dari
sqlitemenjadimysql - Menghapus tanda
#agar konfigurasi database aktif - Mengatur
DB_DATABASEmenjadidb_laravel_13 DB_USERNAMEsecara default menggunakanrootDB_PASSWORDdikosongkan jika menggunakan XAMPP
Setelah melakukan perubahan tersebut, simpan file .env, lalu jalankan perintah berikut ini untuk memastikan konfigurasi baru diterapkan:
php artisan config:clear
Langkah 2 – Membuat Model dan Migration Product
Setelah konfigurasi database selesai, langkah selanjutnya adalah membuat Model dan Migration untuk tabel products.
Silakan jalankan perintah berikut di dalam terminal/CMD:
php artisan make:model Product -m
Perintah di atas akan menghasilkan:
app/Models/Product.php→ file Modeldatabase/migrations/xxxx_xx_xx_create_products_table.php→ file Migration
Langkah 3 – Mengatur Struktur Tabel Products
Selanjutnya, silahkan teman-teman buka file migration yang berada di folder database/migrations/xxxx_xx_xx_create_products_table.php, lalu ubah method up() menjadi seperti berikut ini.
database/migrations/xxxx_xx_xx_create_products_table.php
public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('image');
$table->string('title');
$table->text('description');
$table->bigInteger('price');
$table->integer('stock')->default(0);
$table->timestamps();
});
}
Dari kode migration di atas, kita membuat tabel products yang memiliki beberapa kolom penting. Penjelasannya dapat dilihat pada tabel berikut ini:
| Kode | Tipe Data | Fungsi |
|---|---|---|
$table->id(); |
BIGINT UNSIGNED |
Membuat kolom id sebagai primary key dan auto increment |
$table->string('image'); |
VARCHAR(255) |
Menyimpan nama file atau path gambar produk |
$table->string('title'); |
VARCHAR(255) |
Menyimpan judul atau nama produk |
$table->text('description'); |
TEXT |
Menyimpan deskripsi lengkap produk |
$table->bigInteger('price'); |
BIGINT |
Menyimpan harga produk dalam bentuk angka |
$table->integer('stock')->default(0); |
INT |
Menyimpan jumlah stok produk dengan nilai default 0 |
$table->timestamps(); |
TIMESTAMP |
Membuat kolom created_at dan updated_at secara otomatis |
Langkah 4 – Menambahkan Mass Assignment
Setelah kita berhasil membuat tabel products menggunakan migration, langkah selanjutnya adalah menyiapkan Model Product agar bisa menerima data secara mass assignment.
Mass assignment di Laravel digunakan untuk mengisi banyak kolom sekaligus dalam satu perintah, misalnya saat menyimpan data dari form. Agar hal ini aman, Laravel mengharuskan kita mendefinisikan field apa saja yang boleh diisi melalui properti $fillable pada Model.
Silakan teman-teman buka file Model Product yang berada di lokasi berikut:
app/Models/Product.php
Kemudian ubah kodenya menjadi seperti berikut ini:
app/Models/Product.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
/**
* fillable
*
* @var array
*/
protected $fillable = [
'image',
'title',
'description',
'price',
'stock',
];
}
Penjelasan dari kode di atas:
- Properti
$fillabledigunakan untuk menentukan kolom mana saja yang boleh diisi secara massal - Kolom
id,created_at, danupdated_attidak perlu dimasukkan karena diisi otomatis oleh Laravel - Dengan pengaturan ini, kita bisa menyimpan data menggunakan Eloquent dengan cara yang lebih ringkas dan aman
Langkah 5 – Menjalankan Migration
Setelah kita selesai membuat struktur tabel products dan menambahkan mass assignment pada Model Product, sekarang saatnya menjalankan migration agar tabel tersebut benar-benar dibuat di database.
Silakan jalankan perintah berikut ini di dalam terminal/CMD:
php artisan migrate
Jika keluar output seperti berikut ini. Itu artinya kita belum memiliki database di dalam MySQL dengan nama db_laravel_13 dan apakah kita ingin membuatnya ? Silahkan pilih Yes dan ENTER.
WARN The database 'db_laravel_13' does not exist on the 'mysql' connection.
┌ Would you like to create it? ────────────────────────────────┐
│ ● Yes / ○ No │
└──────────────────────────────────────────────────────────────┘
Jika prosesnya berhasil, maka Laravel akan membuat tabel products di dalam database db_laravel_13 sesuai struktur yang sudah kita tuliskan pada file migration.

Dan jika teman-teman cek pada PhpMyAdmin di http://localhost/phpmyadmin, maka table-table akan berhasil digenerate berserta field-field di dalamnya.

Kesimpulan
Pada tutorial ini, kita telah belajar konsep dan praktik Model dan Migration di Laravel 13. Mulai dari mengkonfigurasi koneksi database di file .env, membuat Model dan Migration Product, mengatur struktur tabel products, menambahkan mass assignment melalui $fillable, hingga menjalankan perintah php artisan migrate untuk membuat tabelnya di database.
Pada tutorial berikutnya, kita akan mulai belajar bagaimana cara menampilkan data dari database menggunakan Laravel 13.
Terima kasih
Artikel ini dibaca sebanyak 6.292 kali
{ setTimeout(() => { showShimmer = false; }, 300); })"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
class="lazy w-full h-auto rounded-xl border border-white dark:border-neutral-700/80 transition-opacity duration-500"
loading="lazy"
/>
SAWERIA
Memuat komentar...