Saturday, November 2, 2013

Membuat CRUD dengan CodeIgniter + Bootstrap


Sebelum berangkat Kuliah, ehhh maklum mahasiswa baru ^_^ jadi bangun agak ke pagian ( biasa tidur pagi ). yah hari ini awal masuk kuliah Magister Komputer , tapi katanya cuma belajar Matrikulasi ( ngk tau belajar apaan tu ). yah karena iseng2 bikin Crud dengan CodeIgniter + Bootstrap ternyata keren juga ( muji karya sendiri ).
berikut adalah penampakannya :
disini saya cuma buat controllers dengan code sebagai berikut :
<?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()
{
ini_set('error_reporting', E_STRICT);
$data['biodata'] ="";
$data['view_biodata'] = $this->crud_model->read_data();
$this->load->view('crud_view', $data);
}
function edit()
{
$code = $this->input->post('code');
if (!empty($code)) $kode = $code;
else $kode = $this->security->xss_clean($this->uri->segment(3));
$result = $this->crud_model->get_data($kode);
if ($result == null) redirect('crud');
else $data['biodata'] = $result;
$data['view_biodata'] = $this->crud_model->read_data();
$this->load->view('crud_view', $data);
}
function delete()
{
$kode = $this->security->xss_clean($this->uri->segment(3));
$result = $this->crud_model->get_data($kode);
if ($result == null) {
redirect('crud');
} else {
$delete = $this->crud_model->delete_data($kode);
if ($delete) $this->session->set_flashdata('message', 'Data deleted!');
else $this->session->set_flashdata('message', 'Failed to delete data!');
redirect('crud');
}
}
function create()
{
$this->form_validation->set_error_delimiters('<div id="error">', '</div>');
$this->form_validation->set_rules('code', 'Identifier', 'trim|is_natural_no_zero|xss_clean');
$this->form_validation->set_rules('nama', 'Nama', 'trim|required|xss_clean');
$this->form_validation->set_rules('panggilan', 'Panggilan', 'trim|required|xss_clean');
$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email|is_unique[users.email]|xss_clean');
$this->form_validation->set_rules('situs', 'Situs', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE){
$this->index();
} else {
$data = array(
'nama' => $this->input->post('nama'),
'panggilan' => $this->input->post('panggilan'),
'email' => $this->input->post('email'),
'situs' => $this->input->post('situs') );
$create = $this->crud_model->create_data($data);
if ($create) $this->session->set_flashdata('message', 'Data berhasil disimpan!');
else $this->session->set_flashdata('message', 'Data gagal disimpan!');
redirect('crud');
}
}
function update()
{
$this->form_validation->set_error_delimiters('<div id="error">', '</div>');
$this->form_validation->set_rules('code', 'Identifier', 'trim|is_natural_no_zero|xss_clean');
$this->form_validation->set_rules('nama', 'Nama', 'trim|required|xss_clean');
$this->form_validation->set_rules('panggilan', 'Panggilan', 'trim|required|xss_clean');
$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email|is_unique[users.email]|xss_clean');
$this->form_validation->set_rules('situs', 'Situs', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE){
$this->edit();
} else {
$code = $this->input->post('code');
$data = array(
'nama' => $this->input->post('nama'),
'panggilan' => $this->input->post('panggilan'),
'email' => $this->input->post('email'),
'situs' => $this->input->post('situs') );
$update = $this->crud_model->update_data($code,$data);
if ($update) $this->session->set_flashdata('message', 'Data berhasil dirubah!');
else $this->session->set_flashdata('message', 'Data gagal dirubah!');
redirect('crud');
}
}
}

disini saya menggunakan form_validation untuk melakukan jika ada item yang kosong maka akan diberikan pesan warning. untuk lebih lanjut soal form_validation ini silahkan baca saja disini : SINI 
untuk model nya saya buat simpel saja, codenya adalah sebagai berikut ini :
<?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 = 'biodata';
}
function create_data($data)
{
  $this->db->insert($this->table_name, $data);
  if($this->db->affected_rows() > 0){
return true;
} else{
return false;
}
}
function read_data()
{
$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)
{
  $this->db->where('id_biodata', $kode);
  $this->db->update($this->table_name, $data);
  if($this->db->affected_rows() > 0){
return true;
}
else{
return false;
}
}
function delete_data($kode)
{
  $this->db->where('id_biodata', $kode);
  $this->db->delete($this->table_name);
if($this->db->affected_rows() > 0){
return true;
}
else{
return false;
}   }
function get_data($kode)
{
$this->db->where('id_biodata', $kode);
$query = $this->db->get($this->table_name);
if($query->num_rows() > 0){
return $query->row();
}
else{
return null;
}
} }
dan ngk lupa untuk viewnya codenya adalah :
<!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" />
<div class="header">
<link rel="stylesheet" href="<?php echo base_url();?>berkas/css/bootstrap.css" type="text/css" />
<script type="text/javascript" src="<?php echo base_url();?>berkas/js/bootstrap.js"></script>
</head>
<div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
          <a class="brand" href="<?php echo base_url(); ?>">Contoh Aplikasi CRUD pada CodeIgniter + BootStrap || Aplikasi Biodata</a>
      </div>

    </div>
