Pada artikel sebelumnya, kita sudah belajar tentang Cara Menghilangkan index.php di CodeIgniter 3 untuk mempercantik dan memperpendek URL agar tidak terlalu panjang. Dan pada artikel kali ini akan membahas cara membuat Controller di CodeIgniter 3 yang baik dan benar serta cara menggunakan Controller yang telah dibuat. Bagi yang sudah mempelajari framework ini dan sudah akrab pasti sudah hal wajib jika suatu Controller dibutuhkan. Bagi yang masih belajar pasti akan bertanya-tanya kegunaan dari suatu controller. Sejatinya Controller adalah barisan-barisan code yang memiliki tugas untuk memproses request dari user melalui web browser dan URL yang diberikan atau lebih mudahnya Controller berfungsi untuk mengatur atau mengontrol aksi seperti mengatur View dan Model, penggunaan Library atau Helper, input data dari user (input form), error handling, dsb. Controller merupakan salah satu bagian dari konsep MVC (Model-View-Controller) dan CodeIgniter menggunakan konsep ini sebagai bentuk pengembangannya.

konsep MVC
Konsep MVC (Model-View-Controller)

Ilustrasi diatas adalah alur kerja dari suatu konsep MVC. Dimana saat user akan mengakses atau menggunakan aplikasi hal pertama kali yang akan ditemui atau dipanggil adalah controller. Aplikasi yang akan dibuat bisa menggunakan Controller saja atau bisa menggunakan Controller + View, Controller + Model, atau menggunakan konsep MVC keseluruhan yaitu Controller + Model + View. Untuk membuat Controller pastikan dulu sudah ada project CodeIgniter, jika belum dapat dilihat dalam artikel Cara Install CodeIgniter Untuk Pemula. Dalam contoh kali ini akan menggunakan project dengan nama SIAKAD dan akan menjadi contoh terus dalam artikel selanjutnya.

Membuat Controller

Untuk membuat controller baru harus pada folder application/controllers agar CodeIgniter 3 mengenali bahwa itu adalah controller yang Anda buat. Untuk contoh ini akan dibuat controller dengan nama akademik, maka penamaan filenya harus sesuai dengan namanya/nama classnya yaitu akademik.php dan contoh penulisan codenya seperti dibawah ini.

<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Akademik extends CI_Controller
{

  function __construct()
  {
    parent::__construct();
  }

  public function index()
  {
    echo "Ini method index pada controller akademik";
  }

  public function pesan()
  {
    echo "Ini method pesan pada controller akademik";
  }
}

Dalam pembuatan controller diatas memiliki ketentuan seperti dibawah ini.

Defined BASEPATH

Apa itu defined basepath? Defined basepath adalah barisan code yang berfungsi untuk mencegah akses langsung ke script atau controller secara langsung dan memastikan bahwa request dari client telah memalui index.php pada directory project. Cara penulisannya tepat pada dibawah tag pembuka php yaitu <?php. Code lengkapnya seperti pada dibawah ini.

defined('BASEPATH') or exit('No direct script access allowed');
Penamaan nama class dengan huruf besar dan extends CI_Controller

Pemberian nama class harus diawali dengan huruf besar karena merupakan aturan dari penulisan barisan code serta CI_Controller merupakan extends class atau turunan class dari class CI_Controller yang berada pada system/core/CodeIgniter.php. Contoh penulisannya jika menurut contoh diatas adalah seperti dibawah ini.

class Akademik extends CI_Controller
Pemberian Method Construct

Method construct (konstruktor) adalah suatu method yang dijalankan pertama kali saat controller diakses/dijalankan. Method construct ini menjadi opsional bisa dikasih bisa tidak tergantung kebutuhan saat melakukan penulisan code. Method construct ditulis setelah pemberian/deklarasi class dengan contoh penulisan method construct seperti dibawah ini.

function __construct()
{
  parent::__construct();
}

Dalam method consturct ini dapat juga berfungsi untuk memanggi helper atau library yang akan digunakan, contohnya seperti ini.

function __construct()
{
  parent::__construct();
  $this->load->library("session");
  $this->load->helper("url");
}
Pembuatan function

Setelah deklarasi class dan pemberian method construct hal selanjutnya adalah pembuatan function sesuai dengan kebutuhan dari aplikasi yang akan dibangun. Aturan penulisan deklarasi function diawali dengan huruf kecil dan jika mengandung dua kata atau lebih cara penulisan kata selanjutnya dapat ditulis huruf kapital pada awal kata tersebut atau menggunakan karakter underscore “_” dan penulisan deklarasi function tidak boleh diawali dengan angka atau karakter khusus. Contoh penulisan nama function yang diperbolehkan seperti dibawah ini.

public function index()
{
  echo "Ini method index pada controller akademik";
}

public function pesan()
{
  echo "Ini method pesan pada controller akademik";
}

public function pesanBaru()
{
  echo "Ini method pesanBaru pada controller akademik";
}

public function pesan_baru()
{
  echo "Ini method pesan_baru pada controller akademik";
}

Pengaksesan Controller dan function

Dalam pengaksesan controller dan functionnya cukup mudah yaitu menuliskannya pada address bar dengan penulisan seperti dibawah ini.

Namun, jika memiliki function index dapat dituliskan dengan cara seperti berikut.

Hal itu dikarenakan function index akan menjadi hal pertama yang akan dibaca jika tidak mencantumkan function tertentu yang akan diakses, dan peletakan function index baik paling awal atau paling akhir atau ditengah-tengah barisan code tetap akan dibaca pertama kali jika cara mengaksesnya sama seperti diatas. Akan tetapi akan lebih baik jika dituliskan pada function paling atas/awal. Dan untuk mempersingkat penulisan URL yang lebih singkat dapat menghapus index.php akan tetapi harus menambahkan beberapa script tertentu yang dapat dibuka pada artikel Cara Menghilangkan index.php di CodeIgniter 3. Cara pengaksesan controller dan function jika sudah menambahkan script untuk menghapus index.php dapat dilihat pada dibawah ini.

Penulisan nama variable

Dalam penulisan variable didalam barisan code function juga memiliki aturan penulisan yang sama persis dengan deklarasi penamaan function baru. Dan penulisannya bersifat case sensitive karena bahasa pemrograman PHP menerapkan case sensitive dalam setiap penulisannya. Sebagai contoh penulisan variable seperti dibawah ini.

public function index()
{
  $nama = "Bayu Setya Ajie Perdana Putra";
  $tanggalLahir = "Surakarta";
  $kota_tinggal = "Bandung";
}

Itu tadi hal-hal yang harus diperhatikan saat melakukan pembuatan controller di CodeIgniter 3 dan cara penulisannya untuk menggunakan controller dan function-function yang ada pada controller tersebut agar dapat diakses.

Happy Coding ^-^