Melakukan Update Data dari Database dengan Codeigniter

Posted in CodeIgniter, Monday, February 4th, 2013, by Muhammad Fahmi Al Azhar

Tutorial sebelumnya telah dijelaskan cara untuk membuat fungsi insert dan delete data yang ada di dalam database. Selain dua fungsi di atas, masih ada satu fungsi lagi yang kurang, yaitu fungsi update database dengan Codeigniter.

Fungsi update ini sangat penting di dalam sebuah website, karena tidak mungkin kita menghapus data yang lama dan melakukan insert terhadap data yang baru hanya karena kesalahan inputan. Oleh karenanya, dibutuhkan fungsi update database yang dapat mengedit data sehingga tidak perlu untuk menghapus data yang telah disimpan sebelumnya.

Nb: Jika ingin melihat seluruh tutorial Codeigniter anda dapat mengunjungi tutorial membuat web dengan Codeigniter.

Update Database dengan Codeigniter

Seperti biasa saya akan menulisakan urutan source cara membuat fungsi update database dengan codeigniter ini secara berurutan dari controller, model, dan views.

Jika anda telah membaca tutorial sebelumnya, yaitu membuat fungsi delete record database, sebenarnya konsep yang ada tidak berbeda jauh.

Controller

Fungsi di dalam controller ini cukup banyak, karena kita harus menampilkan data yang ada di dalam database, kemudian memberikan fungsi untuk update, dan terakhir membuat fungsi untuk  menyimpan update tersebut.

user_controller.php

<?php
class User_controller extends CI_Controller{

    function __Construct()
    {
        parent ::__construct();
    }

    function user()
    {
        $this->load->model('user_model');
        $data['judul'] = 'Daftar User';
        $data['daftar_user'] = $this->user_model->get_user_all();
        $this->load->view('daftar_user', $data);
    }

    function edit_user($id_user)
    {
        $data['judul']='Update Data User';
        $this->load->model('user_model');
        $data['edit']=$this->user_model->edit_user($id_user);
        $this->load->view('edit_user', $data);
    }

    function simpan_edit_user()
    {
        $id_user = $this->input->post('id_user');
        $nama_lengkap = $this->input->post('nama_lengkap');
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $email = $this->input->post('email');
        $alamat = $this->input->post('alamat');

        $data['judul'] = 'Update Data Codeigniter';
        $this->load->model('user_model');
        $data['edit'] = $this->user_model->simpan_edit_user($id_user, $nama_lengkap, $username, $password, $email, $alamat);
        $data['notifikasi'] = 'Data telah berhasil disimpan';
        $this->load->view('notifikasi', $data);
    }
}

Model

Sama seperti controller, fungsi di dalam model juga cukup banyak, tetapi saya rasa tidak perlu untuk menjelaskannya satu persatu. Anda dapat memahaminya dengan membaca nama fungsinya.

user_model.php

<?php
class User_model extends CI_Model{

    function get_user_all()
    {
        $query=$this->db->query("SELECT * FROM user ORDER BY id_user DESC");
        return $query->result();
    }

    function edit_user($id_user)
    {
        $q="SELECT * FROM  user WHERE id_user='$id_user'";
        $query=$this->db->query($q);
        return $query->row();
    }

    function simpan_edit_user($id_user, $nama_lengkap, $username, $password, $email, $alamat)
    {
        $data = array(
            'id_user'        => $id_user,
            'nama_lengkap'   => $nama_lengkap,
            'username'       => $username,
            'password'       => $password,
            'email'          => $email,     
            'alamat'         => $alamat
        );
        $this->db->where('id_user', $id_user);
        $this->db->update('user', $data);    
    }
}

Views

Di dalam views ini terdapat dua halaman view, yang pertama adalah untuk menampilkan halaman awal, kemudian yang kedua digunakan untuk melakukan edit data, dan terakhir adalah notifikasi bahwa data berhasil disimpan.

Views yang pertama adalah daftar_user.php yang digunakan untuk menampilkan seluruh data yang ada di dalam database.

daftar_user.php

<html>
<head>
	<title><?php echo $judul; ?></title>
</head>
<body>
	<h1>Daftar User</h1>
	<table border="1">
		<thead>
		<tr>
			<th>Nama Lengkap</th>
			<th>Username</th>
			<th>Email</th>
			<th>Alamat</th>
			<th>Action</th>
		</tr>
	</thead>
	<tbody>
            <?php
            foreach($daftar_user as $user){
			?>

        <tr>
			<td><?php echo $user->nama_lengkap; ?></td>
			<td><?php echo $user->username; ?></td>
			<td><?php echo $user->email; ?></td>
			<td><?php echo $user->alamat; ?></td>
			<td><?php echo '<a href="'.base_url().'index.php/user_controller/edit_user/'.$user->id_user.'">Edit</a>'?></td>
		</tr>
           <?php } ?>
	</tbody>
	<tfoot>
		<tr>
			<th>Nama Lengkap</th>
			<th>Username</th>
			<th>Email</th>
			<th>Alamat</th>
			<th>Action</th>
		</tr>
	</tfoot>
	</table>
</body>
</html>

Views yang kedua adalah edit_user.php yang digunakan untuk mengedit inputan record yang telah tersimpan di dalam database.

edit_user.php

<html>
    <head>
        <title><?php echo $judul; ?></title>
    </head>
    <body>                        
    <h1>Update Data User</h1>

    <?php 
        $att = array('id' => 'biodata-form');
        echo form_open('user_controller/simpan_edit_user', $att);
        echo form_hidden('id_user',$edit->id_user);
    ?>
        <table> 
            <tr>
                <td>Nama Lengkap</td>
                <td><input type="text" name="nama_lengkap" value="<?php echo $edit->nama_lengkap; ?>"/></td>
            </tr>
            <tr>
                <td>Username</td>
                <td><input type="text" name="username" value="<?php echo $edit->username; ?>"/></td>
            </tr>
            <tr>
                <td>Password</td>
                <td><input type="password" name="password" value="<?php echo $edit->password; ?>"/></td>
            </tr>
            </tr>
                <td>Email</td>
                <td><input type="text" name="email" value="<?php echo $edit->email; ?>"/></td>
            </tr>
            <tr>
                <td>Alamat</td>
                <td><textarea name="alamat" style="height: 80px;"><?php echo $edit->alamat; ?></textarea></td>
            <tr>
                <td></td>
                <td><input type="submit" value="Simpan"/></td>
            </tr>
        </table>
    </form>
    </body>
</html>

Views terakhir adalah untuk notifikasi.php untuk memberikan informasi bahwa data telah berhasil diupdate. Sebenarnya notifikasi tersebut dapat digabungkan dengan daftar_user.php, tetapi sengaja saya pisahkan agar tidak membingungkan bagi anda yang baru pertama kali belajar php maupun Codeigniter.

notifikasi.php

<html>
<head>
	<title><?php echo $judul; ?></title>
</head>
<body>
	<p><?php echo $notifikasi; ?></p>
</body>
</html>

Anda dapat mencoba source code yang telah selesai dibuat dengan cara mengetikkan URL pada browser: http://localhost/codeigniter/index.php/user_controller/user

update database dengan codeigniter

Daftar User

update database dengan codeigniter

Update Data

Kemudian cobalah untuk melakukan edit data dan klik Simpan.

Jika source anda ketikkan dengan benar, maka data di dalam database akan berhasil di update.

Source code update_database_codeigniter.

Tutorial selanjutnya akan membahas mengenai validasi form Codeigniter.

Semoga bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *