100% menganggap dokumen ini bermanfaat (1 suara)
517 tayangan

Modul Sistem Basis Data

Ringkasan dokumen tersebut adalah: 1. Dokumen tersebut memberikan pedoman dan petunjuk pelaksanaan praktikum sistem basis data, mencakup tata tertib dan petunjuk pelaksanaan praktikum serta modul pembuatan database dan tabel.

Diunggah oleh

Reynaldy Nugroho
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
517 tayangan

Modul Sistem Basis Data

Ringkasan dokumen tersebut adalah: 1. Dokumen tersebut memberikan pedoman dan petunjuk pelaksanaan praktikum sistem basis data, mencakup tata tertib dan petunjuk pelaksanaan praktikum serta modul pembuatan database dan tabel.

Diunggah oleh

Reynaldy Nugroho
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 73

TATA TERTIB & PETUNJUK PELAKSANAAN PRAKTIKUM

SISTEM BASIS DATA

A. TATA TERTIB
1. Praktikan diharapkan hadir tepat pada waktunya. Keterlambatan lebih dari 20 menit,
praktikan tidak boleh mengikuti praktikum dan dianggap tidak hadir (alpa).
2. Praktikan wajib duduk dan menggunakan komputer pada tempat/komputer yang telah
ditentukan (tidak boleh pindah dari satu komputer ke komputer lain selama periode
pelaksanaan praktikum).
3. Mengisi daftar hadir sebagai bukti mengikuti kegiatan praktikum.
4. Praktikan wajib memelihara dan menjaga peralatan yang ada diruang komputer.
5. Kerusakan/kehilangan yang disebabkan oleh praktikan merupakan tanggung jawab
praktikan.
6. Praktikan harus membawa media penyimpanan (CD/DVF/media penyimpanan lainnya
yang bebas dari virus).
7. Praktikan tidak diperkenankan memakai T-SHIRT dan sandal dalam jenis apapun selama
praktikum berlangsung.
8. Selama praktikum berlangsung, praktikan tidak diperkenankan keluar dari ruang
komputer, kecuali bila ada keperluan yang sangat penting dan tidak dapat pula ditunda.
9. Apabila praktikan akan meninggalkan ruang praktikum maka praktikan dapat meminta izin
terlebih dahulu kepada coordinator praktikum.
10. Selama praktikum berlangsung tidak diperkenankan merokok, makan dan minum.
11. Praktikan harus memberikan laporan praktikum paling lambat 1 minggu setelah praktikum
modul terakhir selesai.
12. Ketentuan lain yang belum tercantum, tetapi kemudian dipandang perlu akan ditetapkan
kemudian.

Praktikum Sistem Basis Data 2015/2016

B. PETUNJUK PELAKSANAAN PRAKTIKUM


1. Setiap praktikan harus membawa segala sesuatu keperluan praktikum, seperti modul
praktikum, alat tulis, dan media penyimpanan.
2. Praktikan harus mengikuti keseluruhan praktikum, jika tidak hadir tanpa alasan yang jelas
satu kali atau lebih maka dianggap mengundurkan diri.
3. Bagi praktikan yang tidak dapat mengikutijadwal praktikum yang telah ditentukan dengan
alasan sakit (melalui surat keterangan dokter), harus memberitahukan kepada asisten/
koordinator praktikum pada saat jadwal praktikumnya dilaksanakan.
4. Praktikan yang karena sesuatu hal tidak dapat mengikuti praktikum maka yang bersangkutan
diwajibkan untuk menyelesaikan tugas latihan dan modul yang telah ditetapkan secara
mandiri.
5. Sebelum praktikan dimulai, praktikan harus memahami teori dan petunjuk pelaksanaan
praktikum.
6. Bila praktikan mengalami kesulitan pada saat pelaksanaan praktikum, praktikan dapat
bertanya kepada asisten/dosen pembimbing praktikum.
7. Setiap praktikan wajib membuat laporan praktikum dengan ketentuan sebagai berikut:
a. Laporan dibuat dalam bentuk Hard Copy dan Soft Copy dengan media penyimpanan pada
CD/DVD yang bebas virus, diberi label Nama, NPM.
b. Keterlambatan penyerahan laporan praktikum akan mendapatkan pengurangan nilai.

Praktikum Sistem Basis Data 2015/2016

MODUL I
Membuat Database dan Tabel
1.1 Tujuan
Dengan menggunakan database MySQL akan mampu menciptakan sebuah database
relasional yang terpusat pada sebuah database server, sehingga para mahasiswa akan mampu
untuk mengembangkan kemampuannya dalam membangun sebuah sistem basis data yang
berbasis Client/Server.
1.2 Teori Singkat MySQL
MySQL merupakan sebuah database server yang dapat berjalan pada beberapa sistem
operasi. Pada awalnya distro MySQL dikembangkan dan dijalankan hanya pada Sistem operasi
LINUX saja, akan tetapi dengan perkembangannya sekarang distro MySQL dapat juga dijalankan
pada beberapa sistem seperti Windows 9X,2000,NT, maupun pada computer solaris.
Database dengan nama MySQL atau dibaca (mai es kuel) ini dapat membuat berpuluhpuluh bahkan beratus-ratus user untuk diolah didalamnya. Karena berupa database server maka
program ini telah memiliki sebuah sistem keamanan yang dipercaya bagi para penggunanya.
Database MySQL memiliki lisensi resmi dari GNU/GPL (General Public License), sebagai
pengguna anda dapat menggunakan secara bebas dan tanpa harus bayar.
Perintah yang digunakan dalam MySQL adalah perintah SQL (Struktur Query Language)
yaitu berupa bahasa permintaan yang terstruktur yang telah distandarkan oleh pihak ANSI/ISO.
Perintah-perintah yang digunakan dalam membangun sebuah database dan tabel adalah:
1.2.1 Elemen SQL
Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, dan fungsi
bawaan.
1. Pernyataan
Pernyataan adalah perintah SQL yang meminta sesuatu tindakan kepada DBMS. SQL memiliki
kira-kira 30 pernyataan. Beberapa pernyataan dasar SQL dapat dilihat pada tabel berikut :
Pernyataan

Keterangan

ALTER

Mengubah struktur tabel

COMMIT

Mengakhiri sebuah eksekusi transaksi

CREATE

Menciptakan tabel, indeks atau pandangan

DELETE

Menghapus baris pada tabel

Praktikum Sistem Basis Data 2015/2016

DROP

Menghapus tabel, indeks atau pandangan


Menugaskan hak terhadap basis data kepada pengguna atau

GRANT

grup pengguna

INSERT

Menambahkan sebuah baris pada tabel

REVOKE

Membatalkan hak terhadap basis data


Mengembalikan ke keadaan semula sekiranya suatu transaksi

ROLLBACK

gagal dilaksanakan

SELECT

Memilih baris dan kolom pada tabel

UPDATE

Mengubah nilai pada sebuah baris

2. Nama
Nama digunakan sebagai identitas bagi objek-objek pada DBMS. Contoh objek pada DBMS adalah
tabel, kolom dan pengguna.

3. Tipe Data
Setiap data memiliki tipe data. Berikut ini adalah tipe data dalam MySQL :
3.1 Tipe data untuk numerik :
Tipe

TINYINT

Keterangan

Range Nilai

Nilai integer yang sangat

Signed : -128 s.d. 127Unsigned : 0

kecil

s.d. 255
Signed

SMALLINT

Nilai integer yang kecil

dengan

nilai

-32768

s.d.

32767Unsigned : 0 s.d. 65535


Signed

Integer

-8388608

8388607Unsigned

MEDIUMINT

medium

16777215

Tipe

Keterangan

Range Nilai

s.d.
s.d.

Praktikum Sistem Basis Data 2015/2016

Signed
Integer
INT

dengan

nilai

standar

-2147483648

s.d.

2147483647Unsigned : 0 s.d.
4294967295
Signed : -9223372036854775808
s.d.
9223372036854775807Unsigned

BIGINT

FLOAT

Integer dengan nilai besar

: 0 s.d. 18446744073709551615

Bilangan desimal dengan

minimum

single-precission

38maksimum 3.402823466e+38

1.175494351e-

minimum

2.2205738585072014e-

DOUBLE

Bilangan desimal dengan

308maksimum

double-precission

1.7976931348623457e+308

Bilangan float (desimal)


yang dinyatakan sebagai
string. M adalah jumlah
digit yang disimpan dalam
suatu kolom, N adalah
jumlah digit dibelakang
DECIMAL(M,D)

koma

Tergantung pada nilai M dan D

Keterangan : Signed dan Unsigned adalah atribut untuk tipe data numeric
a.

Signed : data yang disimpan dalam suatu kolom dapat berupa data negatif dan positif.

b.

Unsigned : digunakan agar data yang dimasukkan bukan data negatif (>=0). Tipe data float
tidak dapat dinyatakan dengan unsigned.

3.2 Tipe data string :


Ukuran
Tipe

Keterangan

Maksimum

String karakter dengan panjang yang tetap,


CHAR(n)

yaitu n

1 M byte

Praktikum Sistem Basis Data 2015/2016

String karakter dengan panjang yang tidak


VARCHAR(n)

tetap, maksimum n.

1 M byte

BLOB (Binary Large Object) yang sangat


TINYBLOB

kecil

28-1 byte

BLOB

BLOB berukuran kecil

216-1 byte

MEDIUMBLOB

BLOB berukuran sedang

224-1 byte

LONGBLOB

BLOB berukuran besar

232-1 byte

TINYTEXT

String teks yang sangat kecil

28-1 byte

TEXT

String teks berukuran kecil

216-1 byte

