Hai, Sobat Jagoan! Sebelum nyemplung lebih jauh dengan CodeIgniter versi 4, kamu perlu mengenal dan memahami konsep dasar CodeIgniter 4 supaya nanti terbiasa dengan lingkungan atau codebase CodeIgniter 4. Yuk, simak pembahasan di bawah ini.
Struktur Direktori CodeIgniter 4
Jika kamu baru mulai belajar CodeIgniter 4, sangat penting untuk mengenal isi folder dan file utama dalam proyeknya. Dengan memahami fungsi masing-masing bagian, kamu akan lebih mudah saat ingin memodifikasi, mengatur konfigurasi, atau menambahkan fitur baru ke dalam aplikasi.
Berikut adalah penjelasan setiap direktori dan file utama pada struktur dasar proyek CodeIgniter 4:

Nah, berikut deskripsi dari direktori dan file pada gambar struktur folder CodeIgniter 4 di atas.
- app/ merupakan inti dari aplikasi kamu. Kamu akan menulis sebagian besar kode untuk membangun aplikasi di folder ini.
- public/ berisi file yang bisa diakses oleh public, seperti file index, php, robots.txt, favicon.ico, ads.txt atau file statis lainnya. Ini juga menjadi root web saat aplikasi dihosting
- tests/ berisi kode untuk melakukan testing otomatis menggunakan PHPUnit. Cocok digunakan jika kamu menerapkan metode pengembangan berbasis testing.
- vendor/ folder ini berisi library yang dibutuhkan oleh aplikasi, termasuk core dari sistem CI. Folder ini dibuat ketika kamu menjalankan perintah composer.
- writable/ folder yang digunakan untuk menyimpan file yang dapat ditulis oleh aplikasi. Nantinya, kamu bisa pakai untuk menyimpan file yang diunggah, logs, session. Pastikan permission-nya diatur dengan benar agar aplikasi berjalan lancar.
- .env file konfigurasi environment yang dibutuhkan oleh aplikasi. Di sini kamu bisa mengatur database, baseURL, mode environment (development/production), dan banyak pengaturan lainnya.
- .gitignore file ini berisi daftar nama file dan folder yang akan diabaikan oleh Git.
- builds folder ini berisi skrip build untuk mengelola versi CodeIgniter, baik versi stabil (release) maupun versi pengembangan (development). Biasanya digunakan oleh pengembang framework.
- json file konfigurasi utama untuk Composer yang menyimpan daftar dependensi atau library autoloading dan metadata proyek.
- lock file berisi informasi vesi dari library yang digunakan aplikasi.
- txt berisi lisensi penggunaan CodeIgniter.
- xml.dist: Berupa file XML yang berisi konfigurasi untuk PHPUnit yang menentukan bagaimana tes dijalankan dan direktori mana yang dites.
- md merupakan file dokumentasi dasar proyek. Umumnya berisi penjelasan singkat tentang aplikasi, cara instalasi, dan panduan penggunaan. Berguna saat proyek disimpan di GitHub atau GitLab.
- spark merupakan program atau script yang berfungsi untuk menjalankan server, generate kode, dan lainnya.
Kemudian, karena app/ adalah jantung pengembangan aplikasi, kamu akan sering bekerja di dalam folder ini. Berikut adalah bagian-bagiannya:

