Pada tutorial bagian ke 3 ini saya akan membahas tentang menampilkan data dari database dengan codeigniter 3. Tutorial ini akan di mulai dengan pembahasan bagaimana cara menampilkan data dari database mysql dengan menggunakan Cotroller, Models dan view.
Bagi anda yang belum membaca artikel sebelumnya tentang Instalasi dan konfigurasi codeigniter 3 sebaik nya baca terlebih dahulu karena tutorial ini menggunakan konfigurasi pada dengan cara yang sudah saya jelaskan pada tutorial sebelum nya.
Sebelum memulai ke proses coding anda harus melakukan beberapa persiapan terlebih dahulu agar tutorial ini dapat berjalan dengan baik.
Konfigurasi tambahan untuk menggunakan database pada codeigniter 3 ini terletak pada folder config dengan nama file database.php. Sesuaikan setingan database berikut sesuai dengan kondisi mysql server anda:
'hostname' => 'localhost', //host dari mysql server kamu
'username' => 'root', // username mysql yang akan di gunakan
'password' => '', // password mysql dari user yang akan di gunakan
'database' => '', // nama database
Ini adalah contoh setingan database.php saya
Bukalah fil config autoload.php dan kemudian cari lah baris dengan perintah berikut
$autoload['libraries'] = array();
kemudian ubah lah menjadi seperti ini
$autoload['libraries'] = array('database');
Tabel yang akan saya gunakan pada tutorial kali ini adalah tabel tutorial.
--
-- Table structure for table `tutorial`
--
CREATE TABLE `tutorial` (
`tutorial_id` int(11) NOT NULL,
`tutorial_nama` varchar(20) NOT NULL,
`tutorial_isi` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `tutorial`
--
INSERT INTO `tutorial` (`tutorial_id`, `tutorial_nama`, `tutorial_isi`) VALUES
(1, 'PHP', 'Ini adalah contoh Tutorial PHP'),
(2, 'Mysql', 'Ini adalah contoh Tutorial Mysql'),
(3, 'Java Script', 'Ini adalah contoh Tutorial Java Script'),
(4, 'CSS', 'Ini adalah contoh Tutorial CSS'),
(5, 'Codeiginter 3', 'Ini adalah contoh Tutorial CI3'),
(6, 'Codeigniter 4', 'Ini adalah contoh Tutorial CI4');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `tutorial`
--
ALTER TABLE `tutorial`
ADD PRIMARY KEY (`tutorial_id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `tutorial`
--
ALTER TABLE `tutorial`
MODIFY `tutorial_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
COMMIT;
Setelah selesai bagain persiapan kita akan melanjutkan ketahap selanjutnya yaitu pembuatan model, controller dan view untuk menampilkan data datari database.
Model yang saya buat ini berfungsi untuk mengeksekusi perintah sql untuk menampilkan data dari database.
Buatlah model dengan nama file M_crud.php pada direkotri models. Dan isikan dengan source code berikut
<?php
class m_crud extends CI_Model{
.......................
}
lalu gantilah bagian .......................
dengan code berikut
function tampil($tabel, $limit, $offset, $order, $where){
if ($order != '')
{
$sql = $this->db->order_by($order['field'],$order['order']);
}
if ($where != '' ){
$sql = $this->db->get_where($tabel, $where);
}else
{
$sql = $this->db->get($tabel, $limit, $offset, $order);
}
if (($limit != '') or ($offset != ''))
{
$this->db->limit($limit, $offset);
}
return $sql->result();
}
sehingga hasil akhir nya akan seperti ini
<?php
class m_crud extends CI_Model{ //baris untuk menerangkah bahwa m_curd adalah sebuah model
function tampil($tabel, $limit, $offset, $order, $where){ //deklarasi fungsi tampil
if ($order != '') //pengecekan variabel $order
{
//Untuk malakuakan sorting ascending atau descending "order by nama_field DESC"
$sql = $this->db->order_by($order['field'],$order['order']);
}
if ($where != '' ){ //pengecekan variabel $where
//membuat query dimana where itu mengaanding sebuah field untuk di cari "selecet * from nama_tabel where nama_field = nilai_field"
$sql = $this->db->get_where($tabel, $where);
}else
{
//Jika variabel $where kosong makana tidak perlu di lakukan pencarian
$sql = $this->db->get($tabel, $limit, $offset, $order);
}
if (($limit != '') or ($offset != '')) //pengecekan variable limit dan offset
{
//untuk membuat perintah sql "limit 0,5 "
$this->db->limit($limit, $offset);
}
//menampilkan hasil dari query di atas
return $sql->result();
}
}
Controler ini akan saya gunakan untuk mengambil data dari model dan menampilkan nya pada view.
Buatlah sebuah model pada folder models dengan nama crud.php lalu isi dengan source code berikut
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Crud extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('m_crud');
$this->load->helper('url');
}
........
}
lalu ganti ........
dengan perintah berikut
public function index()
{
$tabel = 'tutorial';
$where = '';
$limit = '0';
$offset = '5';
$order = ['field'=>'tutorial_id','order' => 'DESC'];
$data['isi'] = $this->m_crud->tampil($tabel, $limit, $offset, $order,$where);
$data['val']=$this->input->get('msg');
$this->load->view('crud_tampil',$data);
}
sehingga hasil nya akan seperti ini
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Crud extends CI_Controller { //menerangakan Crud adalah sebuah controller
//fungsi untuk mendeklarasikan variabel global atau apa saja yang akan di load pada controller ini
function __construct(){
parent::__construct();
$this->load->model('m_crud');//Load Model m_crud
$this->load->helper('url');//load helper url
}
public function index()
{
$tabel = 'tutorial'; //nama tabel
$where = ''; //where
$limit = '0'; // data di mula dari
$offset = '5'; // jumlah data yang akan di tampilkan
$order = ['field'=>'tutorial_id','order' => 'DESC']; //definis untuk variabel order
$data['isi'] = $this->m_crud->tampil($tabel, $limit, $offset, $order,$where); // mengambil data dari fungsi m_crud
$data['val']=$this->input->get('msg');
$this->load->view('crud_tampil',$data);//menampilkan view crud_tampil dengan mengirim data
}
}
Menampilkan view atau user interface
Buatlah file views pada folder views dengan nama crud_tampil.php lalu isi dengan kode berikut.
<table border="1">
<thead>
<tr>
<td>ID</td>
<td>Nama Tutorial</td>
<td>Isi Tutorial</td>
<td>Aksi</td>
</tr>
</thead>
<tbody>
<?php
//pengualangan untuk menampilkan variabel isi yang telah di definisikan pada controller
foreach ($isi as $key){
?>
<tr>
<td><?= $key->tutorial_id; ?></td>
<td><?= $key->tutorial_nama; ?></td>
<td><?= $key->tutorial_isi; ?></td>
<td><a href="<?= base_url('crud/edit/'.$key->tutorial_id); ?>">Edit</a> <a href="<?= base_url('crud/hapus/'.$key->tutorial_id); ?>">Hapus</a></td>
</tr>
<?php } ?>
</tbody>
<tfoot>
<tr>
<td> </td>
<td> </td>
<td><?php echo $val ?></td>
<td><a href="<?= base_url('crud/tambah/');?>">Tambah</a></td>
</tr>
</tfoot>
</table>
Berikut ini adalah tampilan dari hasil contoh kode di atas
Kode di atas dapat di akses dengan menggunakan alamat
http://localhost/ci3/crud