0% menganggap dokumen ini bermanfaat (0 suara)
175 tayangan

Modul Database

Diunggah oleh

Rizky Ikhwan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
175 tayangan

Modul Database

Diunggah oleh

Rizky Ikhwan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 53

MODUL DATABASE

MySQL 5.0

STUDI KASUS :

MEMBUAT TOKO BUKU ONLINE

OLEH :
TRI WAHYU QUR’ANA

FAKULTAS TEKNIK INFORMATIKA


UNIVERSITAS ISLAM KALIMANTAN SELATAN
TAHUN 2016

| 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

 Klik next untuk beralih ke form selanjutnya

 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.

 Tunggu beberapa saat sampai muncul form seperti berikut :

 Pilih Skip Sign-up, lalu klik Next

2 I FTI UNISKA
PRAKTIKUM DATABASE

 Beri tanda ceklist (√) pada opsi Configure the MySQL server now, lalu klik Finish untuk
mengakhiri proses instalasi

 Klik Next untuk melakukan konfigurasi Software.

 Pilih Detailed Configuration sebagai tipe konfigurasi, lalu klik Next.

3 I FTI UNISKA
PRAKTIKUM DATABASE

 Pilih pilih Developer Machine sebagai tipe server untuk meminimalisasi penggunaan
memori di computer, lalu klik Next

 Pilih Multifunctional Database, lalu klik Next

 Klik Next untuk beralih ke Form berikutnya

4 I FTI UNISKA
PRAKTIKUM DATABASE

 Klik Manual Setting, lalu klik next

 Klik Next untuk melanjutkan

 Pilih Standard Character Set, lalu Klik Next

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.

 Masukkan password untuk user root, lalu klik next

 Klik execute untuk memulai proses konfigurasi pada computer

6 I FTI UNISKA
PRAKTIKUM DATABASE

 Klik finish untuk mengakhiri konfigurasi


Koneksi ke Server MySQL dengan MySQL Client
MySQL menyediakan tools untuk melakukan koneksi ke server MySQL, yaitu MySQL Command-
Line Client. Tools tersebut dapat diakses dari menu Start > All Programs > MySQL> MySQL
Server 5> MySQL Command Line Client.
Tampilannya kurang lebih tampak pada gambar berikut ini:

7 I FTI UNISKA
PRAKTIKUM DATABASE

MENDEFINISIKAN DATABASE DAN TABEL

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

Pada perintah di atas, beberapahal yang perlu diperhatikan :


 CREATE TABLE merupakan perintah dasar dari pembuatan table.
 Pelanggan merupakan nama tabel yang akan dibuat.
 id_pelanggan, nm_pelanggan, alamat, telepondan email merupakan nama field.
 Varchardan textmerupakan tipe data dari field
 NOT NULLmerupakan option untuk menyatakan bahwa suatu field tidak boleh kosong.
 PRIMARY KEYmerupakan perintah untuk menentukan field mana yang akan dijadikan
primary key pada tabel.
 5, 10, 30dan 50di belakang tipe data merupakan panjang maksimal dari suatu field.
 Untuk tipe data date dan text (juga date dan blob) panjang karakter maksimalnya tidak
perlu ditentukan.
 Type=InnoDB merupakan tipe tabel MySQL yang mendukung proses transaksi
 Jangan lupa akhiri perintah dengan titik-koma (;)

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

3. Tabel dengan Foreign key


Bentuk umum SQL untuk membuat suatu tabel yang didalamnya terdapat Foreign Key-
secara sederhana sebagai berikut :

CREATE TABLE nama_tabel (


field1 tipe(panjang),
field2 tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key, field_key),
FOREIGN KEY (field_key),
REFERENCES nama_tabel (field_key)
);

Sebagai contoh kita akan membuat tabel berikut :

Nama Tabel : Mahasiswa


