Press ESC to close

Controller di Laravel: Menangani Logika Project

WhatsAppTelegramFacebookXThreadsCopy Link

Pernahkah Anda merasa kebingungan saat menulis kode di Laravel karena logika program bercampur dengan tampilan (view)? Atau mungkin Anda baru memulai belajar Laravel dan belum memahami apa fungsi Controller sebenarnya? Tenang—Anda tidak sendirian. Banyak pemula menghadapi masalah yang sama: kode jadi tidak teratur, sulit dibaca, dan susah dikelola.

Nah, di sinilah peran Controller di Laravel menjadi sangat penting. Controller membantu Anda memisahkan logika bisnis dari tampilan, sehingga aplikasi menjadi lebih rapi, terstruktur, dan mudah dikembangkan.

Dalam artikel ini, Anda akan mempelajari:

  • Apa itu Controller di Laravel dan mengapa sangat penting,
  • Cara membuat dan menggunakan Controller dengan benar,
  • Contoh praktis penerapan Controller dalam sebuah project,
  • Tips agar struktur kode tetap efisien dan mudah dikelola.

Yuk, kita mulai memahami fondasi penting dari aplikasi Laravel yang profesional!


1. Apa Itu Controller di Laravel?

Secara sederhana, Controller adalah tempat Anda meletakkan logika aplikasi—segala sesuatu yang mengatur alur kerja antara model (data) dan view (tampilan).

Laravel menggunakan pola MVC (Model-View-Controller):

  • Model → menangani data dan interaksi dengan database,
  • View → menampilkan data ke pengguna,
  • Controller → mengatur logika, memproses permintaan, dan mengembalikan respons.

Dengan kata lain, Controller adalah jembatan antara pengguna dan sistem Anda.


2. Cara Membuat Controller di Laravel

Laravel sudah menyediakan perintah bawaan untuk membuat Controller melalui Artisan CLI.

Buka terminal Anda dan jalankan perintah berikut:

php artisan make:controller NamaController

Contoh:

php artisan make:controller ProdukController

Perintah ini akan membuat file baru di folder:

app/Http/Controllers/ProdukController.php

3. Struktur Dasar Controller

Berikut contoh sederhana isi Controller:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ProdukController extends Controller
{
    public function index()
    {
        return view('produk.index');
    }
}

Penjelasan:

  • namespace → menunjukkan lokasi file di dalam proyek,
  • class ProdukController → mendefinisikan kelas Controller,
  • index() → metode (fungsi) yang dipanggil saat route tertentu dijalankan.

Biasanya, metode index() digunakan untuk menampilkan daftar data, sedangkan metode lain seperti store(), update(), dan destroy() digunakan untuk operasi CRUD.


4. Menghubungkan Controller dengan Route

Agar Controller bisa dijalankan, Anda harus menghubungkannya ke route.
Buka file routes/web.php, lalu tambahkan:

use App\Http\Controllers\ProdukController;

Route::get('/produk', [ProdukController::class, 'index']);

Kode di atas berarti:

Saat pengguna membuka /produk, Laravel akan menjalankan metode index() dari ProdukController.


5. Menangani Logika di Dalam Controller

Anda bisa menambahkan logika seperti mengambil data dari model dan mengirimkannya ke view.

Contoh:

public function index()
{
    $produk = [
        ['nama' => 'Laptop', 'harga' => 7000000],
        ['nama' => 'Mouse', 'harga' => 150000],
        ['nama' => 'Monitor', 'harga' => 2000000]
    ];

    return view('produk.index', compact('produk'));
}

Di view produk/index.blade.php, Anda bisa menampilkan datanya:

@foreach($produk as $item)
    <p>{{ $item['nama'] }} - Rp{{ number_format($item['harga']) }}</p>
@endforeach

Dengan pola seperti ini, logika dan tampilan terpisah dengan jelas—lebih bersih dan mudah dikelola.


6. Tips Menulis Controller yang Efisien

Agar proyek Laravel Anda tetap rapi dan mudah dikembangkan:

  • Gunakan Controller Resource jika menangani operasi CRUD penuh.
    Jalankan: php artisan make:controller ProdukController --resource Laravel otomatis membuat metode seperti index, create, store, edit, update, dan destroy.
  • Jangan tulis logika terlalu panjang di Controller.
    Pindahkan ke Service Class jika mulai kompleks.
  • Gunakan Request Validation.
    Validasi data di Controller menggunakan Request agar lebih aman dan terstruktur.

Sekarang Anda sudah memahami bahwa Controller di Laravel adalah pusat pengatur logika aplikasi. Dengan memisahkan logika dari tampilan, Anda akan mendapatkan kode yang lebih bersih, mudah dikelola, dan siap dikembangkan ke tahap selanjutnya.

Ingin melangkah lebih jauh?
Baca juga: [Validasi Form di Laravel (Lanjutan)]

WhatsAppTelegramFacebookXThreadsCopy Link