Belajar Laravel - Konsep Dasar & Arsitektur Utama
Episode 2 of 24

Belajar Laravel - Konsep Dasar & Arsitektur Utama

Membongkar arsitektur Laravel: alur request dari HTTP ke response yang melewati public/index.php, routing, middleware, dan service container, pola MVC, serta peta struktur direktori skeleton Laravel 13 yang sudah dirampingkan dari versi sebelumnya.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 1 kita memahami sejarah dan filosofi Laravel, pada episode ini kita masuk ke arsitektur inti. Memahami bagaimana sebuah request mengalir adalah kunci membedakan developer yang "hanya pakai framework" dengan developer yang paham "mengapa framework melakukan ini". Saat error aneh muncul — misalnya middleware tidak tereksekusi atau service container tidak menemukan dependency — pengetahuan arsitektur inilah yang menyelamatkan kalian.

Kita akan membedah tiga hal: alur request lifecycle, pola MVC, dan struktur direktori skeleton Laravel 13. Ketiganya adalah fondasi yang dipakai di seluruh episode berikutnya.

Request Lifecycle: Perjalanan Sebuah HTTP Request

Saat browser mengirim GET /posts, apa yang terjadi? Ikuti alurnya:

100%

1. public/index.php sebagai Front Controller

Semua request masuk lewat public/index.php — inilah alasan web server harus diarahkan ke folder public/, bukan root proyek. File ini me-bootstrap aplikasi: memuat autoloader Composer, membuat instance dari Illuminate\Foundation\Application (service container), lalu menyerahkan request ke HTTP Kernel.

2. Kernel dan Service Container

HTTP Kernel (app/Http/Kernel.php) adalah pusat komando: ia mendefinisikan middleware global, group middleware, dan urutan eksekusinya. Ia juga memegang tugas menangani exception dan mengkonversi request menjadi response.

Service container adalah jantung Laravel — container dependency injection yang mengelola pembuatan objek dan dependensinya. Saat kode kalian meminta PostController, container yang membuatnya, menyuntikkan dependensi (request, model, dsb) secara otomatis. Episode 5 akan membahasnya lebih dalam lewat dependency injection di controller.

3. Router, Middleware, Controller, dan Response

Router mencocokkan URL dan method ke definisi route, lalu mengeksekusi middleware yang terpasang pada route tersebut (contoh: cek login), baru kemudian memanggil controller. Controller mengolah logika bisnis, berinteraksi dengan model/Eloquent, lalu mengembalikan response — bisa berupa view Blade, JSON, atau redirect.

routes/web.php
<?php
 
use App\Http\Controllers\PostController;
 
Route::get('/posts', [PostController::class, 'index']);

Pola MVC: Model, View, Controller

Laravel menganut MVC, dengan pembagian peran yang jelas:

KomponenTugasLokasi di Laravel
RouteMemetakan URL ke controllerroutes/
ControllerLogika bisnis, koordinasiapp/Http/Controllers/
ModelRepresentasi data & relasiapp/Models/
ViewPresentasi / tampilanresources/views/

Alur tipikal: route menerima request → controller dipanggil → controller meminta data ke model → controller mengirim data ke view → view dirender menjadi HTML → response dikembalikan. Model tidak tahu soal tampilan, view tidak menulis query, controller menjadi jembatannya.

Tip

Aturan praktis yang dipakai tim Laravel berpengalaman: "thin controllers, fat models" — controller cukup mengatur request dan response, sementara logika bisnis yang berulang disimpan di model atau service class. Controller yang panjang adalah sinyal kode perlu di-refactor.

Struktur Direktori Skeleton Laravel 13

Skeleton Laravel 13 jauh lebih ramping dari versi lama. Ini peta folder yang paling sering kalian sentuh:

Struktur direktori Laravel 13
app/
  Http/
    Controllers/
    Middleware/
  Models/
  Providers/
bootstrap/
config/
database/
  migrations/
  seeders/
public/
resources/
  views/
routes/
  web.php
  api.php
  console.php
storage/

Fungsi masing-masing:

  • app/ — kode aplikasi kalian: controllers, models, middleware, providers. Sejak Laravel 11, folder seperti Http/Middleware tidak dibuatkan boilerplate — hanya muncul saat kalian jalankan php artisan make:middleware atau make:model.
  • routes/ — definisi route: web.php (dengan session & CSRF), api.php (tanpa session), console.php (perintah artisan kustom).
  • database/ — migrations, seeders, dan factories untuk data.
  • resources/views/ — template Blade.
  • config/ — konfigurasi aplikasi, dibaca dari environment variable.
  • public/ — document root: index.php, aset statis (CSS/JS/gambar).
  • storage/ — log, cache ter-compile, file upload, dan session.

php artisan about menampilkan ringkasan seluruh konfigurasi aplikasi sekaligus:

Ringkasan konfigurasi aplikasi
php artisan about

Output-nya berisi versi Laravel & PHP, environment, driver cache/queue/session, dan lokasi file — sangat berguna untuk diagnosa cepat.

Penutup

Pada episode 2 ini, kalian telah membedah arsitektur inti Laravel.

Inti yang harus dibawa pulang:

  • Semua request masuk lewat public/index.php sebagai front controller, lalu diproses Kernel dan service container.
  • Alur request: route → middleware → controller → model → view → response.
  • Laravel menganut MVC; pegang prinsip thin controllers, fat models.
  • Skeleton Laravel 13 ramping: app/, routes/, database/, resources/, config/, public/, storage/.

Di episode 3 selanjutnya, kita akan menginstall Laravel 13 — lewat composer create-project maupun laravel new — lalu mengenal php artisan serve, struktur .env, dan berbagai perintah konfigurasi seperti php artisan about dan optimize:clear. Sampai jumpa di episode 3!