Setelah environment berhasil disiapkan pada BAB sebelumnya, langkah berikutnya yang wajib dipahami oleh setiap developer CodeIgniter adalah mengenal struktur folder dan file di dalam framework.
Banyak pemula langsung menulis kode tanpa tahu di mana seharusnya kode diletakkan, akibatnya aplikasi menjadi berantakan dan sulit dikembangkan.
Pada BAB 3 ini, kita akan membedah struktur folder dan file penting CodeIgniter, baik pada CodeIgniter 3 maupun CodeIgniter 4, agar Anda memahami fungsi masing-masing bagian dan bisa menulis kode dengan rapi, terstruktur, dan sesuai standar.
Contents
Tujuan Pembelajaran
Setelah mempelajari BAB 3 ini, Anda diharapkan mampu:
- Memahami fungsi setiap folder utama di CodeIgniter
- Mengetahui perbedaan struktur CI 3 dan CI 4
- Menempatkan controller, model, dan view pada lokasi yang tepat
- Mengenali file-file penting yang sering digunakan dalam pengembangan aplikasi
3.1 Gambaran Umum Struktur Folder CodeIgniter
Secara konsep, CodeIgniter menerapkan pola MVC (Model–View–Controller). Struktur foldernya dibuat untuk mendukung pemisahan tugas ini agar kode lebih bersih dan mudah dirawat.
Struktur Dasar CodeIgniter 3
application/
system/
index.php
Struktur Dasar CodeIgniter 4
app/
public/
writable/
Meskipun terlihat berbeda, tujuan keduanya sama: memisahkan logika, tampilan, konfigurasi, dan sistem inti.
3.2 Folder application (CodeIgniter 3)
Folder application adalah jantung aplikasi pada CodeIgniter 3. Hampir semua kode yang kita tulis akan berada di dalam folder ini.
application/
├── controllers/
├── models/
├── views/
├── config/
├── libraries/
├── helpers/
Fungsi Utama Folder application
- Menyimpan seluruh kode aplikasi
- Aman untuk dimodifikasi
- Terpisah dari folder
system(inti framework)
3.3 Folder controllers
Folder controllers berisi controller, yaitu pengatur alur aplikasi.
Fungsi Controller
- Menerima request dari browser
- Mengolah logika dasar
- Memanggil model
- Menampilkan view
Contoh Controller CI 3
class Home extends CI_Controller {
public function index() {
$this->load->view('home');
}
}
Contoh Controller CI 4
namespace App\Controllers;
class Home extends BaseController {
public function index() {
return view('home');
}
}
📌 Catatan penting:
- Nama file dan class harus sama
- Controller adalah “gerbang utama” aplikasi
3.4 Folder models
Folder models berfungsi untuk mengelola data dan database.
Tugas Model
- Query database
- Manipulasi data
- Validasi data tingkat database
Contoh Model CI 3
class User_model extends CI_Model {
public function getUser() {
return $this->db->get('users')->result();
}
}
Contoh Model CI 4
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model {
protected $table = 'users';
}
📌 Best Practice:
- Jangan menulis query di controller
- Model hanya fokus pada data
3.5 Folder views
Folder views berisi tampilan aplikasi (HTML, CSS, dan sedikit PHP).
Fungsi View
- Menampilkan data ke user
- Tidak mengandung logika berat
- Fokus pada UI/UX
Contoh View
<h1>Selamat Datang di CodeIgniter</h1>
<p><?= $nama ?></p>
📌 Tips:
- Pisahkan header, footer, dan konten
- Gunakan layout agar rapi
3.6 Folder config
Folder config digunakan untuk mengatur konfigurasi aplikasi.
Contoh File Konfigurasi Penting
config.php→ base_url (CI 3)routes.php→ routing URLdatabase.php→ koneksi databaseautoload.php→ library & helper otomatis
Contoh Autoload Helper
$autoload['helper'] = array('url', 'form');
📌 Manfaat autoload:
- Mengurangi pemanggilan manual
- Kode lebih ringkas
3.7 Folder public (Khusus CodeIgniter 4)
Folder public adalah root folder aplikasi CI 4.
public/
├── index.php
├── css/
├── js/
├── images/
Fungsi Folder public
- Menyimpan asset (CSS, JS, gambar)
- File yang bisa diakses browser
- Meningkatkan keamanan aplikasi
📌 Penting:
Folder app tidak boleh diakses langsung oleh user.
3.8 File-File Penting di CodeIgniter
3.8.1 index.php
File utama yang pertama kali dijalankan saat aplikasi diakses.
- CI 3 → berada di root
- CI 4 → berada di folder
public
Fungsi:
- Bootstrap aplikasi
- Menghubungkan request ke framework
3.8.2 autoload.php
Digunakan untuk memuat library, helper, dan model secara otomatis.
Contoh:
$autoload['libraries'] = array('database');
3.8.3 routes.php
Mengatur URL agar lebih rapi dan SEO-friendly.
Contoh CI 4:
$routes->get('/', 'Home::index');
3.8.4 database.php / .env
Mengatur koneksi database.
CI 3:
$db['default'] = array(
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'db_ci'
);
CI 4 menggunakan .env untuk konfigurasi modern.
Penutup
Memahami struktur folder dan file CodeIgniter adalah langkah krusial sebelum menulis aplikasi skala besar. Dengan struktur yang rapi:
- Kode lebih mudah dibaca
- Maintenance lebih ringan
- Tim development lebih produktif
- Risiko bug berkurang
Pada BAB selanjutnya, kita akan masuk ke inti CodeIgniter, yaitu konsep MVC (Model–View–Controller) dan bagaimana ketiganya saling bekerja.