Chapter 4: Controller Laravel untuk Pemula

Chapter 4: Controller Laravel untuk Pemula

By code.santuy 📅 Sabtu, 19 Juli 2025

Controller adalah salah satu komponen penting dalam arsitektur MVC (Model-View-Controller) Laravel. Di chapter ini, kita akan membahas secara detail tentang Controller dan bagaimana cara menggunakannya dengan efektif.

Apa itu Controller?

Controller berperan sebagai jembatan antara request dari user dan logika aplikasi kamu. Dengan menggunakan controller, kamu bisa:

  • Memisahkan logika bisnis dari route
  • Membuat kode lebih terorganisir dan mudah di-maintain
  • Menerapkan prinsip Single Responsibility dalam kode kamu

Membuat Controller dengan Artisan

Laravel menyediakan command line tool Artisan untuk membuat controller:

php artisan make:controller UserController

Untuk membuat Resource Controller (dengan method CRUD bawaan):

php artisan make:controller ProductController --resource

Resource Controller dan Method Bawaannya

Resource Controller datang dengan method-method bawaan yang mengikuti konvensi RESTful:

  • index() - Menampilkan daftar resource
  • create() - Menampilkan form untuk membuat resource baru
  • store() - Menyimpan resource baru ke database
  • show() - Menampilkan detail resource tertentu
  • edit() - Menampilkan form untuk edit resource
  • update() - Mengupdate resource di database
  • destroy() - Menghapus resource dari database

Hubungan Controller dengan Model dan View

Controller bekerja sama dengan Model dan View untuk menghasilkan aplikasi yang terstruktur:

  1. Model: Controller menggunakan Model untuk berinteraksi dengan database
  2. View: Controller merender View untuk menampilkan data ke user
  3. Request: Controller memproses request dan input dari user

Contoh implementasi sederhana:

class UserController extends Controller
{
    public function show($id)
    {
        // Ambil data dari Model
        $user = User::find($id);
        
        // Render View dengan data
        return view('users.show', ['user' => $user]);
    }
}

Menangani Request & Response

Controller Laravel menyediakan berbagai cara untuk menangani request dan response:

Request Handling

public function store(Request $request)
{
    // Validasi input
    $validated = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email|unique:users'
    ]);
    
    // Proses data
    User::create($validated);
    
    // Redirect dengan pesan sukses
    return redirect()->route('users.index')
        ->with('success', 'User berhasil dibuat!');
}

Response Types

// Return view
return view('users.index', ['users' => $users]);

// Return JSON
return response()->json(['message' => 'Success']);

// Return file download
return response()->download($pathToFile);

// Return redirect
return redirect()->route('home');

Tips Best Practices

  1. Gunakan Resource Controller untuk operasi CRUD standar
  2. Validasi Input selalu di level Controller
  3. Jangan Terlalu Gemuk - pindahkan logika bisnis ke Service Layer jika sudah kompleks
  4. Gunakan Dependency Injection untuk kode yang lebih testable
  5. Dokumentasikan Method dengan PHPDoc untuk memudahkan tim

Kesimpulan

Controller adalah komponen krusial dalam aplikasi Laravel yang membantu kamu mengorganisir kode dengan lebih baik. Dengan memahami dan mengimplementasikan controller dengan benar, kamu bisa membuat aplikasi yang lebih maintainable dan scalable.

Langkah Selanjutnya

  • Pelajari tentang Form Request untuk validasi yang lebih advanced
  • Eksplorasi Service Layer untuk logika bisnis yang kompleks
  • Implementasikan Resource Controller dalam project nyata

Jangan lupa follow @code.santuy untuk update tutorial Laravel lainnya! 🚀

#Laravel #PHP #WebDevelopment #Programming #BackEnd

e.hary

© 2025 ehary | Temui aku di TikTok: @code.santuy

GitHub TikTok Instagram