Tutorial CodeIgniter 5 - Membuat CRUD dengan CodeIgniter


Hai Semuanya. Kali ini saya akan menjelaskan bagaimana cara membuat CRUD (Create, Read, Update dan Delete) sederhana di framework CodeIgniter. CRUD ini adalah hal dasar pada pemrograman karena metode ini menjadi pondasi dalam sebuah software atau aplikasi. Proses menambahkan, mengubah, membaca dan menghapus data merupakan hal penting dalam membuat sebuah aplikasi dinamis. Sebelum memulai kamu bisa mendownload CodeIgniter di situs resminya.

Disni saya akan mencoba membuat contoh CRUD data produk barang degan simpel.

Membuat READ
Pertama buat sebuah database dengan nama bebas sesuai keinginan kamu, disini saya membuat database dengan contoh CRUDCodeIgniter dan membuat tabel dengan nama data_barang, kemudian buat field dengan nama dan tipe seperti ini:
  • id - integer - AUTO INCREMENT
  • nama - varchar(150)
  • harga - float
  • stok - integer
membuat CRUD CodeIgniter - Membuat Database


Kedua buatlah sebuah folder dan extract file CodeIgniter kedalamnya dan letakan di webserver kamu, disini saya menggunakan xampp sehingga webserver saya ada di htdocs dan disini juga saya membuat contoh folder dengan nama CRUDCodeIgniter.

Tahap Awal CRUD CodeIgniter


Selanjutnya kita konfigurasi database di CodeIgniter di [CRUDCodeIgniter] > application > config > database.php dan mengubah variable menjadi seperti ini.

$db['default']['hostname'] = 'localhost';//isi dengan hostname kamu
$db['default']['username'] = 'root';//karena default xampp root, ubah jika kamu punya username yang berbeda
$db['default']['password'] = '';//password xampp saya kosong, ubah dengan password kamu
$db['default']['database'] = 'CRUDCodeIgniter'; // nama database yang tadi dibuat

Selanjutnya kita ubah base_url, kita harus menggantinya karena mungkin nama folder aplikasi kita berbeda - beda. Caranya buka dan ubah variable ini di [CRUDCodeIgniter] > application > config > config.php

//ubah sesuai dengan konfigurasi kamu
$config['base_url'] = 'http://localhost/CRUDCodeIgniter/';

Setelah itu buat Controller dengan cara membuat file baru berextensi .php di [CRUDCodeIgniter] > application > controllers , dan beri nama data_produk.php. Lalu masukan syntax berikut ini.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

//nama class harus diawali dengan kapital, walaupun nama file semua kecil
class Data_produk extends CI_Controller {

 public function index()
 {
        //memanggil view yang nanti kita akan buat
        $this->load->view('v_data_produk');
 }
}

Setelah selesai membuat controller kita lanjutkan dengan membuat model dengan membuat file baru di  [CRUDCodeIgniter] > application > model, lalu buat file dengan nama m_data_produk.php, setelah itu sisipkan syntax berikut.

<?php
class M_data_produk extends CI_Model {
 
 function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }
    
    function list_data(){
        $query = $this->db->get('data_barang');// mengambil semua data dari tabel data_barang
        
        return $query->result();// mengembalikan ke controller hasil dari query ke table data_barang
    }

}

syntax diatas kita langsung membuat fungsi list_data() untuk mengambil data dari tabel, selanjutnya kita melakukan perubahan pada index di controller data_produk.php menjadi

public function index() 
     { 
          $this->load->helper('url'); 
          $this->load->database();//memanggil pengaturan database dan mengaktifkannya 
          $this->load->model('m_data_produk');//memanggil model m_data_produk
          $data['data_produk'] = $this->m_data_produk->list_data();//memanggil fungsi di model dan menerima hasil fungsi yang dimasukan ke $data['data_produk']
          $this->load->view('v_data_produk',$data);//memanggil view yang nanti kita akan buat dan memasukan $data dari model tadi 
      }

