Cara Membuat HMVC pada CodeIgniter 3

 

CodeIgniter (CI) adalah salah satu framework PHP yang populer digunakan untuk membangun aplikasi web. Framework ini dikenal dengan kemudahan penggunaan, dokumentasi yang lengkap, dan performa yang tinggi. Salah satu fitur yang sangat berguna dalam pengembangan aplikasi yang kompleks adalah konsep Modularized MVC atau yang sering disebut dengan HMVC (Hierarchical Model-View-Controller). Pada artikel ini, kita akan membahas bagaimana cara membuat dan mengimplementasikan HMVC di dalam proyek CodeIgniter 3.

1. Apa Itu HMVC?

HMVC adalah pengembangan dari konsep MVC (Model-View-Controller), yang bertujuan untuk membuat struktur aplikasi yang lebih modular dan terorganisir. Pada HMVC, aplikasi dibagi menjadi modul-modul yang lebih kecil, di mana masing-masing modul ini memiliki model, view, dan controller-nya sendiri. Dengan cara ini, pengembangan dan pemeliharaan aplikasi menjadi lebih mudah, karena kode lebih terstruktur dan dapat digunakan kembali.

Pada CodeIgniter, secara default, semua controller berada di dalam folder controllers, model di models, dan view di views. Namun, dengan menggunakan HMVC, kita bisa membuat folder terpisah untuk setiap modul, sehingga struktur aplikasi menjadi lebih terorganisir.

2. Keuntungan Menggunakan HMVC

Berikut adalah beberapa keuntungan yang bisa didapatkan dengan menggunakan HMVC pada proyek CodeIgniter:

  • Modularitas: Membagi aplikasi ke dalam modul-modul terpisah memudahkan pengelolaan, pengembangan, dan pengujian.
  • Penggunaan Ulang Kode: Dengan pemisahan ke dalam modul, kita dapat dengan mudah menggunakan kembali modul-modul yang sudah ada untuk aplikasi lainnya.
  • Peningkatan Performa: Dengan struktur yang lebih modular, proses caching dan pengelolaan data lebih efisien.
  • Pemeliharaan yang Lebih Mudah: Ketika aplikasi berkembang, pemeliharaan menjadi lebih mudah karena kode terpisah ke dalam modul-modul kecil.

3. Persiapan Awal

Sebelum memulai implementasi HMVC pada CodeIgniter 3, pastikan Anda sudah menginstal dan mengkonfigurasi CodeIgniter 3 di server Anda. Selain itu, Anda juga perlu mengunduh library HMVC untuk CodeIgniter 3 agar struktur modul dapat dibuat.

3.1. Mengunduh dan Menginstall Library HMVC

  1. Unduh Library HMVC: Untuk mengimplementasikan HMVC pada CodeIgniter 3, Anda dapat mengunduh paket HMVC dari repository GitHub yang disediakan oleh komunitas. Cukup buka https://github.com/kenjis/ci-hmvc dan unduh repository tersebut.

  2. Salin Folder ke Project CodeIgniter: Setelah mengunduh, ekstrak folder application/ dari repositori dan salin ke dalam folder aplikasi proyek CodeIgniter Anda. Pastikan untuk mengganti folder application/ yang ada dengan folder dari hasil ekstraksi tadi.

  3. Pengaturan Autoload: Pastikan untuk memuat autoload library HMVC dengan menambahkan kode berikut di file application/config/autoload.php:

    $autoload['libraries'] = array('database', 'session', 'HMVC');
    

3.2. Menyiapkan Database dan Konfigurasi Umum

Pastikan konfigurasi database sudah benar di file application/config/database.php. Anda juga perlu mengatur file application/config/config.php dengan konfigurasi dasar seperti base URL dan session.

4. Struktur Folder dengan HMVC

Setelah instalasi dan konfigurasi awal selesai, Anda akan melihat perubahan pada struktur folder aplikasi Anda. Dengan menggunakan HMVC, struktur folder akan terlihat seperti ini:

application/
    controllers/
        welcome.php
    modules/
        modul1/
            controllers/
                Modul1.php
            models/
                Modul1_model.php
            views/
                view1.php
        modul2/
            controllers/
                Modul2.php
            models/
                Modul2_model.php
            views/
                view2.php

Di atas adalah struktur dasar dengan dua modul: modul1 dan modul2. Masing-masing modul memiliki folder controllers, models, dan views sendiri-sendiri, yang merupakan ciri khas dari HMVC.

5. Membuat Modul dengan HMVC

Untuk membuat modul di CodeIgniter menggunakan HMVC, kita akan melakukan beberapa langkah.

5.1. Membuat Controller pada Modul

Misalkan kita ingin membuat modul dengan nama User. Di dalam folder application/modules/user/controllers/, buat file controller dengan nama User.php:

load->model('User_model');
    }

    public function index() {
        $data['users'] = $this->User_model->get_all_users();
        $this->load->view('user_view', $data);
    }

    public function add_user() {
        $this->load->view('add_user_view');
    }
}

