Wed Dec 2019 1 year ago

Cara Delete Data di CodeIgniter (Membuat CRUD)

membuat-crud-dengan-codeigniter-hapus-data

Selamat malam kali ini kita akan membuat tutorial cara menghapus data dari database dengan codeigniter. Tutorial ini adalah terusan tutorial sebelumnya yaitu cara membuat update data dengan codeigniter. Bagi yang belum membacar silahkan kunjungi Membuat update data dengan CodeIgniter.

Oke kita langsungsung saja, silahkan anda simak cara menghapus data dengan codeigniter.

Dalam membuat hapus data pada dasarnya sama seperti php native namun di dalam codeigniter ada proses yang namanya mvc, sehingga dalam prosescrudnya agak sedikit berbeda. 

Seperti pada vie_tampil.php yang sudah kita buatdalam tutorial sebelumnya yang menampilkan data dari database dari bentuk tabelyang sudah ada linkinya untuk edit dan delete. Seperti dibawah ini.

<!DOCTYPE html>
<html>
<head>
    <title>Membuat CRUD dengan CodeIgniter | MalasNgoding.com</title>
</head>
<body>
    <center><h1>Membuat CRUD dengan CodeIgniter | MalasNgoding.com</h1></center>
    <center><?php echo anchor('crud/tambah','Tambah Data'); ?></center>
    <table style="margin:20px auto;" border="1">
        <tr>
            <th>No</th>
            <th>Nama</th>
            <th>Alamat</th>
            <th>Pekerjaan</th>
            <th>Action</th>
        </tr>
        <?php 
        $no = 1;
        foreach($user as $u){ 
        ?>
        <tr>
            <td><?php echo $no++ ?></td>
            <td><?php echo $u->nama ?></td>
            <td><?php echo $u->alamat ?></td>
            <td><?php echo $u->pekerjaan ?></td>
            <td>
                <?php echo anchor('crud/edit/'.$u->id,'Edit'); ?>
                <?php echo anchor('crud/hapus/'.$u->id,'Hapus'); ?>        
            </td>
        </tr>
        <?php } ?>
    </table>
</body>
</html>

Pada kode diatas bisa anda perhatikan sudah berisi link anchor untuk edit dan delete data yang sudah kita buat. 

echo anchor('crud/hapus/'.$u->id,'Hapus');

Nantinya link tersebut akan tertuju pada function atau method hapus di controller dan akan mengirimkan sesuai dengan id yang kita pilih pada tabel view tampil data. Dan nanti id-nya akan memberikan action untuk menghapus data sesuai dengan id. 

Untuk selanjutnya kita buat method pada controller crud (application/controllers/crud.php).

class Crud extends CI_Controller{
 
    function __construct(){
        parent::__construct();        
        $this->load->model('m_data');
        $this->load->helper('url');
 
    }
 
    function index(){
        $data['user'] = $this->m_data->tampil_data()->result();
        $this->load->view('v_tampil',$data);
    }
 
    function tambah(){
        $this->load->view('v_input');
    }
 
    function tambah_aksi(){
        $nama = $this->input->post('nama');
        $alamat = $this->input->post('alamat');
        $pekerjaan = $this->input->post('pekerjaan');
 
        $data = array(
            'nama' => $nama,
            'alamat' => $alamat,
            'pekerjaan' => $pekerjaan
            );
        $this->m_data->input_data($data,'user');
        redirect('crud/index');
    }
 
    function hapus($id){
        $where = array('id' => $id);
        $this->m_data->hapus_data($where,'user');
        redirect('crud/index');
    }
}

Coba anda perhatikan pada method hapus ini dibawah :

function hapus($id){
    $where = array('id' => $id);
    $this->m_data->hapus_data($where,'user');
    redirect('crud/index');
}

Pada sebuah parameter function hapus() saya memberikan variabel $id yang berguna untuk menangkap data id yang di kirim melalui URL dari link hapus tadi. kemudian saya jadikan array untuk kita kirimkan data array nya ke model m_data. Perhatikan juga pada

$this->m_data->hapus_data($where,'user');

Pada fungsi hapus_data disini masih memberikan variabel array $where  yang berisi data id tadi dan yang kedua berisi paramer tabel user.

karena kita menggunakan function model hapus_data pada model m_data.php, maka kita buat kan lagi function hapus_data pada model m_data.php (application/models/m_data.php).

function hapus_data($where,$table){
    $this->db->where($where);
    $this->db->delete($table);
}

Sehingga akan seperti ini dalam versi lengkapnya. 

class M_data extends CI_Model{
function tampil_data(){
return $this->db->get('user');
}
function input_data($data,$table){
$this->db->insert($table,$data);
}
function update_data(){
return $this->db->get('user');
}
function hapus_data($where,$table){
$this->db->where($where);
$this->db->delete($table);
}
}

 Dan sekarang coba anda jalankan untuk melihat hasilnya apakah sudah benar dan bisa menghapus sesuai record di dalam tabel.