Membuat aplikasi web menggunakan Codeigniter [part 2]

CI-part-2Setelah mempelajari tutorial singkat pada part 1 dimana bisa kita lihat sangat mudah dalam mengembangkan sebuah aplikasi berbasis web menggunakan Codeigniter.

Sekarang akan saya lanjutkan pembahasan mengenai Codeigniter dengan membahas Model.

Apa itu model?
Kalau pernah mendengar tentang konsep MVC maka Model ini adalah M dari singkatan itu. Jika merujuk pada wiki:

“Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.” – wikipedia

Dari pernyataan tersebut maka model biasanya digunakan untuk berinteraksi dengan data.

Ada dua jenis model:
1. Fat model, dari katanya Fat Model berarti suatu model menampung sebagian besar proses. Ini berarti mengurangi proses pada controller
2. Slim model, jenis model ini berarti model hanya menangani sedikit proses. Lebih berfokus kepada pengolahan data.

Yang saya sarankan adalah menggunakan Slim model.

Bagaimana membuat model pada codeigniter?
Untuk membuat sebuah model sangatlah mudah, hanya dengan membuat sebuah file pada folder application/model
berinama sesuai peruntukannya. Masukkan kode berikut:

class tbBuku extends CI_Model{
public function listBuku(){
//kode anda
$qr = $this->db->get('buku');
if(!$qr->num_rows()) return false;
 
return $qr->result();
}
}

class model diturunkan dari CI_Model, untuk bisa menggunakan method-method CI. Dari model bisa menggunakan semua method pada Controller, karena CI_Model class sudah menggunakan magic method.

Karena berinteraksi dengan model membutuhkan database, maka perlu diaktifkan library databasenya. Disini kita memerlukan load library secara autoload saja karena kita akan sering menggunakan library db ini — memang ada suatu kasus yang tidak membutuhkan database. Caranya adalah, silahkan buka file application/config/autoload.php dan rubah kode pada baris … menjadi:

$autoload = array(‘db’);

Sekarang library database sudah diload secara otomatis pada saat request terjadi. Langkah selanjutnya adalah menggunakan model dari controller. Misal kita telah membuat controller buku seperti contoh berikut:

class Buku extends CI_Controller
{
public function index(){
$this->load->model('tbBuku');
$data = $this->tbBuku->listBuku();
$this->load->view('buku', array(
'rows' => $data
));
}
}

Seperti yang bisa kita lihat dari script diatas, kita load model dengan model() method dan kemudian bisa langsung menggunakan nama model sebagai variabel pada Controller.