No. Nama Field Tipe Data Lebar Null? Kunci
1 nim Char 4 Not Null Primary Key
2 nama_mhs Varchar 50 Not Null
3 alamat Varchar 60 Not Null
4 id_matkul Char 5 Not Null Foreign key

10 I FTI UNISKA
PRAKTIKUM DATABASE

Bentuk umum SQL untuk membuat suatu tabel yang didalamnya terdapat 2 (dua) Foreign
Keysecara sederhana sebagai berikut :

CREATE TABLE nama_tabel (


field1 tipe(panjang),
field2 tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key, field_key),
FOREIGN KEY (field_key),
REFERENCES nama_tabel (field_key)
FOREIGN KEY (field_key),
REFERENCES nama_tabel (field_key)
);

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

4. Mengubah Nama Tabel dan Struktur Tabel


Untuk mengubah nama table dan struktur table dalam database menggunakan perintah
ALTER TABLE
 Mengubah Nama Tabel dengan sintaks :
ALTER TABLE <nama table lama> RENAME TO <nama table baru>;
Contoh :
ALTER TABLE KATEGORI RENAME TO KATEGORIBUKU;

 Menambah kolom dengan sintaks :


ALTER TABLE ADD COLUMN <nama kolom><tipe data>;
Contoh :
ALTER TABLE ADD COLUMN BUKU_SINOPSIS TEXT;

 Mengubah Nama Kolom dengan sintaks :


ALTER TABLE <nama table>
CHANGE<namakolomlama><nama kolom baru><tipe data baru>;
Contoh :
ALTER TABLE BUKU
CHANGE BUKU_ISBN BUKU_ID CHAR (15);

 Menghapus Kolom dengan sintaks :


ALTER TABLE <nama table> DROP COLUMN<nama kolom yang akan dihapus>;
Contoh :
ALTER TABLE BUKU DROP COLUMN BUKU_SINOPSIS;

 Menambah Primary Key dengan sintaks :


ALTER TABLE <nama table> ADD PRIMARY KEY(<nama kolom>);

12 I FTI UNISKA
PRAKTIKUM DATABASE

 Menambah Foreign Key dengan sintaks :


ALTER TABLE <nama table> ADD FOREIGN KEY (<nama kolom>)
REFERENCE<nama table referensi> (<nama kolom referensi>);
 Menghapus Primary Key dengan sintaks :
ALTER TABLE <nama table>DROP PRIMARY KEY ;
 Menghapus Foreign Key dengan sintaks :
ALTER TABLE <nama table> DROP FOREIGN KEY (<nama foreign key>);
 Menambah Indeks dengan sintaks :
ALTER TABLE <nama table> ADD INDEX <nama index> (<nama kolom>);
Contoh :
ALTER TABLE BUKU ADD INDEX idxjudul(buku_judul);

 Menghapus Indeks dengan sintaks :


ALTER TABLE <nama table> DROP INDEX <nama index>;
Contoh :
ALTER TABLE BUKU DROP INDEX idxjudul;

Latihan 1:
 Buatlah Database dengan nama : BUKUDB
 Aktifkan database BUKUDB dan buatlah tabel berikut :

Nama Tabel : Kategori


No. Nama Field Tipe Data Lebar Null? Kunci
1 Kategori_id Int 11 Not Null Primary Key
2 Kategori_nama Varchar 25

Nama Tabel : Pengarang


No. Nama Field Tipe Data Lebar Null? Kunci
1 Pengarang_Id Char 3 Not Null Primary Key
2 Pengarang_nama Varchar 35

13 I FTI UNISKA
PRAKTIKUM DATABASE

Nama Tabel : Penerbit


No. Nama Field Tipe Data Lebar Null? Kunci
1 Penerbit_id Char 4 Not Null Primary Key
2 Penerbit_nama Varchar 50

Nama Tabel : Buku


