BAB 6 – Model: Mengelola Data & Database di CodeIgniter

BAB 6 – Model: Mengelola Data & Database di CodeIgniter

Setelah memahami Controller dan View, kini saatnya fokus pada Model.

Model adalah bagian dari MVC (Model–View–Controller) yang bertugas mengelola data dan database. Dengan model, aplikasi dapat mengambil, menyimpan, memperbarui, atau menghapus data secara terstruktur, tanpa mencampur logika dengan tampilan.

Pada BAB ini, kita akan membahas:

  • Pengertian model
  • Membuat model
  • Fungsi model
  • Memanggil model di controller
  • Konsep MVC secara utuh

Tujuan Pembelajaran

Setelah menyelesaikan BAB 6, Anda akan mampu:

  1. Memahami peran model dalam CodeIgniter
  2. Membuat model pertama
  3. Menggunakan fungsi model untuk operasi data
  4. Memanggil model di controller
  5. Memahami konsep MVC secara menyeluruh

6.1 Pengertian Model

Model adalah lapisan aplikasi yang mengelola data. Fungsi utama model:

  • Mengambil data dari database
  • Menyimpan data ke database
  • Memproses logika bisnis terkait data
  • Memisahkan logika data dari tampilan (View) dan alur (Controller)

📌 Catatan:

  • Model tidak boleh mencampur tampilan HTML
  • Gunakan model untuk query, validasi, dan manipulasi data

6.2 Membuat Model

6.2.1 CodeIgniter 3

Buat file model:

application/models/User_model.php

Isi file:

<?php
class User_model extends CI_Model {

    // Mengambil semua data user
    public function get_all_users() {
        return $this->db->get('users')->result();
    }

    // Menambahkan data user baru
    public function insert_user($data) {
        return $this->db->insert('users', $data);
    }
}

📌 Catatan:

  • Nama file & class harus sama
  • Gunakan suffix _model agar mudah dikenali

6.2.2 CodeIgniter 4

Buat file model:

app/Models/UserModel.php

Isi file:

<?php
namespace App\Models;

use CodeIgniter\Model;

class UserModel extends Model {
    protected $table = 'users';
    protected $primaryKey = 'id';
    protected $allowedFields = ['nama', 'email'];
}

📌 Tips:

  • CI 4 menggunakan properti $allowedFields untuk keamanan
  • Model CI 4 lebih modern dengan namespace dan fitur built-in

6.3 Fungsi Model

Model digunakan untuk mengelola database. Beberapa contoh fungsi:

FungsiKeterangan
get() / findAll()Mengambil data
insert()Menyimpan data baru
update()Memperbarui data
delete()Menghapus data
Custom functionMemproses query kompleks

6.4 Memanggil Model di Controller

6.4.1 CI 3

Controller:

class User extends CI_Controller {
    public function index() {
        $this->load->model('User_model');
        $data['users'] = $this->User_model->get_all_users();
        $this->load->view('user_view', $data);
    }
}
  • load->model() → memanggil model
  • $this->User_model->get_all_users() → mengambil data
  • Data dikirim ke view untuk ditampilkan

6.4.2 CI 4

Controller:

namespace App\Controllers;
use App\Models\UserModel;

class User extends BaseController {
    public function index() {
        $userModel = new UserModel();
        $data['users'] = $userModel->findAll();
        return view('user_view', $data);
    }
}

📌 Catatan:

  • CI 4 menggunakan namespace dan instansiasi object
  • Lebih aman dan modern dibanding CI 3

6.5 Konsep MVC Secara Utuh

Setelah mengenal Model, View, dan Controller, inilah alur MVC secara lengkap:

Browser → Controller → Model → Controller → View → Browser

Contoh Alur

  1. User membuka halaman /user
  2. Controller User memanggil model UserModel
  3. Model mengambil data dari database
  4. Controller menerima data dari model
  5. Controller mengirim data ke view user_view
  6. View menampilkan data ke user

📌 Manfaat MVC:

  • Terstruktur → Kode mudah dibaca
  • Terpisah → Logika, tampilan, dan data tidak bercampur
  • Scalable → Mudah dikembangkan untuk proyek besar

Penutup

Dengan memahami Model, aplikasi CodeIgniter Anda bisa:

  • Mengambil dan memproses data dengan aman
  • Memisahkan logika bisnis dari tampilan
  • Mengikuti prinsip MVC secara benar

Setelah BAB 6 ini, Anda sudah menguasai dasar MVC lengkap: Controller, View, dan Model.

Pada BAB selanjutnya, kita akan membahas CRUD (Create, Read, Update, Delete) lengkap, sehingga aplikasi Anda bisa menyimpan, menampilkan, mengubah, dan menghapus data secara nyata.