BAB 8 – CRUD Sederhana: Membuat Aplikasi Dasar di CodeIgniter

BAB 8 – CRUD Sederhana: Membuat Aplikasi Dasar di CodeIgniter

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.


Tujuan Pembelajaran

Setelah menyelesaikan BAB 8, Anda akan mampu:

  1. Memahami konsep CRUD
  2. Membuat form input data
  3. Menampilkan data dalam tabel
  4. Mengedit dan menghapus data
  5. 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.