Setelah memahami Database & Model, saatnya mempraktikkan konsep CRUD.
CRUD adalah singkatan dari:
- C – Create (Menambahkan data)
- R – Read (Menampilkan data)
- U – Update (Mengubah data)
- D – Delete (Menghapus data)
Dengan CRUD, Anda bisa membuat aplikasi dasar seperti manajemen data mahasiswa, produk, atau kontak. Pada BAB ini, kita akan membuat CRUD sederhana step by step di CodeIgniter.
Contents
Tujuan Pembelajaran
Setelah menyelesaikan BAB 8, Anda akan mampu:
- Memahami konsep CRUD
- Membuat form input data
- Menampilkan data dalam tabel
- Mengedit dan menghapus data
- Mengintegrasikan Controller, Model, dan View secara utuh
8.1 Konsep CRUD
1. Create (Tambah Data)
- Form input data
- Disimpan ke database melalui model
2. Read (Tampilkan Data)
- Menampilkan data dari database
- Bisa menggunakan tabel HTML
3. Update (Edit Data)
- Memuat data lama di form
- Menyimpan perubahan ke database
4. Delete (Hapus Data)
- Menghapus data dari database
- Biasanya menggunakan tombol hapus
📌 Catatan:
CRUD selalu melibatkan Controller → Model → View agar sesuai prinsip MVC.
8.2 CRUD Data Mahasiswa / Produk
Kita akan membuat contoh CRUD data mahasiswa. Tabel database:
CREATE TABLE mahasiswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(50) NOT NULL,
nim VARCHAR(20) NOT NULL,
jurusan VARCHAR(50) NOT NULL
);
8.3 Form Input Data (Create)
Controller
class Mahasiswa extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('Mahasiswa_model');
}
public function tambah() {
if($this->input->post()) {
$data = [
'nama' => $this->input->post('nama'),
'nim' => $this->input->post('nim'),
'jurusan' => $this->input->post('jurusan')
];
$this->Mahasiswa_model->insert($data);
redirect('mahasiswa');
}
$this->load->view('mahasiswa_tambah');
}
}
View (mahasiswa_tambah.php)
<h2>Tambah Data Mahasiswa</h2>
<form method="post" action="">
<label>Nama:</label><br>
<input type="text" name="nama"><br>
<label>NIM:</label><br>
<input type="text" name="nim"><br>
<label>Jurusan:</label><br>
<input type="text" name="jurusan"><br><br>
<button type="submit">Simpan</button>
</form>
8.4 Menampilkan Data Tabel (Read)
Controller
public function index() {
$data['mahasiswa'] = $this->Mahasiswa_model->get_all();
$this->load->view('mahasiswa_list', $data);
}
Model
class Mahasiswa_model extends CI_Model {
public function get_all() {
return $this->db->get('mahasiswa')->result();
}
}
View (mahasiswa_list.php)
<h2>Daftar Mahasiswa</h2>
<a href="<?= base_url('mahasiswa/tambah') ?>">Tambah</a>
<table border="1">
<tr>
<th>No</th><th>Nama</th><th>NIM</th><th>Jurusan</th><th>Aksi</th>
</tr>
<?php $no=1; foreach($mahasiswa as $m): ?>
<tr>
<td><?= $no++ ?></td>
<td><?= $m->nama ?></td>
<td><?= $m->nim ?></td>
<td><?= $m->jurusan ?></td>
<td>
<a href="<?= base_url('mahasiswa/edit/'.$m->id) ?>">Edit</a> |
<a href="<?= base_url('mahasiswa/hapus/'.$m->id) ?>" onclick="return confirm('Yakin?')">Hapus</a>
</td>
</tr>
<?php endforeach; ?>
</table>
8.5 Edit dan Hapus Data (Update & Delete)
Edit (Update)
Controller:
public function edit($id) {
$data['mahasiswa'] = $this->Mahasiswa_model->get_by_id($id);
if($this->input->post()) {
$update = [
'nama' => $this->input->post('nama'),
'nim' => $this->input->post('nim'),
'jurusan' => $this->input->post('jurusan')
];
$this->Mahasiswa_model->update($id, $update);
redirect('mahasiswa');
}
$this->load->view('mahasiswa_edit', $data);
}
View mahasiswa_edit.php sama seperti form tambah, tapi diisi data lama:
<input type="text" name="nama" value="<?= $mahasiswa->nama ?>">
Model:
public function get_by_id($id) {
return $this->db->get_where('mahasiswa', ['id' => $id])->row();
}
public function update($id, $data) {
$this->db->where('id', $id);
$this->db->update('mahasiswa', $data);
}
Hapus (Delete)
Controller:
public function hapus($id) {
$this->Mahasiswa_model->delete($id);
redirect('mahasiswa');
}
Model:
public function delete($id) {
$this->db->where('id', $id);
$this->db->delete('mahasiswa');
}
📌 Tips:
- Gunakan
onclick="return confirm('Yakin?')"agar user tidak sengaja menghapus data - Selalu redirect setelah proses CRUD agar halaman refresh
Penutup
Dengan BAB 8 ini, Anda sudah bisa membuat aplikasi CRUD sederhana di CodeIgniter:
- Form input data baru (Create)
- Menampilkan data di tabel (Read)
- Edit data (Update)
- Hapus data (Delete)
Setelah ini, Anda siap mengembangkan aplikasi nyata seperti manajemen produk, buku, atau siswa dengan CodeIgniter.