setelah itu mari kita buat view, view adalah tampilan yang isinya berupa html,php,dan javascript. Untuk membuatnya kita bisa buat file di [CRUDCodeIgniter] > application > views . Lalu beri name v_data_produk.php. Lalu sisipkan syntax berikut
<html>
    <head>
        <title>CRUD CodeIgniter</title>
    </head>
    <style>
        th,td,table,thead,tbody,tr{
            border:1px solid #000;
        }
    </style>
    <body>
  
        <table>
            <thead>
                <th>No</th>
                <th>Nama</th>
                <th>Harga</th>
                <th>Stok</th>
  <th>Kontrol</th>
            </thead>
            <tbody>
                <h2>CRUD CodeIgniter</h2>
  <a href="<?php echo site_url('data_produk/input');?>">Input</a>
                <?php
$no = 1;
foreach($data_produk as $value)
{
                ?>
                <tr>
                    <td><?= $no;?></td>
                    <td><?= $value->nama;?></td>
                    <td><?= $value->harga;?></td>
                    <td><?= $value->stok;?></td>
      <td><a href="<?= site_url("data_produk/edit")."?produk=".$value->id;?>">edit</a>|<a href="<?= site_url("data_produk/delete")."?produk=".$value->id;?>">delete</a> </td>
                </tr>
                <?php
}
                ?>
            </tbody>
        </table>
    </body>
</html>

Sampai disini kita sudah melakukan Read , walaupun belum bisa menampilkan data. Coba buka http://localhost/CRUDCodeIgniter/index.php/data_produk, maka hasilnya akan seperti ini

xx--gambar tampilan view

Membuat CREATE dan UPDATE
Pada tahap ini kita akan membuat form untuk input dan ubah data. Pertama buka kembali controller data_produk.php. Setelah itu buat fungsi baru dibawah index() dengan syntax seperti dibawah ini

 public function Input()
 {
       $this->load->helper('form');//memanggil helper form nanti penggunaannya di v_input_produk.php
       $data['type']="INPUT";// definisi type, karena nanti juga ada edit
       $this->load->view('v_input_produk',$data);// memanggil view v_input_produk.php
 }
 
 public function Edit()
 {
       $this->load->helper('form');//memanggil helper form nanti penggunaannya di v_input_produk.php
  
       $this->load->database();//memanggil pengaturan database dan mengaktifkannya
       $this->load->model('m_data_produk');//memanggil model m_data_produk.php
  
       $id = $this->input->get('produk');//mengambil param produk dari get
       $data['produk'] = $this->m_data_produk->getEdit($id);
       $data['type']="EDIT";// definisi type, karena nanti juga ada edit
       $this->load->view('v_input_produk',$data);// memanggil view v_input_produk.php
 }

pada syntax diatas adalah function dari controller yang akan di panggil oleh link input pada menu sebelumnya. Memanggil helper form karena untuk view v_input_produk.php yang akan kita buat nanti terdapat fungsi yang membutuhkan helper form. Untuk lebih jelasnya mari kita buat view baru di folder view beri nama v_input_produk.php dengan script/syntax seperti ini:


<html>
    <head>
        <title>CRUD CodeIgniter</title>
    </head>
    <body>
        <table>
 
            <tbody>
                <h2><?php echo $type;?></h2>
    <?php echo form_open('data_produk/post'); ?>
    <?php if ($type=="EDIT"){ 
     echo form_hidden('id', $this->input->get('produk'));
     }
     ?>
                        <tr>
    <td>Nama</td>
    <td><input type="text" name="nama" value="<?php if ($type=="EDIT"){echo $produk[0]->nama;};?>"></td>
   </tr>
   <tr>
    <td>Harga</td>
    <td><input type="number" name="harga" value="<?php if ($type=="EDIT"){echo $produk[0]->harga;};?>"></td>
   </tr>
   <tr>
    <td>Stok</td>
    <td><input type="number" name="stok" value="<?php if ($type=="EDIT"){echo $produk[0]->stok;};?>"></td>
   </tr>
   <tr>
    <td></td>
    <td><input type="submit" name="simpan" value="<?php echo $type;?>"></td>
   </tr>
   <?php echo form_close();?>
            </tbody>
        </table>
    </body>
