DATABASE
Oleh:
Nafa Zulfa
(140533604432)
(140533602886)
Setiawan
(140533603042)
A. TUJUAN PEMBELAJARAN
1. Mahasiswa mampu mengkoneksikan aplikasi ke database MySQL
2. Mahasiswa mampu menciptakan database dan tabel melalui program PHP
3. Mahasiswa mampu membangun program PHP untuk akses dan manipulasi data
4. Mahasiswa mampu membangun program PHP untuk administrasi data (insert, update,
delete)
5. Mahasiswa mampu membangun program PHP untuk fasilitas pencarian data, dan
pembatasan tampilan data
6. Membuat aplikasi web databse untuk pengolahan data
B. DASAR TEORI
Akses dan Manipulasi Data
Data adalah catatan atas kumpulan fakta. Dalam penggunaan sehari-hari data berarti
suatu pernyataan yang diterima secara apa adanya. Pernyataan ini adalah hasil pengukuran
atau pengamatan suatu variabel yang bentuknya dapat berupa angka, kata-kata, atau cerita.
Basis data (Database) adalah kumpulan informasi yang disimpan di dalam komputer
secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk
memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk
mengelola dan memanggil query basis data disebut sistem manajemen basis data
(Database Management System, DBMS). Sistem basis data dipelajari dalam ilmu
informasi.
Dalam kehidupan sehari-hari, fakta dikumpulkan untuk menjadi data. Data kemudian
diolah sehingga dapat diutarakan secara jelas dan tepat sehingga dapat dimengerti oleh
orang lain yang tidak langsung mengalaminya sendiri, hal ini dinamakan deskripsi.
Pemilahan banyak data sesuai dengan persamaan atau perbedaan yang dikandungnya
dinamakan klasifikasi. Konsep dasar dari basis data sendiri adalah kumpulan dari data.
Sebuah basis data memiliki penjelasan terstruktur dari jenis faktayang tersimpan di
dalamnya (penjelasan ini disebut skema). Skema menggambarkan obyek yang diwakili
suatu basis data, dan hubungan diantara obyek tersebut. Biasanya data akan dimasukkan
dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris
dan kolom.
Sehubungan dengan pengolahan data secara permanen, PHP menyediakan pendekatan
yang
variatif sekali.
Salah satu
digunakan
adalah
menginteraksikan aplikasi-aplikasi PHP dengan database. Dalam hal ini, banyak sekali
produk database yang didukung oleh PHP, salah satunya yang paling populer adalah
MySQL.
C. LATIHAN
1. Koneksi Ke Data Source
a) Ketikkan kode berikut:
Koneksi.php
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'mysql';
$cnn = mysql_connect ($host, $user, $pass);
if(!$cnn){
exit('Koneksi Gagal');
}
$db = mysql_select_db($db);
if (!$db){
exit('Gagal Memilih Database');
}
?>
Test.php
<html>
<head>
<title>Test Koneksi</title>
</head>
<body>
<?php
require_once './koneksi.php';
?>
<h4>Koneksi Berhasil</h4>
</body>
</html>
b) Hasil:
c) Penjelasan:
Program ini menggunakan fungsi mysql_connect yang digunakan untuk memberikan
koneksi antara program dengan database. Mysql_select_db digunakan untuk
memilih database yang akan digunakan yaitu database mysql.
2. Menciptakan Database & Tabel
a) Ketikkan kode berikut:
Create_db.php
<html>
<head>
<title>Menciptakan Database</title>
</head>
<body>
<?php
require_once './koneksi.php';
$db = 'myweb';
$res = mysql_query('CREATE DATABASE '.$db);
if($res){
echo 'Database '.$db.' Created';
mysql_close();
}
else {
echo mysql_error();
}
?>
</body>
</head>
Create_tabel.php
<html>
<head>
<title>Menciptakan Tabel</title>
</head>
<body>
<?php
require_once './koneksi.php';
$sql = 'CREATE TABLE mahasiswa (
nim VARCHAR(12) NOT NULL,
nama VARCHAR(40) NOT NULL,
alamat VARCHAR(100),
PRIMARY KEY (nim)
) ENGINE=MyISAM';
$res = mysql_query($sql);
if($res){
echo 'Table Created';
mysql_close();
}
else {
echo mysql_error();
}
?>
</body>
</html>
b) Hasil:
c) Penjelasan:
Program ini menggunakan mysql_query yang digunakan untuk mengeksekusi query
yang digunakan untuk membuat database dan juga membuat tabel di dalam database
yang telah dibuat.
3. Akses & Manipulasi Data
a) Ketikkan kode berikut:
Ambil_data.php
<?php
require_once './koneksi.php';
$sql = 'SELECT * FROM mahasiswa';
$res = mysql_query($sql);
if($res){
if(mysql_num_rows($res)){ ?>
Tidak Ditemukan';
}
mysql_close();
}
?>
Tambah_data.php
<html>
<head>
<title>Tambah Data</title>
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF'];?>" method="post">
<table>
<tr>
<td>NIM</td>
<td><input type="text" name="nim"/></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" size=40/></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" size=60/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Simpan"/></td>
</tr>
</table>
</form>
<?php
require_once './koneksi.php';
if (isset($_POST['nim']) && isset($_POST['nama'])){
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$sql = "INSERT INTO mahasiswa
VALUES ('".$nim."','".$nama."','".$alamat."')";
$res = mysql_query($sql);
if($res) {
echo 'Data Berhasil Ditambahkan';
@ mysql_close($res);
}
else {
echo 'Gagal Menambahkan Data<br/>';
echo mysql_error();
}
}
echo '<hr/>';
require_once '/koneksi.php';
$sql = 'SELECT * FROM mahasiswa';
$res = mysql_query($sql);
if($res){
if(mysql_num_rows($res)){ ?>
<table border=1 cellspacing=1 cellspading=5>
<tr>
<th>#</th>
<th width=100>NIM</th>
<th width=150>Nama</th>
<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();
}
?>
</body>
</html>
b) Hasil:
c) Penjelasan:
Program ini menggunakan fungsi mysql_query yan digunakan untuk mengeksekusi
query megambil dan juga menambahkan data. Program ini juga menggunakan fungsi
mysql_fetch_rows yang digunakan untuk mengetahui jumlah data yang ada di dalam
tabel yang dipilih yaitu tabel mahasiswa. Program ini menggunakan pendekatan get
dan post. Program ini menggunakan require_once yang digunakan untuk
meghubungkan tambah_data.php dan ambil_data.php dengan koneksi.php.
4. Penambahan Data, Menu Administrasi Data, Menampilkan Detail Data, &
Memodifikasi Data
a) Ketikkan kode berikut:
Index.php
<html>
<head>
<title>Akses & Manipulasi Data</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<?php
ini_set('display_errors', 1);
require_once './koneksi.php';
require_once './data_handler.php';
define ('MHS', 'mahasiswa');
data_handler('?=data');
?>
</body>
</html>
Data_handler.php
<?php
function data_handler($root){
if (isset($_GET['act']) && $_GET['act'] == 'add'){
data_editor($root);
}
$sql = 'SELECT COUNT(*) AS total FROM '.MHS;
$res = mysql_query($sql);
if (mysql_num_rows($res)){
if (isset($_GET['act']) && $_GET['act'] != ''){
switch($_GET['act']){
case 'edit':
if(isset($_GET['id']) &&
ctype_digit($_GET['id'])){
data_editor($root, $_GET['id']);
}
else{
show_admin_data($root);
}
break;
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'])){
$id = $_GET['id'];
mysql_query($sql);
$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!';
}
}
function show_admin_data($root){?>
<h2 class="heading">Administrasi Data</h2>
<?php
$sql = 'SELECT nim, nama, alamat FROM '.MHS;
$res = mysql_query($sql);
if($res){
$num = mysql_num_rows($res);
if($num){
?>
<div class="tabel">
<div style="padding:5px;">
<?php
}
else{
echo 'Belum ada data, isi <a href="'.
$root.'&act=add">Disini</a>';
}
@mysql_close($res);
}
}
function data_detail($root, $id){
$sql = 'SELECT nim, nama, alamat FROM '.MHS.' WHERE nim='.$id;
$res = mysql_query($sql);
if($res){
if(mysql_num_rows($res)){ ?>
<div class="tabel">
<table border=1 width=700 cellpadding=4
cellspacing=0>
<?php
$row = mysql_fetch_row($res); ?>
<tr>
<td>NIM</td>
<td><?php echo $row[0];?></td>
</tr>
<tr>
<td>Nama</td>
<td><?php echo $row[1];?></td>
</tr>
<tr>
<td>Alamat</td>
<td><?php echo $row[2];?></td>
</tr>
</table>
</div>
<?php
}
else{
echo 'Data Tidak Ditemukan';
}
@mysql_close($res);
}
}
function data_editor($root, $id = 0){
$view = true;
if(isset($_POST['nim']) && $_POST['nim']){
if(!$id){
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$sql = "INSERT INTO ".MHS." VALUES ('".$nim."','".
$nama."','".$alamat."')";
$res = mysql_query($sql);
if($res){ ?>
<script
type="text/javascript">document.location.href="<?php echo $root;?
>";</script>
<?php
}
else{
echo 'Gagal Menambahkan Data';
}
}
else{
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$sql = "UPDATE ".MHS." SET nama='".$nama."',
alamat='".$alamat."' WHERE nim='".$nim."'";
$res = mysql_query($sql);
if($res){ ?>
<script
type="text/javascript">document.location.href="<?php echo $root;?
>";</script>
<?php
}
else{
'Gagal Memodifikasi Data';
}
}
}
if($view){
if($id){
$sql = 'SELECT nim, nama, alamat FROM '.MHS.' WHERE
nim='.$id;
$res = mysql_query($sql);
if($res){
if(mysql_num_rows($res)){
$row = mysql_fetch_row($res);
$nim = $row[0];
$nama = $row[1];
$alamat = $row[2];
}
else{
show_admin_data();
return;
}
}
}
else{
$nim = @$_POST['nim'];
$nama = @$_POST['nama'];
$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=40
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>
<p>Ket: * Wajib Diisi</p>
<?php
}
return false;
}
?>
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk memanipulasi
Data_handler.php
<?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;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
//Jika data di tabel ada
if (mysql_num_rows($res)) {
show_admin_data($root);
@mysql_close($res);
}
else{
echo "Data Tidak Ditemukan";
}
}
/**
* Fungsi untuk menampilkan menu administrasi
* @param string root parameter menu
*/
function show_admin_data($root){
?>
<h2 class="heading">Pencarian Data</h2>
<form method="post" action="">
Nama :
<input type="text" name="search">
<input type="submit" name="cari" value="Cari">
</form>
<hr>
<?php
$sql = 'SELECT * FROM ' . MHS;
if (isset($_POST['cari'])) {
if (isset($_POST['search']))
$sql = 'SELECT * FROM mahasiswa WHERE nama LIKE "'.
$_POST['search'].'"';
}
$res = mysql_query($sql);
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150">Nama</th>
<th width="120">Alamat</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><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
} else {
echo 'Data Belum Ada';
}
@mysql_close($res);
}
}
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk mencari data
yang ada pada tabel mahasiswa, sedangkan mysql_fetch_rows digunakan untuk
mengetahui jumlah baris data yang ada pada tabel mahasiswa. Program ini
menggunakan fungsi data handler yang digunakan untuk mempermudah dalam
pemanggilan fungsi manipulasi data yaitu read data. Program ini juga menggunakan
fungsi function yang digunakan untuk mengelompokkan fungsi-fungsi pada
program yaitu fungsi untuk menampilkan data.
6. Latihan Kecil 5
a) Ketikkan kode berikut:
Index.php
<html>
<head>
<title>Akses & Manipulasi Data</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<body>
<?php
ini_set('display_errors', 1);
require_once './koneksi.php';
require_once './data_handler.php';
define ('MHS', 'mahasiswa');
data_handler('?=data');
?>
</body>
</html>
Data_handler.php
<?php
function data_handler($root){
if (isset($_GET['act']) && $_GET['act'] == 'add') {
data_editor($root);
return;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
//Jika data di tabel ada
if (mysql_num_rows($res)){
show_admin_data($root);
@mysql_close($res);
} else{
echo "Data Tidak Ditemukan";
}
}
function show_admin_data($root){
?>
<h2 class="heading">Pencarian Data</h2>
<?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><?php echo $row[0]; ?> </td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
} else {
echo 'Data Belum Ada';
}
@mysql_close($res);
}
}
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk mencari data yang
ada pada tabel mahasiswa, sedangkan mysql_fetch_rows digunakan untuk
mengetahui jumlah baris data yang ada pada tabel mahasiswa. Program ini
menggunakan fungsi data handler yang digunakan untuk mempermudah dalam
pemanggilan fungsi manipulasi data yaitu read data. Program ini juga menggunakan
fungsi function yang digunakan untuk mengelompokkan fungsi-fungsi pada program
fungsi untuk menampilkan data. Program ini hampir sama dengan program pada
latihan 6, namun pada program ini terdapat prifillage sehingga masukkan user tidak
hilang mesti tombol cari sudah ditekan.
7. Membatasi Tampilan Data
a) Ketikkan kode berikut:
Index.php
<html>
<head>
<title>Akses & Manipulasi Data</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<body>
<?php
ini_set('display_errors', 1);
require_once './koneksi.php';
require_once './data_handler.php';
define ('MHS', 'mahasiswa');
data_handler('?=data');
?>
</body>
</html>
Data_handler.php
<?php
function data_handler($root){
if (isset($_GET['act']) && $_GET['act'] == 'add') {
data_editor($root);
return;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
//Jika data di tabel ada
if (mysql_num_rows($res)) {
if (isset($_GET['act']) && $_GET['act'] != '') {
switch ($_GET['act']) {
case 'edit':
if (isset($_GET['id']) &&
ctype_digit($_GET['id'])) {
data_editor($root, $_GET['id']);
} else {
show_admin_data($root);
}
break;
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'];
<option value="null">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
</select>
baris atau data per halaman
</form>
<hr>
<?php
if (isset($_POST['data']) && $_POST['data']) {
$halaman = ' LIMIT '.$_POST['data'];
$sql = 'SELECT * FROM ' . MHS . ' ' .$halaman;
} else{
$sql = 'SELECT * FROM ' . MHS;
}
$res = mysql_query($sql);
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150">Nama</th>
<th width="120">Alamat</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><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
} else {
echo 'Belum Ada Data, Isi <a href="'.
$root.'&act=add">di sini</a>';
}
@mysql_close($res);
}
}
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk menampilkan data
yang ada pada tabel mahasiswa, sedangkan mysql_fetch_rows digunakan untuk
mengetahui jumlah baris data yang ada pada tabel mahasiswa. Program ini
menggunakan fungsi data handler yang digunakan untuk mempermudah dalam
pemanggilan fungsi manipulasi data yaitu read delete data. Program ini juga
menggunakan fungsi function yang digunakan untuk mengelompokkan fungsifungsi pada program yaitu fungsi untuk menampilkan data. Program ini
menggunakan fungsi limit yang digunakan untuk memberikan limitasi jumlah data
yang ditampilkan yaitu sebanyak 3 baris data saja.
8. Latihan Kecil 6
a) Ketikkan kode berikut:
Index.php
<html>
<head>
<title>Akses & Manipulasi Data</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<body>
<?php
ini_set('display_errors', 1);
require_once './koneksi.php';
require_once './data_handler.php';
define ('MHS', 'mahasiswa');
data_handler('?=data');
?>
</body>
</html>
Data_handler.php
<?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;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
//Jika data di tabel ada
if (mysql_num_rows($res)) {
if (isset($_GET['act']) && $_GET['act'] != '') {
switch ($_GET['act']) {
case 'edit':
if (isset($_GET['id']) &&
ctype_digit($_GET['id'])) {
data_editor($root, $_GET['id']);
} else {
show_admin_data($root);
}
break;
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'];
//Lengkapi pernyatana SQL hapus data
$sql = 'DELETE FROM mahasiswa WHERE nim="'.
$id.'"';
$res = mysql_query($sql);
if ($res) {
?>
<!-- Lengkapi script untuk redireksi ke
root
-->
<script type="text/javascript">
document.location.href = "<?php echo
$root; ?>";
</script>
<?php
} else {
echo "Gagal Menghapus Data";
show_admin_data($root);
}
} else {
show_admin_data($root);
}break;
default:
show_admin_data($root);
}
} else {
show_admin_data($root);
@mysql_close($res);
}
} else{
echo "Data Tidak Ditemukan";
}
}
/**
* Fungsi untuk menampilkan menu administrasi
* @param string root parameter menu
*/
function show_admin_data($root){
?>
<h2 class="heading">Administrasi Data</h2>
<br />
<form method="post" action="" name="form">
Tampilkan
<select name="data"
onchange="document.forms.form.submit();">
<option value="null">- pilih -</option>
<option value="1" <?php if (isset ($_POST['data']) and
$_POST['data'] == "1") echo "selected";?> >1</option>
<option value="2" <?php if (isset ($_POST['data']) and
$_POST['data'] == "2") echo "selected";?> >2</option>
<option value="3" <?php if (isset ($_POST['data']) and
$_POST['data'] == "3") echo "selected";?> >3</option>
<option value="4" <?php if (isset ($_POST['data']) and
$_POST['data'] == "4") echo "selected";?> >4</option>
<option value="5" <?php if (isset ($_POST['data']) and
$_POST['data'] == "5") echo "selected";?> >5</option>
<option value="10" <?php if (isset ($_POST['data']) and
$_POST['data'] == "10") echo "selected";?> >10</option>
<option value="15" <?php if (isset ($_POST['data']) and
$_POST['data'] == "15") echo "selected";?> >15</option>
</select>
baris atau data per halaman
</form>
<hr>
<?php
if (isset($_POST['data']) && $_POST['data']) {
$halaman = ' LIMIT '.$_POST['data'];
$sql = 'SELECT * FROM ' . MHS . ' ' .$halaman;
} else{
$sql = 'SELECT * FROM ' . MHS;
}
$res = mysql_query($sql);
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150">Nama</th>
<th width="120">Alamat</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><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
} else {
echo 'Belum Ada Data';
}
@mysql_close($res);
}
}
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk menampilkan data
Data_handler.php
<style type = "text/css">
a {
text-decoration: none;
}
</style>
<?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;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
//Jika data di tabel ada
if (mysql_num_rows($res)) {
if (isset($_GET['act']) && $_GET['act'] != '') {
switch ($_GET['act']) {
case 'edit':
if (isset($_GET['id']) &&
ctype_digit($_GET['id'])) {
data_editor($root, $_GET['id']);
} else {
show_admin_data($root);
}
break;
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'];
//Lengkapi pernyatana SQL hapus data
/**
* Fungsi untuk menampilkan menu administrasi
* @param string root parameter menu
*/
function show_admin_data($root){
?>
<h2 class="heading">Tampil Data</h2>
<hr>
<?php
$self = $_SERVER['PHP_SELF'];
$sql = 'SELECT * FROM ' . MHS;
$page = isset($_GET['page']) ? $_GET['page'] : 0;
= 3;
$total_rows = mysql_num_rows(mysql_query($sql));
$query
$result
= mysql_query($query);
$max_page
= ceil($total_rows/$record_num);
$res = mysql_query($sql);
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>No</th>
<th width="50">NIM</th>
<th width="150">Nama</th>
<th width="120">Alamat</th>
</tr>
<?php
$i = 1;
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk mengambil data
yang ada pada tabel mahasiswa, sedangkan mysql_fetch_rows digunakan untuk
mengetahui jumlah baris data yang ada pada tabel mahasiswa. Program ini
menggunakan fungsi data handler yang digunakan untuk mempermudah dalam
pemanggilan fungsi manipulasi data yaitu read delete data. Program ini juga
menggunakan fungsi function yang digunakan untuk mengelompokkan fungsifungsi pada program yaitu fungsi untuk menampilkan data. Program ini
menggunakan fungsi limit yang digunakan untuk memberikan limitasi jumlah data
yang ditampilkan yaitu sebanyak 3 baris data saja perhalaman, sehingga jumlah data
yang apa pada tabel mahasiswa akan dibagi untuk mendapatkan jumlah halaman
yang akan dibuat.
D. TUGAS PRAKTIKUM
1. Tugas Praktikum 1
a) Ketikkan kode berikut:
Index.php
<html>
<head>
<title>Akses & Manipulasi Data</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<body>
<?php
ini_set('display_errors', 1);
require_once './koneksi.php';
require_once './data_handler.php';
define ('MHS', 'mahasiswa');
data_handler('?=data');
?>
</body>
</html>
Data_handler.php
<?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;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
} else {
show_admin_data($root);
}break;
default:
show_admin_data($root);
}
} else {
show_admin_data($root);
@mysql_close($res);
}
} else{
echo "Data Tidak Ditemukan";
}
}
/**
* Fungsi untuk menampilkan menu administrasi
* @param string root parameter menu
*/
function show_admin_data($root){
?>
<h2 class="heading">Administrasi Data</h2>
<?php
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
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="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150">Nama</th>
<th width="120">Alamat</th>
<th width="75">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
/**
* Fungsi untuk menampilkan detail data mahasiswa
* @param string root parameter menu
* @param integerid nim mahasiswa
*/
function data_detail($root, $id){
$sql = 'SELECT * FROM mahasiswa WHERE nim='.$id;
$res = mysql_query($sql);
if ($res) {
if (mysql_num_rows($res)) {
?>
<div class="tabel">
<table border="1" width="700" cellpadding="4"
cellspacing="0">
<?php $row = mysql_fetch_row($res); ?>
<tr>
<td>NIM</td>
<td><?php echo $row[0]; ?></td>
</tr>
<tr>
<td>Nama</td>
<td><?php echo $row[1]; ?></td>
</tr>
<tr>
<td>Alamat</td>
<td><?php echo $row[2]; ?></td>
</tr>
</table>
</div>
<?php
} else {
echo "Data Tidak Ditemukan";
}
@mysql_close($res);
}
}
/**
* Fungsi untuk menghasilkan form penambahan/pengubahan
* @param string root parameter menu
* @param integer id nim mahasiswa
*/
function data_editor($root, $id = 0){
$view = true;
if (isset($_POST['nim']) && $_POST['nim']) {
// Jika tidak disertai id, berarti insert baru
if (!$id) {
// Lengkapi Pernyataan PHP SQL untuk INSERT data
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$sql = 'INSERT INTO mahasiswa VALUES ("'.$nim.'", "'.
$nama.'", "'.$alamat.'")';
$res = mysql_query($sql);
if ($res) {
?>
<script type="text/javascript">
document.location.href = "<?php echo
$root; ?>";
</script>
<?php
} else {
echo "Gagal Menambah Data";
}
} else {
// Lengkapi Pernyataan PHP SQL untuk UPDATE data
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
}
?>
<h2>
<?php echo $id?'Edit':'Tambah'; ?> Data
</h2>
<form act="" method="post">
<table border="1" cellpadding="4" cellspacing="0">
<tr>
<td width=100>NIM*</td>
<td>
<input type="text" name="nim" size=10
required 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" name="Submit"
value="Submit">
<input type="button" value="Cancel"
onclick="history.go(-1);">
</td>
</tr>
</table>
</form> <br />
<p>Ket: * Wajib diisi</p>
<?php
}
return false;
}?>
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk mengambil,
menghapus, menambahkan, dan mengedit data yang ada pada tabel mahasiswa,
sedangkan mysql_fetch_rows digunakan untuk mengetahui jumlah baris data yang
ada pada tabel mahasiswa. Program ini menggunakan fungsi data handler yang
digunakan untuk mempermudah dalam pemanggilan fungsi manipulasi data yaitu
read delete data. Program ini juga menggunakan fungsi function yang digunakan
untuk
mengelompokkan
fungsi-fungsi
pada
program
yaitu
fungsi
untuk
Data_handler.php
<style type = "text/css">
a {
text-decoration: none;
}
</style>
<?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;
}
$sql = 'SELECT * FROM ' . MHS;
$res = mysql_query($sql);
//Jika data di tabel ada
if (mysql_num_rows($res)) {
if (isset($_GET['act']) && $_GET['act'] != '') {
switch ($_GET['act']) {
case 'edit':
if (isset($_GET['id']) &&
ctype_digit($_GET['id'])) {
data_editor($root, $_GET['id']);
} else {
show_admin_data($root);
}
break;
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'];
//Lengkapi pernyatana SQL hapus data
$sql = 'DELETE FROM mahasiswa WHERE nim="'.
$id.'"';
$res = mysql_query($sql);
if ($res) {
?>
<!-- Lengkapi script untuk redireksi ke
root
-->
<script type="text/javascript">
document.location.href = "<?php echo
$root; ?>";
</script>
<?php
} else {
/**
* Fungsi untuk menampilkan menu administrasi
* @param string root parameter menu
*/
function show_admin_data($root){
?>
<h2 class="heading">Tampil Data</h2>
<form method="post" action="" name="form">
Tampilkan
<select name="data"
onchange="document.forms.form.submit();">
<option value="null">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
</select>
baris atau data per halaman
</form>
<hr>
<?php
if (isset($_POST['data']) && $_POST['data']) {
$halaman = ' LIMIT '.$_POST['data'];
$sql = 'SELECT * FROM ' . MHS . ' ' .$halaman;
} else{
$sql = 'SELECT * FROM ' . MHS;
}
$self = $_SERVER['PHP_SELF'];
$sql = 'SELECT * FROM ' . MHS;
$page = isset($_GET['page']) ? $_GET['page'] : 0;
= 3;
$total_rows = mysql_num_rows(mysql_query($sql));
$query
$result
= mysql_query($query);
$max_page
= ceil($total_rows/$record_num);
$res = mysql_query($sql);
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>No</th>
<th width="50">NIM</th>
<th width="150">Nama</th>
<th width="120">Alamat</th>
</tr>
<?php
$i = 1;
while ($row = mysql_fetch_row($result)) {
$bg = (($i % 2) != 0)? '' : 'even';
$id = $row[0];
?>
<tr class="<?php echo $bg; ?>">
<td width="2%">
<?php
if ($page ==1){
echo $i;
} else{
$nomer = (($page-1)*3)+$i;
echo $nomer;
}
?>
</td>
<td><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
<br>
<?php
//***************** Tampilkan navigasi
echo $paging;
?>
</div>
<?php
} else {
echo 'Belum Ada Data, Isi <a href="'.
$root.'&act=add">di sini</a>';
}
@mysql_close($res);
}
}
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini
mennggunakan fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query
digunakan untuk mengeksekusi query yang akan digunakan untuk mengambil data
yang ada pada tabel mahasiswa, sedangkan mysql_fetch_rows digunakan untuk
mengetahui jumlah baris data yang ada pada tabel mahasiswa. Program ini
menggunakan fungsi data handler yang digunakan untuk mempermudah dalam
pemanggilan fungsi manipulasi data yaitu read delete data. Program ini juga
menggunakan fungsi function yang digunakan untuk mengelompokkan fungsifungsi pada program yaitu fungsi untuk menampilkan data. Program ini
menggunakan fungsi limit yang digunakan untuk memberikan limitasi jumlah data
yang ditampilkan yaitu sebanyak 3 baris data saja perhalaman, sehingga jumlah data
yang apa pada tabel mahasiswa akan dibagi untuk mendapatkan jumlah halaman
yang akan dibuat. Program ini hampir sama dengan latihan 7, namun pada program
ini user dapat memilih limitasi yang diinginkan dengan memilih pada listbox.
E. TUGAS PROYEK
a) Ketikkan kode berikut:
Login.html
<html>
<FORM action="login_process.php" method="post">
Username : <input type="text" name="username">
Password : <input type="password" name="password">
<input type="submit" value="submit" name="submit">
</FORM>
</html>
Login_process.php
<?php
session_start();
$error='';
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username atau Password Belum Benar";
}
else
{
$username=$_POST['username'];
$password=$_POST['password'];
$connection = mysql_connect("localhost", "root", "");
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$db = mysql_select_db("modul6", $connection);
$query = mysql_query("select * from modul6 where
password='$password' AND username='$username'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['username']=$username;
header("location: utama.php");
} else {
$error = "Email atau Password Belum Terdaftar";
}
mysql_close($connection);
}
}
?>
Utama.php
<?php
include 'koneksi.php';
$sql="select * from data";
$res = mysql_query($sql);
if($res){
$num = mysql_num_rows($res);
if($num){
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
Asutama1.php
<?php
include 'koneksi.php';
$sql="select * from data ORDER By nama ASC";
$res = mysql_query($sql);
if($res){
$num = mysql_num_rows($res);
if ($num){
?>
<div class="tabel">
Asutama2.php
<?php
include 'koneksi.php';
$sql="select * from data ORDER By nama DESC";
$res = mysql_query($sql);
if($res){
$num = mysql_num_rows($res);
if($num){
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150"><a link
href="asutama1.php">Nama</th>
<th width="120"><a link
href="dsutama1.php">Alamat</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><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
} else {
echo 'Data Belum Ada';
}
@mysql_close($res);
}
Dsutama1.php
<?php
include 'koneksi.php';
$sql="select * from data ORDER By alamat ASC";
$res = mysql_query($sql);
if($res){
$num = mysql_num_rows($res);
if($num){
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150"><a link
href="asutama1.php">Nama</th>
<th width="120"><a link
href="dsutama2.php">Alamat</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><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
}
else{
echo 'Data Belum Ada';
}
@mysql_close($res);
}
Dsutama2.php
<?php
include 'koneksi.php';
$sql="select * from data ORDER By alamat DESC";
$res = mysql_query($sql);
if($res){
$num = mysql_num_rows($res);
if($num){
?>
<div class="tabel">
<table border="1" width="600" cellpadding="4"
cellspacing="1">
<tr>
<th>#</th>
<th width="50">NIM</th>
<th width="150"><a link
href="asutama1.php">Nama</th>
<th width="120"><a link
href="dsutama1.php">Alamat</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><?php echo $row[0]; ?></td>
<td><?php echo $row[1]; ?></td>
<td><?php echo $row[2]; ?></td>
</tr>
<?php
$i++;
} ?>
</table>
</div>
<?php
} else {
echo 'Data Belum Ada';
}
@mysql_close($res);
}
b) Hasil:
c) Penjelasan:
Program ini menggunakan 2 pendekatan yaitu get dan post. Program ini mennggunakan
fungsi mysql_query dan juga mysql_fetch_rows. Mysql_query digunakan untuk
mengeksekusi query yang akan digunakan untuk mengambil data yang ada pada tabel
mahasiswa, sedangkan mysql_fetch_rows digunakan untuk mengetahui jumlah baris
data yang ada pada tabel mahasiswa. Program ini menggunakan fungsi query ascending
dan descending yang digunakan untuk mengurutkan data secara ascending dan jgua
descending. Program ini menggunakan fungsi a href yang digunakan untuk
menghubungkan antar halaman web. Pada program ini terdapat halaman login sebelum
user dapat melihat data dan merubah urutan data secara ascending maupun descending.
F. KESIMPULAN
web.
mysql_query digunakan untuk mengeksekusi query pada program yang dapat