Sunday, 16 November 2025

Memahami Struktur Folder CodeIgniter 4: Penjelasan Lengkap untuk Pemula

 

Struktur folder dalam sebuah framework adalah hal penting yang harus dipahami oleh setiap developer sebelum mulai membangun aplikasi. CodeIgniter 4 (CI4) hadir dengan struktur yang lebih rapi, modern, dan modular dibanding versi sebelumnya. Pemahaman mendalam mengenai struktur folder CI4 akan membantu Anda bekerja lebih efisien, lebih terorganisir, serta mempermudah proses maintenance aplikasi di masa mendatang. Artikel ini akan membahas secara detail fungsi setiap folder dalam CodeIgniter 4 sehingga pemula dapat memahami cara kerja framework ini dengan baik.

1. Gambaran Umum Struktur Folder CodeIgniter 4

Setelah Anda menginstal CodeIgniter 4, baik menggunakan Composer maupun manual, Anda akan menemukan beberapa folder utama seperti:


app/
public/
writable/
tests/
system/

Setiap folder memiliki peran spesifik. Ada yang digunakan untuk menyimpan kode aplikasi, public assets, file hasil upload, hingga file sistem inti CI4. Pemisahan ini memberikan keamanan dan struktur yang lebih jelas bagi developer.

2. Folder app/

Folder app adalah pusat utama aplikasi Anda. Semua logika bisnis, konfigurasi inti aplikasi, controller, model, view, hingga filter disimpan di sini.

Struktur folder di dalam app biasanya seperti berikut:

    a. app/Controllers

Folder ini menyimpan controller, yaitu komponen yang mengatur alur aplikasi.
Contohnya:


<?php

  namespace App\Controllers;
  
  class Home extends BaseController{
  	public function index(){
  		return view('welcome_message');
  	}
  }

Controller bertugas menerima request dan mengembalikan response.

    b. app/Models

Folder ini berisi model yang berfungsi untuk berinteraksi dengan database.
Misalnya:


<?php
   namespace App\Models;
   
   use CodeIgniter\Model;
   
   class UserModel extends Model{
      protected $table ='users';
   }
  

Model dapat melakukan operasi CRUD dan query builder.

    c. app/Views

Folder yang menyimpan file tampilan (HTML, PHP template).
Misalnya:
welcome_message.php

Views digunakan untuk menampilkan data ke pengguna.

    d. app/Config

Berisi file konfigurasi aplikasi seperti:

  • BaseURL
  • Filters
  • Database
  • Email
  • Routing

Ini adalah folder penting yang sering Anda ubah saat pengembangan aplikasi.

    e. app/Filters

Berisi filter seperti authentication, logging, atau middleware lain.

    f. app/Helpers

Tempat menaruh file helper custom (fungsi global yang dapat dipanggil dari mana saja).

3. Folder public/

Folder ini adalah document root aplikasi, artinya semua file di sini dapat diakses secara langsung oleh browser. Folder ini biasanya berisi:

  • index.php (entry point aplikasi)
  • Asset frontend seperti CSS, JS, gambar
  • File upload jika tidak dipindah ke writable

Tujuan folder ini adalah mencegah file sensitif di luar public agar tidak bisa diakses langsung dari internet, sehingga meningkatkan keamanan.

4. Folder writable/

Folder writable digunakan untuk menyimpan file yang dapat ditulis (writeable) oleh aplikasi.
Isinya bisa berupa:

  • cache/
  • debugbar/
  • logs/
  • uploads/
  • sessions/

Folder ini sangat penting untuk keperluan logging, caching, dan debugging selama pengembangan aplikasi.

CI4 memisahkan folder ini agar tidak tercampur dengan file sistem dan lebih aman saat deploy.

5. Folder system/

Folder system adalah inti dari framework CodeIgniter 4. Semua file penting yang membentuk CI4 berada di sini: class inti, helper bawaan, library, routing engine, dan banyak komponen internal lainnya.

Anda tidak dianjurkan mengubah file di folder ini, karena:

  1. Bisa merusak framework

  2. Akan tertimpa saat update versi

  3. Menyulitkan debugging

Jika perlu melakukan perubahan, gunakan extension melalui folder app atau app/Libraries.

6. Folder tests/

Folder ini dibuat untuk pengujian aplikasi menggunakan PHPUnit.
Jika Anda ingin menerapkan Test Driven Development (TDD), folder ini akan sangat bermanfaat untuk:

  • Unit testing
  • Feature testing
  • CI/CD pipeline

Meskipun pemula sering mengabaikannya, folder ini sangat penting untuk aplikasi berskala besar.

7. File .env

Selain folder, ada juga file .env yang digunakan untuk menyimpan konfigurasi environment seperti:

  • Mode development/production
  • Koneksi database
  • Email SMTP
  • Debug mode

File ini tidak dimasukkan ke GitHub (harus di-ignore) karena biasanya mengandung data sensitif seperti password database.

Kesimpulan

Struktur folder CodeIgniter 4 dirancang agar rapi, aman, dan modular. Dengan memahami fungsi setiap folder seperti app, public, writable, system, dan lainnya, Anda akan lebih mudah dalam mengembangkan aplikasi berbasis CI4. Pemahaman ini sangat penting terutama bagi pemula agar tidak salah menempatkan file dan mampu mengikuti best practice pengembangan aplikasi web.

untuk melihat topik yang bersangkutan dengan artikel ini bisa cek disini 

 

No comments:

Post a Comment