Controller adalah sebuah file php yang berisi class yang bisa diakses melalui URL. Bisa dibilang, controller adalah jantung aplikasi kita.
File-file controller terletak pada folder application/controllers, disitu kita bisa mulai membuat aplikasi kita.
Daftar Isi
Contoh Controller
<?php class User extends CI_Controller { public function index() { echo 'Halo, ini adalah controller User'; } }
Cara mengaksesnya:
http://domainsaya.com/index.php/user
Maka akan tampil seperti berikut:
(Kamu bisa mengaksesnya disini: https://jurnalmms.web.id/ci/index.php/user)
Aturan Pembuatan Controller
Dalam membuat controller, ada beberapa aturan yang perlu kita ikuti. Yaitu:
Nama file dan nama class harus sama
Jika nama filenya adalah User.php, maka nama classnya harus User. Tidak boleh berbeda.
Nama file dan nama class harus diawali dengan huruf besar
Contoh nama file yang benar:
User.php Hello.php Hello_world.php Nama_controller.php
Contoh nama file yang salah:
user.php hello.php hello_world.php nama_controller.php
Begitu juga nama class, harus diawali dengan huruf besar.
Contoh yang benar:
class Nama_controller extends CI_Controller { }
Contoh yang salah:
class nama_controller extends CI_Controller { }
Membuat Method
Membuat method disini sama seperti pembuatan method pada umumnya. Pada contoh diatas, kita membuat method index() pada class User
Menambahkan Parameter pada Method
Sama seperti method pada umumnya, kita juga bisa menambah parameter pada didalam method. Contoh:
<?php class User extends CI_Controller { public function index() { echo 'Halo, ini adalah controller User'; } public function alamat($kota, $provinsi) { echo "Saya tinggal di kota $kota di provinsi $provinsi"; } }
Kamu bisa mengaksesnya melalui URL:
http://domainsaya.com/index.php/user/alamat/Mukomuko/Bengkulu
Maka akan muncul tampilan seperti ini:
(Kamu bisa mengaksesnya disini: https://jurnalmms.web.id/ci/index.php/user/alamat/Mukomuko/Bengkulu)
Tips: silahkan ubah “Mukomuko” dan “Bengkulu” menjadi yang lain. Dan lihat perubahannya.
Contoh: https://jurnalmms.web.id/ci/index.php/user/alamat/Beijing/China
Mengakses Controller
Seperti yang saya katakan diatas, cara mengakses controller adalah melalui URL. Rumusnya seperti berikut:
http://domainsaya.com/index.php/{nama_controller}/{nama_method}/{parameter}
- Pada segment pertama adalah nama controller
- Segment kedua berisi nama method
- Segment ketiga, keempat dan seterusnya adalah parameter method
Note: jika kamu tidak menentukan nama method, maka method yang akan dipanggil otomatis adalah method index()
Mengatasi Error pada Parameter Method
Jika kamu mengakses: https://jurnalmms.web.id/ci/index.php/user/alamat (tanpa menuliskan isi parameter), maka akan muncul error seperti ini:
Lalu bagaimana cara mengatasinya? Caranya adalah dengan memberi default value pada parameternya. Contoh:
<?php class User extends CI_Controller { public function data($nama = 'Martin Mulyo Syahidin', $pekerjaan = 'Pedagang') { echo "Nama saya $nama, pekerjaan saya adalah $pekerjaan"; } }
Ketika kamu mengakses tanpa isi parameter, maka tidak akan muncul error.
(Kamu bisa mengaksesnya disini: https://jurnalmms.web.id/ci/index.php/user/data)
Membuat Method yang Tidak Bisa Diakses dari URL
Mungkin, untuk suatu kasus kita tidak ingin sebuah method diakses melalui URL. Caranya mudah, cukup berikan hak akses private atau protected. Contoh:
private function _filter($param) { return strtolower($param); }
Cobalah akses: https://jurnalmms.web.id/ci/index.php/user/_filter/
Namun meskipun tidak bisa kita akses dari URL, kita tetap bisa mengaksesnya dari dalam class. Contoh:
<?php class User extends CI_Controller { public function sekolah($nama = 'SMA N 3 Mukomuko') { echo $this->_filter($nama); } private function _filter($param) { return strtolower($param); } }
(https://jurnalmms.web.id/ci/index.php/user/sekolah)
Oke, saya rasa sudah cukup sekian saja. Jika ada yang ingin ditanyakan silahkan tanya pada kolom komentar