Setelah memahami struktur folder dan file CodeIgniter, saatnya kita masuk ke jantung logika aplikasi: Controller.
Controller adalah penghubung antara request dari user, model (data), dan view (tampilan). Tanpa controller, aplikasi tidak tahu harus melakukan apa ketika pengguna mengakses URL tertentu.
Pada BAB ini, kita akan membahas:
- Pengertian controller
- Membuat controller pertama
- Method pada controller
- Routing dasar
- Mengirim data dari controller ke view
Contents
Tujuan Pembelajaran
Setelah menyelesaikan BAB 4, Anda akan mampu:
- Memahami fungsi controller dalam CodeIgniter
- Membuat controller pertama
- Membuat method dalam controller
- Mengatur routing dasar
- Mengirim data dari controller ke view
4.1 Pengertian Controller
Controller adalah “otak” aplikasi yang:
- Menerima request dari user
- Memproses logika aplikasi
- Memanggil model untuk mengambil data
- Mengirim data ke view untuk ditampilkan
Secara sederhana:
Browser → Controller → Model → Controller → View → Browser
📌 Catatan:
Controller tidak boleh memuat logika database atau tampilan secara langsung. Gunakan model dan view untuk memisahkan tugas (prinsip MVC).
4.2 Membuat Controller Pertama
4.2.1 CodeIgniter 3
Buat file baru:
application/controllers/Halo.php
Isi file:
<?php
class Halo extends CI_Controller {
public function index() {
echo "Halo, CodeIgniter 3!";
}
}
Akses di browser:
http://localhost/ci3/index.php/halo
4.2.2 CodeIgniter 4
Buat file baru:
app/Controllers/Halo.php
Isi file:
<?php
namespace App\Controllers;
class Halo extends BaseController {
public function index() {
return "Halo, CodeIgniter 4!";
}
}
Akses:
http://localhost/ci4/public/halo
📌 Catatan:
- Nama class harus sesuai nama file
BaseControllerberisi fungsi bawaan dan helper default
4.3 Method pada Controller
Method adalah fungsi di dalam controller yang menentukan aksi tertentu.
Contoh Method CI 3
class Halo extends CI_Controller {
public function index() {
echo "Ini halaman index";
}
public function tentang() {
echo "Ini halaman tentang";
}
}
Akses:
http://localhost/ci3/index.php/halo/index
http://localhost/ci3/index.php/halo/tentang
Contoh Method CI 4
class Halo extends BaseController {
public function index() {
return "Halaman index CI 4";
}
public function tentang() {
return "Halaman tentang CI 4";
}
}
📌 Tips:
- Method default biasanya
index() - Gunakan nama method deskriptif agar URL lebih mudah dimengerti
4.4 Routing Dasar
Routing adalah cara CodeIgniter menghubungkan URL dengan controller dan method.
4.4.1 Routing CI 3
Buka:
application/config/routes.php
Contoh routing:
$route['default_controller'] = 'halo';
$route['tentang'] = 'halo/tentang';
- URL
http://localhost/ci3→ otomatis menujuHalo::index - URL
http://localhost/ci3/tentang→ menujuHalo::tentang
4.4.2 Routing CI 4
Buka:
app/Config/Routes.php
Contoh routing:
$routes->get('/', 'Halo::index');
$routes->get('tentang', 'Halo::tentang');
📌 Catatan:
Routing membuat URL lebih SEO-friendly dan mudah diingat.
4.5 Mengirim Data dari Controller ke View
Seringkali kita perlu mengirim data ke view agar bisa ditampilkan di halaman web.
4.5.1 CI 3
Buat file view:
application/views/halo_view.php
Isi file:
<h1>Halo, <?= $nama; ?>!</h1>
Controller:
class Halo extends CI_Controller {
public function index() {
$data['nama'] = "CodeIgniter 3";
$this->load->view('halo_view', $data);
}
}
Akses:
http://localhost/ci3/index.php/halo
4.5.2 CI 4
Buat file view:
app/Views/halo_view.php
Isi file:
<h1>Halo, <?= $nama; ?>!</h1>
Controller:
class Halo extends BaseController {
public function index() {
$data['nama'] = "CodeIgniter 4";
return view('halo_view', $data);
}
}
Penutup
Controller adalah inti dari alur aplikasi. Dengan controller:
- Aplikasi bisa merespon URL tertentu
- Data bisa dikirim ke view dengan rapi
- Logika aplikasi tetap terstruktur
Pada BAB selanjutnya, kita akan membahas Model, agar controller bisa mengambil data dari database dengan aman dan efisien.