KodeJs
Memahami Konsep Dasar Laravel 13: Dari Migration hingga View
Laravel3 menit baca

Memahami Konsep Dasar Laravel 13: Dari Migration hingga View

Kembali ke Blog
Egi Samsul Mu'arifEgi Samsul Mu'arif25 Agustus 20263 menit baca

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_table
  • Contoh 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 ProductSeeder
  • Menjalankan 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.php

  • Perintah Pembuatan:

    Bash

    php artisan make:model Product
  • Properti 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) dan routes/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 --resource
  • Contoh 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!


Egi Samsul Mu'arif

Ditulis oleh

Egi Samsul Mu'arif

Web & Mobile Developer

Artikel Terkait

Lihat semua