Tipe
No. Nama Field Lebar Null? Kunci
Data
1 buku_isbn Char 13 Not Null Primary key
2 buku_judul Varchar 75 Not Null
3 penerbit_id Char 4 Not Null Foreign Key
4 buku_tglterbit Date - Not Null
5 buku_jmlhalaman Int 11
6 buku_deskripsi Text -
7 buku_harga Decimal 10,0

Nama Tabel :Link_Buku_Pengarang


Tipe
No. Nama Field Lebar Null? Kunci
Data
1 buku_isbn Char 13 Not Null Primary key dan Foreign Key
2 pengarang_id Char 3 Not Null Primary key dan Foreign Key

Nama Tabel :Link_Buku_Kategori


No. Nama Field Tipe Data Lebar Null? Kunci
1 buku_isbn Char 13 Not Null Primary key dan Foreign Key
2 Kategori_id Int 11 Not Null Primary key dan Foreign Key

14 I FTI UNISKA
PRAKTIKUM DATABASE

MEMANIPULASI DATA

1. Menambah Data ke dalam Tabel


Untuk menambah atau memasukkan baris data ke dalam suatu table menggunakan
perintah INSERT
Sintaks :

INSERT INTO <nama Tabel>


VALUES (<nilai 1>, <nilai 2>,…..);

Contoh :

Untuk menampilkan isi atau suatu table menggunakan perintah SELECT


Sintaks :
SELECT*FROM <nama Tabel>;

Contoh:

2. Mengubah Data dalam Tabel


Data yang sudah tersimpan di dalam suatu table dapat diubah sesuai kebutuhan
menggunakan perintah UPDATE
Sintaks :

15 I FTI UNISKA
PRAKTIKUM DATABASE

UPDATE <nama Tabel>


SET <nama kolom1> = <nilai 1>,
<nama kolom2> = <nilai2>,
……………
Where <kriteri atau kondisi>;

Contoh :

3. Menghapus Data dalam Tabel


Untuk menghapus data yang sudah tidak digunakan lagi dari suatu table menggunakan
perintah DELETE
Sintaks :

DELETE FROM <nama Tabel>


WHERE <kriteria atau kondisi>;

Contoh :

Untuk menghapus semua baris data yang terdapat pada tabelmenggunakan Sintaks

DELETE FROM <nama Tabel>;

Atau

TRUNCATE TABLE <nama Tabel>;

16 I FTI UNISKA
PRAKTIKUM DATABASE

Latihan 2:
 Aktifkan database BUKUDB dan tambahkan baris data berikut kedalam table:

1. Tabel KATEGORI 2. Tabel PENGARANG


KATEGORI_ID KATEGORI_NAMA PENGARANG_ID PENGARANG_NAMA
1 Basis Data ASW Andi Setiawan
2 Desain Grafis BRH Budi Raharjo
3 Jaringan Komputer BTO Beni Tito
4 Pemograman DAR Dewi Aulia Raharjo
5 Web dan Internet ERD Erik Rusdianto
6 Office Application ERK E Rosdiana K
FDY Fredi Hidayat
3. Tabel PENERBIT GZL Abdul Ghozali

PENERBIT_ID PENERBIT_NAMA HND Hasanudin


PB01 Angkasa Raya HNF Ahmad Hanafi
PB02 Cahaya Ilmu Persada IGN Iwan Gunardi
PB03 Sinar Ilmu Perkasa IHR Imam Heryanto
PB04 Gramedia TTK Totok Triwibowo
PB05 Sinar Raya
PB06 Informatika
PB07 Tiga Sekawan
PB08 Cipta Ilmu

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

BUKU_ISBN PENGARANG_ID BUKU_ISBN PENGARANG_ID


222-34222-1-0 ASW 888-96771-3-0 DAR
222-34222-1-1 DAR 888-96771-3-1 BRH
666-96771-2-0 ERD 888-96771-3-2 ASW
666-96771-2-0 ERK 888-96771-3-3 BRH
666-96771-2-0 FDY 888-96771-3-4 IGN
666-96771-2-1 ASW 888-96771-3-5 DAR
666-96771-2-1 DAR 979-96446-9-0 IHR

