MODUL VI
INTERAKSI DATABASE
LAPORAN PRAKTIKUM PEMROGRAMAN WEB
Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman WEB
Yang Dibimbing oleh Bapak Didik Dwi Prasetya S.T., M.T.
Oleh :
ANANDA PUTRI SYAVIRI
130533608243
S1 PTI Offering B 2013
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK ELEKTRO
PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA
APRIL, 2015
MODUL VI
"INTERAKSI DATABASE"
TUJUAN
Memahami konsep dasar akses dan manipulasi data.
Mampu mengintegrasikan aplikasi PHP dengan database MySQL.
Mampu menghasilkan aplikasi web database untuk pengolahan data sederhana.
Memahami teknik-teknik akses dan manipulasi data lanjutan.
Mampu melakukan penambahan, pengubahan, dan penghapusan data melalui aplikasi PHP.
Mampu menghasilkan aplikasi PHP untuk menangani pengolahan data di database.
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.
DASAR TEORI
Akses dan Manipulasi Data
Sehubungan dengan pengolahan data secara permanen, PHP menyediakan pendekatan yang variatif sekali. Salah satu pendekatan yang banyak 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.
Pembahasan pada materi ini akan memfokuskan dasar-dasar akses dan manipulasi data. Secara khusus, di sini akan dijelaskan mengenai pembuatan koneksi ke data source, pembuatan database dan tabel, serta manipulasi dasar. Selain itu, juga diulas mengenai pengolahan data berbasis tabel (seperti komponen data grid pada aplikasi desktop). Adapun mengenai materi-materi lanjut, akan dibahas di pertemuan berikutnya.
LATIHAN
Koneksi ke Data Source
Script :
PHP
<?php
//catatan,
//jika perlu, sesuaikan nama user dan password
$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');
}
?>
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang"en" lang="en">
<head>
<title>Test Koneksi</title>
</head>
<body>
<?php
require_once './koneksi.php';
?>
<h4>Koneksi Berhasil</h4>
</body>
</html>
Output :
Keterangan :
Program diatas merupakan cara untuk menampilkan , apakah php dan html sudah terkoneksi dengan benar. Menggunakan 2 file yaitu , file php dan html. Pada file php, tidak untuk dijalankan langsung, tetapi sebagai file yang akan dijalankan melalui link pada file html. Mengkoneksikan dengan menggunakan fungsi require_once yang dideklarasikan dalam file html. Require_once ini sebagai jembatan antara file satu dengan lainnya, sehingga segala sesuatu yang telah dideklarasikan pada file php, mulai dari user, password, host, dll, akan langsung disambungkan dengan file html. Jika berhasil maka, untuk file selanjutnya dapat dikoneksikan menggunakan database yang berhasil tersambung. Jika tidak , maka perlu mengecek kembali script yang digunakan pada salah satu /kedua file tersebut.
Menciptakan Database dan Tabel
Menciptakan Database
Script :
<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($res);
}else{
echo mysql_error();
}
?>
</body>
</html>
Output :
Keterangan :
Program diatas digunakan untuk membuat sebuah database. Namun pada pendeklarasian pembuatan database, harus disertai dengan script sql untuk menciptakan database. Karena pada script diatas tidak dideklarasikan, maka database tidak dapat diciptakan. Dalam program ini, jika sudah ada database yang dibuat dengan nama sama , maka akan ditampilkan pernyataan bahwa database dengan nama tersebut telah dibuat.
Menciptakan Tabel
Script :
<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 'Tabel Created';
mysql_close($res);
}else {
echo mysql_error();
}
?>
</body>
</html>
Output :
Keterangan :
Program diatas digunakan untuk menciptakan sebuah table. Dengan mengkoneksikan dengan koneksi.php , maka table dapat dibuat. Jika tidak, maka table tidak dapat dibuat, maka dari itu pada latihan 1 , perlu memastikan bahwa koneksi berhasil dilakukan, agar dapat tersambung dengan database. Untuk membuat table , menggunakan script sql, sehingga table dapat ditampilkan.
Akses dan Manipulasi Data
Seleksi/Pengambilan Data
Script :
<?php
// File: seleksi.php
require_once './koneksi.php';
$sql = 'SELECT * FROM mahasiswa';
$res = mysql_query($sql);
if ($res)
if (mysql_num_rows($res)){ ?>
<table border=1 cellspacing=1 cellpadding=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($res);
}
?>
Output :
Keterangan :
Program ini dan program selanjutnya sangat berkaitan erat. Jika belum ada database yang ditambahkan maka, pada program diatas akan menampilkan “Data Tidak Ditemukan”. Tetapi jika sudah terisi database , maka program ini akan menampilkan isi database berbentuk table yang telah dibuat pada latihan sebelumnya. Akan menampilkan data denga format no, nim, nama dan alamat.
Penambahan Data
Script :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang"en" lang="en">
<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>
<td></td>
<td><input type="submit" value="Submit" /></td></tr>
</table>
</form>
<?php
require_once './koneksi.php';
//Jika field nim dan nama diisi lalu disubmit
if(isset($_POST['nim']) && isset($_POST['nama'])){
$nim = $_POST ['nim'];
$nama = $_POST ['nama'];
$alamat = $_POST ['alamat'];
//Tambahkan data baru ke tabel
$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 />';
//Memanfaatkan script pengembalian data untuk menampilkan hasil
require_once './latihan2c.php';
?>
</body>
</html>
Output :
Keterangan :
Program diatas berfungsi untuk menambahkan atau menginputkan data pada database. Jika berhasil ditambahkan maka akan muncul tampilan “Data Berhsil Ditambahkan” dan table akan ditampilkan seperti pada gambar diatas.
Administrasi Data
Halaman Index
Script :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang"en" lang="en">
<head>
<title>Akses dan Menipulasi Data</title>
<style type ="text/css">
.even{ background: #ddd;}
</style>
</head>
<body>
<?php
ini_set('display_errors',1);
//Meng-incluse file koneksi dan data handler
require_once './koneksi.php';
require_once './data_handler.php';
//Konstanta nama tabel
define('MHS', 'mahasiswa');
//Memanggil fungsi data handler
data_handler('?m=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 COUNT(*) AS total 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
$res = mysql_query($sql);
if($res) { ?>
//Lengkapi script untuk redireksi ke root
<?php
}else{ echo 'Gagal menghapus data'; }
}else { show_admin_data($root);
}break; default;
show_admin_data($root);
}
mysql_close($res);
}else {
echo 'Data tidak ditemukan';
}
}
}
/**
*Fungsi utama untuk menangani pengolahan data
*@param string root parameter menu
*/
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;">
<a href="<?php echo $root;?>&act=add">Tambah Data</a>
</div>
<table border=1 width=700 cellpadding=4 sellspacing=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 = ((Si % 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);
}}
Output :
Keterangan :
Program diatas digunakan untuk menampilkan data. Menggunakan 2 file html dan php. File tersebut digunakan untuk pengolahan data ( data_handller), dan mengidentifikasi menu pilihan. Namun pada hasil diatas, tidak ditemukan data karena tidak ada menu pilihan yang ada pada program diatas.
Menu Administrasi Data
Script :
<html><head>
<title>administrasi</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head><body><div id="content">
<p align="center" ><strong>ADMINISTRASI DATA</strong></p>
<p align="center"><a href="form_input.php">Tambah data</a></p>
<form id="form1" name="form1" method="post" action="">
<table width="510" border="1" align="center" >
<tr><td>NIM</td>
<td>NAMA</td>
<td>ALAMAT</td>
<td>AKSI</td>
</tr>
<tr>
<?php
include "koneksi.php";
$query=mysql_query('SELECT * FROM mahasiswa');
while($hasil=mysql_fetch_array($query))
{
?><td><?php print($hasil['nim']);?></td>
<td><?php print($hasil['nama']);?></td>
<td><?php print($hasil['alamat']);?></td>
<td><a href=hapus.php?id=<?php print($hasil[id]);?> >Hapus</a> | <a href=form_edit.php?id=<?php print($hasil['nim']);?> >Edit</a></td>
</tr>
<?php } ?>
</table>
</form>
</div>
</body>
</html>
Output :
Keterangan :
Program diatas berfungsi untuk membuat sebuah halaman administrasi dalam bentuk table grid yang digunakan untuk pengelolaan data. Program diatas juga menyediakan fungsi untuk mengedit data, hapus, tambah data yang ingin dimasukkan ke dalam file database.
Halaman Modifikasi Data
Script :
<html>
<head>
<title>Input Data</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body><div id="content">
<div align="center"><strong>TAMBAH DATA</strong>
</div>
<form method="post" action="input.php">
<table width="200" border="1" align="center">
<tr>
<td>NIM</td>
<td>:</td>
<td><input type="text" name="nim" id="nim"/></td>
</tr>
<tr>
<td>NAMA</td>
<td>:</td>
<td><input type="text" name="nama" id="nama" /></td>
</tr>
<tr>
<td>Alamat</td>
<td>:</td>
<td><input type="text" name="alamat" id="alamat" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><div align="right">
<input type="submit" name="submit" value="input" />
</div></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Output :
Keterangan :
Program diatas berfungsi untuk menambahkan data yang ingin dimasukkan ke dalam database. Menampilkan data yang berhasil diedit/ ditambahkan , juga dapat melakukan modifikasi data ataupun menghapus data sekaligus pada halaman ini. Alur kerjanya , program ini memanggil file php sehingga dapat dilakukan program untuk pengelolaan data.
Pencarian Data
Script :
<h2>Pencarian Data</h2>
<form action='latihan11.php'method="POST">
<input type='text' value='' name='qcari'>
<input type='submit' value='cari'>
<p>All</p>
</form>
<table border="1" width="500px">
<th><td>Nim</a></td><td>Nama</td><td>alamat</td></th>
<?php
require_once('koneksi.php');
$query1="select * from mahasiswa ";
if(isset($_POST['qcari'])){
$qcari=$_POST['qcari'];
$query1="SELECT * FROM mahasiswa
where nim like '%$qcari%'
or nama like '%$qcari%' ";
}
$result=mysql_query($query1) or die(mysql_error());
$no=1; //penomoran
while($rows=mysql_fetch_object($result)){
?>
<tr>
<td><?php echo $no
?></td>
<td><?php echo $rows -> nim;?></td>
<td><?php echo $rows -> nama;?></td>
<td><?php echo $rows -> alamat;?></td>
</tr>
<?php
$no++;
}?>
</table>
Output :
Keterangan :
Program diatas digunakan untuk melakukan pencarian data berdasarkan nama, sehingga ketika mengetikkan nama, kemudian klik ok, akan muncul data dari pemilik nama tersebut dalam bentuk table. Adapun fungsi yang berfungsi sebagai alat pencari adalah pada perkondisian if, menggunakan metode post dengan parameter qcari. Yang didalamnya terdapat pendeklarasian sintaks sql untuk menyeleksi data. Untuk menampilkan data dari nama yang di ketikkan, dapat diatur pada penulisan sintaks sql.
Latihan Kecil
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Pencarian Data</title>
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF'];?>" method="get">
Nama <input type="text" name="nama" size=40
value="<?php
echo isset($_GET['nama']) ? $_GET['nama'] : '';
?>"
/> <input type="submit" value="CARI" />
</form>
<?php
if (isset($_GET['nama'])) {
require_once './koneksi.php';
// Kata kunci pencarian
$key = $_GET['nama'];
// Variabel $sql berisi pernyataan SQL pencarian
$sql = "SELECT * FROM mahasiswa
WHERE nama like '%$key%' ";
$res = mysql_query($sql);
if ($res) {
$num = mysql_num_rows($res);
if ($num) {
echo 'Ditemukan ' . $num . ' row(s)'; ?>
<table border=1 cellspacing=1 cellpadding=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';
}
}
} else {
echo 'Masukkan kata kunci pencarian';
}
?>
</body>
</html>
Output :
Keterangan :
Program diatas menggunakan fungsi prefilling text, sehingga ketika selesai mengetikkan kata kunci dan menekan button ok, kata kunci tetap tertera pada form. Kemudian menggunakan metode Get , sehingga hasil pencarian kata kunci yang dicari ditampilkan pada url. Data yang ditampilkan berupa table, sama seperti latihan sebelumnya, dideklarasikan dengan menggunakan sintask sql.
Membatasi Tampilan Data
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Limitasi Data</title>
</head>
<body>
<form method="post" action="" name="frm_select">
Tampilkan
<select name="row_page"
onchange="document.forms.frm_select.submit();">
<option>-- pilih --</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select> baris per halaman.
</form>
<?php
if (isset($_POST['row_page']) && $_POST['row_page']) {
require_once './koneksi.php';
// Batas baris data
$row = $_POST['row_page'];
// LENGKAPI
// Variabel $sql berisi pernyataan SQL retrieve dg limitasi
$sql = "SELECT * FROM mahasiswa
LIMIT $row ";
$res = mysql_query($sql);
if ($res) {
if (mysql_num_rows($res)) { ?>
<table border=1 cellspacing=1 cellpadding=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';
}
}
}
?>
</body>
</html>
Output :
Keterangan :
Program diatas berfungsi untuk menampilkan data dengan ketentuan limit (batas menampilkan data yang ada pada database). Alur kerjanya menggunakan autosubmit. Sehingga tidak menggunakan button untuk memproses program. Fungsi yang digunakan dideklarasikan pada perkondisian if isset dengan parameter menggunakan metode post row page.
Latihan Kecil
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Limitasi Data</title>
</head>
<body>
<form method="post" action="" name="frm_select">
Tampilkan
<select name="row_page"
onchange="document.forms.frm_select.submit();"
value="<?php
echo isset($_POST['row_page']) ? $_POST['row_page'] : '';
?>">
<option>-- pilih --</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
baris per halaman.
</form>
<?php
if (isset($_POST['row_page']) && $_POST['row_page']) {
require_once './koneksi.php';
// Batas baris data
$row = $_POST['row_page'];
// LENGKAPI
// Variabel $sql berisi pernyataan SQL retrieve dg limitasi
$sql = "SELECT * FROM mahasiswa
LIMIT $row ";
$res = mysql_query($sql);
if ($res) {
if (mysql_num_rows($res)) { ?>
<table border=1 cellspacing=1 cellpadding=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';
}
}
}
?>
</body>
</html>
Output :
Keterangan :
Pemberian Halaman
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Paging Data</title>
</head>
<body>
<?php
require_once './koneksi.php';
//***************** Setup paging
$sql = 'SELECT * FROM mahasiswa';
$self = $_SERVER['PHP_SELF'];
$page = isset($_GET['page']) ? $_GET['page'] : 0;
// Jumlah link counter, misal (prev 1 2 3 next) = 3
$link_num = 5;
// Jumlah record per halaman
$record_num = 5;
// Item pertama yang akan ditampilkan
$offset = $page ? ($page - 1) * $record_num : 0;
$total_rows = mysql_num_rows(mysql_query($sql));
$query = $sql. ' LIMIT ' . $offset . ', ' . $record_num;
$result = mysql_query($query);
$max_page = ceil($total_rows/$record_num);
// Reset jika page tidak sesuai
if ($page > $max_page || $page <= 0) {
$page = 1;
}
//***************** Generate paging
$paging = '';
if($max_page > 1) {
//*** Render link previous
if ($page > 1) {
$paging .= ' <a href="'.$self.'?page='.($page-1).'">previous</a>
';
} else {
$paging .= ' previous ';
}
//*** Render link counter halaman
for ($counter = 1; $counter <= $max_page; $counter += $link_num) {
if ($page >= $counter) {
$start = $counter;
}
}
if ($max_page > $link_num) {
$end = $start + $link_num;
if ($end > $max_page) {
$end = $max_page + 1;
}
} else {
$end = $max_page;
}
for ($counter = $start; $counter < $end; $counter++) {
if ($counter == $page) {
$paging .= $counter;
} else {
$paging .= ' <a href="'.$self.'?page='.$counter.'">' .$counter.
'</a> ';
}
}
//*** Render link next
if ($page < $max_page) {
$paging.= ' <a href="' .$self.'?page='.($page+1).'">next</a> ';
} else {
$paging.= ' next ';
}
}
?>
<table border=1 cellspacing=1 cellpadding=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($result)) { ?>
<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
//***************** Tampilkan navigasi
echo $paging;
?>
</body>
</html>
Output :
Keterangan :
Program diatas berfungsi untuk memberikan penomoran pada halaman html, jika data pada database melebihi 5, sehingga user dapat menggunakan text navigasi previous, 1 | 2| dst untuk melihat data lainnya. Menggunakan perulangan untuk dapat menampilkan penomoran pada halaman html.
STUDI KASUS
1. Membuat operasi penghapusan data
Script :
<!DOCTYPE html >
<html>
<head>
<title>Delete dengan Konfirmasi </title>
<script language="JavaScript">
// konfirmasi menghapus record tertentu
function konfirmasi(id)
{
tanya = confirm('Apakah Anda yakin ingin menghapus data dengan NIM '+ id + '?');
if (tanya == true)
return true;
else
return false;
}
</script>
</head>
<body>
<?php
error_reporting(0);
include "koneksi.php";
$id = $_GET['id'];
if ($id)
{
$query = mysql_query("DELETE FROM mahasiswa WHERE nim=$id");
header("Location:".$_SERVER['PHP_SELF']);
}
?>
<form id="form1" name="form1" method="post" action="">
<table border=1 cellpadding=4 cellspacing=0>
<tr>
<td colspan="4" align="center">Data Siswa</td>
</tr>
<tr>
<td>NIM</td>
<td>Nama </td>
<td>Alamat</td>
<td>Menu</td>
</tr>
<?php
$sql = mysql_query("SELECT * FROM mahasiswa");
while ($row = mysql_fetch_array($sql))
{
$id = $row['nim'];
$nama = $row['nama'];
$alamat = $row['alamat'];
$_SERVER['PHP_SELF'];
?>
<tr>
<td><?php echo $id; ?></td>
<td><?php echo $nama; ?></td>
<td><?php echo $alamat; ?></td>
<td><?php echo "<a href=\"".$_SERVER['PHP_SELF']."?id=$id\" onclick=\"return konfirmasi('$id')\">Delete</a>"; ?></td>
</tr>
<?php
}
?>
</table>
</form>
<a href ="index.php"> Kembali ke Halaman Utama</a>
</body>
</html>
Output :
Keterangan :
Program diatas berfungsi untuk operasi penghapusan data yang telah dimasukkan sebelumnya, dengan menampilkan message box, seperti pada gambar diatas. Untuk pendeklarasian fungsi yang digunakan untuk menampilkan message box tersebut menggunakan function konfirmasi. Pada program ini juga menyediakan text navigasi jika ingin membatalkan operasi penghapusan data , dengan mengklik tulisan bergaris biru ( link ), maka nanti user akan diarahkan kembali ke halaman utama.
2. Mengkombinasikan imitasi data dengan pemberian halaman pada satu tabel
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Paging Data</title>
</head>
<body>
<?php
require_once './koneksi.php';
//***************** Setup paging
$sql = 'SELECT * FROM mahasiswa';
$self = $_SERVER['PHP_SELF'];
$page = isset($_GET['page']) ? $_GET['page'] : 0;
// Jumlah link counter, misal (prev 1 2 3 next) = 3
$link_num = 5;
// Jumlah record per halaman
$record_num = 2;
// Item pertama yang akan ditampilkan
$offset = $page ? ($page - 1) * $record_num : 0;
$total_rows = mysql_num_rows(mysql_query($sql));
$query = $sql. ' LIMIT ' . $offset . ', ' . $record_num;
$result = mysql_query($query);
$max_page = ceil($total_rows/$record_num);
// Reset jika page tidak sesuai
if ($page > $max_page || $page <= 0) {
$page = 1;
}
//***************** Generate paging
$paging = '';
if($max_page > 1) {
//*** Render link previous
if ($page > 1) {
$paging .= ' <a href="'.$self.'?page='.($page-1).'">previous</a>
';
} else {
$paging .= ' previous ';
}
//*** Render link counter halaman
for ($counter = 1; $counter <= $max_page; $counter += $link_num) {
if ($page >= $counter) {
$start = $counter;
}
}
if ($max_page > $link_num) {
$end = $start + $link_num;
if ($end > $max_page) {
$end = $max_page + 1;
}
} else {
$end = $max_page;
}
for ($counter = $start; $counter < $end; $counter++) {
if ($counter == $page) {
$paging .= $counter;
} else {
$paging .= ' <a href="'.$self.'?page='.$counter.'">' .$counter.
'</a> ';
}
}
//*** Render link next
if ($page < $max_page) {
$paging.= ' <a href="' .$self.'?page='.($page+1).'">next</a> ';
} else {
$paging.= ' next ';
}
}
?>
<table border=1 cellspacing=1 cellpadding=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($result)) { ?>
<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
//***************** Tampilkan navigasi
echo $paging;
?>
</body>
</html>
Output :
Keterangan :
Program diatas menggunakan fungsi limitasi data untuk menampilkan data yang tersimpan berdasarkan banyak data kemudian dikondisikan secara otomatis, kemudian diberi penomoran pada halaman seperti pda gambar diatas. Menggunakan fungsi perulangan untuk penomoran. Alur kerja sama seperti latihan- latihan sebelumnya , hanya terdapat kombinasi untuk menggabungkan fungsi yang dapat diterapkan pada database program diatas.
TUGAS PRAKTIKUM
1. Membuat program administrasi data
Script :
Index.php
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Akses</title>
<style type="text/css">
.even {
background: #ddd;
}
</style>
</head>
<body>
<?php
ini_set('display_errors',1);
// Meng-include file koneksi dan data handler
require_once './koneksi.php';
require_once './tambah1.php';
// Konstanta nama tabel
define('MHS', 'mahasiswa');
// Memanggil fungsi data handler
data_handler('?m=data');
?>
</body>
</html>
LOGIN.php
<?php
session_start();
$username = 'putri';
$password = '1103';
if (isset($_POST['username'])) {
if (($_POST['username'] == $username) && ($_POST['password'] == $password)) {
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
$user = $_SESSION['username'];
$pass = $_SESSION['password'];
header ("Location: index.php");
echo " <a href='logout.php'> Logout </a></fieldset>";
}
else {
echo " Kesalahan saat login <br /> ";
echo " <a href='login.php'> << Back </a>";
}
}
else {
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
<title>Tugas Prak</title>
</head>
<body>
<div id="form">
<table align="center" cellpadding="5">
<tr> <h1 align="center"> LOGIN </h1> </tr>
<tr> <hr style="border:double;" align="center" width="300"/> </tr>
<form action="login.php" method="post" ">
<tr> <td> Username </td> <td> : </td> <td> <input type="text" name="username"></td></tr>
<tr> <td> Password </td> <td> : </td> <td> <input type="password" name="password"></td></tr>
<tr> <td colspan=3 align="right"> <input type="submit" name="Submit" value="Login"></td></tr>
</table>
</form>
</div>
</body>
</html>
<?php
}
?>
Koneksi.php
Tambah1.php
Logout.php
<?php
session_start();
session_destroy();
echo "Anda Logout <br />";
echo " <a href='login.php'> << Back </a>";
?>
Output :
Keterangan :
Program diatas menggunakan beberapa file , yang beberapa file diantaranya dikaitkan agar dapat memproses program sehingga tampil seperti gambar diatas. Menggunakan file index, login, logout (secara otomatis), koneksi. Pada file index.php, terdapat pendeklarasian peng-link an file yang akan ditampilkan dan file koneksi agar database tersambung, sehingga data dapat diload/ dibuka. Menggunakan system login , yang username dan pass nya dideklarasikan pada file login. Sehingga tidak semua user dapat mengakses, kecuali mengetahui username dan pass terlebih dahulu.
2. Membuat program seleksi data dengan fitur pengurutan
Script :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Sorting Data</title>
</head>
<body>
<strong>PENGURUTAN DATA</strong>
<br/>
<br/>
<table border="1" width="500px">
<?php
require "koneksi.php";
$query1 = "SELECT * FROM Mahasiswa ORDER BY nim ";
$urutan= 'desc';
$urutbaru = 'desc';
if(isset($_GET['orderby'])){
$orderby=$_GET['orderby'];
$urutan=$_GET['urut'];
$query1="SELECT * FROM Mahasiswa order by $orderby $urutan ";
if($urutan=='desc'){
$urutbaru='asc';
}else{
$urutbaru='desc';
}
}
?>
<th>
<td><a href='tugas.php?orderby=nim&urut=<?=$urutbaru;?>'>Nim</a></td>
<td><a href='tugas.php?orderby=nama&urut=<?=$urutbaru;?>'>Nama_Mhs</a></td>
<td><a href='tugas.php?orderby=alamat&urut=<?=$urutbaru;?>'>Alamat</a></td>
</th>
<?php
$result = mysql_query($query1) or die (mysql_error());
$no = 1;
while($rows=mysql_fetch_object($result)){
?>
<tr>
<td><?php echo $no ?></td>
<td><?php echo $rows -> nim;?></td>
<td><?php echo $rows -> nama;?></td>
<td><?php echo $rows -> alamat;?></td>
</tr>
<?php
$no++;
}
?>
</table>
</body>
</html>
Output :
Keterangan :
Program diatas menggunakan fungsi sorting secara ascending dan descending dengan mengklik nama kolom yang berwarna biru dan bergaris bawah. Menggunakan fungsi ‘desc’ dan ‘orderby’ untuk pendeklarasian fungsi yang digunakan. Pada gambar diatas, terlihat bahwa data telah diurutkan ascending berdasarkan kolom nim, diurutkan dari urutan angka terkecil hingga terbesar. Kemudian data lainnya menyesuaikan.
KESIMPULAN
Untuk menambahkan suatu database pada halaman web kita membutuhkan koneksi untuk dapat meload data yang dimasukkan sehingga dapat ditambilkan pada halaman web.
Untuk memodifikasi data melalui web, dapat dilakukan dengan menggunakan fungsi- fungsi seperti yang dijelaskan dan sudah dipraktekkan pada latihan- latihan sebelumnya. Tidak lupa untuk mengkoneksikan antara database dan file php.html halaman web kita.
Dengan interaksi database yang diterapkan pada pembuatan sebuah halaman web, dapat menerapkan banyak fungsi , seperti mengolah data , menginputkan, menghapus, dan lain- lain, tentunya dengan menggunakan berbagai metode dan fungsi yang dapat diterapkan pada file php dan html.
DAFTAR PUSTAKA
Modul Praktikum 6.2014 . interaksi database. Universitas Negeri Malang, Fakultas Teknik, Jurusan Teknik Elektro