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
Contents
Tujuan Pembelajaran
Setelah menyelesaikan BAB 6, Anda akan mampu:
- Memahami peran model dalam CodeIgniter
- Membuat model pertama
- Menggunakan fungsi model untuk operasi data
- Memanggil model di controller
- 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
_modelagar 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
$allowedFieldsuntuk keamanan - Model CI 4 lebih modern dengan namespace dan fitur built-in
6.3 Fungsi Model
Model digunakan untuk mengelola database. Beberapa contoh fungsi:
| Fungsi | Keterangan |
|---|---|
get() / findAll() | Mengambil data |
insert() | Menyimpan data baru |
update() | Memperbarui data |
delete() | Menghapus data |
| Custom function | Memproses 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
- User membuka halaman
/user - Controller
Usermemanggil modelUserModel - Model mengambil data dari database
- Controller menerima data dari model
- Controller mengirim data ke view
user_view - 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.