Mahasiswa mampu memahami integrasi antara route, controller, dan Blade Template pada Laravel, mampu mengirim data dari controller ke view, menampilkan data dinamis pada Blade, membuat halaman web sederhana, serta memahami struktur MVC pada Laravel.
Laravel menggunakan konsep MVC (Model View Controller) dalam pengembangan aplikasi web.
Komponen utama:
Ketiga komponen ini bekerja bersama untuk:
Route digunakan untuk:
Controller akan:
User
↓
Route
↓
Controller
↓
View
↓
Browser
Command:
php artisan make:controller HomeController
Laravel membuat file:
app/Http/Controllers/HomeController.php
<?php
namespace App\Http\Controllers;
class HomeController extends Controller
{
public function index()
{
return "Halaman Home";
}
}
Tambahkan pada:
routes/web.php
Kode:
use App\Http\Controllers\HomeController;
Route::get('/home', [HomeController::class, 'index']);
| Bagian | Fungsi |
|---|---|
| Route::get | Request GET |
| /home | URL |
| HomeController | Nama controller |
| index | Method controller |
Jika browser membuka:
http://127.0.0.1:8000/home
Maka method index() dijalankan.
| Keuntungan | Penjelasan |
|---|---|
| Kode lebih rapi | Logic dipisahkan |
| Mudah maintenance | Struktur jelas |
| Reusable | Method dapat digunakan ulang |
Passing data adalah proses:
Buat file:
resources/views/home.blade.php
<h1>{{ $nama }}</h1>
Controller:
<?php
namespace App\Http\Controllers;
class HomeController extends Controller
{
public function index()
{
$nama = "Mahasiswa Sistem Informasi";
return view('home', compact('nama'));
}
}
compact('nama')
Digunakan untuk:
{{ $nama }}
Controller:
public function index()
{
$nama = "Laravel";
$kelas = "SI 4A";
return view('home', compact('nama', 'kelas'));
}
Blade:
<h1>{{ $nama }}</h1>
<p>{{ $kelas }}</p>
Digunakan untuk:
Data dinamis adalah data yang:
{{ $nama }}
Controller:
public function index()
{
$mahasiswa = ['Andi', 'Budi', 'Citra'];
return view('home', compact('mahasiswa'));
}
Blade:
@foreach($mahasiswa as $m)
<p>{{ $m }}</p>
@endforeach
@if($nilai >= 75)
<p>Lulus</p>
@else
<p>Tidak Lulus</p>
@endif
Blade:
{!! $html !!}
Catatan:
Digunakan untuk:
Membuat halaman sederhana menggunakan:
use App\Http\Controllers\PageController;
Route::get('/about', [PageController::class, 'about']);
Command:
php artisan make:controller PageController
<?php
namespace App\Http\Controllers;
class PageController extends Controller
{
public function about()
{
$judul = "Tentang Website";
return view('about', compact('judul'));
}
}
File:
resources/views/about.blade.php
Isi:
<!DOCTYPE html>
<html>
<head>
<title>About</title>
</head>
<body>
<h1>{{ $judul }}</h1>
<p>Website Laravel Pertama</p>
</body>
</html>
Buka browser:
http://127.0.0.1:8000/about
Browser menampilkan:
routes/web.php
app/Http/Controllers/PageController.php
resources/views/about.blade.php
MVC adalah arsitektur aplikasi yang memisahkan:
| Komponen | Fungsi |
|---|---|
| Model | Mengelola data |
| View | Menampilkan tampilan |
| Controller | Mengatur alur aplikasi |
app/
├── Models/
└── Http/Controllers/
resources/
└── views/
routes/
└── web.php
User
↓
Route
↓
Controller
↓
Model
↓
Database
↓
Controller
↓
View
↓
Browser
| Tahap | Fungsi |
|---|---|
| Route | Menentukan URL |
| Controller | Mengatur logic |
| Model | Mengambil data |
| View | Menampilkan data |
| Keuntungan | Penjelasan |
|---|---|
| Struktur rapi | Mudah dikembangkan |
| Maintenance mudah | Kode terpisah |
| Kolaborasi tim | Frontend & backend terpisah |
Command:
php artisan make:controller PageController
use App\Http\Controllers\PageController;
Route::get('/profil', [PageController::class, 'profil']);
public function profil()
{
$nama = "Laravel MVC";
return view('profil', compact('nama'));
}
File:
resources/views/profil.blade.php
Isi:
<h1>{{ $nama }}</h1>
Controller:
$produk = ['Laptop', 'Mouse', 'Keyboard'];
Blade:
@foreach($produk as $p)
<p>{{ $p }}</p>
@endforeach
Integrasi antara route, controller, dan Blade Template pada Laravel memungkinkan aplikasi web dibangun secara terstruktur sesuai konsep MVC. Dengan memahami alur request Laravel, mahasiswa dapat membuat halaman web dinamis yang lebih rapi, mudah dikembangkan, dan sesuai standar pengembangan aplikasi modern.