Controller Dasar di Laravel: Panduan Lengkap untuk Pemula
Pada proses pengembangan aplikasi berbasis Laravel, controller memegang peranan penting sebagai penghubung antara request yang diterima oleh aplikasi dengan response yang harus dikembalikan. Dalam konteks ini, memahami Controller Dasar menjadi langkah penting setelah sebelumnya mempelajari tentang routing dasar.
Artikel berikut akan membahas apa itu controller, cara membuat controller, fungsi-fungsi dasarnya, serta contoh kode sederhana agar kamu semakin memahami cara kerjanya.
Apa Itu Controller dalam Laravel?
Controller adalah komponen dalam Laravel yang mengatur logika aplikasi. Ketika pengguna mengakses sebuah URL, Laravel menggunakan routing untuk menentukan controller mana yang bertanggung jawab memproses permintaan tersebut.
Dengan adanya controller, kode menjadi lebih bersih dan terorganisir karena pemisahan jelas antara:
- Routing
- Logika/Proses bisnis
- Tampilan (View)
Konsep ini mengikuti pola MVC (Model-View-Controller) yang merupakan standar arsitektur dalam Laravel.
Manfaat Menggunakan Controller
Beberapa alasan kenapa controller penting dalam aplikasi Laravel:
✔ Memisahkan Logika dari Routing
Routing sebaiknya hanya mengarahkan permintaan, sedangkan controller menangani prosesnya.
✔ Kerapihan Kode
Controller dapat dibuat berdasarkan fitur tertentu, sehingga struktur aplikasi mudah dipahami.
✔ Mendukung Dependency Injection
Controller dapat memanfaatkan fitur seperti middleware, model binding, dan service container.
Membuat Controller Dasar dengan Artisan
Laravel menyediakan command artisan untuk membuat controller secara otomatis. Format umumnya adalah:
php artisan make:controller NamaController
Contoh: membuat controller HomeController:
php artisan make:controller HomeController
Setelah perintah di atas dijalankan, file akan dibuat pada direktori:
app/Http/Controllers/HomeController.php
Struktur Dasar Controller
Berikut contoh struktur controller yang baru dibuat:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HomeController extends Controller
{
//
}
Controller ini masih kosong dan siap untuk ditambahkan method sesuai kebutuhan.
Menambahkan Method dalam Controller
Controller biasanya berisi method yang merepresentasikan aksi tertentu. Contoh:
public function index()
{
return "Ini adalah halaman beranda dari HomeController";
}
Jika dimasukkan ke dalam controller lengkapnya:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class HomeController extends Controller
{
public function index()
{
return "Ini halaman beranda";
}
public function about()
{
return "Ini halaman tentang";
}
}
Menghubungkan Controller dengan Routing
Untuk memanggil method dalam controller, routing perlu diarahkan. Bukalah file:
routes/web.php
Tambahkan kode routing berikut:
use AppHttpControllersHomeController;
Route::get('/', [HomeController::class, 'index']);
Route::get('/about', [HomeController::class, 'about']);
Ketika pengguna mengakses:
http://localhost:8000/→ menjalankan methodindex()http://localhost:8000/about→ menjalankan methodabout()
Controller Mengembalikan View
Controller juga sering mengembalikan tampilan (blade view):
Controller
public function contact()
{
return view('contact');
}
Routing
Route::get('/contact', [HomeController::class, 'contact']);
View
Buat file:
resources/views/contact.blade.php
Isi sederhana:
<h1>Halaman Kontak</h1> <p>Selamat datang di halaman kontak.</p>
Resource Controller (Opsional untuk CRUD)
Laravel juga menyediakan pola controller CRUD otomatis dengan perintah:
php artisan make:controller PostController --resource
Controller ini akan berisi method standar seperti:
index()create()store()show()edit()update()destroy()
Cocok untuk fitur CRUD database.
Best Practice Penggunaan Controller Dasar
Agar struktur controller tetap rapi, berikut beberapa best practice:
✔ Pisahkan Controller Berdasarkan Fitur
Misal: UserController, ProductController, OrderController
✔ Gunakan Dependency Injection
Untuk memanfaatkan model dan request form.
✔ Jangan Menulis Logika Bisnis Terlalu Berat
Jika logika berat, pindahkan ke service atau model.
Kesimpulan
Memahami Controller Dasar adalah bagian penting dari workflow Laravel karena controller menjadi pusat dari alur data antara route, model, dan view. Dengan routing yang sudah kamu pelajari sebelumnya, kini kamu bisa memproses permintaan pengguna dengan lebih fleksibel.
Dengan struktur yang rapi, pengembangan aplikasi menjadi lebih mudah, scalable, dan efisien.
Setelah ini kamu sudah siap masuk ke materi berikutnya: View Blade