MEDIUMTEXT

String teks berukuran medium(sedang)

224-1 byte

LONGTEXT

String teks berukuran besar

232-1 byte

Enumerasi, kolom dapat diisi dengan satu


ENUM

SET

member enumerasi

65535 anggota

Himpunan, kolom dapat diisi dengan

64

beberapa nilai anggota himpunan

himpunan

anggota

3.3 Tipe data tanggal dan jam :


Tipe

Range

Format

1000-01-01 s.d. 9999-12DATE

31

0000-00-00

TIME

-832:59:59 s.d. 838:59:59

00:00:00

1000-01-01 00:00:00 s.d.


DATETIME

9999-12-31 23:59:59

0000-00-00 00:00:00

4. Konstanta
Konstanta menyatakan nilai yang tetap.

Praktikum Sistem Basis Data 2015/2016

5. Ekspresi
Ekspresi adalah segala sesuatu yang menghasilkan nilai. Ekspresi digunakan untuk menghitung
nilai. Simbol-simbol yang dapat digunakan pada ekspresi aritmatika.
Simbol

Keterangan

Perkalian

Pembagian

Penjumlahan

Pengurangan

6. Aggregate Functions (Fungsi Agregat)


Fungsi adalah sebuah subprogram yang menghasilkan suatu nilai jika dipanggil. Fungsi agregat
adalah fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan summary,
fungsi statistik standar yang dikenakan pada suatu tabel atau query.
a.

AVG(ekspresi)
Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari suatu tabel atau
ekspresi. Ekspresi dalam fungsi AVG umumnya adalah nama kolom. Kolom yang dicari nilai
rata-ratanya adalah kolom dengan tipe data numerik.

b.

COUNT(x)
Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu kolom dari suatu tabel.
X adalah nama kolom yang ingin dicari jumlah barisnya.

c.

MAX(ekspresi)
Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari suatu tabel. Kolom
yang dicari nilai terbesarnya memiliki tipe data numerik.

d.

MIN(ekspresi)
Fungsi ini digunakan untuk mencari nilai terkecil dari suatu kolom dari suatu tabel. Kolom yang
dicari nilai terkecilnya memiliki tipe data numerik.

e.

SUM(ekspresi)
Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom pada suatu tabel.

1.2.2 Instalasi MySQL dengan XAMPP

XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam satu buah
paket. Dengan meningstall XAMPP maka tidakperlu lagi melakukan instalasi dan konfigurasi web
server apache, PHP dan MySQL secara manual. XAMPP akan menginstalasi dan

Praktikum Sistem Basis Data 2015/2016

mengkonfigurasikannya secara otomatis atau auto konfigurasi. Versi terbaru XAMPP bisa
didownload pada http://www.apachefriends.org/en/xampp-window.html.
Untuk menginstalasi xampp dengan melakukan tahapan berikut:
1. Jalankan file xampp-win32-1.4.12-installer.exe (atau versi lainnya), maka akan muncul
dialog instalasi memilih Bahasa yang ingin digunakan saat instalasi:

2. Pilih OK, kemudian munculdialog instalasi sebagai berikut:

3. Klik Maju, kmudian tampil dialog perihal lisensi, klik saya setuju untuk melanjutkan.

Praktikum Sistem Basis Data 2015/2016

4. Selanjutnya akan muncul pemilihan tempat menginstalasi program, secara default terdapat
pada drive C, tetapi bisa sajakita pindahkan sesuai keinginan dengan mengklik tombol
browse.

Praktikum Sistem Basis Data 2015/2016

5. Jika sudah menentukan tempat instalasi (destination folder) klik instal dan tunggu sampai
proses selesai.

6. Jalankan XAMPP Control Panel yang ada di desktop. Atau anda juga dapat menjalankan
XAMPP Control Panel dari menu Start -> All Programs -> apachefriends -> xampp ->
xampp control panel. Beri centang pada kolom service untuk Apache dan MySQL, setelah
itu klik Start pada actions untuk service yang diakifkan sehingga tombol start berubah menjadi
Stop.

Praktikum Sistem Basis Data 2015/2016

10

7. Untuk memanggil MySQL bisa melalui Command Prompt. Dengan memasukan perintah:
-

cd c:\xampp\mysql\bin
setelah itu klik enter dan ketikkan

mysql u root p
setelah itu klik enter

1.3 DDL (DATA DEFINITION LANGUAGE)


DDL (Data Definition Language), adalah Bahasa yang memiliki kemampuan untuk
mendefinisikan data yang berhubungan dengan pembuatan, perubahan penghapusan objek
didalam database, seperti tabelindex, dan lain sebagainya.
1.3.1 Langkah Praktikum
Studi Kasus:
Mengimplementasikan DDL pada ERD/Relasi tabel toko online sebagai berikut:

Praktikum Sistem Basis Data 2015/2016

11

barang
kategori
kd_kategori
kategori

PK

Pelanggan
kd_pemesan
nama
alamat
kota
kd_pos
negara
no_telp
email
kd_propinsi
status_pesan

kd_barang
kd_kategori
nama_barang
file_gambar
harga
keterangan
stok

PK
FK

PK

pesan

FK

no_pesan
kd_pemesan
tanggal
jam
status_bayar
unik_transfer

PK
FK

detail_pesan
id_pesan
no_pesan
kd_barang
jumlah

PK
FK
FK

propinsi
kd_propinsi
nama_propinsi
ongkos_kirim

PK

1. PERINTAH CREATE/PEMBUATAN
1)

CREATE DATABASE
Syntax:
CREATE DATABASE namadatabase;
Namadatabase tidak boleh mengandung spasi dan tidak boleh memiliki nama yang sama
antar database. Berikut ini contoh perintah untuk membuat database dengan nama
tokoonline:

Syntax tambahan: untuk menampilkan daftar nama database yang ada pada mysql
menggunakanperintah:
SHOW DATABASES;
Berikut ini perintah untuk menggunakan database dengan nama tokoonline:
USE namadatabase;

2) CREATE TABLE
Sebelum membuat suatu tabel, terlebih dahulu harus memilih salah satu database
sebagai database aktif yang akan digunakan untuk menyimpan tabel-tabel dengan
menggunakan syntax:
CREATE TABLE namatabel
(Field1 TipeData1,

Praktikum Sistem Basis Data 2015/2016

12

Field2 TipeData 2);


Namatabel tidak boleh mengandung spasi (space). Field1 dan TipeData1 merupakan
nama kolom pertama dan tipe data untuk kolom pertama. Jika ingin membuat tabel
dengan kolom lebih dari satu, maka setelah pendefinisian tipe data sebelumnya diberi
tanda koma (,). Berikut ini periintah untuk membuat tabel dengan nama kategori:

Syntax tambahan:
Untuk menampilkan daftar nama tabel yang ada pada database yang sedang
aktif/digunakan (dalam hal ini database tokoonline):
SHOW TABLES;
Seperti berikut ini:

Untuk menampilkan deskripsi tabel (dalam hal ini kategori) syntaxnya adalah:
DESC namatabel;

2. MEMBUAT VALIDASI DATA


Validasi data adalah bentuk penyaringan data yang dimasukkan kedalam tabel dengan
ketentuan-ketentuan tertentu. Bentuk validasi ini hampir sama dengan validasi pada sebuah
pemrograman, akan tetapi disini hanya digunakan untuk pengecekan data yang masuk ke dalam
tabel. Jadi hanya data yang memenuhi kriteria validasi yang akan masuk ke dalam tabel.
Bentuk penulisan dengan menambahkan fungsi ENUM pada sql pembuatan tabel.
CREATE TABEL nama_tabel(kolom_1 type(length).,kolom_2 ENUM(data1,,data_n));

Praktikum Sistem Basis Data 2015/2016

13

Memasukkan data pada tabel tersebut, contoh:

Mysql>

INSERT

INTO

pelanggan

VALUES

(qqw123,Anita,P,Jl.

Cimanuk

No.45,3,44100,083827439999,[email protected]);
INSERT

INTO

pelanggan

VALUES

(qq7769,Fathya,P,Jl.

Bratayudha,3,44100,089999000876,[email protected]);
INSERT

INTO

pelanggan

VALUES

(334dd1,Fikri,O,Wanaraja,3,44100,083222111333,[email protected]);

Setelah melakukan input data, lihat apa yang akan terjadi. Data jenis kelamin untuk fikri tidak ada,
dalam hal ini berarti kolom tersebut hanya mengijinkan data masuk antara P dan L.
3. PERINTAH DROP/PENGHAPUSAN
1.

DROP DATABASE
Syntax:
DROP DATABASE namadatabase;
Data yang akan dihapus sesuai dengan nama database. Berikut ini perintah untuk
menghapus database dengan nama tokoonline:

2. DROP TABLE
Syntax:
DROP TABLE namatabel;
Tabel yang akan dihapus sesuai dengan nama tabel, berikut ini perintah untuk
menghapus tabel dengan nama pelanggan:

Praktikum Sistem Basis Data 2015/2016

14

4. PERINTAH ALTER
Perintah ALTER digunakan untuk membuat suatu perubahan struktur pada table:
ALTER TABLE pelanggan
ADD Negara VARCHAR(25) NOT NULL;

5. MENDEFINISIKAN NULL/NOT NULL


Syntax:
CREATE TABLE namatabel
(Field1 TipeData1 NOT NULL,
Field2 TipeData2);

6. MENDEFINISIKAN NILAI DEFAULT


Nilai default adalah nilai yang otomatis diberikan oleh sistem untuk suatu kolom ketika ada
penambahan baris baru, sementara niilai pada kolom tersebut tidak diisi oleh pengguna.
Syntax:
CREATE TABLE namatabel
(Field1 TipeData1;
Field2 TipeData 2 DEFAULT nilai);

