Bingung alur kerja Laravel 13? Pahami fungsi dan hubungan antara Migration, Seeder, Model, Routes, Controller, dan View secara mendalam dan runtut!
Kodejs.com - Setelah berhasil melakukan instalasi Laravel 13 dan mempraktikkan CRUD Todo App, langkah terpenting berikutnya adalah memahami peran masing-masing komponen dasarnya secara mendalam.
Banyak pemula merasa pusing karena bingung harus mulai dari mana: Buat tampilan dulu? Atau buat routenya dulu?
Artikel ini akan mengupas satu per satu fondasi utama Laravel 13βmulai dari Migration & Seeder, Model, Routes, Controller, hingga Viewβdengan urutan alur kerja paling logis yang biasa digunakan oleh developer profesional.
πΊοΈ Gambaran Alur Kerja (Bird's Eye View)
Sebelum masuk ke detail tiap komponen, pahami dulu bagaimana komponen-komponent ini saling bekerja sama:
βββββββββββββββββ
β 1. USER β (Membuka URL di browser)
βββββββββ¬ββββββββ
β
βΌ
βββββββββββββββββ
β 2. ROUTE β (Mengarahkan URL ke Controller)
βββββββββ¬ββββββββ
β
βΌ
βββββββββββββββββ
β 3. CONTROLLER β ββββ (Mengambil data jika butuh)
βββββββββ¬ββββββββ β
β βΌ
β βββββββββββββββββ
β β 4. MODEL β βββΊ [DATABASE]
β βββββββββββββββββ (Dibuat via Migration
β & diketik via Seeder)
βΌ
βββββββββββββββββ
β 5. VIEW β (Menampilkan HTML & Data ke User)
βββββββββββββββββ
Mari kita bedah satu per satu sesuai urutan pengembangannya!
1. Migration & Seeder (Fondasi Database)
Sebelum aplikasi bisa menyimpan data, kamu butuh wadah (tabel database) dan sampel data untuk uji coba.
πΉ Migration: Blueprint Database versi Code
Daripada membuat tabel manual lewat PHPMyAdmin atau DBeaver, Migration memungkinkan kamu mendesain struktur tabel menggunakan kode PHP. Keunggulannya: struktur database kamu tercatat dalam version control (Git).
Lokasi File:
database/migrations/Perintah Pembuatan:
Bash
php artisan make:migration create_products_tableContoh Kode:
PHP
Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->integer('price'); $table->timestamps(); });
πΉ Seeder: Pengisi Data Otomatis
Setelah tabel jadi, kamu butuh data awal/dummy untuk pengujian tanpa harus menginput manual satu per satu via form.
Lokasi File:
database/seeders/Perintah Pembuatan:
Bash
php artisan make:seeder ProductSeederMenjalankan Migration & Seeder Sekaligus:
Bash
php artisan migrate:fresh --seed
2. Model (Penghubung Logika ke Database)
Model adalah representasi dari satu tabel di database. Di Laravel, fitur ini ditangani oleh Eloquent ORM (Object-Relational Mapping).
Daripada menulis SQL mentah seperti SELECT * FROM products WHERE price > 10000, kamu cukup memanggil perintah ekspresif PHP melalui Model.
Lokasi File:
app/Models/Product.phpPerintah Pembuatan:
Bash
php artisan make:model ProductProperti Penting (
$fillable):Digunakan untuk mendaftarkan kolom mana saja yang boleh diisi secara langsung (mass assignment).
PHP
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Product extends Model { protected $fillable = ['name', 'price']; }
3. Routes (Gerbang Utama Request)
Setiap kali user mengetikkan URL di browser (misal: [websiteku.com/produk](https://websiteku.com/produk)), Routes adalah komponen pertama yang merespons dan menentukan ke mana request tersebut harus diarahkan.
Lokasi File Utama:
routes/web.php(untuk web) danroutes/api.php(untuk API).Contoh Kode:
PHP
use App\Http\Controllers\ProductController; // Menghubungkan URL /products ke method 'index' di ProductController Route::get('/products', [ProductController::class, 'index'])->name('products.index');
Tips Laravel 13: Manfaatkan Named Routes (
->name()) agar jika kelak kamu mengubah URL-nya, kamu tidak perlu mengubah kode di seluruh file blade/view kamu.
4. Controller (Otak Aplikasi)
Jika Route adalah penerima tamu, Controller adalah kokinya. Controller bertugas menerima input dari request, meminta data ke Model, memproses logika bisnis, lalu mengirimkan hasilnya ke View.
Lokasi File:
app/Http/Controllers/Perintah Pembuatan (Resource Controller):
Bash
php artisan make:controller ProductController --resourceContoh Logika Controller:
PHP
namespace App\Http\Controllers; use App\Models\Product; class ProductController extends Controller { public function index() { // 1. Ambil data dari Model $products = Product::where('price', '>', 10000)->get(); // 2. Kirim data ke View return view('products.index', compact('products')); } }
5. View (Tampilan Antarmuka User)
View berisi kode HTML, CSS, dan JavaScript yang disajikan ke browser user. Di Laravel, View menggunakan template engine bernama Blade.
Blade memudahkan kamu menampilkan data dari Controller menggunakan syntax yang ringkas seperti {{ $product->name }} dan struktur kontrol seperti @if atau @foreach.
Lokasi File:
resources/views/Ekstensi File:
.blade.php(misal:resources/views/products/index.blade.php)Contoh Kode Blade:
HTML
<h1>Daftar Produk</h1> <ul> @foreach ($products as $product) <li>{{ $product->name }} - Rp {{ number_format($product->price) }}</li> @endforeach </ul>
Matriks Ringkasan Singkat
KomponenTugas UtamaLokasi FileMigration & SeederMembuat struktur tabel & memasukkan data sampel.database/ModelBerkomunikasi dengan database (Eloquent).app/Models/RoutesMengatur pemetaan URL request ke Controller.routes/web.phpControllerMemproses logika bisnis & data.app/Http/Controllers/View (Blade)Menampilkan UI/HTML ke browser user.resources/views/
Kesimpulan
Memahami alur kerja Migration β Model β Route β Controller β View adalah kunci utama menguasai Laravel 13. Ketika kamu membangun fitur baru, mulailah dengan menyiapkan database-nya dulu, buat modelnya, tentukan routenya, tulis logikanya di controller, dan tampilkan hasilnya di view.
Untuk melihat bagaimana kelima komponen ini bekerja dalam fitur yang lebih advance dan fitur-fitur modern bawaannya, pastikan kamu membaca panduan Laravel 13: Apa yang Baru & Panduan Lengkap Fitur Utama.
Selamat mengoding!
Ditulis oleh
Egi Samsul Mu'arif
Web & Mobile Developer



