#Part 2: Belajar Routing, Controller, dan View di CodeIgniter 4 + Studi Kasus 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

  1. Auto Routing: Default. /blog/about otomatis lari ke Blog::about()
  2. 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.
  3. 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") ?>
Copyright 2026

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
💬

Belum ada diskusi

Jadilah yang pertama bertanya tentang artikel ini

Ada Pertanyaan? Konsultasi Gratis

Tim Culobo jawab dalam 24 jam. Mau belajar coding, bikin website, atau naikin SEO.

*Kami balas maksimal 1x24 jam di hari kerja