Please enable JavaScript!
Bitte aktiviere JavaScript!
S'il vous plaît activer JavaScript!
Por favor,activa el JavaScript!
antiblock.org

 |  |  | 
Anda ingin membuat website?
Untuk Anda yang sedang mencari orang untuk jasa pembuatan website, Saya akan bantu buatkan aplikasi sesuai kebutuhan Anda. Segera hubungi : mail@rizaldimaulidia.com. Selengkapnya tentang profil saya klik www.rizaldimaulidia.com.

Codeigniter Tips and Trick

Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

img-responsive

Apa sebenarnya keuntungan dari fitur “Multiple Delete”? keuntungan dengan menyediakan fitur ini yakni agar memudahkan user yang menggunakan aplikasi kita untuk menghapus lebih dari 1 data dalam sekali aksi artinya fitur ini akan sangat berguna ketika user akan menghapus banyak data. Akan cukup merepotkan juga ketika dalam aplikasi hanya disediakan fitur hapus per 1 data, sementara user diharuskan menghapus banyak data. Sebelumnya saya sudah share tutorial multiple delete dengan php dan mysql, sekarang kita akan coba buat dengan menggunakan Framework Codeigniter 3.

DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Buat sebuah folder baru dengan nama multiple_delete, lalu simpan pada folder xampp/htdocs/.
  2. Download Framework Codeigniter, klik link berikut : download.
  3. Download plugin JQuery, klik link berikut : Download.
  4. Ekstrak dan Copy codeigniter_v3.7z yang telah di download tadi ke folder xampp/htdocs/multiple_delete/.
  5. Buat sebuah folder dengan nama assets, lalu simpan pada folder xampp/htdocs/multiple_delete/.
  6. Copy and paste file jquery.min.js yang telah di download tadi ke dalam folder xampp/htdocs/multiple_delete/assets/.

STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

    CREATE TABLE IF NOT EXISTS `siswa` (
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `jenis_kelamin` varchar(10) NOT NULL,
      `telp` varchar(15) NOT NULL,
      `alamat` text NOT NULL,
      PRIMARY KEY (`nis`)
    )

STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.

  1. Buka folder xampp/htdocs/multiple_delete/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :

    $config['base_url'] = 'http://localhost/multiple_delete/';

    Kode diatas digunakan untuk menset baseurlnya.
    Lalu simpan file tersebut.

  3. Buka file autoload.php
    Cari kode berikut ini :

    $autoload['libraries'] = array();
    $autoload['helper'] = array();

    Ubah jadi seperti ini :

    $autoload['libraries'] = array('database');
    $autoload['helper'] = array('url');

    Kode diatas digunakan untuk memuat (menload) class database dan url.
    Lalu simpan file tersebut.

  4. Buka file routes.php
    Cari kode berikut ini :

    $route['default_controller'] = 'welcome';

    Ubah jadi seperti ini :

    $route['default_controller'] = 'siswa';

    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi siswa.
    Lalu simpan file tersebut.

  5. Buka file database.php
    Cari kode berikut ini :

    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',

    Ubah jadi seperti ini :

    'hostname' => 'localhost', // Nama host
    'username' => 'root', // Username
    'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    'database' => 'mynotescode', // Nama databasenya

    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.


STEP 4 – BUAT MODEL
Langkah selanjutnya adalah membuat modelnya. Buat sebuah file dengan nama SiswaModel.php, Lalu simpan pada folder xampp/htdocs/multiple_delete/application/models/. Berikut kodenya :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class SiswaModel extends CI_Model {
  public function view(){
    return $this->db->get('siswa')->result();
  }
    
  public function delete($nis){
        $this->db->where_in('nis', $nis);
    $this->db->delete('siswa');
  }
}

Pada kode diatas, kita membuat sebuah fungsi view(). dimana didalamnya terdapat kode return $this->db->get(‘siswa’)->result(). Kode tersebut berfungsi untuk menampilkan semua data pada tabel siswa. Struktur dasar penulisannya seperti ini : return $this->db->get(‘nama_tabel‘)->result(). Lalu pada kode diatas juga ada kode return, kode tersebut digunakan untuk mengeluarkan hasil dari sebuah fungsi. Pada kasus diatas, hasil yang dikeluarkan oleh return yaitu data-data siswa.

Fungsi delete() berguna untuk menghapus data siswa sesuai nis yang di set. $nis disini adalah daftar nis dalam bentuk array yang di ceklis pada form delete. Gambar berikut ini adalah isi dari $nis yang dikirim dari form delete (yang di ceklis di form delete) :
Array - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

Nah daftar nis tadi nanti akan kita tambahkan ke fungsi $this->db->where_in() pada parameter 2 lalu panggil fungsi $this->db->delete(). Fungsi delete() itu akan mengeksekusi query sql : “DELETE FROM siswa WHERE nis IN (10110470116,10110470118,10110470119,10110470121,10110470122)“.


