BAB 3 – Kenalan Lebih Dalam: Struktur Folder & File Penting CodeIgniter

BAB 3 – Kenalan Lebih Dalam: Struktur Folder & File Penting CodeIgniter

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.


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 URL
  • database.php → koneksi database
  • autoload.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.