CodeIgniter, seperti kebanyakan framework lainnya, adalah framework yang menggunakan pattern MVC dan tentunya OOP, meskipun sangat longgar dan fleksibel.
MVC (Model, View, Controller) adalah sebuah metode untuk membuat sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). (Wikipedia)
Disini saya ingin sedikit menjelaskan tentang MVC dan penggunaannya pada CodeIgniter.
Daftar Isi
Model
Model berisi class yang berhubungan dengan data dan interaksi aplikasi dengan database. Model umumnya bertugas melakukan manipulasi database, seperti read, update, delete, search dan perintah-perintah yang berhubungan dengan database lainnya.
Berikut contoh sederhana model pada CodeIgniter.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class User_model extends CI_Model { public function __construct() { parent::__construct(); } public function showAllUsers() { //Menampilkan user return $this->db->get('users')->result(); } public function newUser($name, $address) { //Insert data baru $add = $this->db->insert('users', array('fullName' => $name, 'address' => $address)); return $add; } public function deleteUser($id) { //Menghapus data $del = $this->db->where('userID', $id)->delete('users'); return $del; } public function updateUser($id, $newName, $newAddr) { //Update data user $update = $this->db->where('userID', $id) ->update('users', array('fullName' => $newName, 'address' => $newAddr)); return $update; } }
Kode diatas, berisi class User_model. Class ini kita contohkan berisi 4 method, yaitu showAllUsers() yang berfungsi untuk menampilkan (read) data dari tabel users. Lalu method newUser() untuk menambah data user baru, method deleteUser() untuk menghapus user dan method updateUser() untuk mengubah (update) data user.
View
View berisi kode html yang nantinya akan ditampilkan kepada user. Di View inilah kita membuat halaman-halaman seperti header, footer, login, dan sebagainya. Contoh view:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> <!DOCTYPE html> <html> <head> <title>Daftar User Terdaftar</title> </head> <body> <table> <th> <td>ID</td> <td>Nama</td> <td>Alamat</td> </th> <?php foreach($users as $user) : ?> <tr> <td><?= $user->userID; ?></td> <td><?= $user->fullName; ?></td> <td><?= $user->address; ?></td> </tr> <?php endforeach; ?> </table> </body> </html>
Controller
Controller berfungsi sebagai jembatan penghubung antara model dan view serta berbagai sumber daya lainnya. Pada contoh berikut, Controller mengambil data semua user yang terdaftar dan menampilkannya ke view.
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class User extends CI_Controller { public function __construct() { parent::__construct(); //Memanggil model $this->load->model('user_model'); } public function lists() { //Ambil data (memanggil method showAllUsers()) $data['users'] = $this->user_model->showAllUsers(); //Memanggil view $this->load->view('user', $data); } }
Jika dijalankan, maka akan menghasilkan tampilan seperti berikut. (Buka disini: https://jurnalmms.web.id/ci/index.php/user/lists)
Note: jika kamu mencoba script diatas dan terjadi error, itu wajar. Karena kita belum setting database dan juga belum membuat tabel pada database. Untuk setting database dan databasenya akan kita abahs di posting berikutnya.
Saya kira cukup sekian. Untuk bagaimana cara membuat controller, model, view hingga parsing data dari controller ke view, akan kita bahas dalam posting berikutnya.