MEMBUAT CRUD SEDERHANA DI CODEIGNITER 2.1.3

Oke untuk sharing kali ini, saya akan menjelaskan proses membuat CRUD (create, read, update, dan delete)  / (buat, baca, update, dan hapus) sederhana di Codeigniter 2.1.3. Alur hasil kode yang kita buat nanti adalah sebagai berikut. User bisa menambah artikel dengan disuguhi dua form input yaitu Judul dan Isi. Lalu Semua artikel yang ada di database akan di tampilkan di bawahya. Untuk proses hapus sobat tinggal klik di Judul yang ditampilkan. Untuk proses update kita manual lewat notepad. Karena saya hanya ingin menjelaskan bagaimana CRUD di CodeIgniter bekerja.


STEP 1 : Konfigurasi CodeIgniter

Buka file application\config\config.php rubah isinya menjadi
$config['base_url'] = 'http://localhost/email/';
//email adalah nama folder dalam localhost
Buka file application\config\autoload.php dan load otomatis helper form dan url dengan merubah
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url','form');
$autoload['model'] = array('site_model');

Buka file application\config\database.php dan rubah pengaturan database :
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'ci_series';
$db['default']['dbdriver'] = 'mysql';
Note : Pastikan pengaturan database sobat, disini saya memakai mysql, username=root, password=root dan hostname=localhost. Kalau tidak seperti itu bisa disesuaikan dengan pengaturan database sobat. Catatan yang kedua pada baris ke-4 saya akan membuat database bernama ci_series seperti dibawah ini.


STEP 2 : Membuat Database
Buatlah database bernama ci_series dengan tabel bernama data yang mempunyai 3 field, yaitu id, title , content.


STEP 3 : Membuat Model
Buat file application\models\site_model.php dan isikan seperti dibawah ini :
<?php

class Site_model extends CI_Model {
 
 function get_records()
 {
  $query = $this->db->get('data');
  return $query->result();
 }
 
 function add_record($data) 
 {
  $this->db->insert('data', $data);
  return;
 }
 
 function update_record($data) 
 {
  $this->db->where('id', 12);
  $this->db->update('data', $data);
 }
 
 function delete_row()
 {
  $this->db->where('id', $this->uri->segment(3));
  $this->db->delete('data');
 }
 
}


STEP 4 : Membuat Controller
Buat file application\controllers\site.php dan isikan seperti dibawah ini :
<?php
class Site extends CI_Controller 
{
 function index()
 {
  $data = array();
  
  if($query = $this->site_model->get_records())
  {
   $data['records'] = $query;
  }
  
  $this->load->view('options_view', $data);
 }
 
 function create()
 {
  $data = array(
   'title' => $this->input->post('title'),
   'content' => $this->input->post('content')
  );
  
  $this->site_model->add_record($data);
  $this->index();
 }
 
 function update()
 {
  $data = array(
   'title' => 'My Freshly UPDATED Title',
   'content' => 'Content should go here; it is updated.' 
  );
  
  $this->site_model->update_record($data);
 }
 
 
 function delete()
 {
  $this->site_model->delete_row();
  $this->index();
 }
}


STEP 5 : Membuat View
Buat file application\views\options_view.php dan isikan seperti dibawah ini :
<!DOCTYPE html>

<html lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 <title>untitled</title>
 <style type="text/css" media="screen">
  label {display: block;}
 </style>
</head>
<body>
     <h2>Create</h2>
 <?php echo form_open('site/create');?>
 
 <p>
  <label for="title">Title:</label>
  <input type="text" name="title" id="title" />
 </p>
 
 <p>
  <label for="content">Content:</label>
  <input type="text" name="content" id="content" />
 </p> 
 
 <p>
  <input type="submit" value="Submit" />
 </p>
 <?php echo form_close(); ?>
 
 <hr />
 
 <h2>Read</h2>
 <?php if(isset($records)) : foreach($records as $row) : ?>
 
 <h2><?php echo anchor("site/delete/$row->id", $row->title); ?> </h2>
 <div><?php echo $row->content; ?></div>  

 <?php endforeach; ?>

 <?php else : ?> 
 <h2>No records were returned.</h2>
 <?php endif; ?>
 
 <hr />
 
 <h2>Delete</h2>
 
 <p>
  To sample the delete method, simply click on one of the headings listed above. A delete
  query will automatically run.
 </p>
 
