Modul 10 Interaksi DBMS
Modul 10 Interaksi DBMS
BAB X
AKSES DAN MANIPULASI DATA
A. TUJUAN
§ Memahami konsep dasar akses dan manipulasi data.
§ Mampu mengintegrasikan aplikasi PHP dengan database MySQL.
§ Mampu menghasilkan aplikasi web database untuk pengolahan data
sederhana.
B. ALOKASI WAKTU
4 JS (4 x 50 menit)
C. PETUNJUK
§ Awali setiap aktivitas dengan do'a, semoga berkah dan mendapat kemudahan.
§ Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar.
§ Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur.
§ Tanyakan kepada asisten/dosen apabila ada hal-hal yang kurang jelas.
D. DASAR TEORI
E. LATIHAN
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mysql';
?>
<body>
<?php
require_once './koneksi.php';
?>
<h4>Koneksi Berhasil</h4>
</body>
</html>
<body>
<?php
require_once './koneksi.php';
$db = 'myweb';
?>
</body>
</html>
§ Menciptakan Tabel
Sama seperti pembuatan database, kita memanfaatkan fungsi
mysql_query() untuk menciptakan tabel.
Perlu diperhatikan, tabel ini akan diletakkan di dalam database myweb yang
baru saja kita buat. Oleh karena itu, terlebih dahulu modifikasi file
koneksi.php untuk menyesuaikan nama database aktif (ubah mysql menjadi
myweb).
<!DOCTYPE html>
<html lang="en">
<head>
<title>Menciptakan Tabel</title>
</head>
<body>
<?php
require_once './koneksi.php';
$res = mysql_query($sql);
if ($res) {
echo 'Tabel Created';
mysql_close($res);
} else {
echo mysql_error();
}
?>
</body>
</html>
Selain menggunakan kode program, kita juga bisa memanfaatkan tool grafis
untuk memudahkan administrasi dan pengolahan database, misal melalui
phpmyadmin.
require_once './koneksi.php';
<th>Alamat</th>
</tr>
<?php
$i = 1;
while ($row = mysql_fetch_row($res)) { ?>
<tr>
<td>
<?php echo $i;?>
</td>
<td>
<?php echo $row[0];?>
</td>
<td>
<?php echo $row[1];?>
</td>
<td>
<?php echo $row[2];?>
</td>
</tr>
<?php
$i++;
}
?>
</table>
<?php
} else {
echo 'Data Tidak Ditemukan';
}
mysql_close($res);
}
?>
Pada contoh ini, karena kita belum pernah menambahkan data maka hasilnya
data tidak ditemukan.
§ Penambahan Data
Untuk mendukung penambahan data umumnya aplikasi web menyediakan
form khusus yang nantinya dapat digunakan berulang-ulang.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Tambah Data</title>
</head>
<body>
<tr>
<td></td>
<td><input type="submit" value="Simpan" /></td>
</tr>
</table>
</form>
<?php
require_once './koneksi.php';
$res = mysql_query($sql);
if ($res) {
echo 'Data Berhasil Ditambahkan';
mysql_close($res);
} else {
echo 'Gagal Menambah Data <br />';
echo mysql_error();
}
</body>
</html>
4. Administrasi Data
Untuk menghasilkan halaman akses dan manipulasi data yang terintegrasi,
ada beberapa tahap yang perlu dilakukan. Adapun agar lebih mudah dalam
melakukan pengelolaan, buat folder baru, misal aplikasi_db.
§ Halaman Index
Dalam upaya memudahkan transisi ke aplikasi yang kompleks, kita
menyediakan halaman index.php sebagai halaman utama. Adapun kode
program yang dilibatkan adalah sebagai berikut:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Akses dan Manipulasi Data</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<body>
<?php
ini_set('display_errors',1);
?>
</body>
</html>
Kode program di atas masih belum bisa dijalankan karena memerlukan file
data_handler.php yang masih belum dibuat.
Pada prinsipnya, halaman index akan menjadi entry point aplikasi sehingga
tidak perlu terdapat banyak deklarasi.
§ Koneksi Data Source
Untuk file koneksi ke data source, gunakan kode program koneksi.php yang
telah dibuat sebelumnya. Di sini tidak diperlukan konfigurasi tambahan apa
pun.
§ Administrasi Data
Pengelolaan data secara khusus kita letakkan ke dalam sebuah file bernama
data_handler.php. File ini berisi segala fungsi yang diperlukan untuk
pengolahan data.
Bagian pertama dari data handler ini adalah untuk identifikasi menu pilihan.
Kode programnya diperlihatkan sebagai berikut:
<?php
/**
* Fungsi utama untuk menangani pengolahan data
* @param string root parameter menu
*/
function data_handler($root) {
if (isset($_GET['act']) && $_GET['act'] == 'add') {
data_editor($root);
return;
}
case 'view':
if (isset($_GET['id']) && ctype_digit($_GET['id'])) {
data_detail($root, $_GET['id'], 1);
} else {
show_admin_data($root);
}
break;
case 'del':
if (isset($_GET['id']) && ctype_digit($_GET['id'])) {
// Key untuk penghapusan data
$id = $_GET['id'];
$res = mysql_query($sql);
if ($res) { ?>
<?php
} else {
echo 'Gagal menghapus data';
}
} else {
show_admin_data($root);
}
break;
default:
show_admin_data($root);
}
} else {
show_admin_data($root);
}
@mysql_close($res);
} else {
echo 'Data Tidak Ditemukan';
}
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
?>
<div class="tabel">
<div style="padding:5px;">
<a href="<?php echo $root;?>&act=add">Tambah Data</a>
</div>
<table border=1 width=700 cellpadding=4 cellspacing=0>
<tr>
<th>#</th>
<th width=120>NIM</th>
<th width=200>Nama</th>
<th width=200>Alamat</th>
<th>Menu</th>
</tr>
<?php
$i = 1;
while ($row = mysql_fetch_row($res)) {
$bg = (($i % 2) != 0) ? '' : 'even';
$id = $row[0]; ?>
<tr class="<?php echo $bg;?>">
<td width="2%"><?php echo $i;?></td>
<td>
<a href="<?php echo $root;?>&act=view&id=
<?php echo $id;?>"
title="Lihat Data"><?php echo $id;?></a>
</td>
<td><?php echo $row[1];?></td>
<td><?php echo $row[2]?></td>
<td align="center">
| <a href="<?php echo $root;?>&act=edit&id=
<?php echo $id;?>">
Edit</a> |
<!--
Lengkapi kode PHP untuk membuat link hapus data
-->
</td>
</tr>
<?php
$i++;
}
?>
</table>
</div>
<?php
} else {
echo 'Belum ada data,
isi <a href="'.$root.'&act=add">di sini</a>';
}
@mysql_close($res);
}
}
$res = mysql_query($sql);
if ($res) { ?>
<script type="text/javascript">
document.location.href="<?php echo $root;?>";
</script>
<?php
} else {
echo 'Gagal menambah data';
}
} else {
$res = mysql_query($sql);
if ($res) { ?>
<?php
} else {
echo 'Gagal memodifikasi';
}
}
}
$alamat = @$_POST['alamat'];
}
?>
<h2> <?php echo $id ? 'Edit' : 'Tambah';?> Data</h2>
<form action="" method="post">
<table border=1 cellpadding=4 cellspacing=0>
<tr>
<td width=100>NIM*</td>
<td> <input type="text" name="nim" size=10
value="<?php echo $nim;?>" /> </td>
</tr>
<tr>
<td>Nama</td>
<td> <input type="text" name="nama" size=40
value="<?php echo $nama;?>" /> </td>
</tr>
<tr>
<td>Alamat</td>
<td> <input type="text" name="alamat" size=60
value="<?php echo $alamat;?>" /> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Submit" />
<input type="button" value="Cancel"
onclick="history.go(-1)" /></td>
</tr>
</table>
</form> <br />
<p>Ket: * Harus diisi</p>
<?php
}
return false;
}
F. STUDI KASUS
1. Sempurnakan operasi penghapusan data dengan menambahkan konfirmasi
penghapusan dan memberitahukan id data yang akan dihapus.
G. TUGAS PRAKTIKUM
1. Terkait dengan latihan administrasi data, buat kode untuk melakukan seleksi
data pada tabel mahasiswa dan letakkan di folder tertentu. Halaman ini
nantinya bisa diakses oleh siapa pun. Selanjutnya, integrasikan kode untuk
login (di pertemuan sebelumnya) agar menampilkan halaman administrasi
(juga seperti pada latihan). Upload aplikasi database sederhana ini ke hosting
masing-masing.