LAPORAN PEMROGRAMAN WEB INTERAKIS DATA
MODUL VI
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"
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.
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.
B. 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.
C. DASAR TEORI
1. 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.
D. LATIHAN
1. 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 ns = "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.
2. 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.
3. 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 [ ]; ?> </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 ns = "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.
4. Administrasi Data Halaman Index Script :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html ns = "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 ; ?
> &amp;act=add" > Tambah Data </a>
</div> <table border =
1 width = 700 cellpadding = 4 sellspacing= >
<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 ) != ) ? '' : 'even' ; $id = $row [ ]; ?>
<tr class = " <?php echo $bg ; ?> " > <td width = "2%" > <?php echo $i ; ?> </td> <td> <a href = " <?php echo $root ; ?
> &amp;act=view&amp; 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 ; ? > &amp;act=edit&amp;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 . '&amp;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.
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> &nbsp; </td> <td> &nbsp; </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.
5. 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 ns = "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 =
<?php echo $i ; ?>
<?php } else { echo 'Data Tidak Ditemukan' ;
</table>
} ?>
<?php $i ++;
</td> </tr>
<?php echo $row [ 2 ]; ?>
</td> <td>
<?php echo $row [ 1 ]; ?>
</td> <td>
<?php echo $row [ ]; ?>
</td> <td>
<tr> <td>
40 value = " <?php echo isset ( $_GET [ 'nama' ]) ? $_GET [ 'nama' ] : '' ; ?> "
<?php $i = 1 ; while ( $row = mysql_fetch_row ( $res )) { ?>
</tr>
<tr> <th> # </th> <th width = 100 > NIM </th> <th width = 150 > Nama </th> <th> Alamat </th>
1 cellspacing =
1 cellpadding = 5 ><table border =
$num = mysql_num_rows ( $res ); if ( $num ) {
echo 'Ditemukan ' . $num . ' row(s)' ; ?>
WHERE nama like '%$key%' " ; $res = mysql_query ( $sql ); if ( $res ) {
// Variabel $sql berisi pernyataan SQL pencarian
$sql = "SELECT * FROM mahasiswa// Kata kunci pencarian $key = $_GET [ 'nama' ];
<?php if ( isset ( $_GET [ 'nama' ])) { require_once './koneksi.php' ;
/> <input type = "submit" value = "CARI" /> </form>
} } } 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.6. Membatasi Tampilan Data
Script : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html ns = "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 value = "5" >
</tr>
<?php } else { echo 'Data Tidak Ditemukan' ;
</table>
} ?>
<?php $i ++;
</td> </tr>
<?php echo $row [ 2 ]; ?>
</td> <td>
<?php echo $row [ 1 ]; ?>
</td> <td>
<?php echo $row [ ]; ?>
</td> <td>
<?php echo $i ; ?>
<tr> <td>
<?php $i = 1 ;
while ( $row = mysql_fetch_row ( $res )) { ?>
<tr> <th> # </th> <th width = 100 > NIM </th> <th width = 150 > Nama </th> <th> Alamat </th>
5 </option>
1 cellspacing = 1 cellpadding = 5 >
<table border =
$res = mysql_query ( $sql ); if ( $res ) { if ( mysql_num_rows ( $res )) { ?>
$sql = "SELECT * FROM mahasiswa LIMIT $row " ;
// LENGKAPI
// Variabel $sql berisi pernyataan SQL retrieve dg
limitasi// Batas baris data $row = $_POST [ 'row_page' ];
<?php
if ( isset ( $_POST [ 'row_page' ]) && $_POST [ 'row_page' ]) {
require_once './koneksi.php' ;<option value = "100" > 100 </option> </select> baris per halaman. </form>
50 </option>
<option value = "50" >
20 </option>
<option value = "20" >
10 </option>
<option value = "10" >
} }
} ?>
</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 ns = "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 echo $row [ ]; ?>
} } } ?>
<?php } else { echo 'Data Tidak Ditemukan' ;
</table>
} ?>
<?php $i ++;
</td> </tr>
<?php echo $row [ 2 ]; ?>
</td> <td>
<?php echo $row [ 1 ]; ?>
</td> <td>
</td> <td>
<?php
if ( isset ( $_POST [ 'row_page' ]) && $_POST [ 'row_page' ])
{ require_once './koneksi.php' ;<?php echo $i ; ?>
<tr> <td>
<?php $i = 1 ;
while ( $row = mysql_fetch_row ( $res )) { ?>
</tr>
<tr> <th> # </th> <th width = 100 > NIM </th> <th width = 150 > Nama </th> <th> Alamat </th>
1 cellspacing =
1 cellpadding = 5 ><table border =
$res = mysql_query ( $sql ); if ( $res ) { if ( mysql_num_rows ( $res )) { ?>
$sql = "SELECT * FROM mahasiswa LIMIT $row " ;
// LENGKAPI // Variabel $sql berisi pernyataan SQL retrieve dg limitasi
// Batas baris data $row = $_POST [ 'row_page' ];
</body> </html> Output : Keterangan :
7. Pemberian Halaman
Script : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html ns = "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' ] : ;
// 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 : ; $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 <= ) {$page = 1 ; } //***************** Generate paging
$paging = '' ; if ( $max_page > 1 ) {
//*** Render link next if ( $page < $max_page ) { $paging .= ' <a href="' . $self . '?page=' .
<?php echo $i ; ?>
<tr> <td>
<?php $i = 1 ; while ( $row = mysql_fetch_row ( $result )) { ?>
</tr>
<tr> <th> # </th> <th width = 100 > NIM </th> <th width = 150 > Nama </th> <th> Alamat </th>
1 cellspacing = 1 cellpadding = 5 >
<table border =
} } ?>
( $page + 1 ). '">next</a> ' ; } else { $paging .= ' next ' ;
'</a> ' ; } }
//*** Render link previous if ( $page > 1 ) {
$paging .= ' <a href="' . $self . '?page=' . $counter . '">' . $counter .
$paging .= $counter ; } else {
}
for ( $counter = $start ; $counter < $end ; $counter ++) {
if ( $counter == $page ) {$end = $max_page + 1 ; } } else { $end = $max_page ;
$end = $start + $link_num ; if ( $end > $max_page ) {
$start = $counter ; } } if ( $max_page > $link_num ) {
$link_num ) { if ( $page >= $counter ) {
} //*** Render link counter halaman for ( $counter = 1 ; $counter <= $max_page ; $counter +=
} else { $paging .= ' previous ' ;
$paging .= ' <a href="' . $self . '?page=' .( $page - 1 ). '">previous</a> ' ;
</td>
<td>
<?php echo $row [ ]; ?>
</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.E. STUDI KASUS
Script : <!DOCTYPE html >
1 cellpadding = 4 cellspacing = >
?>
$id = $row [ 'nim' ]; $nama = $row [ 'nama' ]; $alamat = $row [ 'alamat' ]; $_SERVER [ 'PHP_SELF' ];
<?php
$sql = mysql_query ( "SELECT * FROM mahasiswa" );
while ( $row = mysql_fetch_array ( $sql )) {<td> Menu </td> </tr>
<td> NIM </td> <td> Nama </td> <td> Alamat </td>
</tr> <tr>
<tr> <td colspan = "4" align = "center" > Data Siswa </td>
<form id = "form1" name = "form1" method = "post" action = "" > <table border =
<html> <head> <title> Delete dengan Konfirmasi </title> <script language = "JavaScript" >
} ?>
$query = mysql_query ( "DELETE FROM mahasiswa WHERE nim=$id" ); header ( "Location:" . $_SERVER [ 'PHP_SELF' ]);
$id = $_GET [ 'id' ]; if ( $id ) {
<?php error_reporting ( ); include "koneksi.php" ;
</script> </head> <body>
}
{
tanya = confirm( 'Apakah Anda yakin ingin menghapus data
dengan NIM ' + id + '?' ); if (tanya == true ) return true ; else return false ;// konfirmasi menghapus record tertentu function konfirmasi(id)
<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 ns = "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' ] : ; // 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 : ;
$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 <= ) {$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 )) { ?>