Cara Membuat Update Data, Delete Data dan Search Data di PHP Codeigniter

Cara Membuat Update Data, Delete Data dan Search Data di PHP Codeigniter (Tutorial CRUD dengan Codeigniter Part 3) – Kali ini saya akan membahas mengenai lanjutan tutorial codeigniter sebelumnya. Pada tutorial codeigniter part2 saya telah membuat table database, membuat fungsi INSERT data dan SELECT data.

CRUD CI
Kali ini saya akan menambahkan fungsi DELETE dan fungsi UPDATE. Bagi anda yang belum membaca artikel sebelumnya saya sarankan untuk membaca terlebih dahulu. Agar lebih paham nantinya dalam membaca tutorial ini.

Cara Membuat Update Data, Delete Data dan Search Data di PHP Codeigniter (Tutorial CRUD dengan Codeigniter Part 3)

Membuat Delete Data (Hapus Data)  

Ok, kita mulai dengan membuat fungsi DELETE terlebih dahulu. Sebelumnya saya telah membuat button hapus pada tutorial codeigniter part 2. Kita mulai dari folder view nya (application/views/data.php) terlebih dahulu. Tambahkan link href urlnya seperti contoh dibawah ini :

<a class="btn btn-danger" onclick="return confirm('yakin data dihapus pak?')" href="<?php echo base_url('hapusData/').$s['id'] ?>">Hapus</a>

Saya jelaskan sedikit menganai source code diatas. Untuk fungsi onclick=”return confirm()” digunakan untuk memunculkan alert sebelum proses penghapusan data dijalankan. Sedangkan di dalam link href tersebut merupakan alamat fungsi hapus yang terletak di controller kita. $s adalah alias variable foreach dari siswa dan id sebagai parameter yang diguanakan.

Setelah itu kita akan buat fungsi hapus di folder controller ( application/controllers/C_inponow ) lalu isikan seperti contoh yang saya buat.

public function hapusData($id) {
  $this->M_inponow->hapusData($id); redirect('tampildata');
} 



Lanjut lagi kita buat fungsi baru untuk hapusData di folder models (application/models/M_inponow), fungsi ini untuk mengatur query hapus data dari data yang kita buat di database. contoh source codenya seperti yang di bawah ini.

public function hapusData($id) {
   $this->db->delete('tabel-inponow', ['id' => $id]);
}

Bagaimana simple bukan untuk membuat fungsi hapus data. Memang pada fungsi hapuslah yang paling singkat. Yang perlu diperhatikan adalah pada query yang digunakan. Jangan lupa untuk menambahkan parameter id.

Source Code dari codeigniter ['id' => $id], itu jika di ibaratkan seperti fungsi ( where id = $id ). Yang saya gunakan pada tutorial codeigniter ini merupakan jenis penulisan singkatnya yang ada di Codeigniter.  Silahkan untuk menguji fungsi delete yang baru saja anda buat.

Membuat Search Data (Pencarian)

Kita lanjut untuk membuat fungsi Search data. Sebelumnya saya juga telah membuat tampilan form pencarian di file (application/views/section/data.php). Dan itu hanya sebatas tampilan search saja. Berikut merupakan source code tampilan form pencarian yang pernah saya buat.

<form class="" action="" method="post">
  <div class="input-group"> <input type="text" name="keyword" class="form-control" placeholder="Cari data siswa...">
    <div class="input-group-append">
     <button type="submit" class="btn btn-primary" name="button">Cari</button> 
    </div>
  </div>
</form>

Kemudian saya akan lanjut untuk membuat fungsi di controller. Untuk search data kali ini kita tidak perlu membuat fungsi baru di controller. Karena saya hanya membuat satu kondisi menggunakan if else di fungsi tampildata() yang telah saya buat di tutorial sebelumnya ( application/controllers/C_inponow ). Berikut merupakan source codenya :

public function tampildata() { 
  $data['judul'] = 'Daftar Employees';  
  $data['siswa'] = $this->M_inponow->getData();
   if ($this->input->post('keyword')) { 
        $data['siswa'] = $this->M_inponow->cariData();
    }  
  $this->load->view('template/header', $data);
  $this->load->view('section/data', $data);  
  $this->load->view('template/footer'); 
}

Lihat juga : Tutorial Codeigniter Part 2

Kemudian kita lanjut untuk membuat modelnya. Letak filenya di (application/models/M_inponow), kita buat function baru dengan nama cariData. Saya membuat form pencarian berdasarkan nama dan no induk. Berikut source code function cariData di M_inponow.

public function cariData() {
  $keyword =$this->input->post('keyword', true); 
  $this->db->like('nama', $keyword);    
  $this->db->or_like('no_induk', $keyword);    
  return $this->db->get('tabel-inponow')->result_array();
} 

Jika anda ingin manambahkannya anda cukup menambahkan fungsi ( $this->db->or_like('terserah_anda', $keyword); ). Sekarang cobalah untuk melakukan pencarian dengan menggunakan form pencarian tersebut.

Membuat Update Data

