Langsung ke konten utama

Tutorial Codeigniter #2: MVC dan Routing, Konsep dasar CI yang Harus Kamu Pahami

Pada tutorial sebelumnya, kita sudah belajar cara menginstal CI dan mengenal struktur direktori dari CI.
Sekarang kita lanjut belajar tentang routing dan MVC.
Rencananya, kita akan membuat aplikasi online shop (olshop).
Namun, sebelum kita mulai membuat aplikasi dengan CI, ada baiknya berkenalan dulu dengan konsep dasar CI.
Codeigniter adalah frameowrk yang menggunakan konsep MVC.
Apa itu MVC?
Mari kita bahas…

Mengenal Konsep MVC pada Codeigniter

MVC (Model, View, Controller) adalah sebuah pola desain (design pattern) arsitektur pengembangan aplikasi yang memisahkan dan mengelompokan beberapa kode sesuai degan fungsinya.
MVC membagi aplikasi ke dalam tiga bagian fungsional: model, view, dan controller.
  • Model adalah kode-kode untuk model bisnis dan data. biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
  • View merupakan bagian yang menangani presentation logic. berisi kode-kode untuk tampilan.
  • Controller merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.

Alur kerjanya seperti ini:
  1. Mulai;
  2. User mengirim request ke web;
  3. File yang pertama kali dieksekusi adalah index.php;
  4. Lalu dari index.php, request akan diteruskan oleh routers.php;
  5. routers.php akan mencari cache di server, apabila tedapat cache maka cache itu yang akan dikirim sebagai balasan (response). Apabila tidak ada cache barulah request diteruskan ke Controller;
  6. Controller akan bertanggunag jawab untuk mengambil data dari Model dan me-rendernya ke dalam View dengan menggunakan library, plugin, dan helper yang ada.
  7. Hasil render (view) dikirim ke pengguna dan disimpan dalam cache, apabila fitur cache aktif;
  8. Selesai.

Memahami Router pada Codeigniter

Router pada Codeigniter bertugas untuk menentukan controller dan method/fungsi yang akan dieksekusi.
Ketika kita membuka, http://localhost/gamingstore/ maka fungsi yang akan dieksekusi adalah fungsi index() yang berada di dalam controller welcome.
Kenapa bisa begitu?
Ini karena konfigurasi router defaultnya adalah controller welcome.
Coba saja buka pada file  config/routers.php.
Fungsi index() adalah fungsi yang akan dieksekusi saat kita mengakses controller welcome.

Sekarang coba buka: http://localhost/gamingstore/index.php/welcome/index, maka kita akan mendapatkan hal yang sama seperti membuka http://localhost/gamingstore/.


Membuat Beberapa Router

Sebagai latihan, coba tambahkan route /about/ dan /contact/ di dalam Controller Welcome dengan method ini:

 Tambahkan di bawah method index().

 Setelah itu tambahkan dua buah file view di dalam direktori views dengan isi sebagai berikut.
views/about.php

  
views/contact.php

 


Route sudah kita tambahkan.
Sekarang coba buka:
  • http://localhost/gamingstore/index.php/welcome/about/
  • dan http://localhost/gamingstore/index.php/welcome/contact/                              
  • Hasilnya:
    Apabila kita membuka http://localhost/gamingstore/index.php/contact, maka akan terjadi error 404 not found.
    Kenapa bisa begitu?
    Ini karena route yang baru saja kita buat, belum didaftarkan ke dalam routers.php.

    Sekarang buka file config/routers.php, lalu tambahkan kode berikut.


    Tambahkan di bawah kode route yang sudah ada.

    Hasilnya:


    Apakah kita harus menambahkan route pada routers.php di setiap pembuatan route baru?

    Jawabannya:

     Tidak harus, karena CI juga mampu mendeteksi otomatis route berdasarkan nama controller dan method yang dibuat.

    Ini formatnya:

     
    Penambahan route pada routers.php dibutuhkan saat kita ingin membuat kustom route untuk controller tertentu.

    Apa Selanjutnya?

    Kita sudah belajar tentang MVC dan Route. Ini memang masih dasar. Selanjutnya nanti kita akan banyak menggunakannya.
    Jadi, harap diphami betul dua hal ini.
    Jika masih bingung, silahkan ditanyakan melalui komentar.
    Terima kasih telah mengunjungi blog ini.

Komentar

Postingan populer dari blog ini

Tutorial Codeigniter #1: Pengenalan Codeigniter untuk Pemula

PHP memiliki banyak framework, saking banyaknya kadang kita dibuat galau untuk memilih framework. Milih framework saja masih bingung… …apalagi milih jodoh .😆 Serius! Banyak yang masih galau memilih framework. Bahkan menghabiskan waktunya untuk mencari perbandingan antar framework. Daripada mebanding-bandingkan, sebaiknya kita mulai belajar salah satu framework. Agar nanti kita bisa menyimpulkan sendiri, mana framework yang disukai dan cocok untuk kita gunakan. Kalau tidak cocok… ya tinggal cari dan pelajari framework yang lain. Sia-sia donk, sudah susah belajar tapi tidak cocok. Menurut saya: Tidak ada yang namanya sia-sia dalam belajar. Karena kita akan mendapatkan ilmu dan pengalaman. Kalaupun ilmunya belum bisa diamalkan, setidaknya kita bisa mengajari orang lain. Oke, lanjut… Ngomong-ngomong, apa itu framework? Framework dalam bahasa indonesia artinya kerangka kerja . Kerangka kerja untuk membuat sesuatu (web). Perumpamaannya mungkin bisa seperti itu. Dengan m

Tutorial Codeigniter #4: Teknik Membuat Template Admin yang Efektif

Pada tutorial sebelumnya, kita sudah berhasil menambahkan Bootstrappada proyek CI . Namun, masih ada yang kurang… Template masih dibuat dalam satu file saja. Ini nanti akan bermasalah ketika kita membuat halaman baru. Permsalahannya: Kita akan menulis kode yang sama berulang-ulang dalam file template yang berbeda. Bagaimana nanti kalau ada perubahan? Misal, perubahan link pada navbar. Maka kita harus mengubah semua file template yang kita buat satu per satu. Tentu ini kurang efektif, karena kita akan menghabiskan banyak waktu dan tentaga untuk mengubahnya. Salah satu solusi dari permasalahan ini yaitu dengan menggunakan partials . Dengan partials kita akan membagi template menjadi bagian-bagian kecil yang dapat digunakan kembali. Jika kamu pernah belajar Laravel, kamu mungkin pernah mendengar fungsi yield yang memungkinkan kita untuk mengimpor bagian template yang lain. Fungsi yield di Laravel sering digunakan untuk membuat layout. Lalu di Codeigniter, apakah ada fungsi