Seri #10 – Tutorial Belajar Framework CodeIgniter untuk Pemula | Mengubah Data pada Database


Seri #10 – Tutorial Belajar Framework CodeIgniter untuk Pemula | Mengubah Data pada Database – Sebelumnya saya ucapkan selamat karena telah belajar bagaimana menambah, menghapus dan menampilkan data pada database menggunakan CodeIgniter. Selanjutnya pada tutorial ini kita akan belajar bagaimana mengubah data pada database menggunakan CodeIgniter.

Model

Pada bagian model kita akan melakukan perubahan pada salah satu methodnya yang bernama get_mahasiswa yang awalnya digunakan untuk mengambil seluruh data pada tabel mahasiswa yang dikembalikan berupa array.

Kita akan memodifikasinya sehingga method get_mahasiswa ini memiliki 2 fungsi, yaitu mengembalikan seluruh data pada tabel mahasiswa dan satu lagi ialah mengembalikan 1 baris data dari tabel mahasiswa.

Silakan ubah file Mahasiswa_model.php pada bagian get_mahasiswa awalnya seperti ini:

public function get_mahasiswa()
{
	$query = $this->db->get('mahasiswa');
	return $query->result_array();
}

menjadi seperti ini:

public function get_mahasiswa($nim = false)
{
	if($nim === false) {
		$query = $this->db->get('mahasiswa');
		return $query->result_array();
	}
	else {
		$this->db->where(['nim' => $nim]);
		$query = $this->db->get('mahasiswa');
		return $query->row();
	}
}

Terakhir kita akan menambahkan method baru bernama update_mahasiswa pada model ini. Adapun isi method update_mahasiswa adalah sebagai berikut:

public function update_mahasiswa($data, $nim)
{
	return $this->db->update('mahasiswa', $data, "nim = $nim");
}

Atau secara keseluruhan model Mahasiswa_model akan menjadi seperti ini:

<?php 

class Mahasiswa_model extends CI_Model {
	
	public function get_mahasiswa($nim = false)
	{
		if($nim === false) {
			$query = $this->db->get('mahasiswa');
			return $query->result_array();
		}
		else {
			$this->db->where(['nim' => $nim]);
			$query = $this->db->get('mahasiswa');
			return $query->row();
		}
	}


	public function delete_mahasiswa($nim)
	{
		return $this->db->delete('mahasiswa', ['nim' => $nim]);
	}


	public function add_mahasiswa($data)
	{
		return $this->db->insert('mahasiswa', $data);
	}


	public function update_mahasiswa($data, $nim)
	{
		return $this->db->update('mahasiswa', $data, "nim = $nim");
	}
}

Controller

Pada controller Mahasiswa kita akan menambahkan method baru bernama edit yang memiliki tugas ganda seperti pada method tambah, yaitu menyediakan form edit dan juga melakukan proses edit data. Isi method edit pada controller Mahasiswa adalah:

public function edit($nim)
{
	$this->load->database();
	$this->load->helper('form');
	$this->load->model('mahasiswa_model');

	// ambil satu data dari tabel mahasiswa beradasarkan nim
	$data = $this->mahasiswa_model->get_mahasiswa($nim);
	$this->load->view('edit_mahasiswa', $data);

	// jika user menekan tombol edit data, maka lakukan update
	if($this->input->method() == 'post') {
		$data = [
			'nama'		=> $this->input->post('nama'),
			'jk'		=> $this->input->post('jk'),
			'alamat'	=> $this->input->post('alamat')
		];
		if($this->mahasiswa_model->update_mahasiswa($data, $nim)) {
			redirect('mahasiswa');
		}
	}
}

Sehingga controller Mahasiswa akan berubah menjadi seperti ini:

<?php 

class Mahasiswa extends CI_Controller {

	public function index()
	{
		$this->load->database();
		$this->load->model('mahasiswa_model');

		$data['mahasiswa'] = $this->mahasiswa_model->get_mahasiswa();
		$this->load->view('daftar_mahasiswa', $data);
	}


	public function hapus($nim)
	{
		$this->load->database();
		$this->load->model('mahasiswa_model');
		$hapus = $this->mahasiswa_model->delete_mahasiswa($nim);

		if($hapus) {
			redirect(site_url('mahasiswa'));
		}
	}
	

