2. DAFTAR ISI
DAFTAR ISI ................................................................................................. ii
KATA PENGANTAR ...............................................................................................iv
BAB 1. DATA ACCESS ..................................................................................................... 1
A. Tujuan ............................................................................................................... 1
B. Dasar Teori ....................................................................................................... 1
C. Praktikum .......................................................................................................... 1
D. Evaluasi dan Pertanyaan .................................................................................... 2
BAB 2. IMPLEMENTASI FUNGSI-FUNGSI MYSQL .................................................... 3
A. Tujuan ................................................................................................................. 3
B. Dasar Teori ........................................................................................................ 3
C. Praktikum ........................................................................................................... 3
D. Evaluasi dan Pertanyaan .................................................................................... 5
BAB 3. IMPLEMENTASI DML DI PHP ........................................................................... 6
A. Tujuan ................................................................................................................ 6
B. Dasar Teori ........................................................................................................ 6
C. Praktikum .......................................................................................................... 6
D. Evaluasi dan Pertanyaan .................................................................................... 9
BAB 4. PEMBUATAN SCRIPT APLIKASI KEPEGAWAIAN ...................................... 10
A. Tujuan .............................................................................................................. 10
B. Dasar Teori ...................................................................................................... 10
C. Praktikum ........................................................................................................ 10
D. Evaluasi dan Pertanyaan .................................................................................. 29
DAFTAR PUSTAKA ........................................................................................................ 30
ii
3. KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat Allah SWT yang telah melimpahkan rahmat
dan karunia-Nya kepada penyusun, sehingga dapat menyelesaikan modul praktikum Database
DBMS ini. Sholawat dan salam juga kita curahkan kepada baginda yang mulia Rasulullah
SAW beserta keluarga, sahabat dan pengikutnya hingga akhir zaman.
Modul ini merupakan salah satu bahan ajar pendukung untuk mata kuliah Database
DBMS. Dari modul ini diharapkan mahasiswa dapat dengan mudah mempelajari, memahami,
dan mempraktikkan materi – materi yang telah diajarkan pada kelas teori mata kuliah
Database. Kemudian modul ini diharapkan dapat menjadi referensi untuk pemecahan
permasalahan umum di luar materi perkuliahan. Sebagian besar isi dari modul ini merupakan
rangkuman dari sumber-sumber yang telah dibuat penulis lain. Penyusun berharap agar modul
ini dapat bermanfaat bagi semua kalangan pembaca. Terima kasih untuk semuanya yang telah
memberikan banyak kritik dan saran serta dukungan dalam penyusunan modul ini.
Semarang, Juli 2011
Penyusun
iii
4. BAB 1.
DATA ACCESS
A. Tujuan
Setelah menyelesaikan modul ini, mahasiswa diharapkan dapat:
1. Membuat koneksi PHP ke database MySQL.
2. Membuat fungsi-fungsi MySQL di PHP.
B. Dasar Teori
Ketika sebuah Aplikasi Web memerlukan media penyimpanan maka engine PHP
memerlukan sebuah konektifitas ke dalam database server dalam hal ini dinamakan Data
Access, Data Access dianalogikan sebagai jembatan penghubung dari sebuah database
ke PHP.
PHP Data Data Base
Access MYSQL
Server API WebServer
Web
Browser
C. Praktikum
1. Koneksi PHP ke Database MySQL
Sebuah contoh script sederhana untuk koneksi PHP ke Database MySQL:
<?
mysql_connect(string NamaServer,string UserName,string Password);
?>
Script mysql_connect di atas dinamakan fungsi. Ketika menuliskan sebuah fungsi
harus di beri tanda kurung seperti di atas, dimana di dalam kurung ini ada sebuah
Argumen yang harus di isi.
1
5. 2. Fungsi-fungsi MySQL di PHP
Di bawah ini merupakan fungsi-fungsi MySQL di PHP yang terpenting.
Nama Fungsi Keterangan
mysql_connect Fungsi untuk koneksi ke Database MySQL Server
mysql_close Menutup Koneksi Database
mysql_select_db Mengseleksi DataBase Yang akan digunakan
mysql_query Mengeksekusi Sebuah Script SQL
mysql_fetch_object
Menampilkan Sebuah Nilai objek yang telah di
eksekusi oleh Query
mysql_free_result
Membersihkan Result hasil Query Select dari
memory.
D. Evaluasi dan Pertanyaan
1. Buatlah skrip koneksi nama server “localhost”, username “staterkom” dan password
“rombel1”.
2. Buatlah skrip koneksi nama server “localhost”, username “root” dengan tanpa
password .
2
6. BAB 2.
IMPLEMENTASI FUNGSI-FUNGSI MYSQL
A. Tujuan
Setelah menyelesaikan modul ini, mahasiswa diharapkan dapat:
1. Membuat fungsi koneksi, seleksi database dan tutup koneksi.
2. Mengimplemtasikan fungsi query, fetch object dan free result.
B. Dasar Teori
Sebelum bekerja lebih jauh dengan database, langkah pertama yang harus dikerjakan
adalah membuat koneksi ke MySQL. Hal penting dilakukan karena untuk melakukan
transaksi yang melibatkan database, maka koneksi PHP ke MySQL harus dipastikan
berjalan dengan baik. Jika koneksi yang dilakukan sukses, maka langkah selanjutnya
adalah memilih database yang akan digunakan.
C. Praktikum
1. Fungsi Koneksi, Seleksi Database dan Tutup Koneksi
<?
$serverName=”localhost”;
$userName=”root”;
$password=”chelonind”;
$dbName=”test”;
$conn=mysql_connect($serverName, $userName,$password) or
die(“Koneksi gagal”);
echo “Koneksi Sukses”;
$db=mysql_select_db($dbName,$conn) or
die(“Database tidak tersedia”);
mysql_close($conn);
?>
Pada Script di atas terdapat fungsi die(), fungsi ini berfungsi untuk mengeluarkan
pesan error ketika ada masalah dalam argumen fungsi MySQL. Fungsi die()
merupakan fungsi general untuk mengeluarkan error di PHP.
Jika script di atas sukses maka akan tampil seperti di bawah ini.
3
7. 2. Fungsi Query, Fetch Object dan Free Result
<?
$serverName=”localhost”;
$userName=”root”;
$password=”chelonind”;
$dbName=”mysql”;
$conn=mysql_connect($serverName, $userName,$password) or
die(“Koneksi gagal”);
$db=mysql_select_db($dbName,$conn) or
die(“DataBase tidak tersedia”);
$sql=”SELECT host,user FROM user ”;
$result=mysql_query($sql);
echo “<table border=”1” align="center" width=”500”
cellpadding=”0” cellspacing=”0”>”;
echo “<tr><td>Server Name</td><td>User Name</td></tr>”;
while($row=mysql_fetch_object($result) ){
echo “<tr><td>”.$row->host.”</td><td>”.$row->user.”</td></tr>”;
}
echo “</table>”;
mysql_free_result($result);
mysql_close($conn);
?>
4
8. D. Evaluasi dan Pertanyaan
1. Apa yang terjadi seandainya fungsi die() dihilangkan.
2. Apa yang terjadi jika fungsi mysql_close() diletakkan sebelum fungsi
mysql_select_db(). Buat kesimpulanmu.
5
9. BAB 3.
IMPLEMENTASI DML DI PHP
A. Tujuan
Setelah menyelesaikan modul ini, mahasiswa diharapkan dapat:
1. Mampu mengimplementasikan Data Manipulation Language (DML) di PHP.
2. Mampu memanipulasi data.
B. Dasar Teori
Pada sesi kali ini kita akan mencoba mengimplementasikan (Data Manipulation
Language) DML di PHP. Aplikasi yang akan dibuat adalah aplikasi kepegawaian secara
sederhana.
Kebutuhan yang harus disediakan ketika membuat Aplikasi ini adalah:
1. Webserver Apache
2. PHP 5.0.x.x
3. MySQL 4.1.x.x
4. Editor (seperti : Notepad, DreamWeaver, Front Page dll).
5. Web Browser (seperti : IE,Mozila dll).
C. Praktikum
1. Pembuatan Database Kepegawaian
Jika Instalasi MySQL sudah dilakukan.masuklah ke command prompt,
ketika anda melihat command prompt. Ketik-kan cd
6
10. 2. Koneksi ke MySQL Server
mysql>mysql –u root –p
3. Membuat Database Kepegawaian
mysql> create database kepegawaian;
4. Menggunakan Database Kepegawaian / Seleksi Database
mysql> use kepegawaian;
5. Table-Tabel Database Kepegawaian
a. Tabel Golongan
CREATE TABLE golongan
(
ID_Golongan varchar(10) NOT NULL,
GajiPokok decimal(10,0) NOT NULL,
PRIMARY KEY (ID_Golongan)
) TYPE=InnoDB;
7
11. b. Tabel Satuan kerja (Satker)
CREATE TABLE satker (
ID_Satker int(11) NOT NULL auto_increment,
NamaSatker varchar(100) NOT NULL ,
Alamat varchar(150) default NULL,
Telepon varchar(50) default NULL,
PRIMARY KEY (ID_Satker)
)TYPE=INNODB;
c. Tabel Jabatan
CREATE TABLE Jabatan (
IDJabatan int(11) NOT NULL auto_increment,
ID_Satker int(11) NOT NULL,
NamaJabatan varchar(100) default NULL,
TunjanganJabatan decimal NOT NULL ,
PRIMARY KEY (IDJabatan),
INDEX parent_satker (ID_Satker),
FOREIGN KEY (ID_Satker)
REFERENCES satker (ID_Satker)
ON DELETE CASCADE
) TYPE=INNODB;
d. Tabel Pegawai
CREATE TABLE pegawai (
NIP varchar(20)NOT NULL ,
IDJabatan int(11) ,
ID_Golongan varchar(10) ,
NamaPegawai varchar(100) ,
Alamat varchar(150) ,
TempatLahir varchar(50) ,
8
12. TglLahir date NOT NULL,
Status varchar(50) ,
Agama varchar(50) ,
HandPhone varchar(50) ,
Telepon varchar(50) ,
PRIMARY KEY (NIP),
INDEX parent_jabatan (IDJabatan),
INDEX parent_golongan (ID_Golongan),
FOREIGN KEY (IDJabatan) REFERENCES jabatan
(IDJabatan) ON DELETE CASCADE,
FOREIGN KEY (ID_Golongan) REFERENCES golongan
(id_golongan) ON DELETE CASCADE
) TYPE=InnoDB;
D. Evaluasi dan Pertanyaan
1. Tampilkan semua database yang ada di system.
2. Tampilkan semua table yang ada di database kepegawaian.
3. Tampilkan deskripsi masing-masing tabel dengan perintah SQL.
9
13. BAB 4.
PEMBUATAN SCRIPT APLIKASI KEPEGAWAIAN
A. Tujuan
Setelah menyelesaikan modul ini, mahasiswa diharapkan dapat membuat desain
antarmuka aplikasi kepegawaian menggunakan PHP dan MySQL.
B. Dasar Teori
C. Praktikum
1. Halaman Index kepegawaian
Simpanlah dengan nama File index.php
<html>
<head>
<title>Kepegawaian</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1">
</head>
<body>
<h1 align="center"><strong>KEPEGAWAIAN</strong> </h1>
<ul>
<li><a href="golongan.php" style="text-
decoration:none;color:black">Data Golongan</a></li>
<li><a href="satker.php" style="text-
decoration:none;color:black">Data Satker</a></li>
<li><a href="jabatan.php" style="text-
decoration:none;color:black">Data Jabatan</a></li>
<li><a href="pegawai.php" style="text-
decoration:none;color:black">Data Pegawai
</a></li>
<li><a href="reportGaji.php" style="text-
decoration:none;color:black">Report Gaji</a></li>
</ul>
</body>
</html>
Hasil dari script di atas adalah sebagai berikut:
10
14. 2. Script Open Koneksi ke Database MySQL
Simpanlah dengan nama connect.php
<?
$serverName="localhost";
$userName="root";
$password="chelonind";
$dbName="kepegawaian2";
$conn=mysql_connect($serverName, $userName,$password) or
die("Koneksi gagal");
$db=mysql_select_db($dbName,$conn) or
die("DataBase tidak tersedia");
?>
3. Script Tutup Koneksi Database
<?
mysql_close($conn);
?>
4. Halaman Form Golongan
simpanlah dengan nama file golongan.php
<?
include_once "connect.php";
$SQL_1="Select ID_Golongan,GajiPokok from golongan";
if(isset($_GET['status'])){
if($_GET['status']=="ubah"){
$SQL_2="Select ID_Golongan,GajiPokok from golongan where
ID_Golongan='".$_GET['id']."'";
$result_2=mysql_query($SQL_2);
$value_form=mysql_fetch_object($result_2);
11
15. if(isset($_POST['btnSimpan'])){
$sqlUpdate="Update golongan Set ".
"ID_Golongan='".$_POST['IDGolongan']."',".
"GajiPokok=".$_POST['GajiPokok'].
" where ID_Golongan='".$_GET['id']."'";
$resultUpdate=mysql_query($sqlUpdate)or
die("Update Data gagal.");
header("Location: golongan.php");
}
}
if($_GET['status']=="new"){
if(isset($_POST['btnSimpan'])){
$SQL_3="INSERT INTO golongan(ID_Golongan,GajiPokok)".
" VALUES(".
"'".$_POST['IDGolongan']."',".
"".$_POST['GajiPokok']."".
")";
$result_3=mysql_query($SQL_3)or die("Data baru Gagal Di Simpan");
header("Location: golongan.php");
}
}
if($_GET['status']=="hapus"){
$sqlDelete="Delete from golongan where
ID_Golongan='".$_GET['id']."'";
$result_delete=mysql_query($sqlDelete)or die("Gagal Di
Hapus");
header("Location: golongan.php");
}
}
?>
<html>
<head>
<title>Golongan</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1">
</head>
<body>
<form name="form1" method="post" action="">
<h1 align="center">Golongan </h1>
<table width="300" border="1" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td align="center"><table width="99%" border="0"
align="center" cellpadding="0" cellspacing="2" style="font-
family:arial;font-size:12px;color:black;font-weight:lighter">
12
20. <br>
<a href="index.php" style="font-family:arial;font-size:12px;text-
decoration:none;color:#000000">Menu
Utama</a></html>
<? include "disconnect.php"; ?>
6. Halaman Form Jabatan
Simpanlah dengan nama file jabatan.php
<?
include_once "connect.php";
$SQL_1="SELECT
jbtn.IDJabatan,
jbtn.ID_Satker,
jbtn.NamaJabatan,
jbtn.TunjanganJabatan,
sat.NamaSatker
FROM
jabatan jbtn
left join
satker sat
on
jbtn.ID_Satker=sat.ID_Satker";
if(isset($_GET['status'])){
17
21. if($_GET['status']=="ubah"){
$SQL_2="SELECT
jbtn.IDJabatan,
jbtn.ID_Satker,
jbtn.NamaJabatan,
jbtn.TunjanganJabatan,
sat.NamaSatker
FROM
jabatan jbtn
left join
satker sat
on
jbtn.ID_Satker=sat.ID_Satker
where jbtn.IDJabatan=".$_GET['id'];
$result_2=mysql_query($SQL_2) or die("Error Filter");
$value_form=mysql_fetch_object($result_2);
if(isset($_POST['btnSimpan'])){
$sqlUpdate="Update jabatan Set ".
"ID_Satker='".$_POST['ID_Satker']."',".
"NamaJabatan='".$_POST['NamaJabatan']."',".
"TunjanganJabatan=".$_POST['TunjanganJabatan'].
" where IDJabatan=".$_GET['id'];
$resultUpdate=mysql_query($sqlUpdate)
or die("Update Data gagal.");
header("Location: jabatan.php");
}
}
if($_GET['status']=="new"){
if(isset($_POST['btnSimpan'])){
$SQL_3="INSERT INTO
jabatan(ID_Satker,NamaJabatan,TunjanganJabatan)".
" VALUES(".
"'".$_POST['ID_Satker']."',".
"'".$_POST['NamaJabatan']."',".
$_POST['TunjanganJabatan'].
")";
if($_POST['NamaJabatan']!=NULL){
$result_3=mysql_query($SQL_3)or die("Data
baru Gagal Di Simpan");
header("Location: jabatan.php");
}
}
}
if($_GET['status']=="hapus"){
$sqlDelete="Delete from jabatan where
IDJabatan='".$_GET['id']."'";
$result_delete=mysql_query($sqlDelete)or die("Gagal Di Hapus");
header("Location: jabatan.php");
}
}
?>
18
24. 7. Halaman Form Pegawai
Simpanlah dengan nama file pegawai.php
<?
include_once "connect.php";
$SQL_1="SELECT
peg.NIP,
peg.IDJabatan,
peg.ID_Golongan,
peg.NamaPegawai,
peg.Alamat,
peg.TempatLahir,
peg.TglLahir,
peg.Status,
peg.Agama,
peg.HandPhone,
peg.Telepon,
jab.NamaJabatan as jabatan,
gol.ID_Golongan as golongan
FROM
pegawai peg
left join
jabatan jab
on
peg.IDJabatan=jab.IDJabatan
left join golongan gol
on
peg.ID_Golongan=gol.ID_Golongan
";
if(isset($_GET['status'])){
21
25. //--Status Update
if($_GET['status']=="ubah"){
$SQL_2="SELECT
peg.NIP,
peg.IDJabatan,
peg.ID_Golongan,
peg.NamaPegawai,
peg.Alamat,
peg.TempatLahir,
peg.TglLahir,
peg.Status,
peg.Agama,
peg.HandPhone,
peg.Telepon,
jab.NamaJabatan as jabatan,
gol.ID_Golongan as golongan
FROM
pegawai peg
left join
jabatan jab
on
peg.IDJabatan=jab.IDJabatan
left join golongan gol
on
peg.ID_Golongan=gol.ID_Golongan
where NIP='".$_GET['id']."'";
$result_2=mysql_query($SQL_2);
$value_form=mysql_fetch_object($result_2);
if(isset($_POST['btnSimpan'])){
$sqlUpdate="Update pegawai Set ".
"NIP='".$_POST['NIP']."',".
"IDJabatan='".$_POST['Jabatan']."',".
"ID_Golongan='".$_POST['Golongan']."',".
"NamaPegawai='".$_POST['NamaPegawai']."',".
"Alamat='".$_POST['Alamat']."',".
"TempatLahir='".$_POST['TempatLahir']."',".
"TglLahir='".$_POST['TanggalLahir']."',".
"Status='".$_POST['StatusPerkawinan']."',".
"Agama='".$_POST['Agama']."',".
"HandPhone='".$_POST['HP']."',".
"Telepon='".$_POST['Telp']."'".
" where NIP='".$_GET['id']."'";
$resultUpdate=mysql_query($sqlUpdate)or die("Update
Data gagal.");
header("Location: pegawai.php");
}
}
if($_GET['status']=="new"){
22
31. <?
$sql="SELECT
peg.NIP,
peg.NamaPegawai,
jab.NamaJabatan as jabatan,
gol.ID_Golongan as golongan,
gol.GajiPokok,
jab.TunjanganJabatan as Tunjangan,
(gol.GajiPokok+jab.TunjanganJabatan) as GajiBersih
FROM pegawai peg left join jabatan jab on
peg.IDJabatan=jab.IDJabatan left join golongan gol on
peg.ID_Golongan=gol.ID_Golongan
";
$result=mysql_query($sql);
while($row=mysql_fetch_object($result)){
?>
<tr bgcolor="#00CCFF">
<td><a href="pegawai.php?status=ubah&id=<? print $row->NIP;?>"
style="text-decoration:none;color:black;"> <? print $row-
>NIP;?></a></td>
<td>
<? print $row->NamaPegawai;?>
</td>
<td>
<? print $row->jabatan;?>
</td>
<td>
<? print $row->golongan;?>
</td>
<td>
<? print $row->GajiPokok;?>
</td>
<td>
<? print $row->Tunjangan;?>
</td>
<td>
<? print $row->GajiBersih;?>
</td>
</tr>
<? } ?>
</table>
<p align="center"><a href="index.php" style="font-family:arial;font-
size:12px;text-decoration:none;color:#000000">Menu
Utama</a> </p>
</body>
</html>
<? include "disconnect.php"; ?>
28
32. Hasil dari script di atas adalah sebagai berikut:
D. Evaluasi dan Penyelesaian
1. Buatlah skrip untuk pencarian guna menampilkan pegawai berdasarkan kata kunci
yang dimasukkan.
2. Buatlah skrip untuk mengurutkan pegawai berdasarkan golongan, NIP, dan Gaji
bersih.
29
33. DAFTAR PUSTAKA
Brain, Marshall (2005). How Web Servers Work.
http://computer.howstuffworks.com/dns.html.
Farid Azis. M, 2001. BelajarSendiri Pemrograman PHP 4. Jakarta : PT Elex Media
Komputindo.
Firrar Utdirartatmo. 2006. Kiat Jitu Memberdayakan, Menggunakan & Troubleshooting
MySQL. Yogyakarta: Penerbit Ardana Media.
How Stuff Works (2005). Setting the Stage. http://computer.howstuffworks.com/web-
page.htm
Iman Suja. 2005. Pemrograman SQL dan Database Server MySQL. Yogyakarta: Penerbit
Andi.
MADCOMS. 2003. Aplikasi Database Visual Basic 6.0 dengan Crystal Report, Seri Panduan
Pemrograman, Yogyakarta: Penerbit ANDI.
Muhammad Muchlis, Gelar Wirabuana. 2005. Praktikum : APLIKASI PHP MySQL. Jakarta:
Depkominfi RI dan JICA.
Raghu Ramakrishnan. Database Management System 3rd Edition.
Silberschatz, Korth, Sudarshan. 2002. Database System Concepts 4th Edition. America:
McGrew-Hill
30