Setelah sebelumnya kita belajar cara menampilkan dan menginput data ke database menggunakan CodeIgniter, pada tutorial kali ini kita akan membahas bagaimana cara menghapus data dari database. Proses penghapusan data ini juga akan melibatkan struktur Model-View-Controller (MVC) pada CodeIgniter.
Persiapan
Pastikan Anda sudah memiliki hal-hal berikut:
- Proyek CodeIgniter: Proyek CodeIgniter Anda sudah berjalan.
- Koneksi Database: Konfigurasi database di
application/config/database.phpsudah benar. - Data di Database: Sudah ada data di dalam tabel yang ingin Anda hapus (misalnya, tabel
mahasiswayang kita gunakan pada tutorial sebelumnya). - Controller dan Model: Controller (
Crud.php) dan Model (M_data.php) yang sudah kita buat pada tutorial sebelumnya (menginput data) akan kita gunakan kembali atau modifikasi. Jika belum, silakan ikuti tutorial sebelumnya terlebih dahulu.
Langkah 1: Membuat Link atau Tombol Hapus di View
Pertama, kita perlu menampilkan data yang ada dan menambahkan opsi untuk menghapus setiap baris data. Kita akan memodifikasi view yang menampilkan data mahasiswa (anggap saja kita memiliki view bernama v_tampil.php).
application/views/v_tampil.php
Jika Anda belum memiliki view untuk menampilkan data, buatlah terlebih dahulu. Berikut contohnya:
“`php
<!DOCTYPE html>
<html>
<head>
<title>Data Mahasiswa</title>
</head>
<body>
<center>
<h3>Data Mahasiswa</h3>
<a href=”<?php echo base_url(). ‘crud/tambah’; ?>”>Tambah Data</a>
</center>
<table style=”margin:20px auto;” border=”1″>
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>NIM</th>
<th>Jurusan</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
foreach($mahasiswa as $m){
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $m->nama; ?></td>
<td><?php echo $m->nim; ?></td>
<td><?php echo $m->jurusan; ?></td>
<td>
<a href=”<?php echo base_url(). ‘crud/edit/’.$m->id; ?>”>Edit</a>
<a href=”<?php echo base_url(). ‘crud/hapus_aksi/’.$m->id; ?>”>Hapus</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</body>
</html>
“`
<a href="<?php echo base_url(). 'crud/hapus_aksi/'.$m->id; ?>">Hapus</a>: Pada setiap baris data, kita menambahkan sebuah link “Hapus”. Link ini akan mengarah ke methodhapus_aksipada controllercrud, dan kita mengirimkanidmahasiswa yang akan dihapus melalui URL.
Langkah 2: Memodifikasi Model
Pada model M_data.php, kita akan menambahkan sebuah fungsi untuk menghapus data berdasarkan ID.
application/models/m_data.php
“`php
<?php
defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);
class M_data extends CI_Model{
function tampil_data(){
return $this->db->get('mahasiswa');
}
function input_data($data, $table){
$this->db->insert($table, $data);
}
function hapus_data($where, $table){
$this->db->where($where);
$this->db->delete($table);
}
function edit_data($where, $table){
return $this->db->get_where($table, $where);
}
function update_data($where, $data, $table){
$this->db->where($where);
$this->db->update($table, $data);
}
}1
“`2
hapus_data($where, $table): Fungsi ini menerima dua parameter:3$where: Array yang berisi kondisi WHERE untuk menentukan data mana yang akan dihapus (biasanya berdasarkanid).4$table: 5Nama tabel dari mana data akan dihapus.
$this->db->where($where): Fungsi ini digunakan untuk menentukan klausa WHERE pada query DELETE.$this->db->delete($table): Fungsi ini menjalankan query DELETE pada tabel yang ditentukan.
Langkah 3: Memodifikasi Controller
Pada controller Crud.php, kita akan membuat method hapus_aksi yang akan menerima id dari URL dan memanggil model untuk melakukan penghapusan.
application/controllers/Crud.php
“`php
<?php
defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);
class Crud extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('m_data');
$this->load->helper('url');
}
public function index(){
$data['mahasiswa'] = $this->m_data->tampil_data()->result();
$this->load->view('v_tampil', $data);
}
public function tambah(){
$this->load->view('v_input');
}
public function tambah_aksi(){
$nama = $this->input->post('nama');
$nim = $this->input->post('nim');
$jurusan = $this->input->post('jurusan');
$data = array(
'nama' => $nama,
'nim' => $nim,
'jurusan' => $jurusan
);
$this->m_data->input_data($data,'mahasiswa');
redirect('crud/index');
}
public function hapus_aksi($id){
$where = array('id' => $id);
$this->m_data->hapus_data($where, 'mahasiswa');
redirect('crud/index');
}
public function edit($id){
$where = array('id' => $id);
$data['mahasiswa'] = $this->m_data->edit_data($where, 'mahasiswa')->result();
$this->load->view('v_edit', $data);
}
public function update(){
$id = $this->input->post('id');
$nama = $this->input->post('nama');
$nim = $this->input->post('nim');
$jurusan = $this->input->post('jurusan');
$data = array(
'nama' => $nama,
'nim' => $nim,
'jurusan' => $jurusan
);
$where = array('id' => $id);
$this->m_data->update_data($where, $data, 'mahasiswa');
redirect('crud/index');
}
}
“`
hapus_aksi($id): Method ini menerima$iddari URL.$where = array('id' => $id);: Kita membuat array$wheresebagai kondisi untuk menghapus data berdasarkanid.$this->m_data->hapus_data($where, 'mahasiswa');: Kita memanggil fungsihapus_datadari modelM_datadan memberikan kondisi$wheredan nama tabel'mahasiswa'.redirect('crud/index');: Setelah data berhasil dihapus, kita mengarahkan pengguna kembali ke halaman yang menampilkan daftar mahasiswa.
Langkah 4: Menguji Penghapusan Data
- Akses halaman yang menampilkan data mahasiswa (biasanya
http://localhost/namaproyek/index.php/crud). - Anda akan melihat daftar data mahasiswa dengan link “Hapus” di setiap baris.
- Klik link “Hapus” pada baris data yang ingin Anda hapus.
- Anda akan dialihkan kembali ke halaman daftar mahasiswa, dan data yang Anda pilih seharusnya sudah tidak ada lagi di tabel database.
Kesimpulan
Proses menghapus data di CodeIgniter melibatkan pembuatan link atau tombol di View, penambahan fungsi penghapusan di Model, dan pembuatan method di Controller untuk menerima permintaan penghapusan dan berinteraksi dengan model. Dengan mengikuti struktur MVC, kita dapat mengelola proses penghapusan data dengan cara yang terorganisir dan mudah dipahami. Pada tutorial selanjutnya, kita akan membahas proses pengeditan data. Tetap ikuti seri tutorial CodeIgniter ini!