Rumahweb Journal
Banner - belajar php dasar bagian 16

Belajar PHP Dasar Bagian 16 – Membuat Fungsi Update Data

Pada belajar PHP dasar bagian 15, kita telah mempelajari bagaimana cara menambahkan data baru ke dalam database menggunakan fungsi Create. Nah, pada bagian 16 ini, kita akan melanjutkan proses CRUD dengan mempelajari cara update data, yaitu mengubah data yang sudah ada di database.

Fungsi update ini sangat penting karena dalam pengelolaan data, tidak semua informasi selalu tetap. Kadang, pengguna perlu memperbarui data seperti nama, email, atau alamat tanpa harus menghapus dan menambahkan data baru.

Di tutorial ini, kita akan membahas langkah demi langkah cara membuat fitur edit dan update data menggunakan PHP, mulai dari tampilan form edit hingga proses penyimpanannya ke database.

Membuat Tombol Edit Untuk Proses Update Data

Pada file index.php, kita akan menambahkan tombol edit di sebelah kanan setiap data yang telah diinput sebelumnya. Tombol ini berfungsi agar saat diklik, hanya data yang dipilih saja yang akan ditampilkan di halaman edit.

Pada tahap ini, kita belum menggunakan primary key (seperti ID) sebagai pembeda antar data. Oleh karena itu, untuk sementara kita akan menggunakan nama sebagai penanda unik setiap baris data. Artinya, selama proses pengujian, pastikan tidak ada nama yang sama, agar sistem dapat menampilkan data yang benar saat proses edit.

Jika Anda ingin membuat struktur database yang lebih baik, sebaiknya tambahkan primary key pada tabel. Penjelasan lebih detail tentang primary key bisa Anda baca di artikel berikut: Primary Key

Promo Hosting Murah Rumahweb

Untuk menampilkan tombol edit, kita perlu tempat baru di tabel dengan menambahkan th seperti berikut setelah email:

<th>Action</th>

Dan script berikut setelah menampilkan data email:

<td><a href="edit.php?edit=<?php echo $a['nama']?>" class="btn btn-warning">edit</a></td>

Sehingga index.php kita saat ini isinya seperti berikut:

<head>
	<title>Data Diri</title>
	<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
	<script src="js/bootstrap.min.js"></script>
</head>
<body>
<?php 
include 'database.php';
$database = new database();
?>
<div class="p-md-4 container">
	<table class="table">
		<thead class="thead-dark">
			<tr>
			<th>Nama</th>
			<th>Usia</th>
			<th>Domisili</th>
			<th>Email</th>
			<th>Action</th>
			</tr>
		</thead>
		<?php 
		$numb = 1;
		foreach($database->show() as $a){ ?>
		<tr>
			<td><?php echo $a['nama']; ?></td>
			<td><?php echo $a['usia']; ?></td>
			<td><?php echo $a['domisili']; ?></td>
			<td><?php echo $a['email']; ?></td>
			<td><a href="edit.php?edit=<?php echo $a['nama']?>" class="btn btn-warning">edit</a></td>
		</tr>
		<?php } ?>
	</table>
</div>
<div class="p-md-4 container">
	<a href="create.php" class="btn btn-primary">Create Data</a>
</div>
</body>

Tampilan terbaru menjadi index website seperti berikut:

Belajar PHP Dasar - fitur tombol edit data

Terlihat tombol edit di setiap data sudah muncul.

Membuat Tampilan Edit Data

Setelah tombol Edit diklik, pengguna akan diarahkan ke halaman form edit data. Untuk itu, kita perlu membuat file baru bernama edit.php. Tampilan halaman ini hampir sama dengan create.php, namun perbedaannya terletak pada form yang sudah terisi otomatis dengan data yang ingin diedit.

Berikut contoh script untuk file edit.php yang akan kita gunakan:

<head>
	<title>Data Diri</title>
	<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
	<script src="js/bootstrap.min.js"></script>
</head>
<body>
<?php 
include 'database.php';
$database = new database();
$edit = $_GET['edit'];
?>
<div class="p-md-4 container">
	<form method="post" action="aksi.php?aksi=ubah&value=<?php echo $edit?>">
	<table class="table">
		<thead class="thead-dark">
			<tr>
			<th colspan=4">Update Data diri</th>
			</tr>
		</thead>
		<tbody>
			<?php foreach($database->showEdit($edit) as $a){ ?>
			<tr>
				<td>Nama</td>
				<td colspan="3"><input type="text" class="form-control" name="nama" value="<?php echo $a['nama']; ?>"></td>
			</tr>
			<tr>
				<td>Usia</td>
				<td colspan="3"><input type="text" class="form-control" name="usia" value="<?php echo $a['usia']; ?>"></td>
			</tr>
			<tr>
				<td>Domisili</td>
				<td colspan="3"><input type="text" class="form-control" name="domisili" value="<?php echo $a['domisili']; ?>"></td>
			</tr>
			<tr>
				<td>Email</td>
				<td colspan="3"><input type="text" class="form-control" name="email" value="<?php echo $a['email']; ?>"></td>
			</tr>
			<tr>
				<td><input type="submit" class="btn btn-primary" value="update"></td>
				<td colspan="3"></td>
			</tr>
			<?php } ?>
		</tbody>
	</table>
	</form>
