10 Jul 2026
#Part 2: Belajar Routing, Controller, dan View di CodeIgniter 4 + Studi Kasus
#Part 2: Belajar Routing, Controller, dan View di CodeIgniter 4 + Studi Kasus
Di #Part 1 kita sudah install CI4. Sekarang pertanyaan terbesar pemula: "Terus ngodingnya mulai dari mana?". Jawabannya ada di 3 pilar utama CI4: Routing, Controller, dan View. Ini adalah konsep MVC yang wajib kamu kuasai sebelum masuk ke database.
Di tutorial ini kita akan bikin mini project "Website Blog Sederhana" biar konsepnya langsung nyantol.
1. Memahami Konsep MVC di CodeIgniter 4
MVC = Model View Controller. Ini pola wajib di framework modern.
| Komponen | Tugas | Lokasi File |
|---|---|---|
| Model | Berurusan dengan Database. Ambil data, simpan data | app/Models/ |
| View | Berurusan dengan Tampilan. HTML, CSS | app/Views/ |
| Controller | Otaknya. Menerima request, memanggil Model, mengirim ke View | app/Controllers/ |
Alurnya: User buka URL -> Routing -> Controller -> Model ambil data -> Controller kirim ke View -> Tampil di Browser
2. Membuat Controller Pertama: BlogController
Controller itu ibarat pelayan restoran. Dia nerima pesanan dari tamu.
Langkah: Buat file baru app/Controllers/Blog.php
"Daftar Artikel Terbaru",
"artikel" => ["Belajar CI4", "Tutorial PHP", "Tips SEO"]
];
return view("blog/index", $data);
}
public function detail($slug)
{
$data["title"] = "Detail Artikel: " . $slug;
return view("blog/detail", $data);
}
public function about()
{
echo "Ini halaman About Us";
}
}
Penjelasan: index() buat halaman utama. detail($slug) buat halaman detail dengan parameter. about() halaman statis.
3. Mengatur Routing: Jembatan URL ke Controller
Secara default CI4 cuma bisa /Blog/index. Biar cantik kita atur di app/Config/Routes.php
3 Jenis Routing yang Wajib Diketahui
- Auto Routing: Default.
/blog/aboutotomatis lari keBlog::about() - Defined Routes: Paling aman. Kita definisikan manual.
$routes->get("/blog", "Blog::index");$routes->get("/blog/(:segment)", "Blog::detail/$1");(:segment)artinya bisa isi huruf/angka. Cocok buat slug. - Route Group: Buat mengelompokkan. Misal semua admin:
$routes->group("admin", function($routes){ $routes->get("dashboard", "Admin::index"); });Hasilnya: /admin/dashboard
4. Membuat View dan Mengirim Data
View tugasnya menampilkan data. Buat folder app/Views/blog/
File: app/Views/blog/index.php
Data dari Controller dikirim lewat array $data. Di View dipanggil dengan
5. Best Practice: Menggunakan Layout / Template
Biar header dan footer tidak diulang, kita buat layout. Buat app/Views/layout/template.php
renderSection("content") ?>
Lalu di View index.php tambahkan di atas: extend("layout/template") ?> dan bungkus isi dengan section("content") ?>
6. Error Umum Saat Routing
- 404 Not Found: Cek nama Controller, method, dan Routes.php. Huruf besar kecil ngaruh di Linux
- Class not found: Lupa
namespace AppControllers;di atas - Undefined variable: Lupa kirim variabel dari Controller ke View
Kesimpulan
Selamat! Kamu sudah paham inti dari CI4. Routing, Controller, View adalah fondasi. Setelah ini kita baru main dengan Database. Di #Part 3: Tutorial CRUD Lengkap CI4 + Bootstrap 5 kita akan menggabungkan semua ini dengan Model untuk mengambil data dari database.
FAQ
Apakah Auto Routing aman?
Untuk development boleh. Tapi untuk production disarankan pakai Defined Routes biar lebih aman.
Perbedaan View dan Template?
View = 1 halaman. Template/Layout = kerangka yang dipakai banyak View.
Bisa 1 Controller punya banyak method?
Sangat bisa. 1 Controller untuk 1 fitur. Contoh: BlogController isi index, detail, create, store.
Males Ngoding Sendiri?
Tim Culobo siap buatin website, ajarin coding, atau naikin SEO web kamu.
Lihat 3 Layanan Kami