Hai, Sob! Setelah memahami bagaimana cara kerja Routing dan View di CodeIgniter 4 pada artikel sebelumnya, kini saatnya kamu melangkah ke tahap berikutnya menampilkan View secara dinamis melalui Controller.
Dalam arsitektur MVC (Model-View-Controller), Controller berperan penting sebagai pengatur logika aplikasi yang akan mengarahkan ke View yang sesuai. Dengan menggunakan Controller, kamu bisa mengelola tampilan secara lebih fleksibel dan dinamis, misalnya untuk menampilkan halaman berdasarkan kondisi, menerima input, atau mengambil data dari database.
Apa Tugas Utama Controller?
Misalnya, jka kamu mengakses URL http://domain.com/index.php/blog, maka CodeIgniter akan mencari controller bernama Blog. Lalu, controller Blog akan meng-handle request kamu, artinya controller menerima HTTP request > memprosesnya sesuai logika aplikasi > mengirim HTTP response. Jadi, tugas Controller adalah mengatur alur request dan responsen dari pengguna terhadap sistem.
Tetapi, ada juga yang memberi tugas Controller untuk menentukan logika bisnis. Ini tidak dikatakan salah, menulis semua logika bisnis di dalam Controller akan membuat kode menjadi kurang rapi dan sulit ketika akan melakukan testing. Karena itu ada yang menyarankan sebaiknya menulis logika bisnis di dalam model atau membuat layer tersendiri seperti pada repository/service pattern.
Aturan Membuat Controller
- File Controller harus dibuat di dalam app/Controllers/ dan penulisannya harus diawali huruf besar. Kalau terdiri dari 2 suku kata bisa menerapkan CamelCase atau dipisah menggunakan _ (underscore).
Contoh yang benar: Blog.php, CategoryProduct.php
Contoh yang salah: blog.php, categoryproduct.php
- Nama class: Harus sama dengan nama file, huruf awal kapital.
Contoh:
Bukan seperti ini:
- Method (fungsi): Gunakan huruf kecil, misalnya index(), show_profile().
- Supaya lebih terstruktur, bisa membuat sub folder di dalam folder app/Controllers untuk mengelompokan Controller.
Controllers/
├── admin/
│ ├──── Dashboard.php
│ ├──── Product.php
│ ├──── Report.php
│ └──── Setting.php
├── member/
│ ├──── Profile.php
│ ├──── Report.php
│ └──── Setting.php
Apa itu View Dinamis?
View dinamis artinya tampilan (view) yang bisa berubah sesuai data yang dikirim oleh controller. Misalnya, kamu ingin halaman menampilkan artikel terbaru atau profil pengguna, maka data seperti judul artikel atau nama pengguna dikirim dari controller ke view menggunakan array.
Membuat Controller dengan View Dinamis
Kali ini akan menampilkan view dinamis menggunakan controller dengan struktur folder seperti di bawah ini.
app/
├── Controllers/
│ ├── Article.php
│ └── Website/
│ └── Profile.php
├── Views/
│ ├── view_article.php
│ └── view_profile.php
STEP 1: Membuat controller bernama Article.php di dalam folder app/Controller/
'Artikel Terbaru',
'isi' => 'Ini adalah halaman artikel.'
];
return view('view_article', $data);
}
}
STEP 2: Selanjutnya, di dalam folder app/Controllers/ buat folder baru bernama Website lalu tambahkan controller Profile.php
'Sobat Jagoan Hosting',
'bio' => 'Belajar CodeIgniter 4.'
];
return view('view_profile', $data);
}
}
STEP 3: Kemudian, buat view bernama view_article.php adan view_profile.php di dalam folder app/Views/
<!DOCTYPE html>
<html>
<head>
<title><?= esc($judul) ?></title>
</head>
<body>
<h1><?= esc($judul) ?></h1>
<p><?= esc($isi) ?></p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Profil</title>
</head>
<body>
<h1>Profil Saya</h1>
<p><strong>Nama:</strong> <?= esc($nama) ?></p>
<p><strong>Bio:</strong> <?= esc($bio) ?></p>
</body>
</html>
STEP 4: Lalu, tambahkan routing di app/Config/Routes.php
// Controller langsung di root Controllers/
$routes->get('article', 'Article::index');
// Controller di subfolder Website
$routes->get('profile', 'Website\Profile::index');
STEP 5: Jalankan server CodeIgniter lalu akses URL http://localhost:8080/article untuk melihat view artikel dan http://localhost:8080/profile untuk menampilkan view profil.

Setelah mempraktikkan ini kamu akan memahami bagaimana membuat View menggunakan Controller, membuat Controller di root dan di subfolder, mengatur routing sesuai namepace controller, dan mengirim data dari controller ke view secara dinamis.
Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting, Sob!
Hai, Sobat Jagoan! Softaculous adalah fitur auto-installer yang biasanya tersedia di cPanel dan digunakan untuk memasang berbagai aplikasi web secara Read more
Hai, Sobat Jagoan! Saat kamu mengembangkan proyek CodeIgniter, menggunakan Composer adalah langkah terbaik. Selain mendapatkan versi resmi terbaru, kamu juga Read more
Halo, Sobat! Remote repository adalah tempat penyimpanan proyek kamu di server Git yang bisa diakses dari mana saja melalui internet. Read more
Hai, Sobat Jagoan! Sebelum nyemplung lebih jauh dengan CodeIgniter versi 4, kamu perlu mengenal dan memahami konsep dasar CodeIgniter 4 Read more