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

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