18 I FTI UNISKA
PRAKTIKUM DATABASE

777-76723-5-0 BRH 979-96446-9-1 FDY


777-76723-5-0 DAR 979-96446-9-2 IHR
777-76723-5-1 GZL 979-96446-9-3 TTK
777-76723-5-2 TTK 999-11555-2-0 HNF
777-76723-5-3 HND 999-11555-2-1 ERD
777-76723-5-3 HNF

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

1. Mengenal Perintah SELECT


 Penggunaan Perintah Select untuk menampilkan semua data yang ada dalam table:

SELECT * FROM <nama table>;


Contoh :

 Memilih kolom-kolom yang akan ditampilkan


SELECT <nama kolom1>,<nama kolom2> FROM <nama table>;

Contoh :

 Menyertakan nama database dan nama table pada perintah select


SELECT
<nama table>.<nama kolom>,
<nama table>.<nama kolom>,
<nama table>.<nama kolo>
FROM
<nama database>.<nama table>;

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

3. Menampilkan Data dalam Rentang Tertentu


Nilai rentang dapat diambil dari suatu kolom tertentu, biasanya berupa kolom numerik.
SELECT * FROM <nama table>
WHERE
<nama kolom> BETWEEN <batas awal rentang> AND <batas
akhir rentang>;

4. Membatasi Data Ditampilkan dengan Perintah LIMIT


Untuk menampilkan sejumlah data yang diinginkan, menggunakan perintah LIMIT
SELECT <nama kolom1>,<nama kolom2> FROM <nama table> LIMIT 10;

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;

5. Menggunakan DISTINCT untuk Menghindari Duplikasi Data


Untuk menghindari duplikasi data dengan menampilkam baris data yang bersifat unik
(berbeda satu sama lain) dalam suatu kolom, menggunakan perintah DISTINCT
SELECT DISTINCT <nama kolom> FROM <nama table>;

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

 Pegurutan data dapat dilakukan secara menaik (ascending) dengan menambahkan


kata kunci ASC sebelum ; atau menurun (descending) dengan menambahkan DESC
sebelum ;

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

VIEW : TABEL VIRTUAL


View adalah Objek yang menyimpan hasil query, baik dari satu table atau lebih. Data yang
ditampilkan view diambil dari table-tabel actual yang disertakan dalam perintah select

 View dibuat menggunakan perintah CREATE VIEW .Sintaks


CREATE VIEW v_buku AS
SELECT
A.buku_ISBN,
A.buku_judul,
B.penerbit_nama,
A.buku_jmlhalaman,
A.buku_tglterbit,
A.buku_Harga
FROM
Buku A,
Penerbit B
WHERE
A.Penerbit_ID = B.Penerbit_ID
ORDER BY
A.buku_judul;

 Melihat daftar nama dan tipe data kolom yang terkandung dalam view. sintaks
DESCRIBE v_buku;

 Mengubah view dengan ALTER VIEW. sintaks

ALTER VIEW v_buku AS


SELECT
A.buku_ISBN,
A.buku_judul,
B.penerbit_nama,
A.buku_jmlhalaman
FROM
Buku A,
Penerbit B
WHERE
A.Penerbit_id = B.Penerbit_id
ORDER BY
A.buku_judul;

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

SELECT AVG (buku_harga)


FROM Buku
WHERE Penerbit_Id = ‘PB06’ ;

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;

Dapat mengubah pemisah dengan menyatakan klausa SEPARATOR

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 Quote () untuk mengapit string menggunakan tanda petik


SET @STR = quote (‘MySQL’);
SELECT @ STR;

 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

PROSEDUR DAN FUNGSI


Merupakan objek database yang berisi runtunan statemen atau perintah yang dibuat untuk memenuhi
kebutuhan –kebutuhan khusus tertentu. Sekali dibuat, prosedur dan fungsi dapat digunakan secara
berulang.