</html>

Setelah selesai mari kita buat fungsi Post di controller data_produk.php. Setelah tombol input/edit ditekan di view input tadi maka akan memprosees POST ke fungsi ini. Pada fungsi ini dia akan meminta input / edit dari model sesuai jenis post nya. Sisipkan script berikut di bawah fungsi / function terakhir di controller.

  public function Post(){
       $this->load->database();//memanggil pengaturan database dan mengaktifkannya
       $this->load->model('m_data_produk');//memanggil model m_data_produk.php
  
       //mengambil data dari post memasukan ke array agar lebih mudah 
       $param = array(
         'nama' => $this->input->post('nama'),
         'harga' => $this->input->post('harga'),
         'stok'=> $this->input->post('stok')
         );
       //jika simpan == input 
       if($this->input->post('simpan')=="INPUT"){
            $this->m_data_produk->input($param); 
       }else
       if($this->input->post('simpan')=="EDIT"){
            $id= $this->input->post('id');
            $this->m_data_produk->edit($param,$id); 
       }
  
        //memanggil helper url untuk fungsi redirect
        $this->load->helper('url');
        //mengalihkan ke list data produk setelah input atau edit selesai
        redirect('data_produk','refresh');
       }

Karena di fungsi diatas memanggil fungsi dari model maka kita akan membuat fungsi itu. Terdapat dua fungsi yang dipanggil oleh controller itu yaitu input() dan edit() , maka buka kembali model m_data_produk.php dan sisipkan syntax ini untuk membuat fungsi input dan edit.

  function input($param){
     $this->db->insert('data_barang',$param);
     return true;
  }
 
  function getEdit($id){
     $this->db->where('id',$id);
     $query = $this->db->get('data_barang');
  
     return $query->result();
  }
 
  function edit($param,$id){
     $this->db->where('id',$id);
     $this->db->update('data_barang',$param);
     return true;
  }

fungsi input untuk menginput data ke database, fungsi getEdit adalah untuk mengambil data yang akan di edit berdasarkan Id produknya. dan edit untuk mengubah data di database sesuai dengan yang di edit.
Pada tahap ini kita sudah selesai membuat CREATE dan UPDATE.

Membuat DELETE
Dari view v_data_produk.php kita sudah membuat link untuk menghapus data namun belum ada fungsinya, dan sekarang kita akan membuat fungsi untuk menghapusnya. Pertama buka controller data_produk.php dan sisipkan fungsi ini di bawah fungsi terakhir.

  public function Delete(){
     $this->load->database();//memanggil pengaturan database dan mengaktifkannya
     $this->load->model('m_data_produk');//memanggil model m_data_produk.php
     $id = $this->input->get('produk');
     $this->m_data_produk->delete($id);
  
     $this->load->helper('url');
     redirect('data_produk','refresh');
  }


fungsi di controller selesai dibuat selanjutnya kita buat fungsi di modelnya yang di panggil di controller yaitu fungsi delete() maka sisipkan fungsi ini di m_data_produk.php. 

  function delete($id){
     $this->db->where('id',$id);
     $this->db->delete('data_barang');
  }

Dengan ini proses Delete telah selesai.
Panggil http://localhost/CRUDCodeIgniter/index.php/data_produk Inilah hasilnya
Tutorial CRUD dengan CodeIgniter
Tutorial CRUD dengan CodeIgniter
Tutorial CRUD dengan CodeIgniter

Jika kamu masih kebingungan dalam menerapkannya kamu bisa bertanya di komen dibawah, saya akan senantiasa menjawabnya.
Silahkan Download Source Code dari Tutorial ini disini
Tutorial Teknik Grabbing Content di PHP
Membuat website gratis dengan cepat
Aplikasi Screen Recorder untuk Game
Menghasilkan uang di internet tanpa mempunyai website
Beri +1,like atau follow fanpage facebook dan google plus kami.
Back To Top