Blog

CodeIgniter Basic – Model

Konsep terakhir dari MVC yang akan saya bahas adalah Model. Model Merepresentasikan struktur data dari sebuah website yang bisa berupa basis data (database) maupun data lain seperti xml, atau text.

Biasanya dalam model akan berisi class dan fungsi untuk mengambil, melakukan pembaharuan (update) dan menghapus data pada sebuah website.  Sebuah website biasanya menggunakan database dalam menyimpan data biasanya, maka bagian Model biasanya akan berhubungan dengan perintah – perintah Query SQL.

Model biasa digunakan untuk melakukan koneksi ke dalam database dengan demikian, logika – logika pemograman yang berada dalam model juga berhubungan dengan database seperti melihat data, melakukan update, menghapus atau lainnya. Kemudian Model akan mengembalikan nilai yang akan diterima dan diproses oleh controller untuk selanjutnya ditampilkan di dalam views.

Sebelum menggunakan Model saya akan membuat sebuah database untuk mempraktekan cara memanggil database menggunakan sebuah class model tersebut.

Setting Database

Pertama-tama buatlah database dengan nama yang Anda inginkan, kemudian buatlah table pada database tersebut dengan contoh seperti dibawah ini.

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

Setelah membuat Table users maka isikan table tersebut secara dbms dengan mengisikan field – fieldnya atau secara script seperti berikut :

INSERT INTO `user` (`id`, `username`, `password`) VALUES
(1, 'irvan2', '123'),
(2, 'irv', 'irv'),
(3, 'rdieaw', 'rahasia'),
(4, 'adi', 'rahasia');

Selanjutnya untuk menghubungkan CodeIgniter dengan database, buka file config database codeigniter yang terletak pada folder application/config/database.php

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'Isidengan nama databasenya',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

pada line 81,isikan dengan nama database yang sudah dibuat sebelumnya. Pada file config database.php ini kita dapat melakukan pengaturan database dengan memasukan hostname, username, password dan nama database yang akan kita gunakan. Terdapat pada line 78 hingga 81 pada script code diatas.

Setelah selesai melakukan pengaturan database, langkah selanjutnya saya akan memanggil library database codeigniter sehingga database dapat terhubung pada framework. Pengaturran ini terletak pada folder application/config/autoload.php pada bagian load library codeigniter seperti berikut :

isikan dalam kurung dengan kata database untuk menggunakan library database.

Setelah itu saya akan menambahkan autoload model yang sudah dibuat agar tidak perlu lagi mendefinisikan model setiap kali kita membuat script fungsi pada controller. Isikan bagian seperti dibawah ini dengan nama model yang akan di autoload.

Penggunaan Model pada Codeigniter

Selanjutnya untuk menampilkan data dari table user tadi buat sebuah model dengan nama yang kita kehendaki pada kali ini saya akan membuat model dengan nama user_model.php pada folder application/models/user_model.php 

script yang saya gunakan untuk memanggil data dari tabel user adalah sebagai berikut :

<?php 
class User_model extends CI_Model{
    public function get_users(){
        $query = $this->db->get('users');
        return $query->result();
    }
}
?>

saat membuat class model user_model, penulisannya dianjurkan harus diawali dengan huruf besar. kemudia meng-extend model tersebut dengan CI_Model yang merupakan library untuk dasar aturan model dari framework codeigniter.

Kemudian saya membuat sebuah fungsi get_users() pada model ini, dengan syntax $this->db->get() saya dapat mengambil data dari database. Dan nama table yang ingin diambil datanya diletakan pada parameter didalam fungsi get tersebut sehingga menjadi $this->db->get(‘users’);

untuk line terakhir fungsi return digunakan untuk menyerahkan data yang diambil pada database ke script php yang ada pada bagian controller biasanya.

Controller Ambil data Menggunakan Model

Langkah selanjutnya adalah membuat sebuah controller function untuk menggunakan model yang sudah dibuat. untuk hal yang berhubungan dengan controller dapat di lihat pada page sebelumnya disini. Pada kesempatan ini saya membuat sebuah controller dengan nama users.php pada folder application/controller/users.php

dengan script code sebagai berikut :

<?php 

class Users extends CI_Controller{

    public function show(){
       $data['result'] = $this->user_model->get_users();

       $data['welcome'] ="welcome to my page";


       $this->load->view('user_view',$data);

    }
}

?>

pada fungsi diatas,script $data[‘result’] = $this->user_model->get_users(); berfungsi untuk memanggil fungsi get_users() pada model user_model dan disimpan pada array “result”. Kemudian data akan ditampilkan pada sebuah view dengan memparsingkan data yang sudah didapat pada model dengan nama file user_view.php. Untuk lebih memahami cara memparsing data kedalam view dapat dilihat pada tutorial disini.

karena saya menggunakan autoload model user_model maka saya dapat langsung memakai fungsi – fungsi yang terdapat pada class model tersebut tanpa mendefinisikan terlebih dahulu.

Selanjutnya adalah membuat sebuah view dengan nama user_view.php pada folder application/view/user_view.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>user view</title>
</head>
<body>

<?php 
echo $welcome;
echo "<br>";
foreach ($result as $object){
    echo $object->password . "<br>";
}

?>


</body>

</html>

Kita dapat menampilkan data dengan menggunakan foreach(). variable $result akan menjadi $object.  $resut merupakan variable yang diparsing dari controller yang berisi data user dalam bentuk array. Pada contoh script diatas saya memanggil data password untuk ditampilkan pada view.

Untuk melihat hasilnya pada browser dapat diakses pada URL seperti gambar dibawah ini.

karena nama controller saya adalah users dan fungsi pada controller saya adalah show() maka pada browser dapat diakses dengan alamat http://localhost/tutorci/index.php/users/show

tutorci adalah folder tempat saya menyimpan script codeigniter pada htdocs xampp.

 

 

terima kasih selamat mencoba

 

Irvan Lewenusa

Share Me :

Leave a Reply

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

*

code