Nilai adalah nilai default dari kolom tersebut.


7. MENDEFINISIKAN PRIMARY KEY PADA TABEL
Terdapat tiga cara untuk mendefinisikan primary key. Berikut ini adalah syntax mendefinisikan
primary key untuk Field1:
CREATE TABLE namatabel
(Field TipeData1 NOT NULL PRIMARY KEY,
Field2 TipeData 2);
Atau
CREATE TABLE namatabel
(Field1 TipeData1,
Field2 TipeData2,
PRIMARY KEY (Field1));
Atau
ALTER TABLE namatabel ADD CONSTRAINT namaconstraint PRIMARY KEY(namakolom);

Praktikum Sistem Basis Data 2015/2016

15

Berikut ini perintah untuk membuat tabel barang dengan mendefinisikan not null dan primary
key untuk kolom kd_barang serta nilai default untuk kolom harga dan stok:

Atau

Atau

8. MENGHAPUS PRIMARY KEY PADA TABEL


Perintah:
Cara 1: Jika primary key dibuat dengan menggunakan alter table:
ALTER TABLE namatabel DROP CONSTRAINT namaconstraint;

Cara 2: Jika primary key dibuat melalui create table:


ALTER TABLE namatabel DROP PRIMARY KEY;

Berikut ini perintah yang digunakan untuk menghapus primary key pada tabel barang:

Praktikum Sistem Basis Data 2015/2016

16

9. MENGHAPUS KOLOM PADA TABEL


Syntax:
ALTER TABLE namatabel DROP namakolom;
Berikut ini perintah untuk menghapus kolom keterangan pada tabel barang:

10. MENAMBAH KOLOM BARU PADA TABEL


Syntax:
ALTER TABLE namatabel ADD field baru tipe;
Namatabel adalah nama tabel yang akan ditambah fieldnya. Field baru adalah nama kolom
yang akan ditambahkan, tipe adalah tipe data dari kolom yang akan ditambahkan. Berikut ini
perintah untuk menambah kolom keterangan dengan tipe data text:

11. MENGUBAH TIPE DATA ATAU LEBAR KOLOM PADA TABEL


Perintah:
ALTER TABLE namatabel MODIFY COLUMN field type;
Namatabel adalah nama tabel yang akan diubah tipe data atau lebar kolomnya. Field adalah
kolom yang akan diubah tipe data atau lebarnya. Tipe adalah tipe data baru atau tipe data
lama dengan lebar kolomyang berbeda. Beriikut ini perintah untuk mengubah tipedata untuk
kolom nama_barang dengan char (30):

12. MENGUBAH NAMA KOLOM


Syntax:
ALTER

TABLE

namatabel

CHANGE

COLUMN

namalamakolom

namabarukolom

tipedatanya;
Namatabel adalah nama tabel yang akan diubah nama kolomnya, namalamakolom adalah
kolom yang akan diganti namanya,namabarukolom adalah nama baru kolom, tipedatanya

Praktikum Sistem Basis Data 2015/2016

17

adalah tipe data dari kolom tersebut. Berikut ini perintah untuk merubah nama kolom
keterangan menjadi deskripsi_barang:

13. MENDEFINISIKAN FOREIGN KEY PADA TABEL


Untuk mendefinisikan foreign key, maka harus dipastikan bahwa tabel dan atribut yang dirujuk
(tabel induk dari foreign key) sudah didefinisikan terlebih dahulu. Syntax:
CREATE TABLE namatabel
(Field1 Tipedata1,
Field2 Tipedata2,
FOREIGN KEY (Field2) REFERENCES namatabelinduk(namakolominduk) ON UPDATE
CASCADE ON DELETE NO ACTION)

Berikut ini perintah untuk membuat tabel pesan beserta kolom-kolomnya:

Atau:

14. MENGHAPUS FOREIGN KEY


Perintah:
ALTER TBLE namatabel DROP FOREIGN KEY namaconstraint;
Berikut ini perintah untuk menghapus foreign key pada tabel pesan:

Praktikum Sistem Basis Data 2015/2016

18

15. MEMBUAT INDEX


Format untuk membuat index adalah sebagai berikut:
CREATE INDEX [nama_index] ON [database](kolom(panjag-krakter));

Jika kita ingin menggunakan multi index, maka formatnya adalah sebagai berikut:
CREATE

INDEX

[nama_index]

on

[database]([kolom1](panjang_karakter1),

[kolom2](panjang_karakter2));

Untuk menampilkan index, foematnya adalah sebagai berikut:


SHOW INDEX FROM [kolom_yang_di_index];
16. FUNGSI GRANT
Grant adalah perintah khusus pada user atau grup. Grant digunakan untuk menciptakan akun
pengguna. Berikut contoh penggunaan perintah grant:
Misalkan kita akan membuat dua akun pengguna, guest dan admin, yang akan diizinkan
untuk mengakses database A dan mengubah informasi didalamnya. Akun guest akan
mendapatkan hak terbatas, sedangkan admin akan mendapatkan hakk yang sama dengan
root, tetapi hanya untuk database A (bukan untuk seluruh database utama MySQL).
Format sederhana dari perintah GRANT
GRANT [privileges] ON database.*TO[user]@[host] IDENTIFIED BY [password]
Bebereapa hak yang dapat ditetapkan adalah ALL, CREATE, SELECT, INSERT, SHOW
DATABASES, USAGE, GRANT OPTION.
1.3.2 Latihan Praktikum
Lakukan perintah DDL pada semua tabel pada ERD toko online yang terdapat di langkah
praktikum!
1.4 Tugas!
Buatlah contoh implementasi SQL INDEX, GRANT dan DDL pada studi kasus yang
anda tentukan sendiri.
Harus terdapat validasi data, foreign key dan primary key dan semua kolom tidak
boleh kosong (NOT NULL).

Praktikum Sistem Basis Data 2015/2016

19

MODUL 2
MANIPULASI DATA DAN TABEL
2.1 Tujuan
Dengan menggunakan database MySQL akan mampu mengimplementasikan perintahperintah SQL DML.

2.2 DML
Data Language yang kedua adalah DML (Data Manipulation Language), merupakan Bahasa
yang berhubungan dengan proses manipulasi data pada tabel dan record.
1. INSERT
Perintah INSERT digunakan untuk menambahkan baris pada satu tabel. Terdapat dua cara
untuk menambah baris, yaitu:
Cara 1: Menambah baris dengan mengisi data pada setiap kolom:
INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);
Cara 2: Menambah baris dengan hanya mengisi data pada kolom tertentu:
INSERT INTO namatabel (kolom1,kolom2,kolom-n) VALUES (nilai1,nilai2,nilai-n);
Berikut ini perintah untuk menambahkan baris pada tabel kategori:
Cara 1:

Cara 2:

Keterangan:
Jika data bertipe string, date atau time (contoh: kerudung, 2015-17-10) maka pemberian
nilainya diapit dengan tanda petik tunggal ( ) atau petik ganda ( ). Jika bertipe numeric
(2500,400) maka pemberian nilainya tidak diapit tanda petik tunggal maupun ganda.
Cara 3: memasukan beberapa data dalam satu baris syntax mysql.
Contoh:
INSERT INTO kategori VALUES (k003,Sepatu), (k004,Dress),(k005,Accesoris);
2. UPDATE
Perintah UPDATE digunakan untuk mengubah isi data pada satu atau beberapa kolom pada
suatu tabel.
Syntax:

Praktikum Sistem Basis Data 2015/2016

20

UPDATE namatabel SET kolom1=nilai1, kolom2=nilai2[WHERE kondisi];


Perintah dalam tanda [] bersifat opsional untuk mengubah suatu baris dengan suatu kondisi
tertentu. Berikut ini perintah untuk mengubah baris pada tabel kategori dengan data sebagai
berikut:

Contoh 1: mengubah jenis kategori menjadi tas kulit pada kolom kategori dimana kode
kategorinya adalah k001:

Contoh 2: Untuk mengubah seluruh isi kolom kategori syntaxnya adalah:


UPDATE kategori SET kategori=baju;
3. DELETE
Perintah DELETE digunakan untuk menghapus satu baris, baris dengan kondisi tertentu atau
seluruh baris.
Syntax:
DELETE FROM namatabel [WHERE kondisi];
Perintah dalam tanda [] bersifat opsional untuk menghapus suatu baris dengan suatu kondisi
tertentu. Berikut ini perintah untuk menghapus baris pada tabel kategori dengan data sebagai
berikut:

Contoh 1: jika ingin menghapus seluruh baris pada tabel jenis film:

Praktikum Sistem Basis Data 2015/2016

21

Contoh 2: jika ingin menghapus baris kemeja pada kolom kategori maka perintahnya sebagai
berikut:

4. SELECT
Perintah SELECT digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan
dengan tabel lainnya.
a. Menampilkan data untuk sema kolom menggunakan asterisk (*)
Syntax:
SELECT * FROM namatabel;
Berikut perintah untuk menampilkan semua

b. Menampilkan data untuk kolom tertentu


Syntax:
SELECT kolom1, kolom2, kolom-n FROM namatabel;
Berikut ini perintah untuk menampilkan data pada tabel barang dengan kolom yang
ditampilkan adalah kolom nama_barang dan harga:

c. Menampilkan data dengan kondisi data tertentu dengan klausa where


Syntax;
SELECT * FROM namatabel WHERE kondisi;

Praktikum Sistem Basis Data 2015/2016

22

Berikutini perintah untuk menampilkan data pada tabel barang dimana barang tersebut
memiliki kode_kategori k001:

