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

11 Komentar

Berikan Komentar yang bermanfaat dan sehat.

  1. jos gan artikelnya sangat membantu #jempol :)

    BalasHapus
  2. gan..sy coba script agan tp knp saat view itu link href nya tidak muncul ya? jd ga ada tampilannya sama sekali..mohon bantuannya

    note:script pada crud_view.php

    BalasHapus
  3. oke gan..url lupa sy aktifkan.. setelah sy aktifkan cuma muncul "contoh aplikasi crud........" tapi formnya tidak muncul gan.. sy liat di source code pada browser hanya sampai
    body
    div class="container"
    div id="container"
    span class="label label-info"
    (sy hilangkan tanda <> krn tidak bisa masuk ke komentar>
    selanjutnya tidak ada.. sy harus gmn ya? mhn bantuannya gan..terimakasih

    BalasHapus
  4. Ijin sedot & share y om...
    moga manfaat tuk kita s'mua ;-D

    BalasHapus
  5. Bro, kalau mau ngesave type date gimana ya? trus ada datepickernya
    Thanks

    BalasHapus
    Balasan
    1. save data date sama saja mas ngk ada bedanya dengan data text atau int. untuk datepicker sebaiknya gunakan saja jquery http://jqueryui.com/datepicker/

      Hapus
    2. nah, berarti di controllernya tinggal ditambahkan

      $this->form_validation->set_rules('tanggal', 'Tanggal', 'trim|required|xss_clean');
      trs di viewnya yg bingung mas

      Hapus
  6. Gan bisa ngga liat coding aktifkan lib html..soalnya masih katro

    BalasHapus
Posting Komentar
Lebih baru Lebih lama