</div>
</body>

Perhatikan pada bagian action di sintak form, ketika submit form akan dipindahkan ke file aksi.php?aksi=ubah, sehingga kita memerlukan aksi baru di aksi.php untuk melakukan update/edit data di database.

Selain itu, pada bagian menampilkan data terdapat script foreach($database->showEdit($edit) as $a), sehingga pada file database.php kita perlu menambahkan function baru untuk melakukan pengubahan data ini.

Kita edit file aksi.php dulu dengan menambahkan script berikut:

 if($aksi == "ubah"){
 	$db->update($_GET['ubah'],$_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
 	header("location:index.php");
 }

Sehingga saat ini keseluruhan script aksi.php menjadi seperti berikut:

<?php 
include 'database.php';
$db = new database();
 
$aksi = $_GET['aksi'];
 if($aksi == "tambah"){
 	$db->input($_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
 	header("location:index.php");
 }
  if($aksi == "ubah"){
 	$db->update($_GET['ubah'],$_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
 	header("location:index.php");
 }
?>

Saat ini, kita perlu mengedit database.php, di mana kita akan menambahkan 2 function untuk menampilkan data apa yang akan diedit di file edit.php dan function pengubahan/update data. Berikut script kedua function tersebut yang perlu kita tambahkan:

function showEdit($nama){
	$tampil = mysqli_query($this->conn, "select * from personal where nama='$nama'");
	while($data = mysqli_fetch_assoc($tampil)){
		$hasil[] = $data;
	}
	return $hasil;
}
function update($oldnama,$nama,$usia,$domisili,$email){
	mysqli_query($this->conn, "update personal set nama='$nama',usia='$usia',domisili='$domisili',email='$email' where nama='$oldnama'");
}

Script lengkap file database.php saat ini menjadi seperti berikut :

<?php 
class database{
	protected $host = "localhost";
	protected $username = "root";
	protected $password = "";
	protected $database = "datadiri";
	function __construct(){
		$conn = mysqli_connect($this->host, $this->username, $this->password, $this->database);
		if (!$conn) {
			die("Koneksi gagal: " . mysqli_connect_error());
		}
		return $this->conn = $conn;
	}
	function show(){
		$tampil = mysqli_query($this->conn, "select * from personal");
		while($data = mysqli_fetch_assoc($tampil)){
			$hasil[] = $data;
		}
		return $hasil;
	}
	function showEdit($nama){
		$tampil = mysqli_query($this->conn, "select * from personal where nama='$nama'");
		while($data = mysqli_fetch_assoc($tampil)){
			$hasil[] = $data;
		}
		return $hasil;
	}
	function input($nama,$usia,$domisili,$email){
		mysqli_query($this->conn, "insert into personal values('$nama','$usia','$domisili','$email')");
		
	}
	function update($oldnama,$nama,$usia,$domisili,$email){
		mysqli_query($this->conn, "update personal set nama='$nama',usia='$usia',domisili='$domisili',email='$email' where nama='$oldnama'");
	}
}
?>

Pengujian

Jika implementasi script di atas sudah selesai dilakukan, ketika tombol edit kita tekan maka akan berpindah ke halaman form edit seperti berikut:

klik tombol edit yang telah muncul setelah kita tambahkan tombol edit
tampilan form edit yang telah dibuat memunculkan data yang akan diedit

Dalam pengujian ini, kita coba mengubah domisili menjadi Jakarta dan kita klik tombol update

ubah data domisili sebagai pengujian update/edit data

Setelah tombol update diklik, akan berpindah ke aksi.php dan akan menjalankan pemanggilan function ubah dari file database.php. Setelah selesai akan di direct ke index.php dengan menampilkan databasenya kembali yang telah terupdate.

tampilan index website setelah data berhasil diubah/edit

Data domisili yang kita ubah ke Jakarta tadi telah muncul.

Penutup

Sampai di tahap ini, kita telah berhasil menambahkan fitur Edit Data menggunakan pendekatan OOP (Object Oriented Programming) di PHP.

Dengan fitur ini, Anda dapat memperbarui informasi pada database dengan mudah tanpa perlu menambah data baru. Fitur edit ini menjadi bagian penting dalam proses CRUD (Create, Read, Update, Delete) karena memberikan fleksibilitas dalam mengelola data di website.

Demikian tutorial belajar PHP Dasar untuk pemula bagian 16 tentang cara membuat function update. Pada belajar PHP bagian 17, kita akan melanjutkan ke tahap berikutnya, yaitu membuat fungsi Delete Data, untuk melengkapi seluruh proses CRUD di PHP. Semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Edi Purnomo

Edi Purnomo, atau yang akrab disapa Edi, adalah bagian dari team technical support Rumahweb yang memiliki minat pada dunia pemrograman, khususnya PHP. Edi suka mengikuti tren seputar web programming hingga database. Melalui Journal Rumahweb, Edi ingin berbagi pengetahuan tentang Bahasa pemrograman, khususnya Bahasa PHP yang ia kuasai.

banner pop up - Pindah Hosting ke Rumahweb