Beberapa operator perbandingan yang dapat digunakan pada klausa WHERE selain =
adalah: > (lebih dari), < (kurang dari), < > (tidak sama dengan), >= (lebih dari atau sama
dengan), <= (kurang dari atau sama dengan). Adapun operator lain, yaitu AND, OR, NOT,
BETWEEN-AND, IN dan LIKE. Berikut ini data barang dan harga yang ada pada tabel
barang:

Contoh 1: perintah untuk menampilkan data pada tabel barang dimana nilai harga berkisar
dari 150000 sampai 300000:

Atau

Contoh 2: perintah untuk menampilkan data pada tabel barang dimana harga sama
dengan 150000 atau 750000:

Praktikum Sistem Basis Data 2015/2016

23

Atau

Contoh 3: perintah untuk menampilkan data pada tabel jenis barang dimana nilai pada
kolom nama_barang tidak sama dengan summer bag:

Atau

Contoh 4: perintah untuk menampilkan data pada tabel barang dimana data pada kolom
tertentu diawalii dengan nilai tertentu, misalnya pada kolom nama_barang dimana diawali
dngan karakter V:

Praktikum Sistem Basis Data 2015/2016

24

d. Memberikan nama lain pada kolom


Syntax:
SELECT namakolomlama AS namakolombaru FROM namatabel;
Beikut ini perintah untuk memberikan nama lain pada kolom nama_barang pada tabel
barang:

e. Menggunakan alias untuk nama tabel


Syntax:
SELECT namaalias.jenis, namaalias.harga FROM namatabel.namaalias;
Berikut ini perintah untuk memberikan alias pada tabel barang:

f.

Menggunakan alias untuk nama tabel


Menampilkan data lebih dari dua tabel
Syntax:
SELECT * from namatabel1, namatabel2,namatabel-n;
Isi tabel kategori:

Isi tabel barang:

Praktikum Sistem Basis Data 2015/2016

25

Berikut ini perintah untuk menampilkan semua data pada tabel barang dan kategori:

Berikut ini perintah untuk menampilkan beberapa kolom dari tabel barang dan kategori
menggunakan relasi kd_kategori:

Praktikum Sistem Basis Data 2015/2016

26

2.3 TUGAS PRAKTIKUM


Lakukan perintah INSERT, DELETE, UPDATE, dan SELECT untuk semua tabel
pada database tokoonline!

Praktikum Sistem Basis Data 2015/2016

27

MODUL 3
FUNGSI SQL LANJUTAN
(Perhitungan Data dan Fungsi)
3.1 Tujuan
Dapat membuat perintah-perintah SQL yang berhubungan dengan perhitungan data dalam
basis data dan menggunakan fungsi-fungsi yang ada dalam MySQL.
3.2 Langkah Praktikum
1. ARITHMETIC OPERATORS

Contoh :
Buat tabel angka dengan data berupa angka seperti tabel berikut :

Contoh:

Praktikum Sistem Basis Data 2015/2016

28

2. AGGREGATE FUNCTIONS
Fungsi Aggregate : digunakan untuk mengambil data tunggal hasil dari perhitungan data
yang tersimpan dalam suatu kolom.

Contoh:

Praktikum Sistem Basis Data 2015/2016

29

3. STRING FUNCTION
a. CHAR_LENGTH(), CHARACTER_LENGTH(), dan LENGTH()
CHAR_LENGTH() dan CHARACTER_LENGTH() untuk menghitung jumlah karakter
sedangkan LENGTH() yang dihitung adalah jumlah byte per karakter, bukan karakternya.
Contoh :

b. CONCAT() dan CONCAT_WS()


Digunakan untuk menggabungkan 2 atau lebih data dalam record menjadi satu.
Contoh:

Praktikum Sistem Basis Data 2015/2016

30

c. LCASE(), LOWER(), UCASE(), dan UPPER()


Contoh :

Praktikum Sistem Basis Data 2015/2016

31

d. LEFT() dan RIGHT()


Contoh :

e. REPEAT() dan REVERSE()


Contoh :

f.

SUBSTRING()
Contoh :

Praktikum Sistem Basis Data 2015/2016

32

g. MID()

Praktikum Sistem Basis Data 2015/2016

33

Contoh :

4. NUMERIC FUNCTION
a. CEIL(), CEILING(), dan FLOOR()
Contoh:

b. MOD()
Contoh:

c. PI()
Contoh:

Praktikum Sistem Basis Data 2015/2016

34

d. POW() dan POWER() keduanya sama


Contoh:

e. ROUND() dan TRUNCATE()


Contoh:

f.

SQRT()
Contoh:

5. DATE/TIME FUNCTIONS
Buat tabel test_date dengan struktur dan data seperti tabel berikut :

Praktikum Sistem Basis Data 2015/2016

35

a. ADDDATE(), DATE_ADD(), SUBDATE(), DATE_SUB(), dan EXTRACT()


-

Fungsi ADDDATE() dan DATE_ADD() adalah sama. Sintak-nya adalah :


ADDDATE(<date>, INTERVAL <expression> <type>)

Fungsi SUBDATE() dan DATE_SUB() adalah sama. Sintak-nya adalah :


SUBDATE(<date>, INTERVAL <expression> <type>)

Contoh:

Praktikum Sistem Basis Data 2015/2016

36

Praktikum Sistem Basis Data 2015/2016

37

EXTRACT() mempunyai sintak :


EXTRACT(<type> FROM <date>)

Contoh :

b. CURDATE(), CURRENT_DATE(), CURTIME(), CURRENT_TIME(),


CURRENT_TIMESTAMP(), dan NOW()
Fungsi CURDATE() sama dengan fungsi CURRENT_DATE(), fungsi CURTIME() sama
dengan CURRENT_TIME() dan fungsi CURRENT_TIMESTAMP() sama dengan NOW().
Contoh :

Praktikum Sistem Basis Data 2015/2016

38

c. DATE(), MONTH(), MONTHNAME(), dan YEAR()


Contoh:

d. DATEDIFF() dan TIMEDIFF()


Contoh :

Praktikum Sistem Basis Data 2015/2016

39

e. DAY(), DAYOFMONTH(), DAYNAME(), DAYOFWEEK(), dan DAYOFYEAR()


Contoh:

f.

SECOND(), MINUTE(), HOUR(), dan TIME()

Praktikum Sistem Basis Data 2015/2016

40

Praktikum Sistem Basis Data 2015/2016

41

MODUL 4
FUNGSI SQL LANJUTAN

(Grouping Data, Backup & Restore Database)


4.1 Tujuan
Dapat membuat perintah-perintah SQL yang berhubungan dengan grouping data dan
menggunakan fungsi-fungsi yang ada dalam MySQL. Mampu melakukan backup dan restore
database.
4.2 Langkah Praktikum
4.2.1 Grouping Data
Digunakan bersama-sama dengan fungsi Aggregate untuk menyatukan dua atau lebih grup
data kedalam suatu fungsi data tunggal. Fungsi Aggregate digunakan untuk mengambil data
tunggal hasil dari perhitungan data yang tersimpan dalam suatu kolom.
Contoh :
Sebelumnya buat table transakisi dengan struktur table dan data sebagai berikut

1. Fungsi Aggregate

Praktikum Sistem Basis Data 2015/2016

42

hasilnya merupakan data tunggal yang menunjukkan jumlah baris (atau jumlah
transaksi) dalam tabel transaksi.

2. Group By
Menampilkan data pelanggan dan berapa banyak transaksi pembelian barang yang
telah dilakukannya.
Contoh:

Syarat penggunaan GROUP BY adalah :


1. GROUP BY hanya dapat digunakan dalam Query yang mengandung paling sedikit
satu fungsi Aggregate. Dengan demikian jika tidak ada fungsi Aggregate tidak perlu
menggunakan GROUP BY.
2. Data harus dikelompokkan dalam atribut tertentu (bisa lebih dari satu) yang
disebutkan dalam perintah query (setelah klausa SELECT) yaitu dengan
menuliskan atribut tersebut dalam GROUP BY. Dalam contoh di atas,
pengelompokan dapat dilakukan berdasarkan nama pelanggan atau identitas
pelanggan atau keduanya. Dalam DBMS tertentu, misalnya Microsoft Access,
semua atribut yang ditulis dalam query (setelah klausa SELECT) harus ditulis
semua. (Catatan : atribut atau nama kolom yang disebut dalam fungsi atau alias
tidak perlu ditulis).

3. GROUP BY WITH ORDER BY


GROUP BY dapat ditambah dengan ORDER BY untuk mengurutkan hasil Query
dengan syarat :
-

ORDER BY tidak dapat digunakan pada Query yang hanya mengandung fungsi
Aggregate, yaitu tanpa ada GROUP BY.

GROUP BY harus ditulis sebelum ORDER BY.

Praktikum Sistem Basis Data 2015/2016

43

Contoh:

4. HAVING
Digunakan dengan GROUP BY untuk mengkondisikan suatu group data hasil
perhitungan dari fungsi Aggregate. HAVING mempunyai fungsi dan sintak yang sama
dengan WHERE.
Contoh:
Menampilkan data pelanggan yang melakukan transaksi pembelian barang minimal 2
kali.

4.2.2 Backup Database


-

Buka cmd kemudian arahkan ke lokasi dimana MySQL atau XAMPP di install

Kemudian ketikan perintah berikut

Praktikum Sistem Basis Data 2015/2016

44

mysql -u root -p tokoonline > D:\backup_tokoonline.sql


penjelasan:
tokoonline
D:\
Backup_tokoonline.slq

: merupakan nama database yang dibackup


