Belajar CodeIgniter : Controller dan Model (Database)


Pada postingan sebelumnya kita sudah mempelajari Menampilkan View dengan Controller, kali ini kita akan membahas Controller dan Model. Sekarang kita akan mencoba melakukan operasi database sederhana di Codeigniter dengan cara menampilkan data dari satu table dalam sebuah database.

Membuat Database

Pertama, buatlah sebuah database dengan nama belajar_ci, lalu create table dengan nama user

CREATE TABLE `user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `nama` varchar(50) NOT NULL,
 `alamat` varchar(250) NOT NULL,
 `pekerjaan` varchar(80) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1


Konfigurasi Database

Setelah kita membuat Database dan sebuah tabel, sekarang kita mulai konfigurasi database dalam Codeigniter. Buka database.php yang terdapat di dalam folder application/config. Di dalam database.php ada banyak konfigurasi yang bisa dirubah, dan yang paling utama adalah hostname, username, password, dan nama database. Ubah konfigurasi seperti berikut:
'hostname' => 'localhost', /*tergantung hostname yang digunakan*/
'username' => 'root', /*tergantung credential username yang ada, biasanya default username berupa 'root'*/
'password' => '', /*tergantung username, masukan password yang sesuai*/
'database' => 'belajar_ci', /*sesuikan dengan nama database yang dibuat*/

Autoloads

Untuk memperkenalkan library kedalam Codeigniter kita menggunakan konfigurasi Autoloads, buka file autoloads.php yang terdapat di dalam directory application/config. Kita akan menambahkan library 'database' kedalam autoloads dan mengarahkan sebuah model. Rubahlah kode $autoload['libraries'] = array(); menjadi $autoload['libraries'] = array('database'); .

Membuat Model

Dalam pembuatan Web App, model direpresentasikan sebagai struktur data. Model berisi class yang mengandung function yang membantu menjalankan fungsi CRUD (Create, Read, Update dan Delete) terhadap suatu database.

Silahkan buat file php dengan nama user_model.php dalam directory application/model, dan masukan kode berikut kedalamnya :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class User_model extends CI_Model{

  public function GetUser(){
    $data = $this->db->query("select * from user");
    return $data->result_array();
  }
}
Setelah itu, kita modifikasi sedikit function index yang terdapat di controller "user_control" yang sudah dibuat pada tutorial sebelumnya Menampilkan View dengan Controller .
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class User_control extends CI_Controller {

  public function index(){
    $this->load->model('user_model');

    $data = $this->user_model->GetUser();
    foreach ($data as $user) {
      echo "Nama: ".$user['nama']."<br>";
      echo "Alamat: ".$user['alamat']."<br>";
      echo "Pekerjaan: ".$user['pekerjaan']."<hr>";
    }
  }
}
Sekarang jika kita membuka URL http://localhost/belajar-ci/ akan tampil sebagai berikut :


Kode $this->load->model('user_model'); berfungsi untuk memuat model yang akan kita gunakan. Ketika mengakses controler "latihan" maka kita benar-benar memanfaatkan Model sebagai penyedia data kepada Controller, dimana disitulah letak kegunaan model dalam arsitektur MVC.

Komentar