Konsep Dasar Codeigniter 4

Sudah berhasil install CI 4?

Bagus..

Berikutnya, kita akan berkenalan lebih dekat dengan CI4.

Harapannya, kamu bisa terbiasa denga lingkungan kerja atau codebase CI4.

Kita akan mulai dengan mengenal struktur direktorinya terlebih dahulu, lalu membahas konsep MVC yang ada di Codeigniter 4.

Baiklah..

Mari kita mulai!

Struktur Direktori Codeigniter 4

Jika kamu baru pertama kali belajar Codeigniter, maka wajib hukumnya mengetahui apa saja isi direktori dan file yang ada di dalam project codeigniter.

Silahkan buka teks Editor VS Code, lalu pilih File->Open Folder. Cari folder πŸ“ ci-news.

Maka kita akan mendapatan struktur direktori seperti ini:

struktur direktori ci4

Terdapat beberapa direktori dan file di sana. Mari kita bahas satu persatu. Mulai dari direktori dulu ya.

folder ci4
Struktur direktori Codeigniter 4

  • πŸ“ .github folder ini kita butuhkan untuk konfigurasi repo github, seperti konfigurasi untuk build dengan github action;
  • πŸ“ app folder ini akan berisi kode dari aplikasi yang kita kembangkan;
  • πŸ“ public folder ini berisi file yang bisa diakses oleh publik, seperti file index.php, robots.txt, favicon.ico, ads.txt, dll;
  • πŸ“ tests folder ini berisi kode untuk melakukan testing dengna PHPunit;
  • πŸ“ vendor folder ini berisi library yang dibutuhkan oleh aplikasi, isinya juga termasuk kode core dari system CI.
  • πŸ“ writable folder ini berisi file yang ditulis oleh aplikasi. Nantinya, kita bisa pakai untuk menyimpan file yang di-upload, logs, session, dll.

Berikutnya, kita akan bahas tentang file-file yang ada di direktori CI 4.

  • πŸ“„ .env adalah file yang berisi variabel environment yang dibutuhkan oleh aplikasi.
  • πŸ“„ .gitignore adalah file yang berisi daftar nama file dan folder yang akan diabaikan oleh Git.
  • βš™οΈ build adalah script untuk mengubah versi codeigniter yang digunakan. Ada versi release (stabil) dan development (labil).
  • πŸ“œ composer.json adalah file JSON yang berisi informasi tentang proyek dan daftar library yang dibutuhkannya. File ini digunakan oleh Composer sebagai acuan.
  • πŸ“œ composer.lock adalah file yang berisi informasi versi dari libraray yang digunakan aplikasi.
  • ©️ license.txt adalah file yang berisi penjelasan tentang lisensi Codeigniter;
  • πŸ“œ phpunit.xml.dist adalah file XML yang berisi konfigurasi untuk PHPunit.
  • πŸ“– README.md adalah file keterangan tentang codebase CI. Ini biasanya akan dibutuhkan pada repo github atau gitlab.
  • βš™οΈ spark adalah program atau script yang berfungsi untuk menjalankan server, generate kode, dll.

Kemudian, coba kita fokus ke folder πŸ“ app, di sana ada beberapa fodler dan file yang perlu kita ketahui.

  • πŸ“ Config adalah folder yang berisi konfigurasi untuk aplikasi;
  • πŸ“ Controllers adalah folder yang berisi kode Controller dari aplikasi;
  • πŸ“ Database adalah folder yang berisi kode untuk migrasi database;
  • πŸ“ Filters adalah folder yang berisi kode untuk filter atau middleware;
  • πŸ“ Helpers adalah folder yang berisi kode untuk fungsi-fungsi helper;
  • πŸ“ Language adalah folder yang berisi kamus bahasa untuk aplikasi;
  • πŸ“ Libraries adalah folder yang berisi library tambahan untuk aplikasi;
  • πŸ“ Models adalah folder yang berisi kode untuk model;
  • πŸ“ ThridParty adalah folder yang berisi library dari pihak ketiga;
  • πŸ“ Views adalah folder yang berisi kode untuk view;
  • πŸ“œ .htaccess adalah file yang berisi konfigurasi akses untuk web server;
  • πŸ“œ Common.php adalah file yang berisi definisi fungsi untuk menindih fungsi core dari CI.
  • πŸ“œ index.html adalah file placeholder untuk mencegah direct access.