: lokasi dimana database yang dibackup akan
disimpan
: nama file untuk database yang dibackup

Masukan Password jika diminta

Dengan menggunakan Explorer lihat hasil bacup di lokasi yang sudah ditentukan
sebelumnya, jika ada file dengan nama yang ditentukan diatas, maka backup database
berhasil dilakukan

4.2.3 Restore Database


-

Buat database terlebih dahulu, misal

Praktikum Sistem Basis Data 2015/2016

45

Buka cmd kemudian arahkan ke lokasi dimana MySQL atau XAMPP di install

Kemudian ketikan perintah berikut


mysql -u root -p contoh_restore < D:\backup_tokoonline.sql
penjelasan:
contoh_restore

D:\
backup_tokoonline.slq

: merupakan nama database yang sudah dibuat


sebelumnya yang akan digunakan untuk
menampung database yang akan direstore
: lokasi dimana file database yang direstore
disimpan
: nama file untuk database yang akan direstore

Masukan Password jika diminta

Masuk kembali kedalam MySql, kemudian pada database yang baru dibuat coba lihat
semua tabel yang ada pada database contoh_restore, jika isi tabel sama dengan isi pada
database yang sebelumnya dilakukan backup, maka restore database berhasil dilakukan.

Praktikum Sistem Basis Data 2015/2016

46