- Config/ adalah folder yang berisi konfigurasi untuk aplikasi, seperti database, email, session, routing, dan lainnya.
- Controllers/ adalah folder yang berisi class Controller yang bertanggung jawab menangani perimintaan (request) dan menentukan respon (response).
- Database/ adalah folder yang digunakan untuk menyimpan file migrasi, seeding, dan konfigurasi database.
- Filters/ adalah folder yang berisi kode untuk filter atau middleware untuk menjalankan logika tertentu.
- Helpers/ adalah tempat menyimpan fungsi-fungsi bantu (helper functions) yang dapat digunakan di seluruh aplikasi.
- Language/ adalah folder yang berisi kamus bahasa untuk aplikasi.
- Libraries/ adalah folder yang berisi kode untuk model.
- Models/ adalah folder yang menyimpan class Model yang berfungsi sebagai penghubung ke database, biasanya memuat logika akses data.
- ThridParty/ adalah folder yang berisi library tambahan untuk aplikasi.
- Views/ berisi file tampilan (view) yang akan dirender ke browser. Biasanya berupa file .php atau .html.
- .htaccess adalah file konfigurasi server untuk mengatur rewrite URL dan perlindungan akses direktori.
- php berisi fungsi global yang dapat digunakan di seluruh bagian aplikasi. Kamu bisa menambahkan fungsi sendiri jika diperlukan.
- html adalah file kosong yang biasanya ada untuk mencegah akses langsung ke folder sensitif melalui browser.
Mengenal Konsep MVC (Model-View-Controller) CodeIgniter 4
Setelah memahami struktur folder pada CodeIgniter 4, selanjutnya kamu perlu mengenal konsep arsitektur yang digunakan pada framework ini, yaitu MVC singkatan dari Model-View-Controller.
Definisi MVC
Model-View-Controller atau lebih dikenal dengan MVC merupakan sebuah pola arsitektur yang memisahkan antara logika data (Model) dengan tampilan antarmuka (View), dan pengendali alur aplikasi (Controller). Konsep ini umum digunakan dalam pengembangan aplikasi karena membantu membuat kode lebih terstruktur sehingga memudahkan proses pemeliharaan aplikasi dan kolaborasi tim menjadi lebih efisien.
Apa itu Model?
Oke, kita bahas komponen pertama MVC yaitu Model. Model adalah bagian menangani data dan berinteraksi langsung dengan database. Tugas utamanya adalah mengelola query database, merepresentasikan tabel dan relasi, mengambil menyimpan atau memperbaruai data.
Apa itu View?
Selanjutnya, yaitu View yang bertanggung jawab menampilkan halaman ke pengguna. View berisi kode HTML, PHP, CSS, dan Javascript yang membentuk sebuah tampilan. Jadi, pengguna akan berinteraksi (meminta request) melalui komponen view. Di dalam view, tidak boleh melakukan operasi query data, meskipun itu bisa dilakukan. Tapi, kamu bisa membuat sedikit logika di dalam view, seperti logika untuk menampilkan dan menghilangkan elemen tertentu.
Apa itu Controller?
Komponen terakhir yaitu Controller yang fungsinya sebagai jembatan antara Model dengan View. Setiap ada request, controller akan bertanggung jawab untuk membalas request tersebut. Apabila request memerlukan data, maka controller harus memanggil model yang menangani data tersebut. Sebagai contoh, saat pengguna membuka halaman /produk, Controller Produk akan memanggil Model untuk mengambil data, lalu mengirimkannya ke View agar bisa ditampilkan.
Tugas controller terdiri dari:
- Menerima request dari pengguna
- Menentukan apa yang perlu dilakukan
- Mengambil data dari Model (jika perlu)
- Mengirim data ke View untuk ditampilkan
Router pada CodeIgniter 4
Sebelum controller dijalankan, ada sat bagian penting bernama Router. Router bertugas menentukan Controller dan method mana yang akan dipanggil berdasarkan URL yang diminta pengguna. Lokasinya ada di app/Config/Routes.php.
Sebagai contoh: $routes->get(‘/’, ‘Home::index’);
Artinya saat pengguna mengakses halaman root domain (/), maka akan dijalankan Controller Home dan method yang dipakai adalah index().
Sampai di sini bisa disimpulkan bahwa CodeIgniter 4 menggunakn arsitekur pengembangan pola MVC dan ketika ada request ke halaman CI pertama kali, maka akan menampilkan file public/index.php yang rute-nya diatur oleh routes.php dan diproses oleh controller.
Istilah Routing yang Perlu Kamu Pahami
Setelah memahami dasar MVC CodeIgniter, selanjutnya ketahui istilah routing. Routing adalah proses menentukan arah atau rute view yang ditampilakan di browser. Pada framework CI4, routing bertujuan untuk menentukan Controller mana yang harus merespon sebuah request.
Controller adalah class yang bertugas menangani permintaan (request) dari pengguna dan menentukan respon (response) yang diberikan. Controller bisa merespon dengan mengirimkan view, data JSON, data XML, atau menyimpan data ke database tanpa perlu mengembalikan tampilan.
Jadi, controller berperan sebagai pengatur alur aplikasi. Ia bisa memanggil model untuk mengambil data, lalu mengirimkannya ke view, atau langsung memproses input pengguna.
Bagaimana Alur Eksekusinya?
1) Saat pengguna mengakses aplikasi, file public/index.php akan dijalankan terlebih dahulu. Ini adalah entry point utama aplikasi CodeIgniter.
2) Kemudian, request diteruskan ke Router.
3) Router akan mencocokan URL dengan daftar routing di Routes.php.
4) Jika cocok, Router akan menjalankan controller dan method yang sesuai.
Bedakan Antara Routes, Router, dan Routing
Untuk memperjelas, berikut perbedaan tiga istilah yang sering membingungkan:
- Routes: Kumpulan definisi rute atau jalur yang menghubungkan URL dengan controller. Ditulis di file Routes.php.
- Router: Komponen internal framework yang membaca routes dan menjalankan controller yang sesuai.
- Routing: Proses mencocokkan URL permintaan dengan daftar routes yang sudah ditentukan.
Fitur Local Development Server di CodeIgniter 4
Berbeda dengan versi sebelumnya, CodeIgniter 4 sudah dilengkapi development server bawaan. Artinya, kamu bisa menjalankan aplikasi langsung di browser tanpa perlu web server tambahan seperti Apache atau Nginx.
Untuk menjalankannya, cukup buka terminal di folder proyek dan jalankan:
php spark serve
Setelah itu, aplikasi akan bisa diakses melalui: http://localhost:8080
Keuntungan menggunakan spark serve antara lain tidak perlu XAMPP/WAMP untuk pengembangan, praktis saat testing fitur., mendukung hot reload saat perubahan kode dilakukan.
Fitur ini mulai tersedia sejak CodeIgniter versi 4.x, dan sangat cocok untuk kamu yang sedang belajar atau mengembangkan aplikasi secara lokal sebelum diupload ke hosting.
Demikian artikel ini dibuat, semoga bisa menambah pengetahuan dasar kamu tentang CodeIgniter 4, Sob. Agar pondasi kamu semakin kuat, kamu bisa latihan membuat view sederhana, controller untuk menampilkan halaman, model untuk mengambil data dari database lalu gabungkan semuanya menjadi proyek kecil, seperti CRUD daftar produk atau data mahasiswa menggunakan CodeIgniter. Simak tutorial selanjutnya untuk latihan praktik membangun aplikasi CRUD di CodeIgniter.
- Tutorial Membuat View Pada CodeIgniter
- Tutorial Membuat Controller di CodeIgniter
- Tutorial Membuat Template Web Dengan CodeIgniter
- Tutorial Membuat CRUD dengan CodeIgniter Menampilkan Data Dari Database
- Tutorial Input Data ke Database Melalui CRUD Menggunakan CodeIgniter
- Tutorial Update data CRUD dengan CodeIgniter
- Tutorial Menghapus Data Menggunakan CRUD dengan CodeIgniter
- Tutorial Membuat Form Validation Pada CodeIgniter
- Tutorial Membuat Pagination Pada CodeIgniter
- Tutorial Membuat Login Menggunakan CodeIgniter
- Cara Upload File dengan CodeIgniter
- Tutorial Membuat Download File dengan CodeIgniter
Artikel tentang CodeIgniter lainnya bisa kamu temukan melalui menu sidebar di sebelah kiri ya. Dan kalau ada yang masih bikin bingung, silahkan hubungi Tim Support Jagoan Hosting via Live Chat atau Open Ticket, Sob!
Pengantar Halo sobat Jagoan! di tutorial kali ini kita bakalan membahas permasalahan Error Undefined Index/Variable. Pasti sekarang kamu lagi main-main Read more
Halo, Sob! Suka bingung kalau mau cek kendala website kamu? Nih, gak usah bingung lagi karena sekarang kita bisa cek Read more
Banyak sekali hal yang terjadi ketika kita sedang mengakses suatu website, seperti halnya akses lambat sampai bahkan sulit diakses. Disitu Read more
Kode internal server error adalah salah satu kondisi yang sering dijumpai pemilik dan pengunjung website. Apakah kamu juga salah satunya? Read more