</body>
</html>

Kalau sobat ada yang kurang paham silakan kasih komen dibawah

22 comments:

  1. kenapa punya saya kosongan ya pak

    ReplyDelete
  2. thanks mas bro, sudah saya coba running ... scriptnya, matur suwon sanget geh, mas.. gimana kalu kolobarinysa template pake easyui jquery, ada tutorialnya tidak?..

    ReplyDelete
    Replies
    1. yaa, ni masih sibuk sama tugas2 yang laen.
      belum sempet nulis.
      di tunggu aja ya.
      maaf.
      makasih udah mampir

      Delete
  3. nice tutorial..
    kalau CRUD nya menggunakan jquery easyui gmana gan..
    posting tutorialnya dong...

    ReplyDelete
    Replies
    1. yaa, ni masih sibuk sama tugas2 yang laen.
      belum sempet nulis.
      di tunggu aja ya. herudin

      Delete
  4. bagaiaman kalau project yg kita buat menggunakan ci ini ada beberapa???konfigurasinya bgmana??
    apa harus buat dua konfigurasi atau mengubah konfigurasi lagi???
    maaf..gan. masih newbie soal ci
    visit to view : http://aripoknga.blogspot.com/2013/03/tips-memaksimalkan-tampilan-website-dan-blog.html

    ReplyDelete
    Replies
    1. kita bisa buat beberapa aplikasi dengan satu folder system ci. caranya bisa di baca di user_guide tentang Managing your Applications.
      secara ringkasnya, umpama ari punya 2 projek "SEKOLAH" dan "DULU" maka struktur dari folder application ari akan tampak seperti ini.
      applications/sekolah/
      applications/sekolah/config/
      applications/sekolah/controllers/
      applications/sekolah/errors/
      applications/sekolah/libraries/
      applications/sekolah/models/
      applications/sekolah/views/
      applications/dulu/
      applications/dulu/config/
      applications/dulu/controllers/
      applications/dulu/errors/
      applications/dulu/libraries/
      applications/dulu/models/
      applications/dulu/views/

      kemudian ganti file di application seperti ini
      $application_folder = "applications/sekolah";
      untuk yang projek sekolah.
      dan dalam pemanggilan di localhost, tambahi nama folder ari dibelakangnya.

      Delete
  5. matur nuwun sanget mas, ilmu nya bermanfaat
    Belum dicoba sih...xixi...
    mas mau tanya kalo cara menghilangkan index.php pada pemanggilan url gimana ya
    misalnya: localhost/crud/index.php/latihan
    ingin jadi localhost/crud/latihan, seperti pemanggilan php local pada umumnya

    ReplyDelete
    Replies
    1. dengan menambahkan file .htaccess di luar folder system.

      atau juga menambahi skrip di controller anda.
      tapi yang paling sering digunakan yang memakai file .htaccess

      Delete
  6. mas itu kita ngetes di urlnya apa ya mas aku bingung mas..?

    ReplyDelete
    Replies
    1. localhost/email.

      sama seperti $config['base_url']

      Delete
  7. Portofolio mas nya udah apa aja mas klo boleh tau?
    lokasi dmn? masih kuliah?

    ReplyDelete
    Replies
    1. portofolio masih dikit mas, ada toko online, si managemen agen memo, dll.
      di kediri mas.
      masih kuliah sekarang, tingkat akhir

      Delete
  8. upload ulang gan..
    email ane ananggugel@gmail.com

    ReplyDelete
  9. mas kenapa pas di submit jadi error yaaa

    ReplyDelete
  10. Gan mau tanya kenapa ya pas di akses di browser seperti ini:

    An Error Was Encountered
    Unable to load the requested file: helpers/uri_helper.php

    Thanks gan

    ReplyDelete
  11. mas punya saya database nya error tolong pencerahannya

    ReplyDelete
  12. untuk insert gambar sama updatenya mana gan?

    http://www.smartkiosku.com
    http://www.kudupinterkabe.blogspot.co.id

    ReplyDelete