Controller adalah dokumentasi framework yang berkaitan dengan request data, pengarahan akses, dan koneksi. Controller menghubungkan pengguna dengan sistem dan menyediakan masukan-keluran bagi pengguna secara relevan.

1. User Guide CodeIgniter Menjelaskan
Semua request haruslah melalui index.php, yang didefinisikan dengan BASEPATH. Hal tersebut berguna untuk mencegah akses langsung terhadap model, library, atau apapun itu berkaitan dengan keamanan.
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Keterangan:
- Fungsi defined() adalah definisi fungsi untuk memeriksa apakah ada constant
- BASEPATH adalah salah satu nama constant punya codeigniter yang didefinisikan.
- exit() adalah fungsi untuk mencetak string dan mengakhiri eksekusi script.
2. Membuat Controller
Silakan buat file php dengan nama "Pertama" lalu simpan ke direktori Controller CodeIgniter. Berikut isi dari file Pertama.php:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Pertama extends CI_Controller{
public function index()
{
echo "Bersama GATEWAN Belajar CodeIgniter Sampai Mahir";
}
}
3. Bagaimana cara mengakses Controller?
Seperti yang telah dijelaskan sebelumnya, kita harus melalui index.php terlebih dahulu, maka akses URL untuk local PC saya seperti ini, silakan disesuaikan dengan local PC masing-masing.
http://localhost/CodeIgniter-3.1.0/index.php/pertama

Tampilan Controller Pertama.php
4. Apa yang dimaksud URI & segment ?
URI adalah singkatan dari Uniform Resource Identifier, memungkinkan kita mengambil data melalui URL CodeIgniter. URI Segment CodeIgniter berada setelah index.php dan terdiri dari beberapa segement seperti:
- Segment 1 = nama file controller atau nama classnya
- Segment 2 = nama method atau fungsi pada class / controller tersebut
- Segment 3 = bisa berupa id atau parameter.
Contoh URI Segement:
http://localhost/CodeIgniter-3.1.0/index.php/segment1/segment2/segment3
atau
http://localhost/CodeIgniter-3.1.0/index.php/controller/method/id
Agar bisa memperjelas gambaran tentang URI Segment, mari kita lanjutkan dengan menambahkan beberapa method pada controller Pertama.php.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Pertama extends CI_Controller{
public function index()
{
echo "Bersama GATEWAN Belajar CodeIgniter Sampai Mahir";
}
public function kedua($nama,$usia)
{
echo "Nama saya {$nama} usia {$usia} <br />";
}
}
5. Bagaimana cara mengakses URI Segment ?
Variabel $nama dan $usia bisa langsung Anda masukan pada segement di address bar, silakan isi dengan nama dan usia masing-masing, contoh:
http://localhost/CodeIgniter-3.1.0/index.php/Pertama/kedua/Wawan/21

Contoh Tampilan URI Segment
Keterangan:
- Dalam lingkaran merah = Link
- Pertama = File Controller
- Kedua = Fungsi / Method
- Wawan, 21 = Parameter Fungsi
- Pertama, Kedua, Wawan, 21 = Segements
6. Cara Identifikasi Segment CodeIgniter
Silakan modifikasi file controller Pertama.php, sehingga menjadi seperti ini:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Pertama extends CI_Controller{
public function index()
{
echo "Bersama GATEWAN Belajar CodeIgniter Sampai Mahir";
}
public function kedua($nama,$usia)
{
"Nama saya {$nama} usia {$usia} <br />";
//Identifikasi Segement CodeIgniter
$uri = '<ol>';
$uri.= '<li>'.$this->uri->segment(1).'</li>';
$uri.= '<li>'.$this->uri->segment(2).'</li>';
$uri.= '<li>'.$this->uri->segment(3).'</li>';
$uri.= '<li>'.$this->uri->segment(4).'</li>';
$uri.= '</ol>';
echo $uri;
}
}
Dengan memanfaatkan fungsi segment() CodeIgniter, maka kita bisa tahu mana sebagai segmen ke-1, ke-2, ke-3 dan seterusnya.

Identifikasi Segment CodeIgniter
7. Class Constructors
1. Buat file dengan nama My_string_helper.php dan simpan di folder helper:
<?php
/*
*bundet.com
*Wawan Beneran
*Library function tambahan yang sering digunakan (Create Helper)
*/
function duit($data)
{
return 'Rp.' .number_format($data,0,",",".").',-';
}
function TglIndo($tanggal)
{
list($thn,$bln,$tgl)=explode('-',$tanggal);
$tmp = $tgl."-".$bln."-".$thn;
return $tmp;
}
?>
2. Modifikasi file controller untuk mengakses helper yang telah Anda buat:
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
*bundet.com
*Wawan Beneran
*Mengenal konsep Controller untuk mengakses Helper
*/
class Pertama extends CI_Controller{
public $gapok;
public $tunjangan;
public function index()
{
echo "Bersama GATEWAN Belajar CodeIgniter Sampai Mahir";
}
public function kedua($nama,$usia)
{
"Nama saya {$nama} usia {$usia} <br />";
//Identifikasi Segement CodeIgniter
$uri = '<ol>';
$uri.= '<li>'.$this->uri->segment(1).'</li>';
$uri.= '<li>'.$this->uri->segment(2).'</li>';
$uri.= '<li>'.$this->uri->segment(3).'</li>';
$uri.= '<li>'.$this->uri->segment(4).'</li>';
$uri.= '</ol>';
echo $uri;
}
//2. Tambahkan function constructor dan panggil helper yang anda buat!
public function __cunstruct()
{
parent::__construct();
$this->load->helper("My_string_helper");
}
//3. Untuk mengetahui kegunaannya, tambahkan 2 method dibawah ini :
private function _gaji($jmlbulan)
{
return ($this->gapok=1000000 + $this->tunjangan=500000) * $jmlbulan;
}
public function tampilgaji($jmlbulan)
{
$this->load->helper("My_string_helper");
echo "Gaji selama {$jmlbulan} bulan : ".duit($this->_gaji($jmlbulan))."<br />";
echo "Telah dibayar pada tanggal : ".TglIndo(date('Y-m-d'));
}
}
?>
3. Jalankan file controller Pertama.php diikuti dengan class tampilgaji. Sebagaimana Anda mengakses URI Segement.
a. Percobaan untuk 10 bulan.
http://localhost/CodeIgniter-3.1.0/index.php/pertama/tampilgaji/10

Tampilan dengan segment ke-2 10 (untuk 10 bulan)
b. Percobaan untuk 30 bulan.
http://localhost/CodeIgniter-3.1.0/index.php/pertama/tampilgaji/30

Tampilan dengan segment ke-2 30 (untuk 30 bulan)
Referensi