Model View Controller Codeigniter

1 Comment
Model View Controller Codeigniter

Melanjutkan dari notes saya sebelumnya yang hanya menjelaskan tentang View Controller Pada Codeigniter. Kali ini saya mencoba menambahkan fungsi dari Model pada Codeigniter itu sendiri.

Model pada codeigniter sebenarnya adalah class yang kita buat khusus untuk melakukan perintah-perintah yang berhubungan dengan database, atau biasa kita sebut CRUD (Create, Read, update dan Delete). Dengan memanfaatkan Active Record Class yang sudah ada pada codeigniter, kita dapat dengan mudah melakukan query pada database kita.

Silahkan buat database dan table dengan melakukan langkah-langkah berikut:

  1. Buat database bernama dbci.
  2. Buat table news.
  3. Buat field pada table news tersebut seperti berikut.
    • id, SMALLINT(5), auto increment, unsigned, PrimaryKey
    • title, VARCHAR(100)
    • content, text
    • created, date
  4. Input record 3-5 buah data, dengan menggunakan content dummy.

Setelah anda membuat database, buka file database.php yang ada di dalam folder application/config, lalu edit pada bagian ini:


$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'username_db_anda';
$db['default']['password'] = 'password_db_anda';
$db['default']['database'] = 'nama_db_anda';
$db['default']['dbdriver'] = 'mysql';

File diatas adalah konfigurasi aplikasi anda untuk digunakan saat anda melakukan koneksi ke database server. Jika anda menggunakan database lain selain mysql, silahkan rubah value pada bagian $db['default']['dbdriver'] = ‘mysql’;
Pilihan database yang tersedia dalam codeigniter adalah mysql, mysqli, postgre, odbc, mssql, sqlite, oci8.

Setelah anda melakukan konfigurasi database, buat class Model, seperti berikut:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class ModelNews extends CI_Model {

function __construct()
{
parent::__construct();
}

function getNews()
{
$this->db->order_by('created', 'DESC');
$query = $this->db->get('news');
return $query;
}
}
?>

Function getNews() diatas sama saja dengan query seperti ini
$query = mysql_query(“SELECT * FROM news ORDER BY created DESC”);

Sekarang edit file controller news yang ada di post sebelumnya, menjadi seperti berikut.

class News extends CI_Controller {

function __construct()
{
parent::__construct();
}

function index()
{
$data['title'] = 'Title Situs';

$this->load->database();
$this->load->model('ModelNews');
$data['news'] = $this->ModelNews->getNews();
$this->load->view('news', $data);
}
}
?>

Ingat! function read() telah saya rubah menjadi function index().Function index() adalah function yang akan di akses jika request dari url tidak menyertakan nama function, seperti http://localhost/ci/index.php/news.

Sebelum menggunakan Active Record Class, anda harus terlebih dahulu memanggil class database dengan code seperti ini $this->load->database(); Kalau anda tidak melakukan load->database, maka anda tidak dapat menggunakan active record class.

Selanjutnya, sebelum menggunakan model, anda juga harus terlebih dahulu memanggil (load) model tersebut seperti ini $this->load->model(‘ModelNews’);
Repot ya kalau setiap mau menggunakan model, kita harus terlebih dahulu load model tersebut.

Tenang saja, coba anda buka file application/config/autoload.php
Dibagian paling bawah, anda bisa memasukan nama model anda
$autoload['model'] = array(‘ModelNews’, ‘model2′, ‘model3′);
artinya dengan memasukan nama model kita disitu kita tidak perlu lagi memanggil model tersebut saat kita ingin menggunakannya. Karena seluruh nama model yg di masukan dalam autoload, akan terpanggil otomatis saat aplikasi pertama kali di akses.

Dalam latihan kali ini kita tidak usah menggunakan autoload. Karena masalah autoload khusus saya tulis dalam notes lain, yaitu

Posted in: Web Development
About

kakaeriel a.k.a Ibnuh Hairil adalah seorang Web Programmer dan Web Design. Sangat menyukai sepak bola dan games, eksis dalam kegiatan-kegiatan sosial dan agama di wilayahnya, dan aktif di beberapa milis, komunitas dan jejaring sosial. ^^

One Response to Model View Controller Codeigniter

  1. file download berbeda dengan materi yang ada…
    sebelumnya terima kasih…

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>