Controller Controller Controller. Sekali lagi saya mengawali tulisan dengan tiga kata. OK, no problemo. Tidak masalah. Yang penting, misi kita sekarang akan segera dimulai. Membuat program hello world dengan menggunakan Controller. Mengapa Controller? Koq malah nanya? Kan jelas, salah satu component dalam MVC itu Controller! Whong namanya saja Model View Controller (MVC). Kalau kemarin kita sudah membuat program hello world dengan view, hari ini kita akan mengupasnya dengan menggunakan Controller. Apakah kita akan membahasnya juga dengan menggunakan Model setelah kita membahasnya kemarin dengan menggunakan View? Sangat mungkin IYA, karena jalan menuju Roma itu banyak sekali. Dan salah satunya adalah lewat Controller.
By the way, ngomong-ngomong, Controller itu apa to? Kalo writer kan penulis, breaker itu perusak, striker itu penyerang, maka controller itu berarti pengontrol. Yup, yang menjadi pengontrol (pake R, lho) aplikasi yang kita bangun adalah Controller. Boleh dibilang, controller adalah jantung dari aplikasi. Controller menentukan view mana yang harus diload, menentukan parameter apa yang dimasukkan, variable apa yang harus dicetak dalam output program dan sebagainya. Tapi yang jelas, Controller tidak bisa membatasi kita kapan harus makan kapan harus minum kapan harus tidur. Lha wong beda dimensi koq. Dimensi Code dan Dimensi Manusia. Jadi tolong jangan dicampur aduk. OK?
Sekarang kita akan memulai dengan menggunakan source code Controller berikut:
<?php
class HelloII extends Controller{
function index(){
echo “Hello World”;
}
}
?>
Di mana file tersebut disimpan? Simpan saja di /rootdirektory/system/application/controllers/ sebagaimana yang dulu kita lakukan. Koq cuman sedikit? Kenapa tidak menggunakan constructor seperti yang sebelumnya kita lakukan? Kenapa tidak menggunakan tag-tag HTML? Koq tidak melibatkan view seperti tulisan sebelumnya? Sabar! Sekarang jangan ngeyel dulu, yang penting, akses saja dulu controller diatas menggunakan browser. Di browser saya saya akses dengan url http://localhost/CodeIgniterPure/index.php/HelloII/. Dibrowser keluar Hello World? Kalau keluar, akan saya jawab pertanyaan-pertanyaan diatas. Baik, koq cuman sedikit? Karena tidak menggunakan Constructor. Kenapa tidak menggunakan Constructor? Karena tidak butuh. Kenapa tidak butuh? karena tidak semua komponen dan library dalam CI digunakan. Lihat kan, class hanya mewarisi apa yang dimiliki class Controller saja, tidak yang lainnya. Dan yang digunakan, hanya echo, yang sudah dimiliki secara native oleh PHP. Tidak perlu komponen atau library khusus kan untuk memakai echo? Terus kenapa tidak menggunakan view? Pada dasarnya, view digunakan untuk memisahkannya antara core controller. Keuntungannya, programmer dan designer bisa bekerja secara terpisah untuk hasil yang maksimum. Designer mengurusi view, dan programmer mengurusi controller dan model. Dengan model pengembangan seperti ini, aplikasi bisa didevelop lebih cepat.
Apakah hanya itu saja? Tidak. Class-class calam CI sebenarnya memiliki fungsi yang khusus menangani output. Selain fungsi index() yang berfungsi menggenerate tampilan secara default, tersedia juga fungsi _output() yang juga memberikan output di browser. Entahlah, sebab saya juga masih belum tahu double fungsi. Apa kita bisa meload view dari fungsi ini? Tidak. View hanya bisa diload dari fungsi index saja. Mungkin ini bedanya. Fungsi lain khusus menangani bussines logic dari aplikasi, dan fungsi _output() khusus menangani output class yang diload.
Berikut contohnya:
<?php
class HelloII extends Controller{
function _output(){
echo “Hello World”;
}
}
?>
Perhatikan, dua contoh diatas diakses menggunakan nama class pada nama URL. Output diletakkan pada fungsi index() dan _output(). Apa bisa diletakkan pada fungsi lain? Tenang! Kalau banyak jalan menuju roma, banyak jalan juga menuju fungsi. Perhatikan contoh berikut, yang memberikan hasil output yang berasal dari fungsi yang berbeda:
<?php
class HelloII extends Controller{
function helloAnu(){
echo “Hello World”;
}
}
?>
Fungsi diatas bisa diakses dengan URL http://localhost/CodeIgniterPure/index.php/HelloII/helloAnu/. Lihat, parameter helloAnu yang berupa fungsi terletak setelah parameter HelloII yang berupa class.
Masih ada cara lain? Tenang, sekali lagi saya ingatkan masih banyak jalan menuju roma, jadi jalan menuju “hello world” juga masih ada hehehe. Jalan itu adalah melewatkannya pada parameter dalam URL. Berikut ini contohnya:
<?php
class HelloII extends Controller{
function helloAnu($a,$b){
echo $a.” “.$b;
}
}
?>
Akses menggunakan URL http://localhost/CodeIgniterPure/index.php/HelloII/helloAnu/hello/world/. Nah, perhatikan sekali lagi URL tersebut. Ada parameter class, diikuti fungsi, diikuti dengan dua nilai variable, hello dan world. Dalam fungsi helloAnu(), dilewatkan dengan menggunakan variable $a dan $b, sehingga menjadi helloAnu($a,$b).
Masih ada cara yang lain? MASIH! Tapi saya sudah capek menuliskannya. Simak terus tutorial selanjutnya, yang akan menuntun membuat cara lain membuat program hello world, masih menggunakan constructor. Hanya saja, kita akan menggunakan pendekatan dari sisi yang berbeda, yang berupa uraian lebih lanjut tentang controller. Mission Complete.
Tidak ada komentar:
Posting Komentar