	public function tambah()
	{
		if($this->input->method() == 'post') {

			$this->load->database();
			$this->load->model('mahasiswa_model');
			
			$data = [
				'nim'		=> $this->input->post('nim'),
				'nama'		=> $this->input->post('nama'),
				'jk'		=> $this->input->post('jk'),
				'alamat'	=> $this->input->post('alamat')
			];

			if($this->mahasiswa_model->add_mahasiswa($data)) {
				redirect(site_url('mahasiswa'));
			}
		}
		else {
			$this->load->helper('form');
			$this->load->view('tambah_mahasiswa');
		}
	}


	public function edit($nim)
	{
		$this->load->database();
		$this->load->helper('form');
		$this->load->model('mahasiswa_model');

		// ambil satu data dari tabel mahasiswa beradasarkan nim
		$data = $this->mahasiswa_model->get_mahasiswa($nim);
		$this->load->view('edit_mahasiswa', $data);

		// jika user menekan tombol edit data, maka lakukan update
		if($this->input->method() == 'post') {
			$data = [
				'nama'		=> $this->input->post('nama'),
				'jk'		=> $this->input->post('jk'),
				'alamat'	=> $this->input->post('alamat')
			];
			if($this->mahasiswa_model->update_mahasiswa($data, $nim)) {
				redirect('mahasiswa');
			}
		}
	}
}

Pada baris 60 di atas, kita memanggil view bernama edit_mahasiswa yang belum kita buat, maka selanjutnya kita akan membuat view ini.

View

Buat view baru bernama edit_mahasiswa.php, isinya hampir sama dengan view tambah_mahasiswa.php, hanya saja pada view ini juga telah dimasukkan data yang diparsing dari controller. Isi dari view edit_mahasiswa.php adalah sebagai berikut:

<!DOCTYPE html>
<html>
<head>
	<title>Daftar Mahasiswa | Kangriyanto.net</title>
	<style type="text/css">
		.container { width: 800px; margin: 10px auto; }
	</style>
</head>
<body>
	<div class="container">
		<h1>Ubah Mahasiswa</h1>

		<?php echo form_open(site_url('mahasiswa/edit/' . $nim)) ?>
		<table>
			<tr>
				<td>NIM</td>
				<td><?php echo form_input(['type' => 'text', 'name' => 'nim', 'value' => $nim, 'readonly' => 'readonly']) ?></td>
			</tr>
			<tr>
				<td>Nama Mahasiswa</td>
				<td><?php echo form_input(['type' => 'text', 'name' => 'nama', 'value' => $nama]) ?></td>
			</tr>
			<tr>
				<td>Jenis Kelamin</td>
				<td><?php echo form_dropdown('jk', ['L' => 'Laki-laki', 'P' => 'Perempuan'], ['selected' => $jk]) ?></td>
			</tr>
			<tr>
				<td>Alamat</td>
				<td><?php echo form_textarea(['name' => 'alamat', 'cols' => 50, 'rows' => 5, 'value' => $alamat]) ?></td>
			</tr>
			<tr>
				<td></td>
				<td><?php echo form_submit('submit', 'Ubah Data') ?></td>
			</tr>
		</table>
		<?php echo form_close() ?>
	</div>
</body>
</html>

Simpan seluruh perubahan pada setiap file kemudian jalankan hasilnya dengan mengakses alamat URL localhost/belajarci/ lalu klik edit pada salah satu data maka akan tampil seperti ini:

Menampilkan Satu Data Mahasiswa pada Form Edit Mahasiswa

Lakukan perubahan data pada form tersebut lalu klik Ubah Data maka data pada tabel mahasiswa juga akan berubah pula.

Ok, demikianlah tutorial mengedit data pada database menggunakan framework codeigniter. Seri terakhir tutorial belajar framework untuk pemula ialah pencarian data yang akan dibahas pada tutorial selanjutnya. Untuk mengikuti seri tutorial belajar framework untuk pemula, silakan klik tautan ini.

Jangal lupa follow blog ini dan semoga bermanfaat 🙂

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.