Anda di halaman 1dari 19

Tutorial Codeigniter #2:

MVC dan Routing

Sumber: https://www.petanikode.com/codeigniter-mvc/
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
dengan fungsinya.
Mengenal Konsep MVC pada Codeigniter (2)
• 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.
Mengenal Konsep MVC pada Codeigniter (3)
Mengenal Konsep MVC pada Codeigniter (4)
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/tokobuah/ maka fungsi yang akan
dieksekusi adalah fungsi index() yang berada di dalam controller welcome.

class Welcome extends CI_Controller


{
public function index()
{
$this->load->view('welcome_message');
}
}
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/tokobuah/index.php/welcome/index, maka kita
akan mendapatkan hal yang sama seperti membuka http://localhost/tokobuah/
Membuat Beberapa Router
Sebagai latihan, coba tambahkan route /about/ dan /contact/ di dalam
Controller Welcome dengan method ini:

public function about()


{ // fungsi untuk me-load view about.php
$this->load->view('about');
}

public function contact()


{ // fungsi untuk me-load view contact.php
$this->load->view('contact');
}
Tambahkan di bawah method index().
Setelah itu tambahkan dua buah file view di dalam direktori views dengan isi
sebagai berikut.

views/about.php

<h1>About Us</h1>
<p>Ini adalah halaman about</p>

views/contact.php
<h1>Contact Us</h1>
<p>Ini adalah halaman Contact</p>
Sekarang coba buka:
http://localhost/tokobuah/index.php/welcome/about/
dan http://localhost/tokobuah/index.php/welcome/contact/
Hasilnya:
Apabila kita membuka http://localhost/tokobuah/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.
$route['about'] = 'welcome/about';
$route['contact'] = 'welcome/contact';
Tambahkan di bawah kode route yang sudah ada.
Hasilnya:
FAQ:
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.3
Ini formatnya:

http://example.com/[controller-class]/[controller-method]/[arguments]
Penambahan route pada routers.php dibutuhkan saat kita ingin membuat kustom route
untuk controller tertentu.

Anda mungkin juga menyukai