1. Membuat dan Mengeksekusi Prosedur


Dalam contoh ini, Prosedur akan melakukan proses INSERT ke table PENERBIT. Nilai yang akan
dimasukkan kedalam kolom PENERBIT_ID dan PENERBIT_NAMA akan dijadikan sebagai parame-
ter. Sintaks
DELIMITER //
CREATE PROCEDURE insert_penerbit
(id Char (4), nama Varchar (50))
BEGIN
INSERT INTO PENERBIT (PENERBIT_ID,
PENERBIT_NAMA)
VALUES (id,nama);
END;
//

Selanjutnya, coba eksekusi prosedur diatas menggunakan kode berikut:

CALL insert_penerbit (‘PB09’, ‘SINAR TERANG’);

2. Membuat dan Mengeksekusi Fungsi


Berikut ini contoh fungsi sederhana yang berguna untuk mengetahui harga dari suatu buku. Da-
lam contoh ini parameter yang akan dilewatkan ke dalam fungsi adalah ISBN.
DELIMITER //
CREATE FUNCTION check_harga (isbn CHAR (13))
RETURNS DECIMAL (10,0)
BEGIN
 mendeklarasikan variable
DECLARE harga DECIMAL (10,0);

 seleksi data dan menampung hasilnya ke dalam variable


SELECT BUKU_HARGA INTO harga
FROM BUKU
WHERE BUKU_ISBN = isbn ;

 mengembalikan nilai hasil proses


RETURN harga;
END;
//

30 I FTI UNISKA
PRAKTIKUM DATABASE

Setelah dibuat, fungsi diatas dapat kita eksekusi menggunakan kode berikut :

SELECT check_harga (‘222-34222-1-0’);

Dalam pemanggilan fungsi diizinkan untuk menggunakan alias :


SELECT check_harga (‘222-34222-1-0’) as HARGA BUKU;

Fungsi juga dapat langsung digunakan dalam ekspresi seperti dalam contoh perhitungan :
SET total = check_harga (‘222-34222-1-0’) * 2;

3. Menghapus Prosedur dan Fungsi


Untuk menghapus prosedur dan fungsi dari dalam database, gunakan :
DROP PROCEDURE select_penerbit;

DROP FUNCTION check_harga;

4. Menampilkan Daftar Prosedur dan Fungsi dalam Database


Untuk menampilkan seluruh Prosedur yang tersimpan dalam Database beserta property dan in-
formasi metadata lainnya, sintaks :
SHOW PROCEDURE STATUS ;

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 ;

5. Deklarasi Variabel dalam Prosedur dan Fungsi


Untuk menampung nilai sementara dari proses yang dilakukan didalam prosedur atau fungsi
(mendeklarasikan variable) menggunakan perintah DECLARE, sintaks :
DELIMITER / /
CREATE FUNCTION check_harga (isbn CHAR (13))
RETURNS DECIMAL (10,0)
BEGIN
 Mendeklarasikan variable
DECLARE harga DECIMAL (10,0);
 Seleksi data menampung hasilnya kedalam variable
SELECT BUKU_HARGA INTO harga
FROM BUKU WHERE BUKU_ISBN = isbn;
 Mengembalikan nilai hasil proses
RETURN harga;
END; //

31 I FTI UNISKA
PRAKTIKUM DATABASE

6. Kontrol Alur dalam Prosedur dan Fungsi


 Menggunakan Perintah IF
Bentuk umum penggunaan IF dalam MySQL :
DELIMITER / /
CREATE FUNCTION get_penerbit (isbn CHAR (13))
RETURNS VARCHAR (50)
BEGIN
DECLARE namapenerbit VARCHAR (50);
SELECT B.PENERBIT_NAMA INTO namapenerbit
FROM
BUKU A, PENERBIT B
WHERE
A. PENERBIT_ID = B. PENERBIT_ID AND
A. BUKU_ISBN = isbn ;
IF namapenerbit IS NULL THEN
SET namapenerbit = ‘’ ;
END IF;

