Selamat datang di KOS-IT - Making and Developing…

Pada tutorial sebelumnya, kita sudah mengetahui cara menginstall Codeigniter dan mengenal struktur direktori dari Codeigniter.

Pada tutorial kali ini kita akan belajar tentang routing dan MVC pada projek 1 kita yaitu Sistem Management Kepanitaan.

Namun sebelum kita melakukannya ada baiknya kita berkenalan dulu dengan konsep dasar Codeigniter

Codeigniter adalah framework PHP yang menggunakan konsep MVC.

Apa itu MVC ?

Mari kita bahas

Mengenal Konsep MVC pada Codeigniter

Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller).

MVC membagi aplikasi ke dalam tiga bagian fungsional: model, view, dan controller.

  • Model, Model mewakili struktur data. Model merupakan bagian yang bertugas untuk mengatur, menyiapkan, memanipulasi, dan mengorganisir data (biasanya dari basis data). Tugas yang ia lakukan meliputi memasukkan data ke basis data, pembaruan data, menghapus data, dan lain-lain. Model menjalankan tugasnya berdasarkan instruksi dari controller.
  • View, View merupakan bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
  • Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.

Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrograman berorientasi objek (Object-oriented programming).

Alur kerja seperti ini

MVC

  1. Mulai;
  2. User mengirim request ke web;
  3. File yang pertama kali dieksekusi adalah folder index.php
  4. Lalu dari folder index.php, request akan diteruskan oleh folder routers.php
  5. folder 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.

MVC2

Memahami Router pada Codeigniter

Router pada Codeigniter bertugas untuk menentukan controller dan method/fungsi yang akan dieksekusi.

Ketika kita membuka, http://localhost/simkep/ 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 folder config/routers.php

Router

Fungsi index() adalah fungsi yang akan dieksekusi saat kita mengakses controller welcome.

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

Router2

Membuat Beberapa Router

Sebagai latihan, coba tambahkan route /about/ dan /contact/ di dalam Controller folder 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().

route

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

folder views/about.php

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

folder views/contact.php

<h1>Contact Us</h1>
<p>Ini adalah halaman Contact</p>

Route sudah kita tambahkan.

Sekarang coba buka:

Hasilnya adalah akan terjadi error 404 not found.

route2

Kenapa seperti itu?

Ini karena route yang baru saja kita buat, belum didaftarkan ke dalam routers.php.

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

$route['about'] = 'welcome/about';
$route['contact'] = 'welcome/contact';

Tambahkan di bawah kode route yang sudah ada.

route3

Hasilnya:

route4

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.

Router2

Ini formatnya:

http://example.com/[controller-class]/[controller-method]/[arguments]

Penambahan route pada folder 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.

Berikutnya pelajari tentang:

Selamat belajar.

# Sebelumnya