Mahasiswa mampu memahami konsep controller pada Laravel, membuat controller menggunakan artisan, menggunakan method pada controller, menghubungkan route ke controller, serta mengirim data dari controller ke view.
Pada arsitektur MVC (Model View Controller), Laravel menggunakan Controller sebagai penghubung antara:
Controller membantu membuat kode:
Controller adalah bagian dari MVC yang digunakan untuk:
Controller menjadi pusat pengolahan request pada Laravel.
Controller digunakan untuk:
User
↓
Route
↓
Controller
↓
View
↓
Browser
Controller berada pada folder:
app/Http/Controllers/
| Keuntungan | Penjelasan |
|---|---|
| Kode lebih rapi | Logic dipisahkan |
| Mudah maintenance | Struktur jelas |
| Reusable | Method dapat digunakan ulang |
| Mendukung MVC | Sesuai standar Laravel |
Laravel Artisan adalah command line interface Laravel yang digunakan untuk membantu proses development.
Format:
php artisan make:controller NamaController
php artisan make:controller MahasiswaController
Laravel akan membuat file:
app/Http/Controllers/MahasiswaController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MahasiswaController extends Controller
{
}
| Bagian | Fungsi |
|---|---|
| namespace | Lokasi class |
| use Request | Menggunakan request Laravel |
| extends Controller | Inherit controller utama |
Command:
php artisan make:controller ProdukController --resource
Digunakan untuk membuat controller CRUD otomatis.
| Method | Fungsi |
|---|---|
| index | Menampilkan data |
| create | Form tambah |
| store | Simpan data |
| edit | Form edit |
| update | Update data |
| destroy | Hapus data |
Method adalah fungsi yang terdapat di dalam controller.
Method digunakan untuk:
<?php
namespace App\Http\Controllers;
class MahasiswaController extends Controller
{
public function index()
{
return "Halaman Mahasiswa";
}
}
| Bagian | Fungsi |
|---|---|
| public function | Membuat method |
| index() | Nama method |
| return | Output |
class MahasiswaController extends Controller
{
public function index()
{
return "Data Mahasiswa";
}
public function profil()
{
return "Profil Mahasiswa";
}
}
Digunakan untuk:
public function detail($id)
{
return "ID Mahasiswa: ".$id;
}
| Keuntungan | Penjelasan |
|---|---|
| Kode modular | Mudah dipisahkan |
| Mudah dipanggil | Fleksibel |
| Logic lebih jelas | Terstruktur |
Laravel memungkinkan route diarahkan ke controller.
Tambahkan pada:
routes/web.php
Kode:
use App\Http\Controllers\MahasiswaController;
Route::get('/mahasiswa', [MahasiswaController::class, 'index']);
| Bagian | Fungsi |
|---|---|
| Route::get | Method GET |
| /mahasiswa | URL |
| MahasiswaController | Nama controller |
| index | Nama method |
Jika browser membuka:
http://127.0.0.1:8000/mahasiswa
Maka method index() dijalankan.
Route::get('/profil', [MahasiswaController::class, 'profil']);
Route::get('/detail/{id}', [MahasiswaController::class, 'detail']);
public function detail($id)
{
return "Detail ID: ".$id;
}
Passing data adalah proses mengirim data dari controller ke view.
Buat file:
resources/views/mahasiswa.blade.php
<h1>{{ $nama }}</h1>
Controller:
public function index()
{
$nama = "Mahasiswa Sistem Informasi";
return view('mahasiswa', compact('nama'));
}
compact('nama')
Digunakan untuk:
{{ $nama }}
public function index()
{
$nama = "Mahasiswa";
$kelas = "SI 4A";
return view('mahasiswa', compact('nama', 'kelas'));
}
<h1>{{ $nama }}</h1>
<p>{{ $kelas }}</p>
Digunakan untuk:
Command:
php artisan make:controller DosenController
Controller:
public function index()
{
return "Halaman Dosen";
}
use App\Http\Controllers\DosenController;
Route::get('/dosen', [DosenController::class, 'index']);
File:
resources/views/dosen.blade.php
Isi:
<h1>{{ $nama }}</h1>
Controller:
public function index()
{
$nama = "Laravel Controller";
return view('dosen', compact('nama'));
}
Controller pada Laravel berfungsi sebagai pengatur logic aplikasi dan penghubung antara route dengan view. Dengan memahami cara membuat controller, menggunakan method, menghubungkan route, dan melakukan passing data ke view, mahasiswa dapat membangun aplikasi Laravel yang lebih terstruktur dan mengikuti konsep MVC secara benar.