Controller berfungsi sebagai penghubung antara komponen-komponen yang dibutuhkan untuk memproses HTTP request dan menghasilkan halaman web. Terkait dengan fungsinya tersebut, maka controller akan berhubungan langsung dengan URI. Perhatikan contoh URI berikut ini:
http://localhost/index.php/test/
Pada contoh di atas, CodeIgniter akan mencoba mencari controller yang bernama test.php dan kemudian mengeksekusi file controller tersebut. Untuk membuktikannya, mari kita buat file test.php. File test.php dapat dibuat dengan menggunakan aplikasi text editor seperti Notepad, Notepad++, Wordpad, EditPlus,Macromedia Dremweaver, dsb. Di dalam text editor yang kita gunakan, tuliskan kode berikut:
class Test extends Controller {
function index()
{
echo 'Hello World!';
}
}
?>
Save kode di atas ke dalam folder application/controllers. Sekarang coba masuk ke alamat http://localhost/index.php/test/ Maka di browser akan muncul tampilan sebagai berikut:
Perlu selalu diingat bahwa nama dari setiap class controller yang kita buat harus diawali dengan huruf kapital. Setiap class yang kita buat juga harus extends Controller supaya mewarisi fungsi-fungsi class controller dan dikenali sebagai controller. File controller yang kita buat harus disimpan dengan format .php dimana nama file harus sama dengan nama class tetapi nama file harus dimulai dengan huruf kecil. Seperti pada contoh di atas, nama class adalah Test dimana class ini extends Controller dan disimpan dengan nama test.php.
Setiap controller minimal terdiri dari satu fungsi. Pada controller Test yang baru saja kita buat, fungsi yang kita buat adalah fungsi index(). Fungsi index() merupakan fungsi yang secara default akan dipanggil apabila argumen kedua pada URL kosong. Jadi ketika kita mengakses alamat http://localhost/index.php/test maka sebenarnya kita sedang mengakses fungsi index() pada controller test. Hasil yang sama akan didapatkan apabila kita mengakes alamat http://localhost/index.php/test/index .
Mari kita coba buat satu fungsi yang lain untuk lebih memperjelas pemahaman kita mengenai controller. Fungsi ini kita namakan 'welcome'. Berikut kode dari fungsi tersebut:
class Test extends Controller {
function index()
{
echo 'Hello World!';
}
function welcome()
{
echo 'Selamat anda telah membuat fungsi!';
}
}
?>
Ketikkan alamat berikut di URL: http://localhost/index.php/test/welcome. Tampilan di browser adalah sebagai berikut:
Jika segmen URL lebih dari dua segmen, maka segmen ke-2 dan seterusnya akan diperlakukan sebagai parameter untuk fungsi. Perhatikan contoh berikut ini:
class Test extends Controller {
function anggota($nama, $id)
{
echo "Nama anggota adalah:" .$nama;
echo "";
echo "Nomor anggota adalah:" .$id;
}
}
?>
Ketikkan alamat berikut di URL: http://localhost/index.php/test/anggota/eddy/2. Tampilan di browser adalah sebagai berikut:
Di dalam suatu aplikasi web, tentunya bisa terdapat banyak controller. Di dalam CodeIgniter, kita harus menentukan controller mana yang secara default akan dipanggil ketika nama dari website kita dipanggil. Untuk menentukan controller default dari aplikasi kita, buka file routes.php yang ada pada folder application/config. Misalkan kita ingin supaya controller Test menjadi controller default. Maka ganti controller default dengan nama Test seperti berikut ini:
$route['default_controller'] = 'Test';
Apabila kita menginstall CodeIgniter, biasanya di dalam paket CodeIgniter terdapat Controller bawaan dengan nama 'welcome'. Controller ini menjadi controller default dari CodeIgniter dan berfungsi untuk menampilkan halaman selamat datang di CodeIgniter. Kita bisa menghapus controller ini dan kemudian mengganti controller default dengan controller apapun yang kita inginkan.
No comments:
Post a Comment