MODUL 5
MEMBUAT ANTARMUKA PROGRAM
DENGAN AUTORITAS USER (ADMIN/OPERATOR)
5.1 Tujuan
1. Praktikan mampu membuat koneksi dan antarmuka untuk pengolahan database.
2. Praktikan mampu membuat antarmuka secara manual.
5.2 Langkah Praktikum
5.2.1 Menyiapkan Database dan Tabel MySQL
Berikut ini adalah langkah-langkah yang dilakukan untuk membuat sebuah website toko
online sederhana:
1. Langkah pertama yang dilakukan adalah membuat database baru dengan nama toko,
dengan menggunakan perintah:
CREATE DATABASE toko;
2. Buat 4 tabel berikut:
a. Tabel Kategori, untuk menyimpan data kategori produk:
CREATE TABLE IF NOT EXISTS `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
)
b. Tabel Produk, untuk menyimpan data produk:
CREATE TABLE IF NOT EXISTS `product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_name` varchar(100) NOT NULL,
`price` bigint(20) NOT NULL,
`image` varchar(1000) NOT NULL,
`id_category` int(11) NOT NULL,
`deskripsi` text NOT NULL,
PRIMARY KEY (`id`)
)
c. Tabel keranjang, untuk menyimpan data sementara dari pesanan:
CREATE TABLE IF NOT EXISTS `keranjang` (
`id_keranjang` int(5) NOT NULL AUTO_INCREMENT,
`id_product` int(5) NOT NULL,
`id_session` varchar(100) COLLATE latin1_general_ci NOT NULL,
`tgl_keranjang` date NOT NULL,
`qty` int(4) NOT NULL,
PRIMARY KEY (`id_keranjang`)
)
d. tabel order pesanan, untuk menyimpan data pesanan:

Praktikum Sistem Basis Data 2015/2016

47

CREATE TABLE IF NOT EXISTS `order_product` (


`id` int(11) NOT NULL AUTO_INCREMENT,
`id_product` int(11) NOT NULL,
`id_pemesan` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`address` varchar(1000) NOT NULL,
`phone` bigint(20) NOT NULL,
`status` varchar(30) NOT NULL DEFAULT 'New',
`jumlah` int(4) NOT NULL,
`tanggal` date NOT NULL,
PRIMARY KEY (`id`)
)
e. tabel user, untuk menyimpan data admin:
CREATE TABLE IF NOT EXISTS `user` (
`id_user` varchar(50) COLLATE latin1_general_ci NOT NULL,
`password` varchar(50) COLLATE latin1_general_ci NOT NULL,
`email` varchar(100) COLLATE latin1_general_ci NOT NULL,
`level` varchar(50) COLLATE latin1_general_ci NOT NULL DEFAULT
'user',
PRIMARY KEY (`id_user`)
)
Langkah selanjutnya adalah mengkoneksikan PHP dengan MySQL, berikut ini langkahlangkahnya:
1. Buat folder di direktori C://xampp/htdocs/tokoonline.
2. Buat beberapa folder dan file didalamnya, seperti berikut:

Folder admin

: digunakan untuk menyimpan halaman administrator.

Folder css

: digunakan untuk menyimpan file css (cascading style sheet) yang


berfungsi untuk mendekorasi tampilan website.

Folder foto

: digunakan untuk menyimpan foto produk

Praktikum Sistem Basis Data 2015/2016

48

Folder include

: digunakan untuk menyimpan file php koneksi database dan fungsi untuk
dapat menjalankan web toko online

3. Buka folder include, Buat file yang diberi nama lib.php menggunakan software notepad. isilah
file tersebut dengan fungsi-fungsi berikut ini.
<?php
$seminggu =
array("Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu");
$hari = date("w");
$hari_ini = $seminggu[$hari];
$tgl_sekarang = date("Ymd");
$thn_sekarang = date("Y");
$jam_sekarang = date("H:i:s");
$nama_bln=array(1=> "Januari", "Februari", "Maret", "April", "Mei",
"Juni", "Juli", "Agustus", "September",
"Oktober", "November", "Desember");
//fungsi untuk keranjang belanja
function cart_content(){
$ct_content = array();
$sid = session_id();
$sql = mysql_query("SELECT * FROM keranjang WHERE
id_session='$sid'");
while ($r=mysql_fetch_array($sql)) {
$ct_content[] = $r;
}
return $ct_content;
}
//fungsi untuk menghapus keranjang
function deletecart(){
$del = date('Y-m-d', mktime(0,0,0, date('m'), date('d') - 1,
date('Y')));
mysql_query("DELETE FROM keranjang WHERE tgl_keranjang < '$del'");
}
$server = "localhost";
$username = "root";
$password = "";
$database = "toko";
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>

4. Selanjutnya masuk ke dalam tahap cara menggunakan teknik modulasi. dengan teknik
modulasi ini dapat memudahkan dalam melakukan pengembangan dan perawatan suatu
aplikasi web, teknik modulasi ini merupakan suatu teknik pemisahan sebuah aplikasi
menjadi bagian-bagian kecil. buat file-file dibawah ini didalam folder include :
1. bottom.php

Praktikum Sistem Basis Data 2015/2016

49

2. cart.php
3. cart2.php
4. home.php
5. left.php
6. order.php
7. product.php
8. top.php
5. Setelah membuat file diatas, isikan file tersebut dengan syntax berikut:

bottom.php
</div>
<br class="clearfloat" />
</div>
<div class="footer">
<p align="center">&copy; <?php echo date('Y') ?> Praktikum Sistem
Basis Data</p>
</div>
</div>
</body>
</html>

File diatas berfungsi untuk menampilkan bagian bawah website toko online ini.

cart.php
<div class="BigContent">
<div class="RightContent">
<h1 class="Judul">Shopping Cart</h1>
<div class="KetProd">
<table class="TableCart" width="100%"
cellspacing="0" cellpadding="0" border="0" style="border-top: 1px
dotted #0; border-bottom: 1px dotted #0;">
<tr><th>No</th>
<th>Foto Produk</th>
<th>Nama Produk</th>
<th>Jumlah</th>
<th>Harga</th>
<th>Delete</th>
</th>
<?php
$sid = session_id();
$no = 1;

Praktikum Sistem Basis Data 2015/2016

50

$sql = mysql_query("SELECT * FROM


keranjang, product WHERE id_session='$sid' AND
keranjang.id_product=product.id");
$hitung = mysql_num_rows($sql);
if ($hitung < 1){
echo"<script>window.alert('Cart is
Empty....');
window.location=('index.php')</script>";
}
else {
while($tian=mysql_fetch_array($sql)){
echo"<tr><td>$no</td>
<td><img width=50
src=foto/$tian[image]></td>
<td>$tian[product_name]</td>
<td>$tian[qty]</td>
<td>$tian[price]</td>
<td><a
href=input.php?input=delete&id=$tian[id_keranjang]>Hapus</a></td>
</tr>";
$no++;
}
}
?>
</table>
<a class="tombol" href="?v=order">Selesai</a>
<a class="tombol" href="index.php">Belanja
Lagi..</a>
</div>
File diatas berfungsi untuk menampilkan produk yang sudah dimasukan ke dalam keranjang
belanja.

cart2.php
<?php
include "inc/koneksi.php";
$sid = session_id();
$sql = mysql_query("SELECT * FROM keranjang");
$row = mysql_num_rows($sql);
$jml = mysql_fetch_array($sql);
echo "<span class='KetCart'>$row item</span>";
?>

Praktikum Sistem Basis Data 2015/2016

51

File diatas berfungsi untuk menampilkan produk yang telah dimasukan kedalam tabel
keranjang dan menghitungnya dengan menggunakan fungsi mysql_num_rows()

home.php
<div class="BigContent">
<div class="RightContent">
<h1 class="Judul">Produk terbaru</h1>
<?php
$sql = mysql_query("SELECT * FROM product ORDER BY id DESC")
or die ("Query gagal dengan error: ".mysql_error());
while($data=mysql_fetch_array($sql)){ ?>
<div class="produk">
<a href="?v=produk&id=<?php echo $data['id']; ?>">
<img title="<?php echo $data['product_name']; ?>"
class="FotoProduk" src="foto/<?php echo $data['image']; ?>"
height="110px" />
</a>
<br class="clearfloat" />
<div class="KotakKet">
<a class="pesanprod" href="input.php?input=add&id=<?php echo
$data['id']; ?>">Pesan</a>
<a class="detprod" href="index.php?v=produk&id=<?php echo
$data['id']; ?>">Detail</a>
</div>
</div>
<?php } ?>

left.php
<div class="LeftContent">
<div id="navigation">
<ul class="top-level">
<?php
$kat = mysql_query("SELECT category, category.id
from category join product on product.id_category=category.id group
by category");
while($list=mysql_fetch_array($kat)){
echo"<li><a
href='?v=produk&cat=$list[id]'>$list[category]</a></li>";
}
?>
</ul>

Praktikum Sistem Basis Data 2015/2016

52

<ul class="top-level"><li><a href="admin/index.php">Login


Admin</a></li></ul>
</div>
</div>
File diatas berfungsi untuk menampilkan menu kategori dari tabel category dengan
menggabungkan tabel product, dapat dilihat dari syntax mysqlnya,
mysql_query("SELECT category, category.id from category join product on
product.id_category=category.id group by category");

order.php
<div class="BigContent">
<div class="RightContent">
<h2 class="Judul">Form Pemesanan</h2>
<form action="input.php?input=inputform" method="post">
<table>
<tr>
<td>Nama</td>
<td><input class="form" type="text"
name="name"></td>
</tr>
<tr>
<td>Email</td>
<td><input class="form" type="text"
name="email"></td>
</tr>
<tr>
<td>Alamat</td>
<td><textarea class="form" name="address"
cols="40" rows="7"></textarea></td>
</tr>
<tr>
<td>No HP</td>
<td><input class="form" type="text"
name="telp"></td>
</tr>
<tr>
<td></td>
<td><input name="submit" type="submit"
value="order"> </td>
</tr>
</table>
</form>
File diatas berfungsi sebagai form dengan tujuan file yaitu input.php.

product.php
<div class="BigContent">

Praktikum Sistem Basis Data 2015/2016

53

<div class="RightContent"><!--?php <br ?--> $prod = $_GET['id'];


$cat = $_GET['cat'];
if($cat){
$sql = mysql_query("SELECT * FROM category WHERE id = '$cat'");
//untuk mengambil tabel kategori berdasarkan id
$jdl = mysql_fetch_array($sql);
echo "
<h1 class="Judul">Kategori $jdl[category]</h1>
";
$sql2 = mysql_query("SELECT * FROM product WHERE
id_category='$cat'");
while($t = mysql_fetch_array($sql2)){ ?>
<div class="produk"><a href="?v=produk&id=<?php echo $t['id']; ?>">
<img class="FotoProduk" title="<?php echo $t['product_name']; ?>"
src="foto/<?php echo $t['image']; ?>" alt="" height="110px" />
</a>
<br class="clearfloat" />
<div class="KotakKet"><a class="pesanprod"
href="input.php?input=add&id=<?php echo $t['id']; ?>">Pesan</a>
<a class="detprod" href="?v=produk&id=<?php echo $t['id'];
?>">Detail</a></div>
</div>
<!--?php
} } elseif($prod){ ?-->
<!--?php //jika variable cat tidak terdefinisikan maka lanjut ke
proses dibawah ini
$sql = mysql_query("SELECT * FROM product WHERE id='$prod'");
$d
= mysql_fetch_array($sql);
?-->
<h1 class="Judul">Produk <!--?php echo $d['product_name']; ?-></h1>
<div class="KetProd"><img class="GambarKetProd" src="foto/<?php
echo $d['image']; ?>" alt="" />
<!--?php echo $d['deskripsi']; ?--></div>
<a class="haha" href="javascript:history.go(-1)">Kembali</a> | <a
class="haha" href="input.php?input=add&id=<?php echo $d['id'];
?>">Beli</a>
<!--?php } ?-->
File ini berfungsi untuk menampilkan produk per kategori dan produk inti.

top.php
<?php
error_reporting(0);
session_start();
?>
<html>
<head>
<title>Toko Online</title>
<link
rel="StyleSheet"
type="text/css" />

href="css/style.css"

Praktikum Sistem Basis Data 2015/2016

54

<link
type="text/css" />
</head>

rel="StyleSheet"

href="css/reset.css"

<body>
<div class="wrap">
<div class="header">
<div class="LeftOne">
<a href="index.php"><img width="150px"
src="images/toko-online.png" /></a>
</div>
<div class="RightOne">
<div class="cart">
<?php include "cart2.php"; ?>
</div>
<br class="clearfloat" />
<a
class="tocart"
href="index.php?v=cart">Keranjang</a>
</div>
</div>
<br class="clearfloat" />
6. buka file index.php yang telah dibuat sebelumnya, lalu isikan syntax berikut:
Index.php
<?php
include "include/lib.php";
include "include/top.php";
include "include/left.php";
$v = $_GET['v'];
if($v == 'produk') {
require_once "include/product.php";
} elseif ($v == 'cart') {
require_once "include/cart.php";
} elseif ($v == 'order') {
require_once "include/order.php";
} else {
require_once "include/home.php";
}
include "include/bottom.php";
?>
Syntax diatas berfungsi untuk me-load file lib.php yang berada pada folder include begitu
juga file-file lainnya seperti top.php, left.php dan bottom.php.

Praktikum Sistem Basis Data 2015/2016

55

Pada index.php digunakan fungsi kontrol IF dan ELSE IF yang memanfaatkan $v sebagai
variabel yang dihasilkan menggunakan method $_GET. Pada bagian ini dibuat beberapa
kondisi pengontrolan seperti, jika variabel $v sama dengan (==) produk maka ikut sertakan
file product.php, begitu juga kondisi untuk memanggil file top.php, left.php dan bottom.php.

7. Buka file input.php yang telah dibuat sebelumnya lalu isikan syntax dibawah ini:
Input.php
<?php
session_start();
error_reporting(0);
include "include/lib.php";
$input=$_GET[input];
$sid = session_id();
$inputform=$_GET[inputform];
if($input=='add'){
$sql = mysql_query("SELECT id_product FROM keranjang
WHERE id_product='$_GET[id]' AND id_session='$sid'");
$num = mysql_num_rows($sql);
if ($num==0){
mysql_query("INSERT INTO keranjang(id_product,
id_session,
tgl_keranjang,
qty)
VALUES
('$_GET[id]',
'$sid',
'$tgl_sekarang',
'1')") or die (mysql_error());
}
else {
mysql_query("UPDATE keranjang SET qty = qty + 1
WHERE id_session = '$sid' AND id_product='$_GET[id]'") or die
(mysql_error());
}
deletecart();
header('location:index.php?v=cart');
}
elseif ($input=='delete'){
mysql_query("DELETE
FROM
keranjang
WHERE
id_keranjang='$_GET[id]'");
header('location:index.php?v=cart');

Praktikum Sistem Basis Data 2015/2016

56

}
elseif ($input=='inputform'){
$ct_content = cart_content();
$jml = count($ct_content);
$now = date("Ymd");
for($i=0; $i<$jml; $i++){
mysql_query("INSERT INTO order_product(name,
email,
phone,
address,
id_product,
jumlah,
tanggal,
id_pemesan)
VALUES
('$_POST[name]',
'$_POST[email]',
'$_POST[telp]',
'$_POST[address]',
{$ct_content[$i]['id_product']},
{$ct_content[$i]['qty']},
'$now',
'$sid')");
}
for($i=0; $i<$jml; $i++){
mysql_query("DELETE
FROM
keranjang
id_keranjang = {$ct_content[$i]['id_keranjang']}");
}
echo "<script>window.alert('Terima Kasih
Anda Sedang Kami Proses');
window.location=('index.php')</script>";
}

WHERE
Pesanan

?>

Praktikum Sistem Basis Data 2015/2016

57

8. Untuk membuat halaman administrator, siapkan file seperti berikut ini didalam folder
c:/xampp/htdocs/tokoonline/admin

Folder CSS yang berguna menyimpan segala file CSS.

JS berguna untuk menyimpan file Javascript dan library plugin-plugin .js dan jquery yang akan
dibutuhkan dalam website.

Folder Media yang yang merupakan tempat menyimpan plugin datatables.

Folder Modul yang berguna untuk memisahkan bagian-bagian form yang nanti akan
dibutuhkan dalam halaman administrator.

Folder NICEDIT yang berguna untuk menyimpan plugin text editor, dan nanti akan dapat
memudahkan admin dalam menuliskan penginputan produk. nicedit merupakan plugin text
editor yang ditulis dalam bahasa javascript yang dapat memudahkan kita dalam mengelola
tulisan kita yang memanfaatkan tag textarea pada HTML, untuk info lebih lanjut silahkan klik
link http://www.nicedit.com

9. Buka halaman admin.php kemudian isikan syntax berikut:


admin.php
<?php
include "include/lib.php";
error_reporting(0);
session_start();
?>
<html>
<head>
<title>:: Toko Online ::</title>

Praktikum Sistem Basis Data 2015/2016

58

<link href="css/style.css" rel="stylesheet" type="text/css" />


<script
src="nicedit/nicEdit.js"
type="text/javascript"></script>
<script src="js/jquery.js" type="text/javascript"></script>
<script
src="media/js/jquery.dataTables.js"
type="text/javascript"></script>
<style type="text/css">
@import "media/css/demo_table_jui.css";
@import
"media/themes/smoothness/jquery-ui1.8.4.custom.css";
</style>
<style>
*{
font-family: arial;
}
</style>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$('#datatables').dataTable({
"sPaginationType":"full_numbers",
"aaSorting":[[2, "desc"]],
"bJQueryUI":false
});
$('#pengelola').dataTable({
"sPaginationType":"full_numbers",
"aaSorting":[[2, "desc"]],
"bJQueryUI":false
});
})
</script>
<script type="text/javascript">
bkLib.onDomLoaded(function(){
nicEditors.allTextAreas(({buttonList
:
['fontSize','bold','italic','underline','strikeThrough','subs
cript','superscript','html','image']})) });
</script>
</head>
<body>
<div class="wrap">
<div class="header">
<div class="LeftOne">
<a href="index.php">
</a>
</div>
<div class="RightOne">
<div class="cart">
<span
class="KetCart">Administrator</span>
</div>

Praktikum Sistem Basis Data 2015/2016

59

</div>
</div>
<br class="clearfloat" />
<div class="BigCOntent">
<div class="LeftContent">
<div id="navigation">
<ul class="top-level">
<li><a href="?mod=home">Home</a></li>
<li><a
href="?mod=product">Produk</a></li>
<li><a
href="?mod=category">Kategori</a></li>
<li><a
href="?mod=report">Report</a></li>
<li><a href=logout.php>Logout</a></li>
</ul>
</div>
</div>
<div class="RightContent">
<?php
if ($_GET[mod]=='home'){
echo
"<h1
class='Judul'>Selamat
Datang</h1>
Anda Telah masuk ke halaman
administrator silahkan gunakan menu yang tersedia :)</p>";
}
//Add Kategori
elseif ($_GET[mod]=='category'){
require_once
"modul/mod_kategori.php";
}
//Add Product
elseif ($_GET[mod]=='product'){
require_once
"modul/mod_produk.php";
}
//Report
elseif ($_GET[mod]=='report'){
require_once "modul/report.php";
}
?>
</div>
</div>
<br class="clearfloat" />
<div class="footer">
<p align="center">&copy; <?php echo
date('Y') ?> Praktikum Sistem Basis Data</p>
</div>
</div>
</body>
</html>

Praktikum Sistem Basis Data 2015/2016

60

<?php
?>
Halaman admin ini merupakan bagian dimana semua proses yang dibutuhkan dalam
penginputan dan beberapa proses lainnya dilakukan.

Pada baris ke 17 merupakan sintaks untuk me-load plugin text editor nicedit

Pada baris ke 18 merupakan sintaks untuk me load framework jquery

Pada baris ke 19 sampai ke 44 merupakan sintaks untuk me-load plugin datatables beserta
konfigurasi datatables

Pada baris 45 sampai ke 48 merupakan sintaks konfigurasi dari plugin text editor nicedit dan
selanjutnya merupakan sintaks html yang mungkin sudah normal

Pada baris 78 sampai ke 94 merupakan sintaks php yang berfungsi sebagai proses pengujian,
jika kondisi mod sama dengan home maka akan di isi dengan statement admin yang berupa
string dan begitu juga pada pengujian selanjutnya pada category, product dan report yang
akan mengacu pada pembukaan file dengan menggunakan require_once.
Index.php
<html>
<head>
<title>Administrator</title>
<link rel="StyleSheet" href="css/login.css" type="text/css" />
</head>
<body>
<div id="header">
<div id="content">
<center>
<form method="POST" action="admin.php">
<table>
<tr><td>Username
</td><td><input
type="text"
name="username"></td></tr>
<tr><td>Password
</td><td><input
type="password"
name="password"></td></tr>
<tr><td
colspan="2"><input
type="submit"
name="Login"
value="Proses"></td></tr>
</table>
</form>
</center>
</div>
</div>
</body>
</html>

Praktikum Sistem Basis Data 2015/2016

61

Pada bagian file index.php berisi sintaks HTML untuk menampilkan form login yang merujuk
pada file login.php
Login.php
<?php
include "include/lib.php";
error_reporting(0);
$pass=md5($_POST[password]);
$login=mysql_query("SELECT
*
FROM
user
id_user='$_POST[username]' AND password='$pass'");
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);

WHERE

// Apabila username dan password ditemukan


if ($ketemu > 0){
session_start();
session_register("passuser");
session_register("leveluser");
$_SESSION[passuser] = $r[password];
$_SESSION[leveluser]= $r[level];
header('location:admin.php?mod=home');
}
else{
echo "<script>window.alert('Username atau Password Salah!!!');
window.location=('index.php')</script>";
}
?>
logout.php
<?php
session_start();
session_destroy();
echo "<script>window.alert('Kamu telah berhasil keluar dari sistem administrator');
window.location=('../index.php')</script>";
?>
Pada bagian file logout.php berisi sintaks php yang berfungsi untuk menghapus semua
session yang telah di lakukan dalam proses login ke halaman admin.php
aksi.php
session_start();
error_reporting(0);
include "../include/lib.php";
$mod=$_GET[mod];
$act=$_GET[act];

Praktikum Sistem Basis Data 2015/2016

62

// Menghapus data
if (isset($mod) AND $act=='hapus'){
mysql_query("DELETE FROM ".$mod." WHERE id ='$_GET[id]'");
header('location:admin.php?mod='.$mod);
}
//Add Category
elseif ($mod=='category' AND $act=='input'){
$insert = mysql_query("INSERT INTO category (id,category) VALUES
('','$_POST[nama_kategori]')");
if($insert == FALSE){
echo "
Kategori gagal ditambahkan, alesannya:".(mysql_error())."
";
}
header('location:admin.php?mod='.$mod);
}
//Category Update
elseif ($mod=='category' AND $act=='update'){
$update = mysql_query("UPDATE category SET category = '$_POST[nama_kategori]'
WHERE id = '$_POST[id]'");
if($update ==FALSE){
echo "
Update gagal dilakukan karena:".(mysql_error())."
";
}
header('location:admin.php?mod='.$mod);
}
//Add Product
elseif ($mod=='product' AND $act=='input'){
$lokasi_file
= $_FILES['fgambar']['tmp_name'];
$tipe_file
= $_FILES['fgambar']['type'];
$nama_file
= $_FILES['fgambar']['name'];
move_uploaded_file($lokasi_file,"../foto/$nama_file");
$insert = mysql_query("INSERT INTO product (product_name,
price,
image,
id_category,
deskripsi)
VALUES ('$_POST[product_name]',
'$_POST[price]',
'$nama_file',
'$_POST[cat]',
'$_POST[deskripsi]')");
header('location:admin.php?mod='.$mod);
}
//Product Update
elseif ($mod=='product' AND $act=='update'){
$lokasi_file
= $_FILES['fgambar']['tmp_name'];
$tipe_file
= $_FILES['fgambar']['type'];
$nama_file
= $_FILES['fgambar']['name'];
//If the image doesnt change
if (empty($lokasi_file)){

Praktikum Sistem Basis Data 2015/2016

63

mysql_query("UPDATE product SET product_name


=
'$_POST[product_name]',
price
= '$_POST[price]',
id_category = '$_POST[cat]',
deskripsi
= '$_POST[deskripsi]'
WHERE id = '$_POST[id]'");
}
else {
move_uploaded_file($lokasi_file,"../foto/$nama_file");
mysql_query("UPDATE product SET product_name= '$_POST[product_name]',
price
= '$_POST[price]',
image
= '$nama_file',
id_category = '$_POST[cat]',
deskripsi
= '$_POST[deskripsi]'
WHERE id = '$_POST[id]'");
}
header('location:admin.php?mod='.$mod);
}
?>

file aksi.php ini berisi fungsi yang nanti akan di butuhkan dalam proses-proses baik itu
penginputan dan hal lainnya dalam mengelola form pada bagian admin.

Pada baris ke 7 dan 8 merupakan proses pengambilan variable yang di dapat dari
parameter mod dan act

Pada baris ke 12 sampai 15 merupakan sintaks php yang berguna untuk proses hapus
data pada tabel melalui variable mod dan id

Pada baris 19 sampai 25 merupakan sintaks php yang berguna untuk proses
penginputan kategori yang ke dalam tabel kategori

Pada baris 27 sampai 33 merupakan sintaks php yang berguna untuk melakukan proses
update pada tabel kategori

Pada baris 36 sampai 53 merupakan sintaks php yang berguna untuk melakukan proes
menambahkan produk yang berisi teks dan gambar yang disimpan pada folder foto yang
menggunakan fungsi php move_uploaded_file

Pada baris ke 55 sampai 78 merupakan sintaks php yang berguna untuk melakukan
proses update produk yang memanfaatkan fungsi update pada mysql query

10. Selanjutnya adalah membuat beberapa file didalam folder modul. Yaitu:
mod_kategori.php yang berisi form untuk penginputan kategori dalam halaman admin
mod_produk.php yang berisi form untuk penginputan produk dalam halaman admin
report.php berisi tabel untuk laporan hasil dari penjualan produk
Adapun Syntaxnya adalah sebagai berikut:
mod_kategori.php
<?php

Praktikum Sistem Basis Data 2015/2016

64

switch($_GET[act]){
//Tampil Kategori
default:
echo"<h1 class='Judul'>List Category</h1>
<input
type=button
value=Tambah
kategori
onclick=location.href='?mod=category&act=addkategori'>
<table class='TableCart' id='datatables'>
<thead><tr><th>no</th><th>nama
kategori</th><th>aksi</th></tr></thead><tbody>";
$sql = mysql_query("SELECT * FROM category ORDER BY id DESC");
$no = 1;
while ($r=mysql_fetch_array($sql)){
echo"<tr><td>$no</td>
<td>$r[category]</td>
<td><a
href=?mod=category&act=editkategori&id=$r[id]>Edit</a>
<a
href=aksi.php?mod=category&act=hapus&id=$r[id]>Hapus</a>
</td>
</tr>";
$no++;
}
echo "</tbody></table>";
break;
//Form Add Kategori
case "addkategori":
echo"<h2>Tambah Kategori</h2>
<form
action=aksi.php?mod=category&act=input>
<table>
<tr><td>Nama Kategori</td>
<td>:<input
name=nama_kategori></td>
</tr>
<tr>
<td colspan=2>
<input
type=submit
value=Simpan>
<input
type=button
onClick=self.history.back()>
</td>
</tr>
</table></form>";
break;

method=POST

type=text

name=submit
value=Batal

//Form Edit Category


case"editkategori":
$edit = mysql_query("SELECT * FROM category WHERE id='$_GET[id]'");
$r = mysql_fetch_array($edit);
echo"<h2>Edit Kategori</h2>
<form method=POST action=aksi.php?mod=category&act=update>
<input type=hidden name=id value=$r[id]>
<table>

Praktikum Sistem Basis Data 2015/2016

65

<tr><td>Nama Kategori</td>
<td>: <input type=text name=nama_kategori
value='$r[category]'></td>
</tr>
<tr><td

colspan=2><input

type=submit

value=Update>
<input

type=button

value=Batal onClick=self.history.back()></td>
</tr>
</table>
</form>";
break;
}
?>

mod_produk.php
<?php
switch($_GET[act]){
//Tampil Kategori
default:
echo"<h2>List Produk</h2>
<input
type=button
value='Tambah
Produk
Baru'
onClick=location.href='?mod=product&act=addproduct'>
<table id='datatables' class='TableCart'>
<thead><tr><th>no</th><th>Nama
Produk</th><th>Harga</th><th>aksi</th></tr></thead><tbody>";
$sql = mysql_query("SELECT * FROM product ORDER BY id DESC");
$no = 1;
while ($r=mysql_fetch_array($sql)){
echo"<tr><td>$no</td>
<td>$r[product_name]</td>
<td>$r[price]</td>
<td><a
href=?mod=product&act=editproduct&id=$r[id]>Edit</a>
<a
href=aksi.php?mod=product&act=hapus&id=$r[id]>Hapus</a>
</td></tr>";
$no++;
}
echo "</tbody></table>";
break;
//Form Add Product
case "addproduct":
echo"<h2>Add Product</h2>
<form
enctype='multipart/form-data'
method=POST
action=aksi.php?mod=product&act=input>
<table class='TableCart'>
<tr><td>Nama Barang</td>
<td><input
type=text
name=product_name></td>
</tr>
<tr><td>Kategori</td><td><select
name=cat>";

Praktikum Sistem Basis Data 2015/2016

66

$query = mysql_query("SELECT * FROM category");


while ($t = mysql_fetch_array($query)){
echo
"<option
value=$t[id]>$t[category]</option>";
}
echo"</select></td><td><a
href=?mod=category>Add
Category?</a></td>
</tr>
<tr><td>Harga</td><td><input
type=text
name=price></td></tr>
<tr><td>Deskripsi</td><td><textarea
name=deskripsi style='width: 277px; height: 67px;'></textarea></td></tr>
<tr><td>Gambar</td><td><input
type=file
name='fgambar' size=40></td>
<tr><td colspan=2>
<input
type=submit
name=submit
value=Simpan>
<input
type=button
value=Batal
onClick=self.history.back()>
</td>
</tr>
</table></form>";
break;
//Form Edit Product
case"editproduct":
$edit
=
mysql_query("SELECT
*
FROM
product
WHERE
id='$_GET[id]'");
$d = mysql_fetch_array($edit);
echo"<h2>Edit Product</h2>
<form
method=POST
enctype='multipart/form-data'
action='aksi.php?mod=product&act=update'>
<input type=hidden name=id value=$d[id]>
<table class='TableCart'>
<tr><td>Nama Barang</td>
<td><input
onfocus=this.value=''
type=text name='product_name' value='$d[product_name]'></td>
</tr>
<tr><td>Kategori</td><td><select
name=cat>";
$query = mysql_query("SELECT * FROM category");
while ($t = mysql_fetch_array($query)){
if($d['id_category'] == $t['id']) {
echo
"<option
value='$t[id]'
selected>$t[category]</option>";
} else {
echo
"<option
value=$t[id]>$t[category]</option>";
}
}
echo"</select></td><td><a
href=?mod=category>Add
Category?</a></td>
</tr>
<tr><td>Harga</td><td><input
onfocus=this.value='' value='$d[price]' type=text name=price></td></tr>

Praktikum Sistem Basis Data 2015/2016

67

<tr><td>Deskripsi</td><td><textarea
name=deskripsi
style='width:
277px;
67px;'>$d[deskripsi]</textarea></td></tr>
<tr><td></td><td><img
src='../foto/$d[image]' /></td></tr>
<tr><td>Gambar</td><td><input
id=fgambar name=fgambar size=40></td>
<tr><td colspan=2>
<input
type=submit
value=Simpan>
<input
type=button
onClick=self.history.back()>
</td>
</tr>
</table></form>";
break;
}

height:
width=100
type=file

name=submit
value=Batal

?>

Praktikum Sistem Basis Data 2015/2016

68

MODUL 6
PERANCANGAN LAPORAN/REPORT
DAN IMPLEMENTASINYA

6.1 Tujuan Ptaktikum


Praktikan mampu merancang laporan/report dan mengimplementasikannya kedalam
pemrograman.
6.2 Langkah Praktikum
Menentukan komponen data yang berada dalam report. Pada kasus ini adalah menampilkan
laporan pemesanan toko online.
1. Gunakan database=toko
2. Data yang akan dimasukan kedalam laporan adalah sebagai berikut:

3. Selanjutnya kita akan mencetak laporan dengan menggunakan PHP, langkahnya adalah
sebagai berikut:
a. Isi file report.php pada folder modul di c:/xampp/htdocs/tokoonline/admin/modul
report.php
<?php
$sid = session_id();
$sql = mysql_query("SELECT * FROM order_product, product WHERE
order_product.id_product=product.id");
?>
<h1 class="Judul">Laporan</h1>
<!-- BUAT LINK POP UP KE HALAMAN PDF KONVERTER SEPERTI PADA CONTOH BERIKUT
-->
<p
align="left"><a
href="modul/print.php"
target="_blank">Cetak
Laporan</a></p>
<table id="datatables" class="TableCart">
<thead>
<tr><th>No</th>
<th>Nama Produk</th>
<th>Nama Pemesan</th>
<th>Alamat Pemesan</th>
<th>Telepon</th>
<th>Jumlah</th>
<th>Status</th>
</tr>

Praktikum Sistem Basis Data 2015/2016

69

</thead>
<tbody>
<?php
$no = 1;
while ($r=mysql_fetch_array($sql)){
echo"<tr><td>$no</td>
<td>$r[product_name]</td>
<td>$r[name]</td>
<td>$r[address]</td>
<td>$r[phone]</td>
<td>$r[jumlah]</td>
<td>$r[status]</td>
</tr>";
$no++;
} ?>
</tbody></table>

b. Buat file print.php untuk menyimpan modul cetak laporan, pada folder yang sama
c:/xampp/htdocs/tokoonline/admin/modul
print.php
<?php
include "../include/lib.php";
$sid = session_id();
$sql = mysql_query("SELECT * FROM order_product, product WHERE
order_product.id_product=product.id");
?>
<html>
<head>
<title> Toko Online PSBD </title>
</HEAD>
<BODY onLoad="javascript:window.print()">
<?php
if (isset($_REQUEST['print']))
{
$print = $_REQUEST['print']; include "$print";
}
?>
<h1 align='center' class="Judul">Laporan Penjualan</h1>
<table align='center' id="datatables" class="TableCart" border="1"
bordercolor="#666666">
<tr><th bgcolor="#999999">No</th>
<th bgcolor="#999999">Nama Produk</th>
<th bgcolor="#999999">Nama Pemesan</th>
<th bgcolor="#999999">Alamat Pemesan</th>
<th bgcolor="#999999">Telepon</th>
<th bgcolor="#999999">Jumlah Pesanan</th>
<th bgcolor="#999999">Status</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;

Praktikum Sistem Basis Data 2015/2016

70

while ($r=mysql_fetch_array($sql)){
echo"<tr><td>$no</td>
<td>$r[product_name]</td>
<td>$r[name]</td>
<td>$r[address]</td>
<td>$r[phone]</td>
<td>$r[jumlah]</td>
<td>$r[status]</td>
</tr>";
$no++;
}
echo "<p align='center'>Laporan per-tanggal: ".date('d-m-Y')."</p>";
?>
</body>
</html>

Hasil akhirnya adalah sebagai berikut:

Praktikum Sistem Basis Data 2015/2016

71

MODUL 7
TUGAS BESAR

1. Studi Kasus Disesuaikan


2. Identifikasi entitas yang terlibat lengkapi dengan atributnya, kemudian tentukan
relationship beserta kardinalitasnya
3. Buat ERD
4. Buat syntax SQL dari rancangan EDR yang sudah dibuat kedalam DBMS (MySQL, SQL
Server atau yang lain)
5. Implementasikan database yang sudah dibuat dalam bentuk antar muka dengan
menggukana bahasa pemrograman
6. Ketentuan dalam program:
-

Bahasa pemrograman yang digunakan bebas

Memiliki fasilitas minimal 2 hak akses (Admin & Operator)

Gunakan fungsi-fungsi SQL lanjutan yang sudah dipelajari (Fungsi perhitungan, group
dll )

Memiliki fasilitas report

Memiliki fasilitas backup dan restore database (digunakan oleh Admin)

Praktikum Sistem Basis Data 2015/2016

72

Anda mungkin juga menyukai