<div class="well">
 <div class="row">
<div class="span">
</div>
 </div>
</div>
<body>
<div class="container">
<?php
if (empty($biodata)) {
   $biodata->nama = '';
$biodata->panggilan = '';
$biodata->email = ''; $biodata->situs = ''; $type = 'create'; } else {
$type = 'update';
}
?>
<div id="container">
    <span class="label label-info"><?php echo $this->session->flashdata('message'); ?></span>
    <div id="form">
<?php
        echo form_open('crud/'.$type);
echo form_hidden('code',$biodata->id_biodata);
?>
        <div class="control-group">
            <span class="span2">Nama Lengkap</span>
            <?php echo form_input(array('name'=>'nama','maxlength'=>50,'value'=>$biodata->nama,'placeholder'=>'Contoh : Harry'));?>
         <span class="label label-important"><?php echo form_error('nama'); ?></span>
        </div>
               <div class="control-group">
            <span class="span2">Nama Panggilan</span>
            <?php echo form_input(array('name'=>'panggilan','value'=>$biodata->panggilan,'placeholder'=>'Contoh : H4nk'));?>
           <span class="label label-important"><?php echo form_error('panggilan'); ?></span>
        </div>
        <div class="control-group">
            <span class="span2">Email</span>
            <?php echo form_input(array('name'=>'email','type'=>'email','value'=>$biodata->email,'placeholder'=>'Contoh : XmoenseN@Gmail.com'));?>
          <span class="label label-important"><?php echo form_error('email'); ?></span>
        </div>
       <div class="control-group">
            <span class="span2">Situs / BLog</span>
            <?php echo form_input(array('name'=>'situs','value'=>$biodata->situs,'placeholder'=>'contoh http://h4nk.blogspot.com'));?>
          <span class="label label-important"><?php echo form_error('situs'); ?></span>
        </div>
        <div class="control-group">
            <span class="span2">&nbsp;</span>
            <?php echo form_submit(array('name'=>'submit','class'=>'btn btn-primary','id'=>'submit','value'=>'Submit'));?>
<?php if ($type=='update') { ?>
            <input type="button" id="button" class="btn btn-primary" value="Cancel" onclick="window.location.href='<?=site_url('crud');?>'"/>
            <?php } ?>
        </div>
        <?php echo form_close(); ?>
    </div>
    <div id="table">
        <table class="table table-bordered" align="center">
        <tr class="info">
            <td class="controls" id="no">No</td>
                <td class="controls" id="nama" align="center">Nama Lengkap</td>
                <td class="controls" id="panggilan">Nama Panggilan</td>
                <td class="controls" id="email">Email</td>
                <td class="controls" id="situs">Situs / Blog</td>
                <td class="controls" id="aksi">Aksi</td>
            </tr>
            <?php
if ( !empty($view_biodata) ) {
$no = 1;
foreach ($view_biodata as $row) { ?>
<tr id="row">
<td id="no"><?php echo $no;?></td>
<td id="nama"><?php echo $row->nama;?></td>
<td id="panggilan"><?php echo $row->panggilan;?></td>
<td id="email"><?php echo $row->email;?></td>
<td id="situs"><a href="<?php echo $row->situs;?>"><?php echo $row->situs;?></a></td>
<td id="action"> <a class="btn btn-warning" href="<?php echo site_url('crud/edit/'.$row->id_biodata );?>">Edit</a> | <a class="btn btn-danger"href="<?php echo site_url('crud/delete/'.$row->id_biodata );?>" onclick="return confirm('Are you sure?');">Delete</a></td>
</tr>
<?php
$no++;
}
} else { ?>
                <tr id="row">
                <td colspan="6" align="center">Data Kosong</td>
                </tr>
            <?
}
?>
        </table>
    </div>
      <span class="label label-warning">Halaman ini dimuat selama {elapsed_time}detik</span>
</div>
</div>
</body>
</html> 
Karena waktu mau kuliah mendesak ngk sempat jelasinnya secara keseluruhan, kalau ada pertanyaan silahkan komen. semoga bermanfaat.
Untuk demo dapat di lihat di sini : DEMO // Karena ada gangguan pada hostingan, maka belum dapat di tampilkan
Download full 

UPDATE
untuk melihat demo dapat di lihat di sini : DEMO

Referensi : http://h4nk.blogspot.com/2013/10/membuat-crud-dengan-codeigniter.html