Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial CodeIgniter #12 : Update Data Pada Database Dengan CodeIgniter

 

Setelah kita belajar cara menginput dan menghapus data, sekarang saatnya kita membahas operasi terakhir yang tak kalah penting, yaitu mengedit atau memperbarui (update) data. Pada tutorial ini, kita akan memperbarui data mahasiswa di database menggunakan framework CodeIgniter dengan pendekatan MVC (Model-View-Controller).


 

Persiapan Awal

 

Sama seperti tutorial sebelumnya, pastikan Anda sudah memiliki hal-hal berikut:

  1. Proyek CodeIgniter: Proyek CodeIgniter Anda sudah berjalan dan terhubung dengan database.
  2. Tabel Database: Gunakan tabel mahasiswa yang sudah kita buat pada tutorial-tutorial sebelumnya.
  3. Controller dan Model: Kita akan melanjutkan dengan Controller (Crud.php) dan Model (M_data.php) yang sudah ada.

 

Langkah 1: Membuat Link atau Tombol Edit di View

 

Pertama, kita perlu menambahkan link “Edit” pada setiap baris data di view yang menampilkan daftar mahasiswa. Kita akan memodifikasi file v_tampil.php.

application/views/v_tampil.php

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/edit/'.$m->id; ?>">Edit</a>: Link ini akan mengarahkan pengguna ke method edit pada controller crud dan mengirimkan id dari data yang akan diedit melalui URL.

 

Langkah 2: Membuat View Form Edit

 

Setelah link “Edit” diklik, pengguna akan diarahkan ke halaman form yang sudah terisi dengan data lama. Kita perlu membuat view baru untuk ini.

Buat file baru bernama v_edit.php di dalam folder application/views.

application/views/v_edit.php

PHP

<!DOCTYPE html>
<html>
<head>
    <title>Edit Data Mahasiswa</title>
</head>
<body>
    <center>
        <h3>Edit Data Mahasiswa</h3>
    </center>
    <?php foreach($mahasiswa as $m){ ?>
    <form action="<?php echo base_url(). 'crud/update'; ?>" method="post">
        <table style="margin:20px auto;">
            <tr>
                <td>Nama</td>
                <td>
                    <input type="hidden" name="id" value="<?php echo $m->id ?>">
                    <input type="text" name="nama" value="<?php echo $m->nama ?>">
                </td>
            </tr>
            <tr>
                <td>NIM</td>
                <td><input type="text" name="nim" value="<?php echo $m->nim ?>"></td>
            </tr>
            <tr>
                <td>Jurusan</td>
                <td><input type="text" name="jurusan" value="<?php echo $m->jurusan ?>"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" value="Update"></td>
            </tr>
        </table>
    </form>
    <?php } ?>
</body>
</html>
  • <?php foreach($mahasiswa as $m){ ?>: Kita menggunakan perulangan foreach untuk mengambil data mahasiswa yang dikirim dari controller.
  • value="<?php echo $m->nama ?>": Atribut value pada setiap input diisi dengan data yang ada di database.
  • <input type="hidden" name="id" value="<?php echo $m->id ?>">: Ini adalah field tersembunyi (hidden) yang sangat penting. Kita menyimpan id data yang akan diedit agar bisa kita gunakan saat mengirimkan data ke method update di controller.

 

Langkah 3: Menambahkan Fungsi di Model

 

Pada model M_data.php, kita akan membuat dua fungsi:

  1. edit_data(): Untuk mengambil data dari database berdasarkan id.
  2. update_data(): Untuk memperbarui data.

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);
    }
}
  • edit_data($where, $table): Fungsi ini menggunakan $this->db->get_where() yang berfungsi untuk mengambil data dengan kondisi WHERE yang sudah ditentukan.
  • update_data($where, $data, $table): Fungsi ini menggunakan $this->db->where() untuk menentukan kondisi WHERE dan $this->db->update() untuk menjalankan query UPDATE.

 

Langkah 4: Menambahkan Method di Controller

 

Sekarang, kita tambahkan method edit() dan update() di controller Crud.php.

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);
    }

    // Method lainnya (tambah, hapus, dll.)

    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');
    }
}
  • edit($id): Method ini menerima id dari URL. Kita membuat array $where dan kemudian memanggil fungsi edit_data() dari model. Hasilnya kita kirimkan ke view v_edit menggunakan array $data.
  • update(): Method ini menerima data dari form.
    • $this->input->post('id'): Kita mengambil id dari field tersembunyi. id ini sangat penting untuk menentukan data mana yang akan diperbarui.
    • $data: Kita mengemas data baru dari form ke dalam sebuah array.
    • $where: Kita menentukan kondisi $where berdasarkan id yang diterima.
    • $this->m_data->update_data($where, $data, 'mahasiswa'): Memanggil fungsi update_data dari model untuk menjalankan proses update.
    • redirect('crud/index'): Mengarahkan pengguna kembali ke halaman daftar mahasiswa setelah update berhasil.

 

Kesimpulan

 

Proses memperbarui data di CodeIgniter melibatkan tiga langkah utama:

  1. Mengambil Data Lama: Menggunakan Controller dan Model untuk mengambil data berdasarkan ID dan menampilkannya di form.
  2. Menampilkan Form Edit: Membuat View khusus yang berisi form dan data lama yang sudah terisi.
  3. Menjalankan Proses Update: Menggunakan Controller dan Model untuk memproses data baru dari form dan memperbarui data di database.

Dengan mengikuti alur MVC, proses ini menjadi terstruktur dan mudah dikelola. Anda sekarang sudah menguasai empat operasi dasar (CRUD: Create, Read, Update, Delete) di CodeIgniter!

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_4mxd334mxd334mxd
Gemini_Generated_Image_ursc84ursc84ursc
ef5c8286-b6c4-4e25-b155-697374d570dc
Gemini_Generated_Image_m1hsycm1hsycm1hs

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek