Monday, 17 November 2025

Tutorial Routing di CodeIgniter 4 Basic hingga Advanced

 

Routing merupakan salah satu bagian terpenting dalam pengembangan aplikasi web menggunakan CodeIgniter 4. Dengan routing, kita dapat menentukan bagaimana sebuah URL dipetakan ke controller atau aksi tertentu. Tanpa routing yang tepat, aplikasi bisa menjadi tidak terstruktur, sulit dipelihara, dan rawan error. Pada artikel ini, kita akan membahas routing di CodeIgniter 4 mulai dari konsep dasar hingga penggunaan tingkat lanjut.

Apa Itu Routing di CodeIgniter 4? 

Routing adalah proses yang menghubungkan permintaan (request) dari user ke fungsi atau controller yang sesuai. Misalnya, ketika pengguna membuka URL example.com/home, maka router akan meneruskan permintaan itu ke controller Home dan menjalankan function index().

CodeIgniter 4 menggunakan file app/Config/Routes.php sebagai tempat utama untuk mendefinisikan semua route.

1. Routing Dasar (Basic Routing) 

    a. Route ke Controller

Contoh sederhana routing di CodeIgniter 4:


$routes->get('/', 'Home::index');

Kode tersebut berarti ketika pengguna mengakses URL root /, maka controller Home dengan method index() akan dijalankan.

    b. Route dengan Parameter

Kita juga dapat menangkap parameter dari URL:


$routes->get('blog/(:any)','Blog::detail/$1');

Penjelasan:

  • (:any) menangkap segalanya (string bebas) 
  • $1 merujuk ke parameter pertama

Contoh penggunaan:
example.com/blog/tutorial-codeigniter → diarahkan ke Blog::detail("tutorial-codeigniter") 

    c. Routing POST 

Untuk request POST:


$routes->post('user/login', 'User::login');

Ini berguna untuk form login, upload, atau proses lainnya.

2. Routing dengan Jenis Segment

CodeIgniter 4 menyediakan beberapa jenis wildcard:

 

Wildcard Fungsi
(:any) Menerima semua karakter
(:segment) Menerima segment URL tanpa slash
(:num) Hanya angka
(:alpha) Hanya huruf
(:alphanum) Huruf dan angka

Contoh:


$routes->get('product/(:num)', 'Product::detail/$1');

URL: /product/12 → OK
URL: /product/abc → Tidak cocok  

3. Routing ke Closure (Tanpa Controller)

Routing juga bisa langsung mengeksekusi function:


$routes->get('hello', function() {
	return "Hello World!"
});

Ini berguna untuk testing atau endpoint sederhana.

4. Route Grouping (Pengelompokan Route)

Untuk aplikasi besar, grouping sangat membantu menjaga kerapian. Contoh grouping:


$routes->group('admin', function($routes) {
	$routes->get('dashboard', 'Admin\Dashboard::index');
    $routes->get('users', 'Admin\Users::index');
})

Hasil URL:

  • /admin/dashboard
  • /admin/users  

Dengan grouping, struktur menjadi lebih rapi dan mudah dikelola.

5. Routing dengan Filter

Filter digunakan untuk validasi sebelum sebuah route dieksekusi, seperti autentikasi. Contoh:


$routes->group('admin', ['filter' => 'auth'], function($routes){
	$routes->get('panel', 'Admin\Panel::index');
});

Artinya: Semua route dalam grup admin harus melewati filter auth terlebih dahulu. ini sangat berguna untuk membuat sistem login. 

6. Auto Routing (Legacy & Improved)

CodeIgniter 4 menyediakan auto routing, tetapi penggunaannya harus hati-hati.

    a. Auto Routing Improved (Direkomendasikan)  

Aktifkan di App/Config/Feature.php


public bool $autoRoutesImproved = true;

Dengan fitur ini, URL otomatis mencocokkan controller tanpa deklarasi route.

    b. Auto Routing Legacy (Tidak Disarankan) 

egacy auto routing rawan celah keamanan dan beberapa fungsi tidak terkunci dengan baik.

7. Routing REST API

Membuat route untuk API sangat mudah:


$routes->resource('users');

Ini otomatis membuat route berikut:

  • GET /users
  • POST /users
  • GET /users/(:num)
  • PUT /users/(:num)
  • DELETE /users/(:num)

Fitur ini sangat membantu dalam pembuatan REST API secara cepat.

Kesimpulan

Routing di CodeIgniter 4 menawarkan fleksibilitas tinggi dan kemudahan dalam pengaturan arus navigasi aplikasi. Mulai dari routing dasar ke controller, penggunaan parameter, grouping, filter, hingga REST API, semuanya dirancang untuk memudahkan developer dalam membangun aplikasi yang cepat, aman, dan terstruktur.

Dengan memahami routing secara menyeluruh, proses pengembangan aplikasi akan menjadi lebih efisien dan mudah dipelihara. Jika kamu sedang membangun aplikasi berskala besar, penggunaan grouping dan filter sangat disarankan untuk menjaga kerapian dan keamanan struktur aplikasi. Hal lain yang perlu diperhatikan adalah penggunaan auto routing improved sebagai pengganti legacy demi keamanan aplikasi.  

untuk melihat artikel lain tentang Codeigniter 4 atau 3 bisa dilihat Disini

No comments:

Post a Comment