Sekarang kita masuk ke bagian yang paling seru dalam development: berinteraksi dengan database. Jangan panik kalau kamu belum pernah menulis SQL, karena Laravel punya sistem yang ramah untuk pemula bernama Migration dan Eloquent ORM.
Dalam episode ini, kita akan setup koneksi database, membuat tabel pertama kamu dengan migration, mengenal Eloquent Model, dan langsung testing data tanpa perlu membuat form dulu. Mari kita mulai!
Step 1: Setup Koneksi Database
Buka file .env di root project kamu. Di bagian database, kamu akan melihat konfigurasi seperti ini:
DB_CONNECTION=sqlite
DB_DATABASE=database.sqliteUntuk tahap belajar, kita bisa pakai SQLite (lebih simple, tidak perlu install MySQL server terpisah) atau MySQL kalau kamu sudah familiar. Kalau pakai SQLite, file database otomatis jadi di folder database/. Kalau pakai MySQL, ubah konfigurasinya jadi:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_belajar
DB_USERNAME=root
DB_PASSWORD=Sesuaikan dengan setup MySQL kamu. Kalau pakai SQLite, biarkan saja default-nya.
Step 2: Membuat Migration Pertama
Migration adalah file yang berisi blueprint tabel database kamu. Dengan migration, kamu tidak perlu buka phpMyAdmin dan nulis CREATE TABLE manual. Laravel sudah punya command untuk generate migration:
php artisan make:migration create_posts_tablePerintah di atas akan membuat file di folder database/migrations/ dengan nama timestamp dan "create_posts_table". Buka file itu dan kamu akan lihat struktur seperti ini:
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('posts');
}Sekarang kita tambahkan kolom-kolom yang kita butuh: title dan content:
public function up(): void
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}Mudah, kan? Kolom id sudah auto-increment sebagai primary key. Kolom timestamps() membuat dua kolom otomatis: created_at dan updated_at. Sekarang kita jalankan migration dengan command:
php artisan migrateJika berhasil, kamu akan lihat pesan bahwa tabel posts sudah dibuat. Buka database GUI kamu (phpMyAdmin kalau MySQL, atau TablePlus kalau SQLite) dan verifikasi tabel sudah ada beserta kolom-kolomnya.
Step 3: Membuat Eloquent Model
Model adalah representasi data di Laravel. Setiap tabel biasanya punya satu Model. Kita bisa generate Model dengan command:
php artisan make:model PostFile baru Post.php akan muncul di folder app/Models/. Struktur dasarnya:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
//
}Wow, simple banget! Laravel sudah tahu bahwa Model Post itu berhubungan dengan tabel posts (plural, otomatis). Kamu tidak perlu konfigurasi tambahan untuk case dasar seperti ini.
Mengenal Eloquent: Query Database dengan Santai
Sekarang tiba giliran bagian yang paling powerful: Eloquent. Ini adalah ORM (Object-Relational Mapping) yang memungkinkan kamu query database dengan syntax yang natural, bukan SQL mentah.
- Ambil semua data:
Post::all()— mengembalikan collection semua posts - Cari satu data:
Post::find(1)— mencari post dengan id = 1 - Buat data baru:
Post::create(['title' => 'Hello', 'content' => 'World'])— insert langsung - Update data:
$post->update(['title' => 'Updated'])— ubah kolom tertentu - Hapus data:
$post->delete()— delete dari database
Kita akan explore semua ini lebih dalam di episode CRUD (Create, Read, Update, Delete) nanti. Untuk sekarang, kita cukup tahu bahwa method-method ini ada dan powerful.
Step 4: Testing dengan Tinker
Tinker adalah interactive shell untuk Laravel. Dengan tinker, kita bisa test Eloquent query tanpa harus bikin form atau controller terlebih dahulu. Jalankan:
php artisan tinkerKamu akan masuk ke mode interaktif. Sekarang coba buat data dummy:
>>> Post::create(['title' => 'First Post', 'content' => 'Halo dunia!'])
>>> Post::create(['title' => 'Second Post', 'content' => 'Laravel keren!'])Setelah itu, coba ambil datanya:
>>> Post::all()
>>> Post::find(1)Kamu akan lihat hasilnya langsung di terminal. Ini cara terbaik untuk eksperimen tanpa perlu bikin view atau form. Untuk keluar dari Tinker, ketik exit atau tekan Ctrl+D.
Tips Penting untuk Pemula
- Jangan hafal semua command Artisan: Pakai
php artisan listuntuk lihat daftar command yang tersedia - Rollback migration: Kalau kamu salah membuat kolom, bisa jalankan
php artisan migrate:rollbackuntuk "undo" dan coba lagi - Fresh migration: Di development, bisa pakai
php artisan migrate:freshuntuk reset database dari awal - Fillable di Model: Untuk pakai
::create(), pastikan kolom yang mau di-fill ada di property$fillabledi Model (akan kita bahas lebih dalam di episode CRUD)
Kesimpulan
Sekarang kamu sudah tahu cara setup database di Laravel, membuat tabel dengan migration, membuat Model Eloquent, dan testing data dengan Tinker. Ini adalah fondasi sebelum kita masuk ke episode CRUD di mana kita akan membuat form untuk insert, edit, delete data.
Di episode berikutnya, kita akan build feature lengkap untuk menampilkan, membuat, mengubah, dan menghapus posts. Kamu udah siap? Mari lanjut!