Breaking News
Home / CodeIgniter / MVC Pada CodeIgniter

MVC Pada CodeIgniter

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.

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.

About Martin Mulyo Syahidin

Check Also

Source Code Aplikasi Toko Online dengan CodeIgniter 3 Gratis

Selamat datang di blog Jurnal MMS. Di posting kali ini saya akan membagikan source code …

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *