Diperbarui: 5 Desember 2025
Ringkasan cepat:
- HMVC (Hierarchical Model View Controller) di CodeIgniter 3 membuat setiap fitur aplikasi menjadi modul sendiri (punya controller, model, dan view di satu folder).
- Dibanding MVC biasa, HMVC lebih enak untuk project besar atau dikerjakan tim: struktur rapi, kode lebih mudah dipisah, dan modul bisa dipakai ulang.
- Struktur dasar HMVC:
application/modules/nama_modul/controllers,models, danviews+ fileMY_Controllerdan library HMVC diapplication/coredanthird_party/MX. - Tutorial ini memakai pola umum Modular Extensions HMVC untuk CodeIgniter 3: cukup tambah beberapa file core, buat folder
modules, lalu buat modul sepertiblogataupegawai. - Dari sisi syariat, gunakan framework ini untuk projek yang halal dan pastikan server/hosting & tools yang dipakai legal (bukan bajakan), jujur terhadap klien, dan tidak dipakai membangun aplikasi maksiat.
Daftar isi
- Kapan sebaiknya memakai HMVC di CodeIgniter 3?
- Apa itu HMVC di CodeIgniter 3 & kelebihannya?
- Syarat & persiapan sebelum mengaktifkan HMVC
- Langkah-langkah konfigurasi HMVC CodeIgniter 3
- Contoh modul HMVC CodeIgniter 3: Modul Blog sederhana
- Tips penting saat memakai HMVC di CodeIgniter 3
- Risiko & kesalahan umum pemula ketika pakai HMVC
- FAQ seputar HMVC CodeIgniter 3
- Baca juga di Beginisob.com
Kapan sebaiknya memakai HMVC di CodeIgniter 3?
Pertimbangkan memakai HMVC ketika:
- Aplikasi web mulai punya banyak fitur (auth, produk, blog, laporan, API, dsb.) dan folder
controllers/viewssudah terasa penuh. - Project dikerjakan lebih dari satu programmer, sehingga butuh pemisahan modul yang jelas untuk tiap orang.
- Kamu ingin membuat modul yang bisa dipakai ulang di beberapa project, misalnya modul auth, user management, atau blog.
- Mulai terbiasa dengan MVC bawaan CodeIgniter dan ingin struktur proyek lebih terorganisir.
Untuk aplikasi kecil (satu halaman landing page atau CRUD sederhana), pattern MVC biasa sudah cukup. HMVC baru terasa manfaatnya untuk project jangka panjang atau yang terus bertambah fiturnya.
Apa itu HMVC di CodeIgniter 3 & kelebihannya?
1. Pengertian singkat HMVC
HMVC adalah singkatan dari Hierarchical Model View Controller. Di CodeIgniter 3, HMVC berarti kamu mengatur kode dalam bentuk modul yang masing-masing punya:
- Controller sendiri
- Model sendiri
- View sendiri
dan semuanya berada dalam satu folder modul, misalnya:
application/
modules/
blog/
controllers/
models/
views/
auth/
controllers/
models/
views/
Berbeda dengan MVC biasa yang semua controller disimpan di application/controllers, semua view di application/views, dan semua model di application/models.
2. Kelebihan HMVC
- Lebih modular: setiap fitur jadi paket sendiri, mudah dihapus atau dipindah.
- Mudah dikerjakan tim: satu orang pegang modul auth, yang lain produk, dan seterusnya.
- Lebih rapi untuk project besar: struktur folder tidak cepat “berantakan”.
- Re-use: modul bisa digunakan di project lain dengan sedikit penyesuaian.
3. HMVC di CodeIgniter 3 pakai apa?
CodeIgniter 3 sendiri tidak membawa HMVC secara bawaan. Praktiknya, developer memakai library eksternal seperti Modular Extensions HMVC yang menambahkan class MX_Controller, loader khusus modul, dan dukungan struktur folder modules.
Syarat & persiapan sebelum mengaktifkan HMVC
1. Lingkungan pengembangan (XAMPP/Laragon/hosting)
- Server lokal (XAMPP, Laragon, dsb.) sudah berjalan normal dan bisa membuka
http://localhost/. - Folder project CodeIgniter 3 sudah dibuat dan bisa diakses tanpa error.
- PHP versi masih kompatibel dengan CodeIgniter 3 (banyak yang pakai PHP 7.x, sebagian sudah menguji di PHP 8.x dengan sedikit penyesuaian).
2. Dasar CodeIgniter yang sebaiknya sudah dikuasai
- Struktur dasar CI3 (folder
application,system,index.php). - Cara membuat controller dan view sederhana.
- Cara mengatur
config.php,autoload.php, danroutes.php.
3. Catatan syariat & etika
- Gunakan CodeIgniter & tool pendukung yang legal (lisensi asli/opensource yang sah).
- Gunakan skill coding untuk aplikasi yang halal (bukan untuk judi online, pornografi, penipuan, riba, dsb.).
- Jujur terhadap klien: jelaskan batasan sistem, jangan memanipulasi data log atau laporan demi keuntungan sesaat.
Langkah-langkah konfigurasi HMVC CodeIgniter 3
Berikut adalah pola konfigurasi yang umum dipakai di banyak tutorial HMVC CodeIgniter 3. Kamu bisa menyesuaikan nama folder sesuai kebutuhan, tapi prinsipnya sama.
Langkah 1 – Pastikan CodeIgniter 3 sudah berjalan normal
- Instal CodeIgniter 3 di folder
htdocs/www(misalnyaci-hmvc-tutorial). - Atur
base_urldiapplication/config/config.php. - Coba akses
http://localhost/ci-hmvc-tutorial/→ pastikan halaman welcome CI muncul.
Langkah 2 – Tambah library HMVC (Modular Extensions)
Struktur akhir yang ingin kita capai kurang lebih seperti ini:
application/
core/
MY_Controller.php
third_party/
MX/
Base.php
Loader.php
Modules.php
modules/
(nanti diisi modul, misalnya "blog")
File di dalam third_party/MX berisi class tambahan (Loader, Modules, dsb.) yang memungkinkan CodeIgniter memanggil controller dan view dari masing-masing modul secara otomatis.
Langkah 3 – Buat file MY_Controller
Buat file application/core/MY_Controller.php dengan isi contoh seperti ini:
<?php
defined('BASEPATH') or exit('No direct script access allowed');
require APPPATH . 'third_party/MX/Controller.php';
class MY_Controller extends MX_Controller
{
public function __construct()
{
parent::__construct();
// Tempat yang enak untuk load helper/library global
$this->load->helper('url');
}
}
Nantinya, semua controller di modul cukup extends MY_Controller agar otomatis memakai loader HMVC dan helper global yang kamu pasang di sini.
Langkah 4 – Buat folder modules
- Di dalam folder
application, buat folder baru bernamamodules. - Di dalam
modules, setiap modul akan punya subfolder sendiri:application/modules/blog/application/modules/auth/- dan seterusnya.
Langkah 5 – Sesuaikan autoload (opsional tapi disarankan)
Buka application/config/autoload.php, kamu bisa menambahkan helper dan library yang sering dipakai:
$autoload['helper'] = array('url');
$autoload['libraries'] = array('database', 'session');
Ini bukan bagian wajib HMVC, tapi membuat development lebih nyaman.
Langkah 6 – Atur routes jika perlu
HMVC memungkinkan module memuat route sendiri, tapi untuk pemula cukup pakai application/config/routes.php. Misalnya, nanti kita punya modul blog dengan controller Blog, maka:
$route['blog'] = 'blog/blog/index';
Artinya, ketika user membuka http://localhost/ci-hmvc-tutorial/blog, CodeIgniter akan memanggil modul blog, controller Blog, method index().
Langkah 7 – Uji HMVC dengan modul sederhana
Setelah file core & folder modules siap, langkah berikutnya adalah membuat modul yang benar-benar berjalan. Di bawah, kita buat contoh modul blog sederhana.
Contoh modul HMVC CodeIgniter 3: Modul Blog sederhana
1. Struktur folder modul blog
Buat struktur seperti ini:
application/
modules/
blog/
controllers/
models/
views/
2. Controller: application/modules/blog/controllers/Blog.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Blog extends MY_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('blog/Blog_model', 'blog');
}
public function index()
{
$data['title'] = 'Daftar Artikel Blog';
$data['posts'] = $this->blog->get_posts();
$this->load->view('blog/index', $data);
}
}
3. Model: application/modules/blog/models/Blog_model.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Blog_model extends CI_Model
{
public function get_posts()
{
// Contoh data dummy, nantinya bisa diganti query database
return array(
array(
'title' => 'Belajar HMVC CodeIgniter 3',
'slug' => 'belajar-hmvc-codeigniter-3'
),
array(
'title' => 'Membuat Modul Blog Sederhana',
'slug' => 'membuat-modul-blog-sederhana'
)
);
}
}
4. View: application/modules/blog/views/index.php
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<title><?= $title; ?></title>
</head>
<body>
<h1><?= $title; ?></h1>
<ul>
<?php foreach ($posts as $post): ?>
<li>
<strong><?= $post['title']; ?></strong>
(<?= $post['slug']; ?>)
</li>
<?php endforeach; ?>
</ul>
</body>
</html>
5. Uji modul di browser
- Pastikan route di
routes.php:$route['blog'] = 'blog/blog/index'; - Buka
http://localhost/ci-hmvc-tutorial/blog. - Kalau konfigurasi benar, kamu akan melihat judul “Daftar Artikel Blog” dan daftar 2 artikel dummy.
Tips penting saat memakai HMVC di CodeIgniter 3
- Konsisten penamaan folder & class
Nama folder modul (misalnyablog) sebaiknya huruf kecil, nama controllerBlog.phpdengan classBlog. Ini meminimalkan error “controller not found”. - Jangan jadikan modul “tempat sampah”
Satu modul = satu domain fitur yang jelas (auth, blog, produk, laporan). Hindari modul yang isinya campur-aduk. - Manfaatkan MY_Controller
Simpan logic umum (cek login, load theme, dsb.) diMY_Controllersupaya modul lain tidak perlu copy–paste. - Dokumentasikan struktur modul
Minimal tulis README singkat tentang apa fungsi modul tersebut dan dependency-nya (library, helper, tabel database). - Jaga niat & kejujuran
Aplikasi bisa jadi ladang pahala (misalnya sistem zakat, pendidikan, UMKM halal) atau sebaliknya; kembalikan ke apa yang kamu bangun dengan skill ini.
Risiko & kesalahan umum pemula ketika pakai HMVC
- Controller masih extends CI_Controller sehingga fitur HMVC (load modul lain, dll.) tidak bekerja.
- Struktur folder salah (misalnya
modulebukanmodules, atau typo nama folder). - Library HMVC tidak dimuat dengan benar di
third_party/MXatau fileMY_Controllersalah path. - Routing membingungkan karena semua modul di-route ke URL yang mirip tanpa dokumentasi.
- Over-modularisasi: modul terlalu banyak dan terlalu kecil sehingga justru sulit dikelola.
FAQ seputar HMVC CodeIgniter 3
1. Apakah HMVC bawaan CodeIgniter 3?
Tidak. CodeIgniter 3 tidak menyediakan HMVC secara resmi. HMVC di CI3 biasanya memakai ekstensi pihak ketiga seperti Modular Extensions yang menambahkan class dan loader khusus untuk modul.
2. Apakah semua project wajib pakai HMVC?
Tidak. Untuk CRUD sederhana atau aplikasi kecil, MVC biasa sudah cukup. HMVC lebih terasa manfaatnya ketika project makin besar, banyak fitur, dan dikerjakan tim.
3. Apakah HMVC bekerja di shared hosting?
Bekerja, selama server mendukung CodeIgniter 3 secara umum. HMVC hanya menambah struktur folder dan beberapa class loader; tidak ada kebutuhan server khusus di luar itu.
4. Boleh campur modul HMVC dengan controller “biasa” di application/controllers?
Boleh. Kamu bisa punya sebagian fitur sebagai modul HMVC dan sebagian lain tetap menggunakan pola MVC standar. Yang penting, route dan struktur foldernya jelas.
5. Apakah HMVC membuat aplikasi lebih lambat?
Overhead HMVC pada CodeIgniter 3 umumnya sangat kecil dibanding benefit kerapian kode. Bottleneck utama aplikasi web biasanya ada di query database, bukan di layer HMVC-nya.
Baca juga di Beginisob.com
- Kenapa localhost tidak bisa dibuka? Ini penyebab dan solusinya – berguna kalau saat uji modul HMVC, localhost tiba-tiba error.
- Cara install WordPress di XAMPP dengan mudah dan cepat – melatih pemahaman server lokal & database sebelum main framework lain.
- Pengganti Cloudflare 2025: daftar CDN, DNS, dan WAF alternatif – bermanfaat saat aplikasi CodeIgniter-mu sudah online dan butuh optimasi & perlindungan.
- Panduan Google Analytics 4 (GA4) untuk pemula – supaya aplikasi/web yang kamu buat bisa diukur trafik & performanya.
- Panduan NIB untuk freelancer online 2025 – penting kalau kamu ingin menjadikan jasa pembuatan web CodeIgniter sebagai usaha resmi.
- Daftar KBLI industri kreatif 2025 untuk desain grafis, content creator, dan jasa IT – referensi memilih KBLI yang tepat bagi programmer & web developer.
Comments
Post a Comment