🎯 Tujuan Pembelajaran
Pada akhir pertemuan ini, mahasiswa mampu:
- Memahami konsep database, migration, dan manfaatnya.
- Menghubungkan Laravel ke database menggunakan file
.env. - Membuat tabel menggunakan Laravel Migration.
- Menjalankan perintah migration untuk membuat struktur tabel.
- Memahami struktur folder penting terkait database.
- Mengatasi error yang sering muncul saat migrasi.
1. Konsep Dasar: Apa Itu Migration?
Migration adalah fitur Laravel untuk mengatur struktur database menggunakan kode, bukan secara manual lewat phpMyAdmin.
🔑 Migration seperti version control (Git) untuk database.
Dengan migration, kita bisa:
✔ Membuat tabel
✔ Mengubah tabel
✔ Menambah kolom
✔ Rollback perubahan
✔ Sinkron database di semua komputer tim
Contoh situasi nyata:
Saat bekerja dalam tim, semua developer harus memiliki struktur tabel yang sama. Migration memastikan hal itu tanpa perlu mengirim file .sql manual.
2. Struktur Dasar Migration
Setiap migration memiliki dua fungsi utama:
✔ up()
Berisi kode untuk membuat atau mengubah tabel.
✔ down()
Berisi kebalikan dari
up(), biasanya untuk menghapus tabel. Digunakan saat rollback.
Contoh migration:
public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->decimal('price', 10, 2);
$table->text('description')->nullable();
$table->integer('stock')->nullable();
$table->string('image')->nullable();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('products');
}
3. Membuat Database di Laragon
Cara 1: phpMyAdmin
- Buka: http://localhost/phpmyadmin
- Klik New Database
- Masukkan nama:
crud_produk_db
Cara 2: Terminal MySQL
mysql -u root -p
Lalu jalankan:
CREATE DATABASE crud_produk_db;
SHOW DATABASES;
4. Menghubungkan Laravel ke Database
Edit file .env:
DB_DATABASE=crud_produk_db
DB_USERNAME=root
DB_PASSWORD=
Jika masih tidak terbaca, jalankan:
php artisan config:clear
5. Membuat Migration Tabel Produk
Buat migration:
php artisan make:migration create_products_table --create=products
Edit file migration:
public function up(): void
{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->decimal('price', 10, 2);
$table->text('description')->nullable();
$table->integer('stock')->nullable();
$table->string('image')->nullable();
$table->timestamps();
});
}
6. Menjalankan Migration
Jalankan:
php artisan migrate
Jika berhasil, tabel akan muncul di database.
7. Struktur Folder Penting Laravel
project-laravel/
├── 📁 app/
├── 📁 bootstrap/
├── 📁 config/
├── 📁 database/
│ └── 📁 migrations/
│ └── [timestamp]_create_products_table.php
├── 📁 public/
├── 📁 resources/
├── 📁 routes/
├── 📁 storage/
├── 📁 tests/
└── 📁 vendor/
⚠️ 8. Error yang Sering Terjadi & Solusinya
❌ Access denied for user 'root'
Cek kembali konfigurasi .env.
❌ Base table already exists
Gunakan:
php artisan migrate:refresh
❌ Connection refused
Pastikan MySQL di Laragon sedang berjalan.
❌ Column not found
Lakukan fresh:
php artisan migrate:fresh
9. Perintah Tambahan Migration (Wajib Diketahui Mahasiswa)
Rollback 1 langkah:
php artisan migrate:rollback
Refresh (hapus tabel & buat ulang):
php artisan migrate:refresh
Fresh (hapus semua tabel, buat ulang dari awal):
php artisan migrate:fresh
10. Studi Kasus: Penerapan di Aplikasi
Pada aplikasi katalog produk, migration memastikan seluruh tim/developer memiliki struktur tabel yang sama tanpa perlu export/import SQL. Cukup pull project → migrate → database siap digunakan.



