Tutorial Codeigniter 4 – Part 2 – Cara Membuat Controller

Selamat datang di tutorial warung belajar, dalam tutorial ini kita melanjutkan pembahasan mengenai tutorial Codeigniter 4, dalam tutorial ini kita akan membahas mengenai cara membuat controller di Codeigniter 4.

Codeigniter 4 sudah mendukung arsitektur MVC (Model, View, Controller), nah buat teman – teman yang belum mengenal konsep MVC ini, bisa baca artikel kami sebelumnya mengenai Konsep MVC di Codeigniter Mengenal Konsep MVC di Codeigniter

pada artikel itu kita menjelaskan peran masing – masing bagian MVC (Model,View, Controller) tapi ada sedikit hal yang berbeda di Codeigniter 4, jika dibandingkan dengan versi sebelumnya Codeigniter 3.

di Codeigniter 4 dikenalkan konsep penulisan query semacam eloquent di Laravel, yang lebih menyederhanakan perintah untuk mengakses database, nanti kita akan bahas lebih lanjut di pembahasan tentang penggunaan model.

Pada pembahasan ini kita fokus di cara pembuatan controller saja.

Video Tutorial Belajar Codeigniter 4 – Cara Membuat Controller di Codeigniter 4

Untuk teman – teman yang biasa belajar dengan video tutorial, bisa melihat youtube kita terkait video tutorial cara membuat Controller di Codeigniter 4


 

 

Install Framework Codeigniter 4

disini saya asumsikan teman – teman sudah menginstall Codeigniter 4, untuk tutorial cara menginstall bisa melihat tutorial kita sebelumnya : Cara Menginstall Framework Codeigniter 4

dalam contoh ini project codeigniter 4, saya simpan dalam folder ci4app


Cara Membuat Controller

Baik kita mulai untuk membuat controller, anda bisa membuat controller pada folder app/Controllers, dalam contoh ini kita akan membuat Controller dengan nama Siswa
silahkan buat file dengan nama Siswa.php didalam folder app/Controllers.

Catatan Penting : Untuk membuat Controller gunakan awalan huruf Kapital, jadi semisal seperti ini : Siswa.php, Kategori.php, Produk.php dll.

Berikutnya didalam file Siswa.php tambahkan skrip dibawah ini :

Berikutnya anda bisa mengakses controller ini, dengan menggunakan URL sebagai berikut :

Hasilnya adalah sebagai berikut :

Penjelasan :

kita akan bahas untuk file Controllers Siswa.php, pada line 3 kita menuliskan namespace App\Controllers.

Line 5 kita buat class dengan nama Siswa, class ini kita extends dengan BaseController.

didalam class Siswa kita buat method dengan nama index (Line 7), dimana didalamnya kita tuliskan perintah untuk menampilkan text dengan menggunakan echo, text yang ditampilkan adalah “Halo ini adalah controller Siswa

Method index adalah method yang pertama akan diakses ketika controller diakses, sehingga saat kita mengakses controller Siswa yang diakses adalah method index.

 

Catatan Penting : Nama class untuk controller harus diawali huruf Kapital, dan hanya karakter pertama yang dapat menggunakan huruf besar

Contoh penulisan class yang benar :

Contoh Penulisan class yang salah :


Cara Membuat Method di Controller

Setelah anda belajar mengenai pembuatan class untuk controller, berikutnya anda akan belajar mengenai method di dalam controller.

Pada contoh sebelumnya kita sudah membuat method dengan nama index, dimana method dengan nama index, adalah method yang otomatis diakses secara default, jika pada URL kita tidak menuliskan nama method setelah nama Controller.

sebagai contoh kita akan menambahkan method nama semisal, sehingga isi controller menjadi seperti berikut ini :

lalu berikutnya coba akses method nama, dengan menggunakan URL :

hasilnya adalah sebagai berikut :

Keterangan :

maka akan menampilkan text “ini adalah method nama di controller Siswa” hal tersebut dikarenakan kita mengakses method nama, terlihat saat kita mengakses URL kita menuliskan nama method, setelah nama controller.


 

 

PASSING URI Segment ke Method Controller

Berikutnya kita akan belajar untuk passing data melalui URI Segment, dimana data ini dapat digunakan sebagai parameter method di controller.

anda bisa mengirimkan data lebih dari satu melalui URI ini..

