Lisensi Dokumen:
Copyright 2003-2007 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Com.
Pendahuluan
AJAX merupakan kepanjangan dari Asynchronous Javascript And XML, pertama kali
diperkenalkan oleh Jesse James Garret dari perusahaan konsultan adaptive path pada tahun
2005. Pada aplikasi web tradisional, sebuah aplikasi web berjalan secara sinkron
(synchronously) antara client dan server. Dimana setiap client mengklik suatu link, maka server
akan merespon dengan mengirimkan / merefresh seluruh halaman. Dalam aplikasi server
dengan jumlah client yang sedikit, tentunya tidak jadi masalah menggunakan metode tradisional
ini, namun dalam aplikasi berskala besar yang memproses ribuan permintaan dalam sekali
waktunya, tentu ini menjadi suatu masalah besar, dimana akan menghabiskan bandwidth dan
proses di sisi server.
Isi
Pertama kali sebelum kita memulai, harus dipahami dulu konsep & struktur dari
1. Hyper Text Markup Language (mohon dicatat bahwa HTML bukanlah bahasa
pemrograman, namun hanya cara / tag untuk menampilkan dokumen melalui media
browser)
2. Bagaimana mempercantik tampilan website dengan Cascading Style Sheet
3. Scripting language PHP (Hypertext Preprocessor)
4. Sistem basis data MySQL
5. Dan Javascript yang nantinya akan digunakan sebagai AJAX user interface.
Karena bab-bab tersebut tidak dijelaskan lagi secara detail pada tutorial ini. Sebagai referensi,
anda dapat mendownload materi-materi antara lain :
1. Tutorial HTML
2. Tutorial CSS
3. Pemrograman PHP
4. Pemrograman Javascript
Catatan : semua source code & isi database dapat didownload secara gratis di alamat :
http://arief.aeroven.com/download/ajax_untag.zip
Selanjutnya pada materi inti, mari kita membuat database bernama web pada mesin MySQL
kita. Buat tabel bernama mahasiswa dengan field sebagai berikut :
nbi
integer (10) , primary key
nama
varchar (50)
kelamin
enum(L,P)
alamat
varchar (50)
telp
varchar (15)
buat lagi tabel dengan nama user, tabel ini digunakan untuk menyimpan username &
password yang berhak mengakses aplikasi kita nantinya. Field-fieldnya antara lain :
username
varchar (50), primary key
password
varchar (100)
Setelah selesai, isikan dengan beberapa data. Atau apabila anda tidak mau repot, setelah anda
membuat database bernama web, anda dapat mengimport perintah sql lengkap berikut ini ke
dalam phpmyadmin :
(460602658, 'Alea Kalila', 'P', 'Jl Rungkut Industri III no 46 Surabaya', '081332101625'),
(460602461, 'Joko Supriyanto', 'L', 'Kedurus', '0812341242'),
(460602460, 'Nur Aida', 'P', 'Keputih', '082312341'),
(460602442, 'Ainur rohman', 'L', 'Kejawan', '0389781232'),
(460602570, 'Stefanus Clandy Dedy', 'L', 'Jl Nginden gg2 Surabaya', '031 70928412');
-- ---------------------------------------------------------- Table structure for table `user`
-CREATE TABLE `user` (
`username` varchar(50) collate latin1_general_ci NOT NULL,
`password` varchar(100) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--- Dumping data for table `user`
-INSERT INTO `user` (`username`, `password`) VALUES
('460602685', '0ff6c3ace16359e41e37d40b8301d67f');
Selanjutnya skrip pemrograman kita, dasar aplikasi AJAX kita dibagi menjadi 4 file yaitu :
1. index.php - berisi fungsi php untuk memulai session (session_start) dan tampilan
HTML biasa, digunakan sebagai user interface kita
2. ajaxlib.js - library / kumpulan fungsi javascript yang digunakan untuk mengeksekusi
program PHP dan menampilkan hasilnya secara background menggunakan fungsi
XMLHttpRequest
3. fetcher.php - merupakan file program yang berfungsi untuk mengakses data yang ada
pada mesin MySQL
4. style.css - file yang berfungsi untuk mempercantik elemen-elemen tampilan website
kita. Seperti tag <a>, <table>, <input> dll
berikut source code dari index.php :
<?
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Universitas 17 Agustus 1945 Surabaya</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<script language="JavaScript" src="ajaxlib.js"></script>
</head>
<body>
<table width="900" cellpadding="0" cellspacing="0" align="center" style="border:1px
solid #cccccc">
<tr>
<td colspan="2" style="border-bottom:1px solid #cccccc;"><img
src="images/header_untag.jpg" width="900" height="180" /></td>
</tr>
<tr>
<td width="200" valign="top" bgcolor="#F1F4F6" style="border-bottom:1px solid
#cccccc;">
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#F1F4F6">
<tr>
<td valign="top" bgcolor="#F1F4F6">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10" height="20" background="images/menu-bg.gif"> </td>
<td background="images/menu-bg.gif"><b><font
color="#FFFFFF">Admin</font></b></td>
// JavaScript Document
var xmlHttp
function Login(user,pass)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=Login&user="+user
url=url+"&pass="+pass
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChangedLogin
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function Logout()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=Logout"
xmlHttp.onreadystatechange=stateChangedLogin
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function Home()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=Home"
//url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function addMhs()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=addMhs"
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function addMhsGo(nbi,nama,kelamin,alamat,telp)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=addMhsGo&nbi="+nbi
url=url+"&nama="+nama
url=url+"&kelamin="+kelamin
url=url+"&alamat="+alamat
url=url+"&telp="+telp
url=url+"&sid="+Math.random()
//window.alert('url')
xmlHttp.onreadystatechange=stateChangedCenter
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function editMhs(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=editMhs&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function editMhsGo(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=editMhsGo&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function editMhsSave(nbi,nama,kelamin,alamat,telp,old_nbi)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=editMhsSave&nbi="+nbi
url=url+"&nama="+nama
url=url+"&kelamin="+kelamin
url=url+"&alamat="+alamat
url=url+"&telp="+telp
url=url+"&old_nbi="+old_nbi
url=url+"&sid="+Math.random()
//window.alert('url')
xmlHttp.onreadystatechange=stateChangedEditSave
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function showNameEdit(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=showNameEdit&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChangedCenter
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function delMhs(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=delMhs&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function showNameDel(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=showNameDel&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChangedCenter
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function delMhsGo(nbi)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=delMhsGo&q="+nbi
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function showMhs(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=showMhs&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function showName(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser tidak support HTTP Request")
}
var url="fetcher.php"
url=url+"?cmd=showName&q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChangedCenter
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function stateChangedLogin()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtLogin").innerHTML=xmlHttp.responseText
}
}
function stateChangedCenter()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtCenter").innerHTML=xmlHttp.responseText
}
if (xmlHttp.readyState==1 || xmlHttp.readyState=="loading")
//if AJAX state is loading (loading)
{
document.getElementById("txtCenter").innerHTML="<img
src=\"images/loading1.gif\"/><br/>Fetching the data, please wait"
//get element where the id is "Result", in this case it goes to the <div> tag
//send the loading image (loading.gif) that show us the data is being prepared
}
}
function stateChangedEdit()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtEdit").innerHTML=xmlHttp.responseText
}
}
function stateChangedEditSave()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtEditSave").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xamlHttp=null;
try
{
// ngecek buat browser firefox, opera 8.0+, safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// browser Internet Explorer
try
{
// IE 6.0+
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
// IE 5.0
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
10
11
12
{
echo "<tr>
<td>".$row['nbi']."</td>
<td>".$row['nama']."</td>
<td>".$row['kelamin']."</td>
<td>".$row['alamat']."</td>
<td>".$row['telp']."</td>
</tr>";
}
echo "</table>";
}
if ($cmd=="showMhs")
{
if ($q>0)
{
$page = $q+1;
$limit_front = ($page*8)-8;
$limit_last = ($page*8);
}
else
{
$limit_front = 0;
$limit_last = 8;
}
$sql="select count(*) as jumlah from mahasiswa";
$result = mysql_query($sql);
$data=mysql_fetch_array($result);
$total = $data['jumlah'];
$jml_hal = bcdiv($total,8,0)+1;
$sql="select * from mahasiswa order by nbi asc limit $limit_front,8";
$result = mysql_query($sql);
echo "<form>Cari berdasar nama : <input type='type' name='name'
onKeyUp='showName(this.value)' class='inputbok3'></form>
<div id='txtCenter'>";
$page = $q+1;
$prev = $page-2;
$next = $page;
if ($page>1)
{
echo "<a href='#' onClick='showMhs($prev)'><- Prev</a>";
}
else
{
echo "<- Prev";
}
echo " page $page of $jml_hal ";
if (mysql_num_rows($result)==8)
{
echo "<a href='#' onClick='showMhs($next)'>Next -></a>";
}
else
{
echo "Next ->";
}
echo "<table border='1' width='100%'>
<tr>
<th>NBI</th>
<th>Nama</th>
<th>Kelamin</th>
<th>Alamat</th>
<th>Telp</th>
</tr>";
while ($row = mysql_fetch_array($result))
{
echo "<tr>
<td>".$row['nbi']."</td>
<td>".$row['nama']."</td>
<td>".$row['kelamin']."</td>
<td>".$row['alamat']."</td>
<td>".$row['telp']."</td>
</tr>";
}
echo "</table></div>";
13
}
if ($cmd=="showNameEdit")
{
echo "<a href='#' onClick='showMhs(0)'>Tampilkan semua<a/><table border='1'
width='100%'>
<tr>
<th>Edit</th>
<th width='10'>NBI</th>
<th width='200'>Nama</th>
<th>Kelamin</th>
<th>Alamat</th>
<th>Telp</th>
</tr>";
$sql="select * from mahasiswa where nama like '%".$q."%' order by nbi limit 8";
$result = mysql_query($sql);
if (mysql_num_rows($result)==0)
{
echo "<td colspan='5'>Data yang dimaksud tidak ada</td>";
}
while ($row = mysql_fetch_array($result))
{
echo "<tr>
<td><a href='#' onclick='editMhsGo(".$row['nbi'].")'>Edit</a>
<td>".$row['nbi']."</td>
<td>".$row['nama']."</td>
<td>".$row['kelamin']."</td>
<td>".$row['alamat']."</td>
<td>".$row['telp']."</td>
</tr>";
}
echo "</table>";
}
if ($cmd=="editMhs")
{
if (isset($_SESSION['460602685_Ajax_UAS_web']))
{
if ($q>0)
{
$page = $q+1;
$limit_front = ($page*8)-8;
$limit_last = ($page*8);
}
else
{
$limit_front = 0;
$limit_last = 8;
}
$sql="select count(*) as jumlah from mahasiswa";
$result = mysql_query($sql);
$data=mysql_fetch_array($result);
$total = $data['jumlah'];
$jml_hal = bcdiv($total,8,0)+1;
$sql="select * from mahasiswa order by nbi asc limit $limit_front,8";
$result = mysql_query($sql);
echo "<form>Cari berdasar nama : <input type='type' name='name'
onKeyUp='showNameEdit(this.value)' class='inputbok3'></form>
<div id='txtCenter'>";
$page = $q+1;
$prev = $page-2;
$next = $page;
if ($page>1)
{
echo "<a href='#' onClick='editMhs($prev)'><- Prev</a>";
}
else
{
echo "<- Prev";
}
echo " page $page of $jml_hal ";
if (mysql_num_rows($result)==8)
{
echo "<a href='#' onClick='editMhs($next)'>Next -></a>";
14
}
else
{
echo "Next ->";
}
echo "<table border='1' width='100%'>
<tr>
<th>Edit</th>
<th>NBI</th>
<th>Nama</th>
<th>Kelamin</th>
<th>Alamat</th>
<th>Telp</th>
</tr>";
while ($row = mysql_fetch_array($result))
{
echo "<tr>
<td><a href='#' onclick=editMhsGo(".$row['nbi'].")>Edit</a></td>
<td>".$row['nbi']."</td>
<td>".$row['nama']."</td>
<td>".$row['kelamin']."</td>
<td>".$row['alamat']."</td>
<td>".$row['telp']."</td>
</tr>";
}
echo "</table></div><div id='txtEdit'></div>";
}
else
{
echo "Please login first";
}
}
if ($cmd=="editMhsGo")
{
if (isset($_SESSION['460602685_Ajax_UAS_web']))
{
$sql="select * from mahasiswa where nbi=$q";
$result = mysql_query($sql);
$data=mysql_fetch_array($result);
?>
<div id="txtAdd"><form method="GET">
<table>
<tr>
<td>Nbi </td>
<td> : </td>
<td><input type="text" name="nbi" size="30" class="inputbok3" value="<?
echo $data['nbi']; ?>"></td>
</tr>
<tr><td>Nama </td>
<td> : </td>
<td><input type="text" name="nama" size="30" class="inputbok3"
value="<? echo $data['nama']; ?>"></td>
</tr>
<tr>
<td>Kelamin </td>
<td> : </td>
<td>
<select name="kelamin">
<?
if ($data['kelamin']=="L")
{
?>
<option value="L" <? echo "selected" ?>>Laki laki</option>
<option value="P">Perempuan</option>
<?
}
if ($data['kelamin']=="P")
{
?>
<option value="L">Laki laki</option>
<option value="P" <? echo "selected" ?>>Perempuan</option>
<?
}
15
?>
</select>
</td>
</tr>
<tr>
<td>Alamat </td>
<td> : </td>
<td><input type="text" name="alamat" size="30" class="inputbok3"
value="<? echo $data['alamat']; ?>"></td>
</tr>
<tr>
<td>Telp </td>
<td> : </td>
<td><input type="text" name="telp" size="30" class="inputbok3"
value="<? echo $data['telp']; ?>"></td>
</tr>
<tr>
<td colspan="3"><input type="hidden" name="old_nbi" value="<? echo
$data['nbi']; ?>"><input type="button" name="submit" value="Update"
onClick="editMhsSave(nbi.value,nama.value,kelamin.value,alamat.value,telp.value,old_nbi.
value)" class="inputbok3"></td>
</tr>
</table></form></div><div id="txtEditSave"> </div>
<?
}
else
{
echo "Please login first";
}
}
if ($cmd=="editMhsSave")
{
if (isset($_SESSION['460602685_Ajax_UAS_web']))
{
$old_nbi
= $_GET["old_nbi"];
$nbi
= $_GET["nbi"];
$nama
= $_GET["nama"];
$kelamin
= $_GET["kelamin"];
$alamat = $_GET["alamat"];
$telp
= $_GET["telp"];
$sql = mysql_query("update mahasiswa set nbi='$nbi', nama='$nama',
kelamin='$kelamin', alamat='$alamat', telp='$telp' where nbi='$old_nbi'",$con);
echo "Your data below succesfully updated<table>
<tr>
<td>Nbi </td>
<td> : </td>
<td>$nbi</td>
</tr>
<tr><td>Nama </td>
<td> : </td>
<td>$nama</td>
</tr>
<tr>
<td>Kelamin </td>
<td> : </td>
<td>$kelamin</td>
</tr>
<tr>
<td>Alamat </td>
<td> : </td>
<td>$alamat</td>
</tr>
<tr>
<td>Telp </td>
<td> : </td>
<td>$telp</td>
</tr>
</table>";
}
else
{
echo "login first please";
16
}
}
if ($cmd=="showNameDel")
{
echo "<a href='#' onClick='delMhs(0)'>Tampilkan semua<a/><table border='1'
width='100%'>
<tr>
<th width='10'>Delete</th>
<th width='10'>NBI</th>
<th width='200'>Nama</th>
<th>Kelamin</th>
<th>Alamat</th>
<th>Telp</th>
</tr>";
$sql="select * from mahasiswa where nama like '%".$q."%' order by nbi limit 8";
$result = mysql_query($sql);
if (mysql_num_rows($result)==0)
{
echo "<td colspan='6'>Data yang dimaksud tidak ada</td>";
}
while ($row = mysql_fetch_array($result))
{
echo "<tr>
<td><a href='#' onclick='delMhsGo(".$row['nbi'].")'>Delete</a></td>
<td>".$row['nbi']."</td>
<td>".$row['nama']."</td>
<td>".$row['kelamin']."</td>
<td>".$row['alamat']."</td>
<td>".$row['telp']."</td>
</tr>";
}
echo "</table>";
}
if ($cmd=="delMhs")
{
if (isset($_SESSION['460602685_Ajax_UAS_web']))
{
if ($q>0)
{
$page = $q+1;
$limit_front = ($page*8)-8;
$limit_last = ($page*8);
}
else
{
$limit_front = 0;
$limit_last = 8;
}
$sql="select count(*) as jumlah from mahasiswa";
$result = mysql_query($sql);
$data=mysql_fetch_array($result);
$total = $data['jumlah'];
$jml_hal = bcdiv($total,8,0)+1;
$sql="select * from mahasiswa order by nbi asc limit $limit_front,8";
$result = mysql_query($sql);
echo "<form>Cari berdasar nama : <input type='type' name='name'
onKeyUp='showNameDel(this.value)' class='inputbok3'></form>
<div id='txtCenter'>";
$page = $q+1;
$prev = $page-2;
$next = $page;
if ($page>1)
{
echo "<a href='#' onClick='delMhs($prev)'><- Prev</a>";
}
else
{
echo "<- Prev";
}
echo " page $page of $jml_hal ";
if (mysql_num_rows($result)==8)
{
17
18
19
<tr align='center'>
<td height='22' colspan='3'><input type='button' name='submit'
value='Login' class='inputbok3' onClick='Login(username.value,password.value)'>
<input type='reset' value='Reset' name='reset' class='inputbok3'>
</td>
</tr>
</table>
</form>";
}
mysql_close($con);
?>
SCROLLBAR-FACE-COLOR:#F9FEFF;
SCROLLBAR-HIGHLIGHT-COLOR:#000000;
SCROLLBAR-SHADOW-COLOR:#87BDE9;
SCROLLBAR-ARROW-COLOR:#F8A298;
SCROLLBAR-TRACK-COLOR:#F9CECC;
background-repeat: no-repeat;
background-position: right bottom;
}
.tdlink {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
BORDER-TOP: #D1D5D9 1px solid;
}
td {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #030303;
}
.inputbok3 {
margin-top : 1px;
BORDER-RIGHT: #000000 1px solid;
BORDER-TOP: #000000 1px solid;
BORDER-LEFT: #000000 1px solid;
BORDER-BOTTOM: #000000 1px solid;
FONT-SIZE: 11px;
BACKGROUND: #FCFCFC;
COLOR: #000000;
FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
}
A:link {
FONT-SIZE: 10px; COLOR: #152FE3; FONT-FAMILY: Verdana,
serif; TEXT-DECORATION: none;
}
A:visited {
FONT-SIZE: 10px; COLOR: #152FE3; FONT-FAMILY: Verdana,
serif; TEXT-DECORATION: none;
}
A:hover {
FONT-SIZE: 10px; COLOR: #152FE3; FONT-FAMILY: Verdana,
serif; TEXT-DECORATION: underline;
}
A:active {
FONT-SIZE: 10px; COLOR: #CF4B3D; FONT-FAMILY: Verdana,
serif; TEXT-DECORATION: none;
}
A.ular:link {;
FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana,
serif; TEXT-DECORATION: none;
}
A.ular:visited {
FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana,
serif; TEXT-DECORATION: none;
}
A.ular:hover {
20
FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION:underline;
}
A.ular:active {
FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION: none;
}
A.ular2:link {
FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #343740; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular2:visited {
FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #343740; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular2:hover {
FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #343740; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular2:active {
FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #343740; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular3:link {
FONT-SIZE: 10px; COLOR: #fd7e21; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif;
}
A.ular3:visited {
FONT-SIZE: 10px; COLOR: #fd7e21; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif;
}
A.ular3:hover {
FONT-SIZE: 10px; COLOR: #0066ff; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION: underline;
}
A.ular3:active {
FONT-SIZE: 10px; COLOR: #0066ff; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif;
}
A.ular4:link {
FONT-WEIGHT: none; FONT-SIZE: 10px; COLOR: #0000AA; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular4:visited {
FONT-WEIGHT: none; FONT-SIZE: 10px; COLOR: #CCCCCC; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular4:hover {
FONT-WEIGHT: none; FONT-SIZE: 10px; COLOR: #0000AA; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: underline;
}
A.ular4:active {
FONT-WEIGHT: none; FONT-SIZE: 10px; COLOR: #0066ff; FONT-FAMILY: Verdana,
Arial, Helvetica, sans-serif; TEXT-DECORATION: none;
}
A.ular5:link {
FONT-SIZE: 10px; COLOR: #152FE3; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION: none;
}
A.ular5:visited {
FONT-SIZE: 10px; COLOR: #152FE3; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION: none;
}
A.ular5:hover {
FONT-SIZE: 10px; COLOR: #152FE3; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION: underline;
}
A.ular5:active {
FONT-SIZE: 10px; COLOR: #CF4B3D; FONT-FAMILY: Verdana, Arial, Helvetica, sansserif; TEXT-DECORATION: none;
}
.button {
21
22
3. Proses otentikasi (baik login maupun logout). Yaitu proses memasukkan username &
password pada form login yang diinputkan oleh client, yang kemudian dilanjutkan
dengan membandingkan isi dari tabel hak akses oleh komputer server. Output dari
proses ini ada 3 yaitu
a. Login gagal, terjadi apabila username & password yang dimasukkan salah /
tidak sesuai dengan isi tabel hak akses.
Gambar 8. logout
4. Menu tambah data (insert query), yaitu setelah otentikasi user berhasil, maka menu
tambah data dapat diakses, begitu juga sebaliknya, apabila user belum login, maka tidak
dapat mengakses halaman ini. Tampilannya antara lain :
a. Form input data
23
24
25
Penutup
Akhir kata tiada gading yang tak retak, begitu pula dengan kreasi manusia. Besar harapan, ilmu
yang disampaikan dapat berguna bagi kita semua. Apabila ada kesalahan program / bug, saran,
kritik, pujian, masukan (kecuali cacian :P) silahkan dikirim ke alamat email
lord_arief@yahoo.com, atau melalui blog di : http://arief.aeroven.com
Semua program diatas dapat didownload secara gratis di alamat :
http://arief.aeroven.com/download/ajax_untag.zip
Referensi
http://arief.aeroven.com/2008/07/21/an-introduction-tutorial-to-ajax-asynchronousjavascript-and-xml/
Andi Sunyoto, M.Kom, AJAX, membangun web dengan teknologi Asynchronous
Javascript And XML, Penerbit Andi, Jogjakarta, Agustus 2007.
http://www.adaptivepath.com/ideas/essays/archives/000385.php
http://en.wikipedia.org/wiki/Ajax_(programming)
http://webdesign.about.com/od/ajax/a/aa101705.htm
Biografi Penulis
Muhammad Syarifuddin. Putra daerah asli kota Ngawi kelahiran tahun
1987, Menyelesaikan sekolah di SMK Telkom Malang jurusan teknik
informatika tahun 2005. Saat ini bekerja sebagai Network Engineer di
Indosat Surabaya, sedangkan pada sore harinya melanjutkan kuliah
dengan jurusan yang sama di Universitas 17 Agustus 1945 Surabaya
angkatan 2006.
Sangat mencintai pemrograman PHP dan database MySQL termasuk
teknologi yang terus berkembang didalamnya, suka menulis & berbagi
ilmu pengetahuan. Tulisan-tulisannya mengenai AJAX, PHP, Delphi,
MySQL, MSSQL server, Linux, dll dapat didownload secara gratis di http://arief.aeroven.com
26
27