RETURN namapenerbit;
END;
//

Kita dapat mengeksekusi fungsi tersebut dengan menulis kode berikut :


SELECT get_penerbit (‘222-34222-1-1’);

 Menggunakan Perintah CASE


Contoh menerapan Case dapat dilihat pada fungsi dibawah ini :

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

WHEN 6 THEN SET bulan = ‘Juni’;


WHEN 7 THEN SET bulan = ‘Juli’;
WHEN 8 THEN SET bulan = ‘Agustus’;
WHEN 9 THEN SET bulan = ‘September’;
WHEN 10 THEN SET bulan = ‘Oktober’;
WHEN 11 THEN SET bulan = ‘November’;
WHEN 12 THEN SET bulan = ‘Desember’;
END CASE;

RETURN CONCAT (
CONVERT (dd,CHAR), ‘ ‘ , Bulan, ‘ ‘ ,
CONVERT (yy,CHAR)
);
END;
/ /

Contoh kode yang menunjukkan penggunaan fungsi diatas :


SELECT
BUKU_ISBN,
BUKU_JUDUL,
UBAH_FORMAT_TANGGAL (BUKU_TGLTERBIT),
BUKU_HARGA
FROM BUKU;

 Penggulangan Statemen Menggunakan Perintah LOOP

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

Kita dapat memeriksanya dengan menuliskan sintaks berikut :


SELECT jumlahkan (5);

 Penggulangan Statemen Menggunakan Perintah WHILE


DELIMITER //
CREATE FUNCTION jumlahkan WHILE (n INT)
RETURNS INT (11)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE total INT DEFAULT 0;
WHILE (i <= n) DO
SET total = total + i;
SET i = i + 1;
END WHILE;

RETURN total;
END;
//

Kita dapat memeriksanya dengan menuliskan sintaks berikut :

SELECT jumlahkan (5);

Hasil yang akan diperoleh persis seperti pada fungsi sebelumnya

 Penggulangan Statemen Menggunakan Perintah REPEAT

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

 Mengehentikan dan Melanjutkan Pengulangan


Proses Pengulangan di paksa untuk berhenti atau untuk diteruskan menggunakan state-
men perloncatan. Berikut ini contoh lain yang akan menunjukkan penggunaan perintah
LEAVE dan ITERATE dalam MySQL
DELIMITER //
CREATE PROCEDURE tampilkan_bil_genap (n INT)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE str VARCHAR (200) DEFAULT ‘’;
Next : Loop
SET i = i + 1;
IF (i mod 2 = 1) THEN
ITERATE next ;
END IF;
SET str = CONCAT (str, CONVERT (i , CHAR),’ ‘);
END LOOP next;
SELECT str AS ‘Bilangan Genap’ ;
END;
//

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

CALL tampilkan_bil_genap (50);

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

1. Mempersiapkan Software yang dibutuhkan


 MySQL : software ini digunakan untuk menyimpan database yang akan digunakan
 Apache : Software ini digunakan sebagai webserver dari aplikasi yang akan kita buat
 PHP : softeare ini digunakan untuk melakukan interpretasi dari kode PHP menjadi
kode HTML sehingga hasilnya dapat ditampilkan dalam web browser
 KOnfigurasi Apache
Setelah software Apache terpasang di computer, lakukan konfigurasi menggunakan
langkah-langkah berikut :
1. Klik tombol Start > Program > Apache HTTP Server .2.2 > Configure Apache Server
2. Pilih Edit the Apache httpd.conf Configuration File.
3. Tentukan nilai untuk DocumentRoot;
DocumentRoot : “C:/Apache2.2/htdocs”
Folder yang dituliskan diatas akan berperan sebagai tempat meletakkan file-file kode
PHP yang dibuat.
4. Ubah nilai untuk DirectoryIndex menjadi :
DirectoryIndex index.php index.html
5. Carilah bagian <IfModule mimie_Module> (baris 358), tepatnya pada tekx berikut :
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

