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 :
1 2 3 4 5 6 7 8 9 10 11 |
<?php namespace App\Controllers; class Siswa extends BaseController { public function index() { echo 'Halo ini adalah controller Siswa'; } } |
Berikutnya anda bisa mengakses controller ini, dengan menggunakan URL sebagai berikut :
1 |
localhost/ci4app/public/siswa |
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 :
1 2 3 4 5 6 7 8 |
<?php namespace App\Controllers; use CodeIgniter\Controller; class Helloworld extends Controller { } |
Contoh Penulisan class yang salah :
1 2 3 4 5 6 7 8 |
<?php namespace App\Controllers; use CodeIgniter\Controller; class helloworld extends Controller { } |
1 2 3 4 5 6 7 8 |
<?php namespace App\Controllers; use CodeIgniter\Controller; class HelloWorld extends Controller { } |
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php namespace App\Controllers; class Siswa extends BaseController { public function index() { echo 'Halo ini adalah controller Siswa'; } public function nama() { echo "ini adalah method nama di controller Siswa"; } } |
lalu berikutnya coba akses method nama, dengan menggunakan URL :
1 |
localhost/ci4app/public/siswa/nama |
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php namespace App\Controllers; class Siswa extends BaseController { public function index() { echo 'Halo ini adalah controller Siswa'; } public function nama($nama, $usia) { echo "Nama Saya adalah " . $nama . " , Usia " . $usia; } } |
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.
1 |
http://localhost/ci4app/public/siswa/nama/taufik/17 |
Hasilnya akan menampilkan tampilan sebagai berikut :
Keterangan :
kita analisa dulu url yang digunakan untuk mengakses :
1 |
http://localhost/ci4app/public/siswa/nama/taufik/17 |
- 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 :
1 |
echo "Nama Saya adalah " . $nama . " , Usia " . $usia; |
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php namespace App\Controllers; class Siswa extends BaseController { public function index() { echo 'Halo ini adalah controller Siswa'; } public function nama($nama, $usia) { echo "Nama Saya adalah " . $nama . " , Usia " . $usia; } protected function testing() { echo "Ini adalah method testing yang merupakan private method"; } } |
Lalu coba kita mengakses method testing menggunakan URL berikut :
1 |
http://localhost/ci4app/public/siswa/testing |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php namespace App\Controllers\Admin; use App\Controllers\BaseController; class Users extends BaseController { public function index() { echo 'Halo ini adalah controller Users didalam Sub direktori Admin'; } } |
1 |
http://localhost/ci4app/public/admin/users |
Keterangan :
Pada bagian url kita tuliskan nama sub direktori sebelum menuliskan nama controllernya
1 |
http://localhost/ci4app/public/admin/users |
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)
1 |
namespace App\Controllers\Admin; |
Berikutnya kita tambahkan perintah dibawah ini :
1 |
use App\Controllers\BaseController; |
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.