Routing dan Controller Pada CodeIgniter

Routing merupakan rute atau url yang bisa diakses oleh pengguna melalui browser. contohnya

http://web.com/route

Controller berisi class dan function yang bisa di akses layaknya url routing. Controller terdiri dari class dan function. contohnya

http://web.com/class/function

Lalu apa itu “Controller redirect to new url with routing” ? konsep ini merupakan pengalihan rute atau tujuan url pada controller dengan routing url baru. contohnya seperti berikut :

https://web.com/classlogin/functionlogin

akan diarahkan dengan routing menuju rute baru. contohnya

https://web.com/classlogin

Routing Url

Kita akan bahas routing url terlebih dahulu. pada dasarnya struktur code routing dalam codeigniter seperti berikut :

$route['to'] = 'from';

Langsung Saja kita praktekan di codeigniter. buka codeigniter dengan text editor lalu pilih file routes.php. filenya ada di :

/application/config/route.php

Kita coba buat route baru dengan nama "helo" dengan class defaut yaitu "welcome". tambahkan kode berikut pada route.php paling bawah

$route['hello'] = 'welcome';

Kode lengkapnya :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['hello'] = 'welcome';

Maka ketika kita mengakses url :

http://localhost/my-ci/index.php/hello

Tampilan default codeigniter akan tampil pada url tersebut. perhatikan gambar dibawah

img

Controller

Buka folder controller pada text editor. yaitu

/application/controllers

Buat sebuah controller baru dengan nama Helloworld.php. penamaan nama controller diawali dengan huruf besar, jangan gunakan tanda strip dan karakter khusus.

Isi controller tersebut dengan kode dibawah ini.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Helloworld extends CI_Controller {

	public function index()
	{
	echo "<h1>Hello world</h1>";
	}
}
?>

lalu akses controller tersebut melalui url contohnya

http://localhost/my-ci/index.php/helloworld

Lihat gambar dibawah :

img

kita tambahkan function baru yaitu nama. contohnya

public function nama()
{
echo "<h1>Nama Saya Rizky</h1>";
}

Kode lengkapnya seperti ini

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Helloworld extends CI_Controller {

	public function index()
	{
	echo "<h1>Hello world</h1>";
	}
  public function nama()
	{
	echo "<h1>Nama Saya Rizky</h1>";
	}
}

Lalu akses url dengan menambahkan nama di belakang class helloworld tadi.

http://localhost/my-ci/index.php/helloworld/nama

Lihat gambar dibawah agar lebih jelas

img

Kita akan coba arahkan dari :

http://localhost/my-ci/index.php/helloworld/nama

menjadi :

http://localhost/my-ci/index.php/namagua

Caranya tambahkan route baru di routes.php

$route['namagua'] = 'Helloworld/nama';

kode lengkapnya

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['hello'] = 'welcome';
$route['namagua'] = 'Helloworld/nama';

?>

Hasilnya akan seperti ini

img

Selanjutnya anda perlu belajar view agar bisa menggabungkan controller dengan view.