STEP 5 – BUAT CONTROLLER
Pada tahap ini, kita akan membuat controllernya. Buat sebuah file dengan nama Siswa.php, lalu simpan pada folder xampp/htdocs/multiple_delete/application/controllers/. Berikut ini kodenya :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Siswa extends CI_Controller {
  
  public function __construct(){
    parent::__construct();
    
    $this->load->model('SiswaModel');
  }
  
  public function index(){
    $data['siswa'] = $this->SiswaModel->view();
    
    $this->load->view('view', $data); // Load view view.php
  }
    
    public function delete(){
        $nis = $_POST['nis']; // Ambil data NIS yang dikirim oleh view.php melalui form submit
        $this->SiswaModel->delete($nis); // Panggil fungsi delete dari model
        
        redirect('siswa');
    }
}

public function __construct(){
fungsi ini berfungsi untuk menjalankan suatu aksi ketika controller main diload. Didalam fungsi ini, terdapat kode $this->load->model(‘SiswaModel’);, kode tersebut berfungsi untuk memuat (meload) model siswa (yang pada step sebelumnya kita buat) agar kita bisa mengakses fungsi-fungsi yang ada didalam model tersebut.

public function index()
Dalam fungsi ini ada kode $data[‘siswa’] = $this->SiswaModel->view();, kode tersebut digunakan untuk mengambil hasil query sql dari fungsi view() yang ada pada model siswa (SiswaModel.php) lalu memasukannya ke dalam array data dengan index siswa ($data[‘siswa’]). Pada fungsi index() ini juga, terdapat kode $this->load->view(‘view’, $data);. Kode tersebut berfungsi untuk memuat (meload) file view.php (file ini akan kita buat pada step selanjutnya) dan mengirimkan array data ($data) tadi ke file tersebut.

public function delete()
Fungsi ini berguna untuk melakukan proses delete. Dimana didalam fungsi ini kita akan mengambil data nis yang dikirim dari form pada file view.php dan memanggil fungsi delete() yang ada di SiswaModel.php.


STEP 6 – BUAT VIEW
Selanjutnya kita akan buat sebuah file untuk menampilkan data siswa dan tombol tambah data. Buat file baru dengan nama view.php, lalu simpan pada folder xampp/htdocs/multiple_delete/application/views/. Berikut ini kode dan tampilannya :

View - Struktur Tabel - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

<html>
<head>
  <title>Multiple Delete</title>

  <style>
  table {
    border-collapse: collapse;
  }

  table, td, th {
    border: 1px solid black;
  }
  </style>
    
    <!-- Load librari/plugin jquery nya -->
  <script src="<?php echo base_url('assets/jquery.min.js'); ?>"></script> 
</head>
<body>
  <h1>Data Siswa</h1>
    
    <form method="post" action="<?php echo base_url('index.php/siswa/delete') ?>" id="form-delete">
    	<table border="1" cellpadding="5">
    	<tr>
    		<th><input type="checkbox" id="check-all"></th>
    		<th>NIS</th>
    		<th>Nama</th>
    		<th>Telepon</th>
    		<th>Alamat</th>
    	</tr>
    	<?php
    	if( ! empty($siswa)){
    		$no = 1;
    		foreach($siswa as $data){
    			echo "<tr>";
    			echo "<td><input type='checkbox' class='check-item' name='nis[]' value='".$data->nis."'></td>";
    			echo "<td>".$data->nis."</td>";
    			echo "<td>".$data->nama."</td>";
    			echo "<td>".$data->telp."</td>";
    			echo "<td>".$data->alamat."</td>";
    			echo "</tr>";
    			$no++;
    		}
    	}
    	?>
    	</table>
        <hr>
        <button type="button" id="btn-delete">DELETE</button>
    </form>
    
    <script>
  $(document).ready(function(){ // Ketika halaman sudah siap (sudah selesai di load)
    $("#check-all").click(function(){ // Ketika user men-cek checkbox all
      if($(this).is(":checked")) // Jika checkbox all diceklis
        $(".check-item").prop("checked", true); // ceklis semua checkbox siswa dengan class "check-item"
      else // Jika checkbox all tidak diceklis
        $(".check-item").prop("checked", false); // un-ceklis semua checkbox siswa dengan class "check-item"
    });
    
    $("#btn-delete").click(function(){ // Ketika user mengklik tombol delete
      var confirm = window.confirm("Apakah Anda yakin ingin menghapus data-data ini?"); // Buat sebuah alert konfirmasi
      
      if(confirm) // Jika user mengklik tombol "Ok"
        $("#form-delete").submit(); // Submit form
    });
  });
  </script>
</body>
</html>

Untuk fitur multiple delete yang akan kita buat ini, konsepnya adalah dengan memanfaatkan checkbox. Checkbox ini berguna untuk agar user bisa memilih data mana saja yang akan dia hapus. Jadi kita akan melakukan hapus data terhadap data siswa yang user ceklis saja.

echo “<td><input type=’checkbox’ class=’check-item’ name=’nis[]‘ value='”.$data->nis.”‘></td>”;
Kunci utama dari multiple delete ini adalah atribut name pada checkbox siswa nya. Pada kode diatas, terlihat saya memberi atribut checkbox nya dengan “nis[]” dan diisi dengan value dari nis siswa tersebut. Arti dari kurung siku disitu adalah agar ketika kita kirim data nis tadi ke file proses hapus melalui form submit, data nis tersebut menjadi sebuah array yang berisi nis siswa yang telah di pilih oleh user. Kalau kita coba lihat isi dari data nis tersebut, hasilnya akan seperti gambar dibawah ini :

Array - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

Gambar diatas merupakan hasil dari kode print_r($_POST); pada fungsi delete() di controller siswa (yang kita buat pada step sebelumnya). Untuk melihat data apa saja yang dikirim dari form. Terlihat bahwa terdapat data nis yang berisi nis-nis yang berjumlah 5 nis (karena di form saya ceklis 5 siswa).


Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.


SUMBER & REFERENSI
Dokumentasi Codeigniter : https://www.codeigniter.com/user_guide
Membuat multiple delete dengan codeigniter, Membuat multiple delete dengan codeigniter 3, tutorial membuat multiple delete dengan codeigniter dan mysql, cara mudah membua tmultiple delete dengan framework codeigniter 3 dan database mysql

Multiple Delete

(Total : 13,767 viewers, 3 viewers today)
multiple-delete-codeigniter-mysql

ABOUT THE AUTHOR

Interested in android programming, long time focused on web development. Visit My Profile Site at www.rizaldimaulidia.com

POST YOUR COMMENTS

Your email address will not be published. Required fields are marked *

Name *

Email *

Website

16 Comments

  1. muhrofik

    Mas, mau tanya ?
    ada contoh / tutor buat system kaya saya mau bikin input data dari data A ke B, dan ketika data A sudah masuk ke B, data A pindah. tapi Fildnya antara data A dan B beda, misal di data A saya cuma punya NIK dan Nama saja, dan saya mau bikin form input tambahan sebelum submit ke data B, dengan tambahan misal Alamat dan Email / No Hp. jadi di data B saya ada tambahan Fildnya jadi NIK, Nama, Email, NoHP dan Alamat.

    terimakasih sebelumnya, Artikelnya sangat bagus dan detil penjelasanya, buat saya yg awam sangat terbantu. 🙂

    • Kalau sampai spesifik kaya gitu ga ada om.
      Tapi itu sih tinggal masalah alur dan logic nya aja. Basic nya om hanya pelajari crud dan if…else. seharusnya sudah bisa bikin apps tersebut.
      Siap sama-sama om, Senang bisa membantu 🙂

  2. liyansyah

    halo mas, ini errornya “Message: Undefined index:” dan “Deletes are not allowed unless they contain a “where” or “like” clause.”, bagaimana cara mengetasinya?

    • itu query deletenya kaya gimana? dari errornya katanya query delete om ga ada where / like untuk kondisinya.
      query deletenya cuman gini ya : “DELETE FROM namatabel” ?

      harus ada kondisinya, mau delete data yang mana

  3. birson muara

    Selamat malam kang izin bertanya ttng penulisan Query di PHP, cara menghapus data terbaru yg di input. sbg contoh saya input data hari ini ketika saya klik button hapus yg terhapus hanya data yg terbaru yaitu data hari ini dan data2 tgl2 sebelumnya tdk ikut terhapus (delete datanya ini tanpa multiple ya kang alias delete data biasa saja) trimakasih kang

    • Tinggal buat query delete nya dengan where tanggal hari ini.
      contoh :
      DELETE FROM namatabel WHERE DATE(fieldtanggal)=CURDATE()

      tapi syaratnya ditabel nya harus ada field tanggal data tersebut di create

  4. Saya coba errornya undefined index sama deletes are not alloed unless they contain a where or like itu kenapa yak? Padahal saya udah sesuai dengan scriptnya

  5. syahril_bee

    saya checkbox all tapi tidak ada eventya, cuma 1 yg paling atas yang checlist, terus tombol delete nya di klik tidak ada respon, dimana error scriptnya terima kasih

  6. Anonym83

    Tambahan jika user tidak memilih data:

    if (!$(‘.check-item’).is(‘:checked’)){
    alert(“Anda belum memilih data!”);
    }
    else if($(‘.check-item’).is(‘:checked’)) {
    var confirm = window.confirm(“Apakah Anda yakin ingin menghapus data-data ini?”); // Buat sebuah alert konfirmasi
    }

    Btw terima kasih code nya.

  7. harissss

    saya coba pake where_in untuk multiple update malah ke update semua ya ,bisa bantu buat multiple update checkboxnya gan ?

    • kalau untuk update tidak bisa di samakan dengan skrip delete disini, jangan pakai where_in. lebih baik di looping saja sebanyak yang di ceklis, mainin array sih

NOTE ARCHIVES