Modul Database
Modul Database
MySQL 5.0
STUDI KASUS :
OLEH :
TRI WAHYU QUR’ANA
| FTI UNISKA
PRAKTIKUM DATABASE
INSTALASI MYSQL
Proses Instalasi MySql yang akan di bahas pada bagian ini hanya untuk Sistem Informasi Mi-
crosoft Windows. Berikut langkah-langkah yang diperlukan untuk melakukan instalasi server
MySQL :
Jalankan file mysql-essential-5.0.24a-win32.msi
Pilih jenis paket software yang diinginkan, sebagai latihan pilih complete, lalu klik next
1 I FTI UNISKA
PRAKTIKUM DATABASE
Tujuan istalasi berada pada direktori C:\Program Files\MySQL\MySQL Server 5.0\ klik
install untuk memulai instalasi.
2 I FTI UNISKA
PRAKTIKUM DATABASE
Beri tanda ceklist (√) pada opsi Configure the MySQL server now, lalu klik Finish untuk
mengakhiri proses instalasi
3 I FTI UNISKA
PRAKTIKUM DATABASE
Pilih pilih Developer Machine sebagai tipe server untuk meminimalisasi penggunaan
memori di computer, lalu klik Next
4 I FTI UNISKA
PRAKTIKUM DATABASE
5 I FTI UNISKA
PRAKTIKUM DATABASE
Beri checklist pada Install As Windows Service dan Include Bin Directory in Windows PATH
agarserver MySQL dapat dijalankan secara otomatis pada saat computer dinyalakan.
6 I FTI UNISKA
PRAKTIKUM DATABASE
7 I FTI UNISKA
PRAKTIKUM DATABASE
1. Membuat Database
Buka MySQL Command-Line Client, isi password root
Buat database dengan sintaks : CREATE DATABASE <nama database>;
Untuk melihat database yang baru sajadibuat atau yang sudah ada, dapat menggunakan
perintah : SHOW DATABASES;
Buka atau aktifkan databasenya terlebih dahulu dengan sintaks : USE <nama database>;
Apabila ingin menghapus database dengan sintaks : DROP DATABASE IF EXISTS <nama
database>;
2. Membuat Tabel
Bentuk umum SQL untuk membuat suatu tablesecara sederhana sebagai berikut :
CREATE TABLE nama_tabel (
field1 tipe(panjang),
field2 tipe(panjang),
...
PRIMARY KEY (field_key) );
Sebagai contoh kita akan membuat tabel berikut :
Nama Tabel : Pelanggan
No. Nama Field Tipe Data Lebar Null? Kunci
1 id_pelanggan Varchar 5 Not Null Primary Key
2 nm_pelanggan Varchar 30
3 alamat Text -
4 telepon Varchar 20
5 email Varchar 50
8 I FTI UNISKA
PRAKTIKUM DATABASE
Selanjutnya untuk melihat tabel Pelanggan sudah benar-benar sudah ada atau belum,
ketikkan perintah :SHOW TABLES;
Untuk melihat struktur tabel “Pelanggan” secara lebih detail, cobalah perintah /query
:DESC PELANGGAN;
9 I FTI UNISKA
PRAKTIKUM DATABASE
10 I FTI UNISKA
PRAKTIKUM DATABASE
Bentuk umum SQL untuk membuat suatu tabel yang didalamnya terdapat 2 (dua) Foreign
Keysecara sederhana sebagai berikut :
Nama Tabel
:Nilai
Nama
No. Tipe Data Lebar Null? Kunci
Field
1 nim Char 4 Not Null Primary key dan Foreign key
2 id_matkul Char 5 Not Null Primary key dan Foreign key
3 nilai int 11
4 Huruf Char 5
11 I FTI UNISKA
PRAKTIKUM DATABASE
12 I FTI UNISKA
PRAKTIKUM DATABASE
Latihan 1:
Buatlah Database dengan nama : BUKUDB
Aktifkan database BUKUDB dan buatlah tabel berikut :
13 I FTI UNISKA
PRAKTIKUM DATABASE
14 I FTI UNISKA
PRAKTIKUM DATABASE
MEMANIPULASI DATA
Contoh :
Contoh:
15 I FTI UNISKA
PRAKTIKUM DATABASE
Contoh :
Contoh :
Untuk menghapus semua baris data yang terdapat pada tabelmenggunakan Sintaks
Atau
16 I FTI UNISKA
PRAKTIKUM DATABASE
Latihan 2:
Aktifkan database BUKUDB dan tambahkan baris data berikut kedalam table:
17 I FTI UNISKA
PRAKTIKUM DATABASE
4. Tabel BUKU
BUKU_TGLTER BUKU_JMLH BUKU_DES
BUKU_ISBN BUKU_JUDUL PENERBIT_ID BUKU_HARGA
BIT ALAMAN KRIPSI
222-34222-1-0 Mudah Belajar Photoshop PB01 2003-07-02 433 (NULL) 76000
Panduan Praktis
222-34222-1-1
Menggunakan Corel Draw PB02 2004-03-15 385 (NULL) 85000
Panduan Membangun
666-96771-2-0
Jaringan TCP/IP PB08 2006-08-02 200 (NULL) 115000
666-96771-2-1 Implementasi TCP/IP di Linux PB08 2008-11-21 250 (NULL) 89000
777-76723-5-0 Cara Belajar Cepat PHP 6 PB07 2010-05-02 600 (NULL) 135000
Membuat Aplikasi Web
777-76723-5-1
dengan ASP PB07 2004-08-01 180 (NULL) 145000
Belajar Sendiri Internet
777-76723-5-2
Marketing PB07 2007-01-24 350 (NULL) 125000
Panduan Menggunakan Yahoo
777-76723-5-3
dan Google PB07 2014-11-01 400 (NULL) 75000
888-96771-3-0 Pemograman Pascal PB08 2015-01-23 328 (NULL) 135000
888-96771-3-1 Pemograman Java PB06 2011-03-04 550 (NULL) 150000
Pemograman C untuk
888-96771-3-2
Hardware PB05 2009-05-21 320 (NULL) 155000
888-96771-3-3 Menjadi Master C++ PB06 2010-09-11 400 (NULL) 145000
888-96771-3-4 Mudah Belajar Delphi PB05 2010-04-25 355 (NULL) 140000
888-96771-3-5 Visual Basic PB02 2005-07-09 455 (NULL) 130000
979-96446-9-0 Panduan Basis Data PB06 2012-02-12 250 (NULL) 115000
979-96446-9-1 Menguasai SQL PB01 2013-11-09 185 (NULL) 95000
979-96446-9-2 Perancangan Sistem PB03 2009-01-20 360 (NULL) 100000
Membuat Database
979-96446-9-3
Menggunakan Ms. Acces PB06 2010-09-11 200 (NULL) 65000
999-11555-2-0 Teknik Presentasi PB06 2014-04-28 180 (NULL) 85000
999-11555-2-1 Microsoft Word 2016 PB04 2016-04-01 250 (NULL) 115000
5. Tabel LINK_BUKU_PENGARANG
18 I FTI UNISKA
PRAKTIKUM DATABASE
6. Tabel LINK_BUKU_KATEGORI
BUKU_ISBN KATEGORI_ID
222-34222-1-0 2
222-34222-1-1 2
666-96771-2-0 3
666-96771-2-1 3
777-76723-5-0 4
777-76723-5-0 5
777-76723-5-1 4
777-76723-5-1 5
777-76723-5-2 5
777-76723-5-3 5
888-96771-3-0 4
888-96771-3-1 4
888-96771-3-2 4
888-96771-3-3 4
888-96771-3-4 4
888-96771-3-5 4
979-96446-9-0 1
979-96446-9-1 1
979-96446-9-2 1
979-96446-9-2 4
979-96446-9-3 1
999-11555-2-0 6
999-11555-2-1 6
19 I FTI UNISKA
PRAKTIKUM DATABASE
SELEKSI DATA
Contoh :
Contoh :
20 I FTI UNISKA
PRAKTIKUM DATABASE
Untuk menyederhanakan penulisan nama table pada saat menentukan kepemilikan ko-
lom pada perintah SELECT dapat menggunakan alias
SELECT
a.buku_ISBN,
a.buku_judul,
a.buku_harga
FROM
BUKU a;
2. Menyaring (Filter) Data berdasarakan Kriteria
Data yang ditampilkan dapat disaring berdasarkan kebutuhan informasi.
Contoh :
akan menampilkan data dalam table buku yang harganya kurang dari Rp.30.000,-
SELECT
<nama kolom> as ‘<nama kolom baru>’,
<nama kolom> as ‘<nama kolom baru>’,
FROM
<nama table>
WHERE
<nama kolom><kriteria>;
21 I FTI UNISKA
PRAKTIKUM DATABASE
Perintah diatas akan menampilkan 10 baris data pertama yang terdapat pada table. Jika
ingin menampilkan 10 data pertama dimulai dari baris data ke-6 maka perlu
menggunakan perintah :
SELECT <nama kolom1>,<nama kolom2> FROM <nama table> LIMIT 5, 10;
6. Mengurutkan Data
Untuk mengurutkan data berdasarkan kriteria tertentu dengan menambahkan
klausa ORDER BY pada perintah SELECT
SELECT
<nama kolom1>,
<nama kolom2>,
<nama kolom3>
FROM
<nama table>
ORDER BY
<nama kolom>;
22 I FTI UNISKA
PRAKTIKUM DATABASE
7. Mengelompokkan Data
Dalam SQL, penagelompokkan data dilakukan menggunakan klausa GROUP BY yang
disertakan pada perintah SELECT
SELECT
Penerbit_id,
COUNT (*)
FROM
BUKU
GROUP BY
Penerbit_id;
Agar lebih representative dan mudah dibaca, dapat menambahkan nama penerbit
pada query diatas, maka perlu mengakses table penerbit. Sintaks :
SELECT
A. Penerbit_id AS ‘KODE PENERBIT’,
B. Penerbit_nama AS ‘NAMA PENERBIT’,
COUNT (A.Penerbit_id) AS ‘JUMLAH BUKU’
FROM
BUKU A,
PENERBIT B
WHERE
A. Penerbit_id = B. PENERBIT
ORDER BY
A. Penerbit_id,
B. Penerbit_nama;
23 I FTI UNISKA
PRAKTIKUM DATABASE
8. Menggabungkan Data
Dua tau lebih hasil query dapat digabung menggunakan UNION. Syarat utamanya
adalah setiap perintah SELECT harus mengahasilkan jumlah kolom yang sama.
Sintaks:
SELECT buku_isbn, buku_judul, buku_harga
FROM BUKU
WHERE Buku_harga <= 40000
UNION
SELECT buku_isbn, buku_judul, buku_harga
FROM BUKU
WHERE Buku_harga <= 40000;
Latihan 3:
Aktifkan database BUKUDB dan tampilkan baris data dengan kriteria sebagai berikut:
1. Pilih kolom judul buku dan harga buku pada table BUKU
2. Representasikan nama kolom buku_ISBN menjadi ISBN, buku_judul menjadi
JUDUL dan buku_harga menjadi HARGA pada table BUKU
3. Baris data dalam table BUKU yang harganya kurang dari Rp. 150.000,-
4. Baris data yang terdapat pada table BUKU yang harganya berada dalam rentang
Rp. 200.000,- sampai Rp. 300.000,-
5. 8 Baris data pertama dimulai pada baris data ke-6 pada table BUKU
6. Baris data bersifat unik (dengan perintah DISTINCT) buku_ISBN pada table BUKU
7. Baris data yang diurutkan secara menurun (ASC) berdasarkan penerbit_id pada
table BUKU
8. Jumlah Baris data yang yang dikelompokkan berdasarkan penerbit_id pada table
BUKU
24 I FTI UNISKA
PRAKTIKUM DATABASE
Melihat daftar nama dan tipe data kolom yang terkandung dalam view. sintaks
DESCRIBE v_buku;
25 I FTI UNISKA
PRAKTIKUM DATABASE
Memodifikasi satu atau lebih kolom yang terdapat pada suatu table melalui view
UPDATE v_buku
SET
Buku_jmlhalaman = buku_jmlhalaman + 10
WHERE
Buku_ISBN = ‘999-11555-2-1’ ;
Fungsi Agregat
Adalah fungsi didalam MySQL yang digunakan untuk melakukan perhitungan pada Query, pada
umumnya penggunaannya dikombinasikan dengan klausa GROUP BY untuk menghasilkan nilai
yang dikelompokkan berdasarkan kolom tertentu.
1. Fungsi Min ()
Mengembalikan nilai minimal atau terkecil suatu kolom. Sintaks
SELECT MIN (buku_jmlhalaman) FROM buku;
2. Fungsi Max ()
Memperoleh nilai maksimal atau nilai terbesar dari suatu kolom. sintaks
SELECT Max (buku_jmlhalaman) FROM buku;
3. Fungsi Sum ()
Menjumlahkan nilai dari suatu kolom dalam table tertentu. Sintaks
SELECT SUM (buku_jmlhalaman) FROM buku;
4. Fungsi Count ()
Untuk memperoleh banyaknya baris yang dihasilkan oleh suatu query. sintaks
SELECT COUNT (*)
FROM Buku
WHERE Penerbit_Id = ‘PB06’ ;
5. Fungsi AVG ()
Untuk menghitung nilai rata-rata dari suatu kolom yang dihasilkan oleh suatu query tertentu
26 I FTI UNISKA
PRAKTIKUM DATABASE
6. Fungsi GROUP_CONCAT ()
Untuk menyambung beberapa baris data dari suatu kolom menjadi string tunggal. Sintaks
SELECT
B. Penerbit_nama,
GROUP_CONCAT (A. Buku_judul)
FROM Buku A, Penerbit B
WHERE
A. Penerbit_id = B. Penerbit_id
GROUP BY B.Penerbit_id
ORDER BY B.Penerbit_id;
BUILT-IN
Adalah fungsi siap pakai yang sebelumnya sudah didefinisikan ileh MySql untuk menunjang
kemudahan bagi para penggunanya.
1. OPERATOR
Digunakan untuk melakukan perhitungan-perhitungan aritmetika : penjumlahan (+), pen-
gurangan (-), perkalian (*) dan pembagian (:) didalam query maupun prosedur/ fungsi.
SELECT
Buku_judul,
Buku_harga,
Buku_harga * 2
FROM Buku
WHERE
Buku_ISBN IN (‘222-34222-1-0’,’222-34222-1-1’);
Operator Relasional Untuk membandingkan dua buah nilai atau ekspresi : sama denga
(=), tidak sama dengan (!=/<>), lebih kecil (<), lebih besar (>), memeriksa n apakah berada
didalama rentang min dan max atau tidak (n BETWEEN min AND max ), memeriksa ang-
gota himpunan (set), apakah n anggota dari himpunan yang didefinisakn ataua tidak (n IN
(set)), memeriksa nilai n dengan nilai NULL (n IS NULL) dan fungsi untuk memeriksa nilai
n, NULL atau tidak (ISNULL (n))
SELECT
Buku_ISBN,
Buku_judul,
Buku_harga
FROM Buku
WHERE
Buku_harga <= 50000;
27 I FTI UNISKA
PRAKTIKUM DATABASE
Operator Logika Untuk memeriksa nilai kebenaran : benar (true) dan salah (false). Operasi
logika And (AND atau &&), operasi logika Or (OR atau I I), operasi negasi (NOT atau !) dan
operasi Exclusive Or (XOR)
SELECT
Buku_ISBN,
Buku_judul,
Penerbit_id,
Buku_harga,
FROM Buku
WHERE
Buku_harga <= 50000 AND
Penerbit_id = ‘PB06’ ;
2. Fungsi-fungsi String
Fungsi Concat() akan menyambung dua buah string atau lebih.
SELECT CONCAT(‘belajar’ ,’ ‘, ‘MySQL’);
Fungsi Length () untuk mengetahui jumlah karakter yang menyusun sebuah string
SELECT LENGHT(‘MySQL’);
Fungsi Locate () untuk mencari suatu karakter atau bagian teks (substring) dari suatu string
SELECT LOCATE(‘base’,’Pemograman Database’, 1);
Fungsi Lower () dan Upper() untuk mengubah bentuk huruf dari semua karakter penyusun string.
SELECT UPPER(’Pemograman Database’);
Fungsi Replace () untuk mengganti suatu karakter atau bagian teks dalam string.
SELECT REPLACE (‘Pemograman Database’ ,
‘Database’,’MySql’);
Fungsi Substring () untuk mengambil karakter atau bagian teks (dengan jumlah karakter tertentu )
dari suatu string
SELECT SUBSTRING (‘MySql’,3,3);
28 I FTI UNISKA
PRAKTIKUM DATABASE
Latihan 4:
Aktifkan database BUKUDB :
1. Buatlah table view dengan field Penerbit_id dan penerbit_nama dari table pen-
erbit dan field buku_judul dan buku_harga dari table buku
2. Ubah table view yang telah dibuat di no.1 dengan menambahkan buku_ISBN dan
buku_jmlhalaman dari table buku
3. Modifikasi kolom buku_harga dengan kriteria penerbit_id PB01 ditambah 60000
dan PB06 ditambah 50000
4. Tampilkan baris data dengan kriteria sebagai berikut :
a. Nilai terkecil pada kolom buku_harga
b. Nilai terbesar pada kolom buku_jmlhalaman
c. Nilai rata-rata pada kolom buku_harga
d. Menyambung Judul buku setiap penerbit pada table buku
5. Lakukan operasi aritmatika pada table buku dengan kriteria sebagai berikut:
a. Harga buku penerbit PB01, PB05 dan PB06 dikali 3
b. Harga buku penerbit PB03, PB02 dan PB 04 dibagi 2
29 I FTI UNISKA
PRAKTIKUM DATABASE
30 I FTI UNISKA
PRAKTIKUM DATABASE
Setelah dibuat, fungsi diatas dapat kita eksekusi menggunakan kode berikut :
Fungsi juga dapat langsung digunakan dalam ekspresi seperti dalam contoh perhitungan :
SET total = check_harga (‘222-34222-1-0’) * 2;
Untuk menampilkan Prosedur berdasarkan filter yang dilakukan menggunakan klausa LIKE :
SHOW PROCEDURE STATUS LIKE ‘insert%’ ;
Untuk menampilkan seluruh fungsi yang tersimpan dalam database, beserta property dan infor-
masi metadata dari fungsi-fungsi tersebut :
SHOW FUNCTION STATUS ;
31 I FTI UNISKA
PRAKTIKUM DATABASE
RETURN namapenerbit;
END;
//
DELIMITER / /
CREATE FUNCTION ubah_format_tanggal (tanggal DATE)
RETURNS VARCHAR (30)
BEGIN
DECLARE dd INT (2);
DECLARE mm INT (2);
DECLARE yy INT (4);
DECLARE bulan VARCHAR (9);
SET dd = EXTRACT (DAY FROM tanggal);
SET mm = EXTRACT (MONTH FROM tanggal);
SET YY = EXTRACT (YEAR FROM tanggal);
CASE mm
WHEN 1 THEN SET bulan = ‘Januari’;
WHEN 2 THEN SET bulan = ‘Februari’;
WHEN 3 THEN SET bulan = ‘Maret’;
WHEN 4 THEN SET bulan = ‘April’;
WHEN 5 THEN SET bulan = ‘Mei’;
32 I FTI UNISKA
PRAKTIKUM DATABASE
RETURN CONCAT (
CONVERT (dd,CHAR), ‘ ‘ , Bulan, ‘ ‘ ,
CONVERT (yy,CHAR)
);
END;
/ /
DELIMITER //
CREATE FUNCTION jumlahkan (n INT)
RETURNS INT (11)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE total INT DEFAULT 0;
myloop : LOOP
SET i = i + 1;
IF i > n THEN
LEAVE myloop ; * Keluar dari perulangan
END IF;
SET total = total + 1;
END LOOP myloop ;
RETURN total;
END;
//
33 I FTI UNISKA
PRAKTIKUM DATABASE
RETURN total;
END;
//
DELIMITER //
CREATE FUNCTION jumlahkan_repeat(n INT)
RETURNS INT (11)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE total INT DEFAULT 0;
REPEAT
SET total = total + i;
SET i = i + 1;
UNTIL (i > n)
END REPEAT
RETURN total;
END;
//
Hasil yang akan diperoleh persis seperti pada dua fungsi sebelumnya
34 I FTI UNISKA
PRAKTIKUM DATABASE
Pada kode diatas, kita membuat suatu prosedur yang dapat menampilkan bilangan genap
yang terdapat antara bilangan 1 dan n. nilai n ditentukan pada saat pemanggilan
prosedur diatas
Latihan 5:
Aktifkan database BUKUDB :
1. Lakukan proses insert ke table pengarang dengan prosedur
PENGARANG_ID PENGARANG_NAMA
DF Dina Fika
SWA Santi Wati Anwar
TWA Tri Wahyu Ana
35 I FTI UNISKA
PRAKTIKUM DATABASE
IMPLEMENTASI
MEMBUAT APLIKASI WEB DENGAN PHP DAN MYSQL
36 I FTI UNISKA
PRAKTIKUM DATABASE
Konfigurasi PHP
Berikut langkah-langkah yang diperlukan untuk melakukan konfigurasi PHP
1. Jalankan aplikasi Text Editor (yang mempunyai fasilitas nomor baris)
2. Buka file PHP.ini yang ada di direktori
3. Pada baris 341, hilangkan tanda titik koma didepan teks, sehingga teks menjadi :
error_reporting = E_ALL & ~E_NOTICE
4. Pada baris 372, ubah nilai display_errors menjadi On, sehingga teks menjadi :
display_errors = On
5. Pada baris 490, ubah nilai magic_quotes_gpc menjadi on, sehingga teks menjadi :
magic_quotes_gpc = On
6. Pada baris 529, isikan nilai untuk doc_root, sehingga teks menjadi :
doc_root = "c:/Apache2.2/htdocs"
7. Simpan perubahan yang dilakukan pada file PHP.ini
8. Copy file php5ts.dll dari C:\PHP ke C:\Apache2.2\bin
9. Restart computer untuk memastikan semua konfigurasi telah terbarui.
37 I FTI UNISKA
PRAKTIKUM DATABASE
#wrap {
width:1024px;
margin:0 auto;
background:#fff;
}
#header {
padding:5px 10px;
background:#000;
}
#header h1 {
font-size:36px;
color:red;
}
#nav {
padding:5px 10px;
background:#cc7;
}
#nav ul {
margin:0;
padding:0;
list-style:none;
text-align:center;
}
#nav li {
display:inline;
margin:0;
padding:0;
}
#main {
float:left;
width:690px;
padding:10px;
}
#sidebar {
float:right;
padding:10px;
width:220px;
}
#sidebar li {
margin:0;
padding:5px; 38 I FTI UNISKA
}
#footer {
clear:both;
PRAKTIKUM DATABASE
#sidebar li {
margin:0;
padding:5px;
}
#footer {
clear:both;
padding:5px 10px;
text-align:center;
background:#cc7;
}
#footer p {
margin:0;
}
Framelayout.css
body,
html {
margin:0;
padding:0;
color:#000;
background:#fff;
font:12px Verdana, Arial, Helvetica, sans-serif;
}
table.buku {
text-align: center;
font-family: Verdana, Geneva, Arial, Helvetica, sans-
serif ;
font-weight: normal;
font-size: 11px;
color: #002;
/*width: 280px;*/
background-color: #cc6;
border: 0px;
border-collapse: collapse;
border-spacing: 0px;
}
table.buku td {
background-color: #cca;
color: #000;
padding: 4px;
/*text-align: left;*/
border: 1px #fff solid;
}
39 I FTI UNISKA
PRAKTIKUM DATABASE
table.buku td.hed {
background-color: #ccc;
color: #fff;
padding: 4px;
text-align: center;
border-bottom: 2px #fff solid;
font-size: 14px;
font-weight: bold;
}
Index.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="layout.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrap">
<div id="header"><h1>Toko Buku Online</h1></div>
<div id="nav">
<ul>
<li><a href="index.php">Home</a> | </li>
<li><a href="pesan.php" target="frmMain">
Prosedur Pemesanan</a> | </li>
<li><a href="tentangkami.php"
target="frmMain">Tentang Kami</a> | </li>
<li><a href="kontak.php"
target="frmMain">Kontak</a></li>
</ul>
<br />
<center>
<form action="cari.php" method="post" target="frmMain">
<strong>Pencarian buku:</strong>
<select name="comboCari">
<option value="0">Berdasarkan Judul Buku</option>
<option value="1">Berdasarkan Pengarang</option>
<option value="2">Berdasarkan Penerbit</option>
</select>
<input type="text" name="txtCari" size="45" />
<input type="submit" name="btnCari" value="Go">
</form>
</center>
</div>
<div id="main">
<iframe width="690" height="450" frameborder="0"
name="frmMain" scrolling="auto" src="welcome.php"></iframe>
</div>
<div id="sidebar"> 40 I FTI UNISKA
<h2>Kategori Buku</h2>
<?php include("kategori.php"); ?>
</div>
<div id="footer">Copyright © 2011 - Toko Buku
PRAKTIKUM DATABASE
</div>
<div id="sidebar">
<h2>Kategori Buku</h2>
<?php include("kategori.php"); ?>
</div>
<div id="footer">Copyright © 2011 - Toko Buku Online
</div>
</div>
</body>
</html>
if (mysqli_connect_errno()) {
echo "Koneksi ke server MySQL gagal";
exit();
} else {
//echo "Koneksi ke server MySQL sukses";
}
?>
41 I FTI UNISKA
PRAKTIKUM DATABASE
Fungsi.php
<?php
include("dbconn.php");
function getKategori($id) {
global $link;
$query = "select kategori_nama
from
kategori
where
kategori_id = $id";
$namakategori = "";
$result = mysqli_query($link, $query);
if ($result) {
list($namakategori) = mysqli_fetch_array($result);
mysqli_free_result($result);
}
return $namakategori;
}
?>
Welcome.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="framelayout.css" rel="stylesheet"
type="text/css" />
</head>
<body>
</p>
42 I FTI UNISKA
PRAKTIKUM DATABASE
<p>
<strong>Cepat, lihat dan pesan sekarang juga!</strong>
</p>
<p><img src="images/buku.jpeg"></p>
<p>Barang tidak sampai ke tempat Anda? <strong>Garansi 100%
uang kembali</strong></p>
</body>
</html>
Kategori.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="layout.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
include("dbconn.php");
$query = "select
kategori_id,
kategori_nama
from
kategori
order by kategori_nama";
$result = mysqli_query($link, $query);
if ($result) {
?>
<ul>
<?php
$indeks = 1;
while ($row = mysqli_fetch_array($result)) {
?>
<li>
<a href="daftarbuku.php?kat=<?php echo $row[0];?>"
target="frmMain"><?php echo $row[1];?></a></li>
<?php
}
mysqli_free_result($result);
?>
</ul>
<?php
}
?>
<body>
</html>
43 I FTI UNISKA
PRAKTIKUM DATABASE
Daftarbuku.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="framelayout.css" rel="stylesheet"
type="text/css" />
</head>
<body>
<?php
include ("dbconn.php");
include ("fungsi.php");
$idkategori = $_GET['kat'];
$namakategori = getKategori($idkategori);
?>
<h2>Daftar Buku <?php echo $namakategori; ?></h2>
<?php
$query = "select
a.buku_isbn,
a.buku_judul,
b.penerbit_nama,
a.buku_harga
from
buku a,
penerbit b,
link_buku_kategori c
where
a.penerbit_id = b.penerbit_id and
a.buku_isbn = c.buku_isbn and
c.kategori_id = $idkategori";
<tr>
<td><?php echo $row[0];?></td>
<td align="left"><?php echo $row[1];?></td>
<td align="left"><?php echo $row[2];?></td>
</body>
</html>
Detailbuku.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="framelayout.css" rel="stylesheet" type="text/css"
/>
</head>
<body>
<?php
include ("dbconn.php");
$isbn = $_GET['isbn'];
?>
<h2>Detail Buku</h2>
<?php
$query = "select
a.buku_isbn,
a.buku_judul,
c.pengarang_nama,
b.penerbit_nama,
a.buku_harga,
a.buku_tglterbit,
a.buku_jmlhalaman,
a.buku_deskripsi 45 I FTI UNISKA
from
buku a,
penerbit b,
PRAKTIKUM DATABASE
a.buku_jmlhalaman,
a.buku_deskripsi
from
buku a,
penerbit b,
pengarang c,
link_buku_pengarang d
where
a.penerbit_id = b.penerbit_id and
a.buku_isbn = d.buku_isbn and
c.pengarang_id = d.pengarang_id and
a.buku_isbn = '$isbn'";
</body>
</html>
Cari.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="framelayout.css" rel="stylesheet" type="text/css"
/>
</head>
<body>
<?php
include ("dbconn.php");
$btnCari = $_POST['btnCari'];
if (!isset($btnCari)) {
exit();
}
$comboCari = $_POST['comboCari'];
$txtCari = $_POST['txtCari'];
switch ($comboCari) {
47 I FTI UNISKA
case 0: {
$label = "Hasil pencarian buku <u>berdasarkan
judul</u> '<strong>$txtCari</strong>':";
$str = "upper(a.buku_judul) like up-
PRAKTIKUM DATABASE
switch ($comboCari) {
case 0: {
$label = "Hasil pencarian buku <u>berdasarkan
judul</u> '<strong>$txtCari</strong>':";
$str = "upper(a.buku_judul) like up-
per('%$txtCari%')";
break;
}
case 1: {
$label = "Hasil pencarian buku berdasarkan <u>nama
pengarang</u> '<strong>$txtCari</strong>':";
$str = "upper(c.pengarang_nama) like up-
per('%$txtCari%')";
break;
}
case 2: {
$label = "Hasil pencarian buku berdasarkan <u>nama
penerbit</u> '<strong>$txtCari</strong>':";
$str = "upper(b.penerbit_nama) like up-
per('%$txtCari%')";
break;
}
}
?>
<h2>Hasil Pencarian Buku</h2>
<p><?php echo $label?></p>
<br />
<?php
?>
<table class="buku">
<tr>
<th width="50">ISBN</th>
<th width="280">Judul</th>
<th width="150">Penerbit</th>
<th width="80">Harga</th>
<th>Detail</th>
</tr>
<?php
$indeks = 1;
while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td><?php echo $row[0];?></td>
<td align="left"><?php echo $row[1];?></td>
<td align="left"><?php echo $row[2];?></td>
</body>
</html>
Pesan.php
<html>
<head>
49 I FTI UNISKA
PRAKTIKUM DATABASE
<body>
<h2>Prosedur Pemesanan Buku</h2>
<p>Saat ini, <strong>Toko Buku Online</strong> hanya melayani
pemesanan buku melalui SMS atau telepon. Pembayaran dilakukan
dengan cara transfer ke nomor rekening berikut:</p>
<p>Bank: <strong>MUAMALAT</strong></p>
<p>No. Rekening: <strong>630000522</strong></p>
<p>Nama: <strong>Tri Wahyu Q</strong></p>
</body>
</html>
Tentangkami.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="framelayout.css" rel="stylesheet" type="text/css"
/>
</head>
<body>
<h2>Tentang Kami</h2>
<p><strong>Toko Buku Online</strong> adalah situs web yang
menawarkan kemudahan bagi Anda dalam memperoleh
buku-buku komputer dari berbagai macam kategori. Kelebihan
situs web ini adalah dalam hal pelayanan pengiriman barang,
yang dapat dilakukan secara cepat dan aman. Ditambah lagi
dengan penawaran <u>"garansi 100% uang kembali"</u> jika
buku tidak sampai ke tempat Anda.</p>
</body>
PRAKTIKUM DATABASE
</body>
</html>
Kontak.php
<html>
<head>
<title>Toko Buku Online</title>
<link href="framelayout.css" rel="stylesheet" type="text/css"
/>
</head>
<body>
<h2>Kontak</h2>
<p>Kritik, saran, dan pertanyaan silahkan kirim ke alamat
kami:</p>
<p><strong>Toko Buku Online</strong></p>
<p>
Alamat Kantor: <strong>Jl. Sapta Marga No. 120 Banjarbaru,
Kalimantan Selatan </strong><br />
Telp: <strong>(0511) 348889 </strong><br />
Fax: <strong>(0511) 348889 </strong><br />
Email: <strong>[email protected]</strong><br
/>
</p>
</body>
</html>
51 I FTI UNISKA
52 I FTI UNISKA