Pluginify

Masuk Daftar
Home > Blog > Laravel > Controller Dasar di Laravel: Panduan Lengkap untuk Pemula

Controller Dasar di Laravel: Panduan Lengkap untuk Pemula

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 method index()
  • http://localhost:8000/about → menjalankan method about()

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

Pluginify
Pluginify