Nah, itulah beberapa file dan folder yang harus dipahami. Sebenarnya masih banyak lagi file di dalam folder app yang harus kamu ketahui.

Namun, karena terlalu banyak.. nanti kita bahas barengan dengan tutorial berikutnya.

Mengenal Konsep MVC Codeigniter 4

Codeigniter sejak awal menganut konsep MVC. Karena itu, ia begitu terkenal. Soalnya, implementasi MVC di CI mudah dipahami.

Apa itu MVC?

MVC adalah singkatan dari Model–View–Controller. MVC merupakan sebuah pola desain arsitektur yang umum digunakan dalam pengembangan aplikasi.

Masih ingat latar belakang mengapa kita harus pakai framework?

Yap, biar kode program lebih konsisten dan tersetruktur. Sehingga kita akan mudah kolaborasi dengan tim.

Nah, si MVC ini adalah pola penulisan kode yang umum dipakai.. dimana kode untuk Model di taruh dalam folder yang sama, begitu juga dengan kode untuk View dan Controller.

Coba perhatikan gambar berikut:

Konsep MVC

Gambar ini menyatakan bagaimana hubungan kode pada MVC.

Apa itu Model?

Model adalah kode yang bertugas untuk membuat pemodelan data. Kadang juga dipakai untuk pemodelan bisnis.

Model bisa mengakses data dari Database dan juga sumber lainnya.

Intinya:

Kalau berkaitan tentang data, itu tugasnya model.

Apa itu View?

View adalah kode yang bertugas untuk membuat tampilan aplikasi.

Ingat:

Fokusnya untuk membuat tampilan aplikasi, bukan yang lain. Kita tidak boleh query data dari view, meskipun itu bisa dilakukan.

Kadang juga kita akan membuat sedikit logika di dalam view, seperti logika untuk menampilkan dan menghilangkan elemen tertentu.

Apa yang kita lihat di aplikasi, itu adalah kode dari View.

Apa itu Controller?

Nah, si Controller inilah yang bertugas menyatukan Model dan View.

Jadi, setiap ada request..

Controller akan bertanggung jawab untuk membalas request tersebut.

Jika itu request untuk menyimpan data ke database, maka Controller harus memanggil Model yang bertanggung jawab untuk data tersebut. Lalu meminta model untuk menyimpannya ke database.

Jika itu request untuk view data, maka Controller akan mencari kode View yang bertanggung jawab untuk menampilkan data tersebut.

Kadang juga Controller akan membutuhkan beberapa library dan helper untuk memproses request.

Intinya:

Controller bertanggung jawab untuk membalas request dari client.

Tapi sebelum itu.. ada router di depan controller yang bertanggung jawab untuk menentukan Controller mana yang akan dieksekusi.

Router di Codeigniter 4

Coba buka file app/Config/Routes.php. File ini adalah file router yang bertugas untuk menentukan, Controller mana yang akan bertanggung jawab pada request tertentu.

router

Sebagai contoh:

Perhatikan kode ini.

$routes->get('/', 'Home::index');

Saat ada request ke halaman root (/) atau alamat domain dari aplikasi, maka Controller yang akan bertugas adalah Home dan method yang akan dipakai adalah index.

Intinya:

Router akan memberikan tugas pada Controller tertentu untuk membalas sebuah request.

Apa Selanjutnya?

Jadi kesimpulannya:

Codeigniter 4, menggunakan konsep MVC. Request pada Codeigniter pertamakali akan diterima oleh file public/index.php kemudian diteruskan ke router dan diproses oleh Controller.

Berikutnya, silahkan pelajari:

Untuk tutorial CI lainnya, cek di πŸ“š List Tutorial Codeigntier