Academia.eduAcademia.edu

LAPORAN PEMROGRAMAN WEB - INTERAKIS DATABASE

 Memahami konsep dasar akses dan manipulasi data.  Mampu mengintegrasikan aplikasi PHP dengan database MySQL.  Mampu menghasilkan aplikasi web database untuk pengolahan data sederhana.

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;?>&amp;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;?>&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. 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>&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. 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