Tutorial Codeigniter 4 #03: Struktur Folder dan Konsep MVC di Codeigniter 4

ilustrasi struktur folder dan konsep mvc codeigniter 4

Saat pertama kali belajar CodeIgniter 4, banyak pemula merasa bingung dengan banyaknya folder dan istilah seperti MVC, routing, dan config. Padahal, jika kita memahami struktur folder CodeIgniter 4 dan konsep MVC CI4, semuanya akan terasa jauh lebih sederhana.

Pada artikel ini, kita akan membahas:

  • Struktur folder utama CodeIgniter 4
  • Konsep MVC dengan analogi restoran
  • Alur kerja CodeIgniter dari URL hingga tampil di browser
  • Mengenal folder konfigurasi app/Config

Artikel ini cocok untuk pemula yang ingin memahami alur kerja CodeIgniter secara menyeluruh.


1. Struktur Folder CodeIgniter 4

Setelah kita menginstal CodeIgniter 4, kita akan melihat beberapa folder utama seperti:

app/
public/
system/
writable/

Mari kita bedah satu per satu.

πŸ“ 1. Folder app/ (Otak Aplikasi)

Folder app adalah tempat utama kita bekerja sebagai developer.

Di dalamnya terdapat:

  • Controllers/ β†’ tempat file controller
  • Models/ β†’ tempat file model
  • Views/ β†’ tempat file tampilan
  • Config/ β†’ konfigurasi aplikasi
  • Filters/, Libraries/, dll.

Singkatnya:

Semua logika dan pengembangan aplikasi kita berada di folder ini.

Jika kita ingin membuat fitur baru, hampir semuanya akan kita kerjakan di dalam folder app.


🌍 2. Folder public/ (Gerbang Masuk Aplikasi)

Folder public adalah satu-satunya folder yang boleh diakses oleh browser.

Di dalamnya terdapat file penting:

index.php

File inilah yang pertama kali dijalankan ketika seseorang mengakses website kita.

Biasanya di hosting (misalnya cPanel), folder public inilah yang diarahkan menjadi public_html.


βš™οΈ 3. Folder system/ (Mesin CodeIgniter)

Folder system berisi core atau mesin utama CodeIgniter 4.

Di dalamnya terdapat:

  • Core Controller
  • Core Model
  • Routing engine
  • Database engine
  • dan berbagai library bawaan

⚠ Penting:

Kita tidak boleh mengubah isi folder ini karena akan merusak sistem framework.


πŸ“ 4. Folder writable/ (Tempat Penyimpanan Dinamis/Sementara)

Folder ini digunakan untuk:

  • Cache
  • Log error
  • Session
  • Upload file

Folder ini harus memiliki izin write (permission) karena aplikasi akan menulis data ke dalamnya.


Memahami Konsep MVC CI4 dengan Analogi Restoran

Agar lebih mudah dipahami, kita gunakan perumpamaan restoran.

Bayangkan kita datang ke restoran dan memesan makanan.

Dalam konsep MVC (Model View Controller):

  • πŸ‘¨β€πŸ³ Model = Koki
  • πŸ§‘β€πŸ’Ό Controller = Pelayan
  • πŸ“‹ View = Menu & Penyajian Makanan

Mari kita jelaskan satu per satu.


πŸ‘¨β€πŸ³ Model = Koki (Data & Logika Bisnis)

Model bertugas mengolah data.

Dalam dunia pemrograman:

  • Mengambil data dari database
  • Menyimpan data
  • Mengupdate data
  • Menghapus data

Contoh: Jika kita ingin mengambil data user dari database, maka Model yang akan mengerjakannya.

Model tidak menampilkan data ke browser. Ia hanya bekerja di belakang layar.


πŸ§‘β€πŸ’Ό Controller = Pelayan (Penghubung)

Controller adalah penghubung antara Model dan View.

Tugasnya:

  • Menerima request dari user
  • Memanggil Model
  • Mengirim data ke View

Controller adalah β€œotak pengatur alur”.

Jika dalam restoran: Pelayan menerima pesanan, menyampaikannya ke koki, lalu membawa makanan ke meja.


πŸ“‹ View (Tampilan / Menu)

View adalah bagian yang dilihat oleh user di browser.

Berisi:

  • HTML
  • CSS
  • Tampilan data

View tidak boleh berisi logika berat atau query database.

Tugasnya hanya menampilkan data yang sudah disiapkan Controller.


Alur Kerja CodeIgniter (Dari URL Sampai Tampil di Browser)

Sekarang kita pahami alur kerja CodeIgniter ketika seseorang mengakses URL.

Misalnya user membuka:

https://domainkita.com/produk

Maka prosesnya adalah:


1️⃣ Request Masuk ke public/index.php

Semua request pertama kali masuk ke:

public/index.php

File ini adalah gerbang utama aplikasi.


2️⃣ Router Menganalisis URL

CodeIgniter memiliki sistem routing yang mengatur URL.

File routing ada di:

app/Config/Routes.php

Router akan menentukan:

URL /produk harus diarahkan ke Controller mana dan method apa.

Contoh:

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

Artinya:

  • URL /produk
  • Masuk ke Controller Produk
  • Menjalankan method index()

3️⃣ Controller Dipanggil

Controller menerima request.

Jika membutuhkan data, Controller akan memanggil Model.


4️⃣ Model Mengambil Data

Model akan:

  • Mengakses database
  • Mengambil data
  • Mengembalikan hasil ke Controller

5️⃣ Controller Mengirim Data ke View

Controller akan mengirim data ke View.

Contoh:

return view('produk_view', $data);

6️⃣ View Ditampilkan ke Browser

Browser akhirnya menampilkan HTML hasil dari View.

Selesai πŸŽ‰

Inilah yang disebut sebagai alur kerja CodeIgniter berbasis MVC.


Mengenal Folder app/Config

Folder app/Config adalah tempat pengaturan penting aplikasi.

Beberapa file penting di dalamnya:


πŸ”§ 1. App.php

Berisi konfigurasi umum seperti:

  • Base URL
  • Timezone
  • Default controller

πŸ›£ 2. Routes.php

Mengatur semua routing URL.

Di sinilah kita mendefinisikan bagaimana URL diproses.


πŸ—„ 3. Database.php

Mengatur koneksi database:

  • Host
  • Username
  • Password
  • Nama database

πŸ” 4. Filters.php

Digunakan untuk:

  • Autentikasi
  • Middleware
  • Proteksi halaman tertentu

Kesimpulan

Memahami struktur folder CodeIgniter 4 dan konsep MVC CI4 adalah langkah penting sebelum membuat aplikasi yang lebih kompleks.

Ringkasnya:

  • app/ β†’ tempat kita mengembangkan aplikasi

  • public/ β†’ gerbang masuk aplikasi

  • system/ β†’ mesin framework

  • writable/ β†’ penyimpanan cache dan log

  • MVC β†’ memisahkan logika, data, dan tampilan

  • Routing β†’ menentukan alur kerja CodeIgniter dari URL ke Controller

Dengan memahami konsep ini, kita tidak akan lagi bingung saat membuat fitur baru atau membaca dokumentasi resmi daripada framework codeigniter 4.

Hai perkenalkan, nama saya adalah Moses Fahmi Pratama, penulis sekaligus programer yang menulis dan mengembangkan blog ini. Bagi anda yang merasa terbantu akan kehadiran blog ini, anda dapat melakukan donasi kepada penulis melalui tombol Nih Buat Jajan dibawah ini πŸ€—

Nih buat jajan

Akhir kata saya ucapkan banyak terimakasih, atas donasi anda πŸ™πŸ˜Š

Comments