Tambahkan teks dibawah ini kedalamnya :

AddType application/x-httpd-php .php


AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
AddType application/x-httpd-php-source .phps

6. Simpan Perubahan yang telah dilakukan didalam file httpd.conf.


7. Restart Apache menggunakan Start > Programs > Apache HTTP Server 2.2 > Contror
Apache Server > Restart

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.

2. Mempersiapkan Direktori Kerja


Buat direktori dengan nama buku-mysql di dalam direktori htdocs di Apache, sehingga men-
jadi :
C:\Apache2.2\htdocs\buku-mysql
 Membuat Layout menggunakan HTML dan CSS
Berikut daftar file yang digunakan untuk keperluan desain :
o Layout.css
o Framelayout.css
o Index.php
 File Layout.css
body,
html {
margin:0;
padding:0;
color:#000;
background:#a7a09a;
font:12px Verdana, Arial, Helvetica, sans-serif;
}

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 &copy; 2011 - Toko Buku
PRAKTIKUM DATABASE

</div>
<div id="sidebar">
<h2>Kategori Buku</h2>
<?php include("kategori.php"); ?>
</div>
<div id="footer">Copyright &copy; 2011 - Toko Buku Online
</div>
</div>
</body>
</html>

3. Menulis Kode Program menggunakan PHP


Berikut ini daftar file yang akan kita buat pada tahap ini :
o Dbconn.php
o Fungsi.php
o Welcome.php
o Kategori.php
o Daftarbuku.php
o Detailbuku.php
o Cari.php
o Pesan.php
o Tentangkami.php
o Kontak.php
 File Dbconn.php
<?php
$host = "localhost";
$dbusername = "root";
$dbpassword = "root";
$dbname = "tokodb";

$link = mysqli_connect($host, $dbusername, $dbpassword, $dbname);

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>

<h2>Selamat Datang di Toko Buku Online</h2>

<p>Toko Buku Online adalah penyedia buku-buku komputer ter-


lengkap dengan berbagai macam judul dan kategori.
Harga yang ditawarkan di sini merupakan harga diskon, sampai
30%. Anda dapat melihat detail dari masing-masing buku
dan memesannya secara langsung. Buku yang dipesan akan sampai
ke rumah Anda paling lama 3 hari dari waktu pemesanan (tergan-
tung lokasi Anda).

</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";

$result = mysqli_query($link, $query);


if ($result) {
?>
<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> 44 I FTI UNISKA
<td align="left"><?php echo $row[1];?></td>
<td align="left"><?php echo $row[2];?></td>
PRAKTIKUM DATABASE

<tr>
<td><?php echo $row[0];?></td>
<td align="left"><?php echo $row[1];?></td>
<td align="left"><?php echo $row[2];?></td>

<td align="right"><?php echo "Rp ". num-


ber_format($row[3],0,'','.') . ",-";?></td>
<td><a href="detailbuku.php?isbn=<?php echo
$row[0];?>">Lihat Detail</a></td>
</tr>
<?php
$indeks++;
}
?>
</table>
<?php
mysqli_free_result($result);
}
?>

</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'";

$result = mysqli_query($link, $query);


