Day 6 — Setup Database & Migration
Fase: 1 — Fundamental Laravel | Minggu: 2 | Hari: Senin
🎯 Tujuan Hari Ini
Peserta mampu menghubungkan Laravel ke PostgreSQL, memahami konsep Migration sebagai "blueprint" tabel, dan membuat tabel pertama di database.
📋 Task Wajib
1. Standup Pagi (09:00 – 09:15)
Gunakan format standar:
1. Yang saya kerjakan kemarin (minggu lalu)?
2. Yang akan saya kerjakan hari ini?
3. Ada blocker?2. Aktifkan PostgresQL via XAMPP / Laragon
- Buka XAMPP Control Panel → Start Apache dan PostgresQL
- Buka browser → akses
http://localhost/phpmyadmin - Buat database baru bernama:
magang_crud_student
3. Konfigurasi File .env
Buka file .env di root project Laravel. Cari bagian DB_* dan sesuaikan:
DB_CONNECTION=PostgreSQL
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=magang_crud_student
DB_USERNAME=root
DB_PASSWORD=⚠️ Password default XAMPP biasanya kosong. Laragon biasanya
root.
Setelah mengubah .env, selalu jalankan:
php artisan config:clear4. Apa Itu Migration?
Migration adalah file PHP yang mendefinisikan struktur tabel database. Kelebihannya dibanding import SQL manual:
| Migration | Import SQL Manual |
|---|---|
| Disimpan di Git, bisa di-version control | File .sql susah di-version control |
Bisa di-rollback (php artisan migrate:rollback) | Tidak bisa otomatis |
| Bisa dijalankan ulang di team member lain | Harus share file manual |
| Mudah dimodifikasi lewat kode | Harus edit di phpMyAdmin |
5. Buat Migration Tabel students
Jalankan perintah:
php artisan make:migration create_students_tableBuka file yang terbuat di database/migrations/xxxx_create_students_table.php. Isi method up():
public function up(): void
{
Schema::create('students', function (Blueprint $table) {
$table->id(); // ID auto increment
$table->string('name', 100); // Nama siswa
$table->enum('gender', ['L', 'P']); // Jenis kelamin
$table->string('phone', 15)->nullable(); // No. HP (boleh kosong)
$table->string('school', 150); // Nama sekolah
$table->boolean('active')->default(true); // Status aktif
$table->timestamps(); // created_at & updated_at
});
}6. Jalankan Migration
php artisan migrateOutput yang diharapkan:
INFO Running migrations.
2024_xx_xx_xxxxxx_create_students_table ........ 10ms DONECek di phpMyAdmin → database magang_crud_student → tabel students sudah terbuat dengan kolom yang benar.
7. Eksperimen: Rollback & Migrate Ulang
Coba jalankan:
php artisan migrate:rollback # Hapus tabel yang baru dibuat
php artisan migrate # Buat ulang tabelLihat perubahannya di phpMyAdmin.
8. Tambahkan Data Manual via phpMyAdmin
Buka tabel students di phpMyAdmin dan tambahkan 3 baris data secara manual (klik tab "Insert"). Isi:
- Budi Santoso, L, 082100001111, SMK Negeri 1, active=1
- Sari Dewi, P, 082200002222, SMK Negeri 3, active=1
- Riko Pratama, L, (kosong), SMK Negeri 7, active=0
📝 Laporan ke Mentor
📌 LAPORAN HARIAN — Day 6
Nama : [Nama Lengkap]
Role : [Role Kamu]
✅ Yang saya kerjakan hari ini:
- [ ] Berhasil konfigurasi .env dan terhubung ke PostgreSQL
- [ ] Membuat migration tabel students
- [ ] Berhasil php artisan migrate
- [ ] Berhasil rollback dan migrate ulang
- [ ] Menambahkan 3 data manual di phpMyAdmin
📸 Screenshot Wajib:
1. phpMyAdmin menampilkan tabel students dengan struktur kolom yang benar
2. phpMyAdmin menampilkan 3 baris data yang sudah diisi
3. Terminal output dari php artisan migrate
🧠 Apa yang saya pelajari hari ini:
[Jelaskan dengan kata-katamu: apa keuntungan migration dibanding import SQL manual?]
❓ Kendala:
[Tulis jika ada]⚠️ Yang Sering Error di Day 6
SQLSTATE[HY000]: Access denied→ Username/Password DB salah di.env. Cobarootdengan password kosong.php artisan config:cleartidak membantu → Cobaphp artisan cache:clearjuga.- Migration berhasil tapi tabel tidak muncul → Cek apakah phpMyAdmin refresh sudah dilakukan. Kadang perlu refresh manual.
Catatan Mentor
Pastikan semua laptop anggota tim bisa connect ke PostgreSQL sebelum lanjut ke Day 7. Ini adalah fondasi yang sangat kritikal. Jangan biarkan ada yang tertinggal.