Cara mengakses database mysql pada codeigniter dengan konsep model view controller

Setelah membahas tentang Model, View dan Controller, kali ini kita mulai masuk pada pembahasan tentang cara mengakses database mysql pada CodeIgniter. Secara sepintas, fungsi - fungsi yang digunakan untuk mengakses database mysql berbeda dengan fungsi - fungsi standar php dalam kaitannya dengan mysql. Pada codeIgniter, fungsi - fungsi ini di ringkas dengan nama - nama lain sehingga terkesan lebih enak untuk dihafal.

 

Berikut akan kami sebutkan beberapa fungsi database dalam codeigniter dalam kaitannya dengan mysql

 

  1. Fungsi query('perintah sql') » Sama dengan fungsi mysql_query('perintah sql')
  2. Fungsi num_rows() » Sama dengan fungsi mysql_num_rows()
  3. Fungsi result() » Sama dengan fungsi mysql_fetch_array()
  4. Fungsi row() » Menampilkan hasil query satu baris

Setelah mengetahui fungsi - fungsi diatas, berikut beberapa hal yang harus kita lakukan pada CodeIgniter kita supaya bisa mengakses database MySQL

1. Membuat database dan tabel posting

Untuk memperingkas pembahasan kali ini, silahkan download contoh tabel postig pada link download di bagian bawah halaman ini

2. Setting autoload pada /application/config/autoload.php

Pada script autoload.php, carilah bagian $autoload['libraries'] = array() , kemudian tambahkan text database pada daftar arraynya seperti terlihat dibawah ini

$autoload['libraries'] = array('database');

3. Setting koneksi pada /application/config/database.php

Pada script database.php , carilah bagian seperti terlihat pada script dibawah ini. Masukkan host database, username, password dan nama database yang akan diakses

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'kutukupret';
$db['default']['database'] = 'tutorial';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

4. Membuat controller home.php /application/controllers/home.php

 

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller {
	/**
	 * Index Page for this controller.
	 *
	 * Maps to the following URL
	 * 		http://example.com/index.php/home
	 *	- or -  
	 * 		http://example.com/index.php/home/index
	 *	- or -
	 * Since this controller is set as the default controller in 
	 * config/routes.php, it's displayed at http://example.com/
	 *
	 * So any other public methods not prefixed with an underscore will
	 * map to /index.php/home/<method_name>
	 * @see http://codeigniter.com/user_guide/general/urls.html
	 */
	public function index()
	{
		echo 'Selamat datang di CodeIgniter';
	}
	
	function posting()
	{
		$this->load->model('Webmodel');
		$data['posting'] = $this->Webmodel->list_posting();
		$this->load->view('posting',$data);
	}
}

/* End of file home.php */
/* Location: ./application/controllers/home.php */

5. Membuat model webmodel.php /application/models/webmodel.php

Pada bagian model inilah kita akan menggunakan fungsi - fungsi database untuk kemudian dikirimkan ke controller dan kemudian dicetak oleh view, contoh model yang kita buat untuk mengakses database adalah seperti berikut :

<?php

class Webmodel extends CI_Model {
	function __construct()
	{
		
	}
	
	/* Menampilkan posting */
	function list_posting()
	{
		$query = $this->db->query('select * from posting order by PID desc limit 20');
		//lihat apakah ada data dalam tabel
		$num = $query->num_rows();
		if($num>0){
			//Mengirimkan data array hasil query
			return $query->result();
			//Function result() hampir sama dengan function mysql_fetch_array()
		}
		else{
			return 0;
			//Kirimkan 0 jika tidak ada datanya
		}
	}
}

6. Membuat view posting.php /application/views/posting.php

Setelah semua proses diatas, kita juga herus membuat script view yang akan menampilkan hasil query oleh model. script posting.php ini kita simpan pada direktory views.

<?php
//periksa apakah datanya array atau hanya 0
if(is_array($posting)){
	echo '<ol>';
	foreach($posting as $key){
		$judul = '<li>'.$key->Judul.'</li>';
		echo $judul;
	}
	echo '</ol>';
}
?>

Setelah sesai dengan semua langkah - langkah diatas, cobalah mengakses aplikasi kita dengan memasukkan alamat berikut pada broswer kita

http://localhost/nama_folder_ci/index.php/home/posting

Download database struktur tabel posting


Komentar pembaca

lirik yesmantap gan, tutorialnya sangat bermanfaat nichposting pada :2014-09-21 14:56:38
barcovsiip,,, lanjutkan min :) posting pada :2016-08-11 15:11:49
wahyumin.. kalau semisal pake kondisi gimana caranya ya? semisal berdasarkan Kode apakah seperti ini function list_posting($Kode) { $query = $this->db->query('select * from posting where PID = '{$Kode}' order by PID desc limit 20'); //lihat apakah ada data dalam tabel $num = $query->num_rows(); if($num>0){ //Mengirimkan data array hasil query return $query->result(); //Function result() hampir sama dengan function mysql_fetch_array() } else{ return 0; //Kirimkan 0 jika tidak ada datanya } }posting pada :2016-12-20 20:36:34
Said Marzuki SalimMantap artikelnya sangat membantuposting pada :2018-03-27 16:33:00