if ($result) {
list($buku_isbn, $buku_judul, $pengarang_nama, $pen-
erbit_nama, $buku_harga, $buku_tglterbit, $buku_jmlhalaman,
$buku_deskripsi) =
mysqli_fetch_array($result);
?>
<table class="buku">
<tr>
<td width="200" align="left">ISBN</td>
<td width="490" align="left"><strong><?php echo
$buku_isbn; ?></strong></td>
</tr>
<tr>
<td width="200" align="left">Judul</td>
<td width="490" align="left"><strong><?php echo
$buku_judul; ?></strong></td>
</tr>
<tr>
<td width="200" align="left">Pengarang</td>
<td width="490" align="left"><strong><?php echo
$pengarang_nama; ?></strong></td>
</tr>
<tr>
<td width="200" align="left">Penerbit</td>
<td width="490" align="left"><strong><?php echo
$penerbit_nama; ?></strong></td>
</tr>
<tr>
<td width="200" align="left">Harga</td>
<td width="490" align="left">
<strong><?php echo $buku_harga; ?></strong></td>
</tr>
<tr>
<td width="200" align="left">Tanggal Terbit</td>
<td width="490" align="left">
$buku_tglterbit; ?></strong></td>
</tr> 46 I FTI UNISKA
<tr>
<td width="200" align="left">Jumlah Hala-
man</td>
<td width="490" align="left"><strong><?php echo
PRAKTIKUM DATABASE

<strong><?php echo $buku_tglterbit; ?></strong></td>


</tr>
<tr>
<td width="200" align="left">Jumlah Halaman</td>
<td width="490" align="left"><strong>
<?php echo $buku_jmlhalaman; ?></strong></td>
</tr>
<tr>
<td width="200" align="left"
valign="top">Deskripsi</td>
<td width="490" align="left">
<?php echo $buku_deskripsi; ?></td>
</tr>
</table>
<?php
mysqli_free_result($result);
}
?>

<p><input type="button" value="Pesan" on-


Click="document.location.href='pesan.php'"></p>

</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

$query = "select distinct


a.buku_isbn,
a.buku_judul,
b.penerbit_nama,
a.buku_harga
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 ".
$str;

$result = mysqli_query($link, $query);


if ($result) {
?>
<table class="buku">
<tr> 48 I FTI UNISKA
<th width="50">ISBN</th>
<th width="280">Judul</th>
<th width="150">Penerbit</th>
PRAKTIKUM DATABASE

?>
<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>

<td align="right"><?php echo "Rp ". num-


ber_format($row[3],0,'','.') . ",-";?></td>
<td><a href="detailbuku.php?isbn=<?php echo
$row[0];?>">Lihat Detail</a></td>
</tr>
<?php
$indeks++;
}
?>
</table>
<?php
mysqli_free_result($result);
}
?>

</body>
</html>

 Pesan.php
<html>
<head>

<title>Toko Buku Online</title>


<link href="framelayout.css" rel="stylesheet" type="text/css"
/>
</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>

<p>Setelah transfer, silahkan konfirmasi ke kami. Format SMS


untuk konfirmasi adalah sebagai berikut:</p>
<p>
<em><strong>KONFIRMASI [ISBN1] [JUMLAH BUKU1], [ISBN2]
[JUMLAH BUKU2]; [JUMLAH UANG]</strong></em>
</p>
<p>Contoh:</p>
<p><strong>KONFIRMASI [888-96771-3-5] [1], [222-34222-1-1] [1];
[105000]</strong></p>
<p>lalu kirim ke <strong>085391072697</strong>, atau konfirmasi
melalui telepon di nomor <strong>(0511) 34599</strong></p>
<br /><br />

<p><em><strong>Catatan:</strong> Buku yang dipesan akan sampai


ke rumah Anda paling lama 3 hari dari waktu pemesanan (tergan-
tung lokasi Anda)</em></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>

<p>Pemesanan dapat dilakukan melalui SMS dan telepon. 50 I FTI UNISKA


Lihat <a href="pesan.php" target="frmMain">Prosedur Pemesan-
an</a> untuk mengetahui lebih detail.</p>

</body>
PRAKTIKUM DATABASE

<p>Pemesanan dapat dilakukan melalui SMS dan telepon.


Lihat <a href="pesan.php" target="frmMain">Prosedur Pemesan-
an</a> untuk mengetahui lebih detail.</p>

</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

Anda mungkin juga menyukai