sebagai contoh kita akan modifikasi code controller Siswa yang sebelumnya sudah kita buat :

Keterangan :

kita menambahkan parameter dibagian method nama, kita buat 2 parameter, yaitu nama dan usia (Line 12)

parameter ini kita tulis sebagai bentuk variabel yaitu $nama, $usia

 

Berikutnya coba gunakan url ini untuk mengakses method nama di class siswa.

Hasilnya akan menampilkan tampilan sebagai berikut :

Keterangan :

kita analisa dulu url yang digunakan untuk mengakses :

  • http://localhost/ci4app/public : ini adalah url utama dari project codeigniter 4 kita, karena dalam contoh ini kita tidak menjalankan local development server bawaan codeigniter.
  • siswa : ini adalah nama controller
  • nama : ini adalah nama method didalam controller
  • taufik : ini adalah data pertama yang dipassing melalui URI Segment, taufik ini akan dijadikan nilai dari variabel $nama didalam method nama controller siswa
  • 17 : ini adalah data kedua yang dipassing melalui URI Segment, 17 ini akan dijadikan nilai dari variabel $usia didalam method nama controller siswa

jadi bisa kita simpulkan kita mengirimkan 2 parameter, untuk nama = taufik, dan usia = 17 kedalam method nama didalam controller Siswa.

Berikutnya karena didalam method nama kita menuliskan perintah sebagai berikut :

Sehingga didalam tampilan web muncul sebagai berikut :

Nama Saya adalah taufik , Usia 17


Membuat Private Method

Berikutnya kita akan belajar untuk membuat private method di codeigniter 4, istilah private method ini adalah method yang tidak bisa diakses melalui URL.

seperti yang anda ketahui di codeigniter ketika kita membuat method didalam controller, otomatis method itu bisa diakses melalui URL secara langsung, nah jika anda membutuhkan pembuatan method yang tidak ingin bisa diakses melalui URL secara langsung, bisa memanfaatkan fitur private method ini.

Sebagai contoh kita akan menambahkan sebuah method dengan nama testing, tetapi untuk method ini kita berikan visibility protected, untuk penjelasan mengenai visibility method class, bisa membaca tutorial kita sebelumnya : Mengatur Visibility pada Class PHP (Private, Protected, Public, Default)

sehingga untuk class controller Siswa menjadi seperti berikut ini :

Lalu coba kita mengakses method testing menggunakan URL berikut :

Maka hasilnya adalah sebagai berikut ini :

maka akan terdapat pesan 404 File Not Found, hal ini dikarenakan untuk bagian method testing kita berikan visibility protected yang menyebabkan, method itu bersifat private.


 

 

Membuat Controller di Sub direktori

Berikutnya kita akan belajar untuk membuat controller didalam sebuah subdirektori, seperti yang telah dijelaskan diawal controller disimpan didalam folder App/Controllers.

Jika anda membutuhkan untuk membuat controller didalam subdirektori, semisal aplikasi yang anda buat semakin besar, anda perlu membagi controller kedalam beberapa folder, anda bisa menggunakan cara ini.

Dalam contoh ini kita akan membuat file controller dengan nama Users.php didalam folder App/Controllers/Admin, silahkan dibuat file baru dengan nama Users.php didalam folder App/Controllers/Admin

Jadi kurang lebih seperti berikut ini :

Catatan Penting : Nama folder harus diawali dengan huruf besar, dan hanya 1 karakter pertama yang menggunakan huruf besar

 

 Berikutnya untuk isi code dari file Users.php adalah sebagai berikut :
Berikutnya kita akan coba mengakses controller Users, URL nya adalah sebagai berikut :
Hasilnya adalah sebagai berikut :

Keterangan :

Pada bagian url kita tuliskan nama sub direktori sebelum menuliskan nama controllernya

terlihat kita menuliskan admin, sebelum kita menuliskan nama controller users

pada bagian controller kita merubah bagian namespace dengan menambahkan nama subdirektori sehingga menjadi seperti berikut (line 30)

Berikutnya kita tambahkan perintah dibawah ini :

agar tetep dalam extends basecontroller didalam controller tersebut.

 

Jadi kurang lebih seperti itu teman – teman pembahasan mengenai cara pembuatan controller di Codeigniter 4, jika ada yang ingin didiskusikan silahkan di kolom komentar, sekian dulu sampai jumpa di tutorial selanjutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *