Home » CodeIgniter » Cara Membuat Controller CodeIgniter 3

Cara Membuat Controller CodeIgniter 3

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.

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

Tentang Martin Mulyo Syahidin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *