Simple CRUD with CodeIgniter

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">&nbsp;</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

22 Comment:

asd said...

pake Yii

laia said...

kurang ngerti aku bro,ini i pakai dimna,mungkin aku kentinggalan artikel sebelumnya...!

halilintar8 said...

Keren, tetapi kayaknya kurang ini di crud_view.php :
(tag php) $this->load->helper('form'); ?>

cmiiw... salam.

Anonymous said...

maksudnya buat apa mas??

Muhammad Rizwahyudhy said...

@halilintar8

zzz, form helpernya kan udah di set autoload kakak...

download antivirus gratis said...

waduh belum ngerti ane gan dengan kode2 php begituan.. masih bodoh neh

learn computer networking said...

gak mudeng ane yg beginian

azgi said...

thx banget ini, code crud ini yang paling mantep dari yang lainya

toko baju muslim said...

This is a great posting I have read. I like your article. Thank you

halilintar8 said...

O iya saya yang salah he3.

obat impotensi said...

terimakasih informasi yang sangat bermanfaat dan artikel yang sangat menarik ditunggu postingan berikutnya

polip hidung said...

wah kok ribet banget sih.. :(
tapi terimakasih deh atas informasinya

aku rindu said...

saya selau salah kenapa ya?

Anonymous said...

Coba dulu lah.... thanks artikelnya...

Anonymous said...

ini kok kalo database kosong malah error ya di crud_view nya?? tp kalo ada data nya jalan... hmmm ada yg salah kah??

Anonymous said...

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: views/crud_view.php

Line Number: 72

kulit manggis untuk diabetes said...

asyikk ada ilmu baruu nichh makasihh yah :)

Ahmad Fikry said...

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

Anonymous said...

keren,,makasih kk,,sangat membantu saya

info_de2rusli said...

Terima kasih share nya, ini sangat membantu banget

WAHMAL said...

kurang pagination kk..,

ikamri doeganz said...

mas link download diziddu hasilnya jadi exe, apa ada link yang lain mas, ane mw download mas cz lagi belajar CI mas
thx mas..

Post a Comment