Lanjut lagi kita akan membuat fungsi update data. Pertama buka file ( application/views/section/tambahdata.php ) lalu tambahkan tombol edit dibawah source code tombol hapus. Lalu isi link href-nya seperti contoh dibawah ini.

<a class="btn btn-primary" href="<?php echo base_url('updateData/').$s['id'] ?>">Edit</a> 

Jangan lupa ( .$s['id'] ) karena id kita butuhkan sebagai parameter. Lanjut kita akan membuat tampilan atau view untuk melakukan update data. Kita cukup salin source code dari file insert data ( application/views/section/tambahdata.php ) yang dulu pernah saya buat di tutorial sebelumnya.

Buat file baru di folder section data, kemudian berikan nama (editdata.php). Kemudian dalam file tesebut paste source code dari file (tambahdata.php). Bedanya dengan form tambahdata adalah dengan memberikan value pada setiap masing masing form inputan (yaitu : nama, no_induk, jurusan).

Pemberian value dimaksudkan untuk memanggil data telah tersimpan di database. Berikut merupakan source code untuk tampilan edit data ( application/views/section/editdata.php ).

<div class="container">
  <div class="row">
    <div class="col-md-3"></div>
    <div class="col-md-6">
      <div class="card mt-4">
        <div class="card-header"> <b>Edit data siswa</b> </div> <?php if (validation_errors() ) : ?> <div class="alert alert-danger" role="alert"> <br><?= validation_errors(); ?> </div> <?php endif; ?> <div class="card-body">
          <form class="" action="" method="post">
            <div class="form-group"> 
              <label for="nama">Nama </label> 
              <input type="text" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter Your Name" name="nama" value="<?php echo $datanya['nama'] ?>"> <small
                id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small> </div>
            <div class="form-group"> 
              <label for="no_induk">No Induk</label> 
              <input type="text" class="form-control" id="exampleInputPassword1" placeholder="f23xxx" name="no_induk" value="<?php echo $datanya['no_induk'] ?>"> </div>
            <div class="form-group"> 
              <label for="seksi">Jurusan</label> 
              <select class="form-control" id="seksi" name="seksi" value="<?php $datanya['jurusan'] ?>"> 
                <?php foreach($seksi as $s) : ?>
                   <?php if($s == $datanya['jurusan'] ) : ?>
                      <option value="<?= $s; ?>" selected> <?= $s; ?> </option>
                   <?php else : ?>
                      <option value="<?= $s; ?>"> <?= $s; ?> </option> 
                   <?php endif; ?> <?php endforeach; ?> 
                </select> 
            </div> 
            <button type="submit" class="btn btn-primary"> Edit Data</button>
          </form>
        </div>
      </div>
    </div>
  </div>
  <div class="col-md-3"></div>
</div>

Lanjut kita akan mulai membuat fungsi di controller ( application/controllers/C_inponow ) untuk update data. Saya akan memberikan nama function updateData(). Berikut ini merupakan source code dari update data :

public function updateData($id) {
  $data['judul'] ='Form Edit Data';
  $data['datanya'] = $this->M_inponow->getDataById($id);
  $data['seksi'] = ['Teknik Mesin', 'Teknik Komputer', 'Akutansi', 'Teknik Gambar Bangunan'];
  $this->form_validation->set_rules('nama', 'Nama', 'required');
  $this->form_validation->set_rules('no_induk', 'No Induk', 'required');
   if ($this->form_validation->run() == FALSE ) {
     $this->load->view('template/header', $data);
     $this->load->view('section/editdata', $data);
     $this->load->view('template/footer');
   } else {
     $this->M_inponow->setUpdatedata($id);
     $this->session->set_flashdata('flash', 'Diubah');
     redirect('tampildata');
   }
}


Ok langkah terakhir yaitu dengan membuat function di models (application/models/M_inponow). Di dalam function models kita akan tambahkan 2 function yaitu function getDataById() untuk menampilakan data sesuai dengan parameter yang dipilih.

Lalu yang kedua function update data itu sendiri yang berikan nama setUpdatedate(). Di dalam function getDataById() tersebut isikan seperti contoh dibawah ini :

public function getDataById($id) { 

 return $this->db->get_where('tabel-inponow', ['id' => $id])->row_array(); 

} 

public function setUpdatedata($id) { 

 $data = [
 "nama" => $this->input->post('nama', true), 
 "no_induk" => $this->input->post('no_induk', true), 
 "jurusan" => $this->input->post('seksi', true)
 ]; 

 $this->db->where('id', $id); $this->db->update('tabel-inponow', $data); 

}

Hasil akhir :

Melakukan input data


Uji coba hasil codingan teman-teman dan jika menemukan error coba perhatikan ulang di setiap source code yang saya berikan. Jika ada pertanyaan jangan sungkan untuk bertanya di kolom komentar, dan anda dapat memiliki full source codenya di sini. Ok sekian untuk arikel Cara Membuat Update Data, Delete Data dan Search Data di PHP Codeigniter (Tutorial CRUD dengan Codeigniter Part 3) . Kurang lebihnya saya mohon maaf dan semoga dapat bermanfaat.

1 comment

  1. kirim kodenya mas

Baca juga artikel menarik lainnya