Penjelasan:

  • MX_Controller adalah controller base yang digunakan di HMVC. Ini memungkinkan controller di dalam modul untuk menggunakan fungsi-fungsi dasar CodeIgniter, seperti pemanggilan model dan view.
  • Kita memuat model User_model untuk mengakses data pengguna, dan kemudian memuat view user_view untuk menampilkan data pengguna.

5.2. Membuat Model untuk Modul

Selanjutnya, kita perlu membuat model untuk modul User. Di dalam folder application/modules/user/models/, buat file model dengan nama User_model.php:

db->get('users');
        return $query->result();
    }

    public function add_user($data) {
        $this->db->insert('users', $data);
    }
}

Penjelasan:

  • Model ini bertugas untuk berinteraksi dengan database. Fungsi get_all_users() mengambil data dari tabel users, sementara add_user() untuk menambah data pengguna baru ke dalam tabel tersebut.

5.3. Membuat View untuk Modul

Terakhir, buat view untuk menampilkan data pengguna dan form untuk menambah pengguna baru. Di dalam folder application/modules/user/views/, buat file user_view.php dan add_user_view.php.

Contoh user_view.php:

List of Users

  • name; ?>

Add New User

Contoh add_user_view.php:

Add New User

6. Menambahkan Routing untuk Modul

Di CodeIgniter, Anda juga dapat menambahkan routing khusus untuk setiap modul. Untuk melakukannya, buka file application/config/routes.php dan tambahkan routing khusus untuk modul User:

$route['user'] = 'user/index';
$route['user/add_user'] = 'user/add_user';

7. Mengakses Modul dari URL

Setelah semua konfigurasi selesai, Anda dapat mengakses modul User melalui URL seperti berikut:

  • Untuk melihat daftar pengguna: http://localhost/your_project/index.php/user
  • Untuk menambah pengguna baru: http://localhost/your_project/index.php/user/add_user

8. Kesimpulan

Menggunakan HMVC di CodeIgniter 3 dapat membantu Anda untuk mengorganisir aplikasi dengan lebih modular dan terstruktur. Dengan memecah aplikasi menjadi modul-modul kecil, Anda akan lebih mudah dalam pengembangan dan pemeliharaan aplikasi, serta memungkinkan penggunaan kembali kode yang lebih efisien.

Dengan mengikuti langkah-langkah yang telah dijelaskan di atas, Anda dapat dengan mudah membuat dan mengimplementasikan HMVC dalam aplikasi CodeIgniter 3. Struktur aplikasi yang modular akan sangat berguna, terutama untuk aplikasi yang berkembang seiring waktu.

 

 

Dadang Heksa

Itaque quidem optio quia voluptatibus dolorem dolor. Modi eum sed possimus accusantium. Quas repellat voluptatem officia numquam sint aspernatur voluptas. Esse et accusantium ut unde voluptas.

8 Comments

Georgia Reader Reply

Et rerum totam nisi. Molestiae vel quam dolorum vel voluptatem et et. Est ad aut sapiente quis molestiae est qui cum soluta. Vero aut rerum vel. Rerum quos laboriosam placeat ex qui. Sint qui facilis et.

Aron Alvarado Reply

Ipsam tempora sequi voluptatem quis sapiente non. Autem itaque eveniet saepe. Officiis illo ut beatae.

Lynda Small Reply

Enim ipsa eum fugiat fuga repellat. Commodi quo quo dicta. Est ullam aspernatur ut vitae quia mollitia id non. Qui ad quas nostrum rerum sed necessitatibus aut est. Eum officiis sed repellat maxime vero nisi natus. Amet nesciunt nesciunt qui illum omnis est et dolor recusandae. Recusandae sit ad aut impedit et. Ipsa labore dolor impedit et natus in porro aut. Magnam qui cum. Illo similique occaecati nihil modi eligendi. Pariatur distinctio labore omnis incidunt et illum. Expedita et dignissimos distinctio laborum minima fugiat. Libero corporis qui. Nam illo odio beatae enim ducimus. Harum reiciendis error dolorum non autem quisquam vero rerum neque.

Sianna Ramsay Reply

Et dignissimos impedit nulla et quo distinctio ex nemo. Omnis quia dolores cupiditate et. Ut unde qui eligendi sapiente omnis ullam. Placeat porro est commodi est officiis voluptas repellat quisquam possimus. Perferendis id consectetur necessitatibus.

Nolan Davidson Reply

Distinctio nesciunt rerum reprehenderit sed. Iste omnis eius repellendus quia nihil ut accusantium tempore. Nesciunt expedita id dolor exercitationem aspernatur aut quam ut. Voluptatem est accusamus iste at. Non aut et et esse qui sit modi neque. Exercitationem et eos aspernatur. Ea est consequuntur officia beatae ea aut eos soluta. Non qui dolorum voluptatibus et optio veniam. Quam officia sit nostrum dolorem.

Kay Duggan Reply

Dolorem atque aut. Omnis doloremque blanditiis quia eum porro quis ut velit tempore. Cumque sed quia ut maxime. Est ad aut cum. Ut exercitationem non in fugiat.

Leave a Reply

Your email address will not be published. Required fields are marked *