Sesuai dengan judulnya, pada postingan kali ini saya akan memberikan contoh tutorial operasi CRUD yang sederhana dengan menggunakan CodeIgniter. CRUD merupakan singkatan dari Create Read Update Delete. Tentu saja operasi CRUD ini membutuhkan sebuah database untuk menampung data-data yang nantinya akan diolah.
Sebelum masuk ke kode program, terlebih dahulu kita atur konfigurasi library dan helper di file autoload.php. Konfigurasi ini berguna supaya library dan helper yang kita gunakan dapat di-load otomatis ketika aplikasi dijalankan. Berikut ini library dan helper yang digunakan.
$autoload['libraries'] = array('database');
$autoload['helper'] = array('form', 'url');
Jangan lupa juga atur konfigurasi database di file database.php. Berikut ini contoh konfigurasi database saya. Oh ya, CodeIgniter yang saya gunakan pada contoh ini adalah CodeIgniter versi 2.0.2.
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = ''; $db['default']['database'] = 'ci';Setelah itu kita buat database dengan nama "ci" dan sebuah tabel dengan nama "cd".
CREATE DATABASE ci; USE ci; CREATE TABLE `cd` ( `kode_cd` int(11) NOT NULL auto_increment, `judul` varchar(50) default NULL, `kategori` varchar(25) default NULL, `stok` int(11) default '0', `harga` int(11) default '0', PRIMARY KEY (`kode_cd`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;Setelah semua konfigurasi beres, kita buat sebuah model dengan nama crud_model.php di folder models.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Crud_model extends CI_Model {
private $table_name;
public function __construct()
{
parent::__construct();
$this->table_name = 'cd'; //setting nama tabel
}
function create_data($data) //untuk manambah record
{
$this->db->insert($this->table_name, $data);
if($this->db->affected_rows() > 0){
return true;
} else {
return false;
}
}
function read_data() //untuk membaca seluruh record
{
$sql = $this->db->get($this->table_name);
if($sql->num_rows() > 0){
foreach($sql->result() as $row){
$data[] = $row;
}
return $data;
} else {
return null;
}
}
function update_data($kode,$data) //untuk meng-update record
{
$this->db->where('kode_cd', $kode);
$this->db->update($this->table_name, $data);
if($this->db->affected_rows() > 0){
return true;
}
else{
return false;
}
}
function delete_data($kode) //untuk menghapus record
{
$this->db->where('kode_cd', $kode);
$this->db->delete($this->table_name);
if($this->db->affected_rows() > 0){
return true;
}
else{
return false;
}
}
function get_data($kode) //untuk mengambil record berdasarkan kodenya
{
$this->db->where('kode_cd', $kode);
$query = $this->db->get($this->table_name);
if($query->num_rows() > 0){
return $query->row();
}
else{
return null;
}
}
}
Buat sebuah controller dengan nama crud.php di folder controllers.<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Crud extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('crud_model');
}
function index() //untuk menampilkan form awal yaitu form tambah data cd
{
$data['cd'] = '';
$data['cd_row'] = $this->crud_model->read_data();
$this->load->view('crud_view', $data);
}
function edit() //untuk menampilkan form edit data cd
{
$kode = $this->security->xss_clean($this->uri->segment(3));
$result = $this->crud_model->get_data($kode);
if ($result == null) redirect('crud');
else $data['cd'] = $result;
$data['cd_row'] = $this->crud_model->read_data();
$this->load->view('crud_view', $data);
}
function delete() //untuk menghapus data cd
{
$kode = $this->security->xss_clean($this->uri->segment(3));
$result = $this->crud_model->get_data($kode);
if ($result == null) redirect('crud');
else $this->crud_model->delete_data($kode);
redirect('crud');
}
function create() //untuk menambah data cd
{
$data = array(
'judul' => $this->input->post('title'),
'kategori' => $this->input->post('category'),
'stok' => $this->input->post('stock'),
'harga' => $this->input->post('price')
);
$this->crud_model->create_data($data);
redirect('crud');
}
function update() //untuk meng-update data cd
{
$code = $this->input->post('code');
$data = array(
'judul' => $this->input->post('title'),
'kategori' => $this->input->post('category'),
'stok' => $this->input->post('stock'),
'harga' => $this->input->post('price')
);
$this->crud_model->update_data($code,$data);
redirect('crud');
}
}
Dan yang terakhir buat sebuah view dengan nama crud_view.php di folder views.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CRUD CodeIgniter</title>
<link rel="stylesheet" href="<?php echo base_url();?>css/style.css" type="text/css" />
</head>
<body>
<?php
if (empty($cd)) {
$cd->kode_cd = '';
$cd->judul = '';
$cd->kategori = '';
$cd->stok = '';
$cd->harga = '';
$type = 'create';
} else {
$type = 'update';
}
?>
<div id="container">
<h1>CRUD Data CD</h1>
<div id="form">
<?php
echo form_open('crud/'.$type);
echo form_hidden('code',$cd->kode_cd);
?>
<div id="field">
<span class="label">Title</span>
<?php echo form_input(array('name'=>'title','size'=>40,'maxlength'=>50,'value'=>$cd->judul));?>
</div>
<div id="field">
<span class="label">Category</span>
<?php
$options = array(
'' => '- select category -',
'action' => 'Action',
'animasi' => 'Animasi',
'drama' => 'Drama',
'horor' => 'Horor',
'Komedi' => 'Komedi'
);
echo form_dropdown('category', $options,$cd->kategori);
?>
</div>
<div id="field">
<span class="label">Stock</span>
<?php echo form_input(array('name'=>'stock','value'=>$cd->stok));?>
</div>
<div id="field">
<span class="label">Price</span>
<?php echo form_input(array('name'=>'price','value'=>$cd->harga));?>
</div>
<div id="field">
<span class="label"> </span>
<?php echo form_submit(array('name'=>'submit','id'=>'submit','value'=>'Submit'));?>
</div>
<?php echo form_close(); ?>
</div>
<div id="table">
<table align="center">
<tr id="head">
<td id="no">No</td>
<td id="judul" align="center">Title</td>
<td id="kategori">Category</td>
<td id="stok">Stock</td>
<td id="harga">Price</td>
<td id="action">Action</td>
</tr>
<?php
$no = 1;
foreach ($cd_row as $row) { ?>
<tr id="row">
<td id="no"><?php echo $no;?></td>
<td id="judul"><?php echo $row->judul;?></td>
<td id="kategori"><?php echo $row->kategori;?></td>
<td id="stok"><?php echo $row->stok;?></td>
<td id="harga"><?php echo $row->harga;?></td>
<td id="action"> <a href="<?php echo site_url('crud/edit/'.$row->kode_cd);?>">Edit</a> | <a href="<?php echo site_url('crud/delete/'.$row->kode_cd);?>" onclick="return confirm('Are you sure?');">Delete</a></td>
</tr>
<?php
$no++;
}
?>
</table>
</div>
</div>
</body>
</html>
Untuk menjalankan aplikasi ketik di browser http://localhost/ci/index.php/crud. Maka akan tampil halaman aplikasi CRUD seperti dibawah ini.
Seperti yang telah disebutkan di atas bahwa operasi CRUD ini masih sangat sederhana, belum ditambahi dengan form validation, error message, dsb. Bagi teman-teman yang masih belum jelas silahkan dapat memanfaatkan fitur komentar di bawah.
Selamat mencoba





21 Comment:
pake Yii
kurang ngerti aku bro,ini i pakai dimna,mungkin aku kentinggalan artikel sebelumnya...!
Keren, tetapi kayaknya kurang ini di crud_view.php :
(tag php) $this->load->helper('form'); ?>
cmiiw... salam.
maksudnya buat apa mas??
@halilintar8
zzz, form helpernya kan udah di set autoload kakak...
waduh belum ngerti ane gan dengan kode2 php begituan.. masih bodoh neh
gak mudeng ane yg beginian
thx banget ini, code crud ini yang paling mantep dari yang lainya
This is a great posting I have read. I like your article. Thank you
O iya saya yang salah he3.
terimakasih informasi yang sangat bermanfaat dan artikel yang sangat menarik ditunggu postingan berikutnya
wah kok ribet banget sih.. :(
tapi terimakasih deh atas informasinya
saya selau salah kenapa ya?
Coba dulu lah.... thanks artikelnya...
ini kok kalo database kosong malah error ya di crud_view nya?? tp kalo ada data nya jalan... hmmm ada yg salah kah??
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/crud_view.php
Line Number: 72
asyikk ada ilmu baruu nichh makasihh yah :)
Kenapa kalo datanya kosong muncul error?? Karena saya belum menambahkan "error message" untuk mengatasi jika terjadi error. Itu sudah saya sampaikan di akhir postingan ini lho.. Kelanjutan dari program sederhana ini dapat dilihat simple CRUD bagian II
keren,,makasih kk,,sangat membantu saya
Terima kasih share nya, ini sangat membantu banget
kurang pagination kk..,
Post a Comment