Anda di halaman 1dari 30

MODUL PRAKTIKUM

BASIS DATA II (TIF215)

PRODI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2015

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

Modul 1 Perancangan Basis Data


Tujuan:
1. Mahasiswa mampu menjelaskan konsep basis data relasional
2. Mahasiswa mampu menjelaskan perancangan pada level konsep dan level fisik
3. Mahasiswa mampu melakukan normalisasi 1 NF, 2 NF, 3 NF
4. Mahasiswa mampu membuat perancangan ERD dari studi kasus yang diberikan

Materi
Konsep Basis Data dan Perancangannya
DBMS (Database Management System) merupakan perangkat lunak yang didisain
untuk melakukan penyimpanan dan pengaturan basis data. Selain itu, DBMS juga
menerapkan mekanisme pengamanan data, pemakaian data secara bersama, beberapa batasan
untuk menjaga keakuratan data. DBMS diperlukan untuk :
a. Independensi data dan akses yang efisien
b. Mereduksi waktu pengembangan aplikasi
c. Integritas dan keamanan data
d. Administrasi keseragaman data
e. Menangani adanya akses data secara bersamaan (concurrency locking)
f. Melakukan backup dan recovery data apabila diperlukan.
Oleh karena itu, keberadaan DBMS adalah sangat penting dalam sebuah Sistem Informasi.
Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa,
konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit.
Data dapat dinyatakan dalam bentuk

angka, karakter atau simbol. sehingga bila data

dikurnpulkan dan saling berhubungan maka dikenal dengan istilah basis data (database).
Basis data merupakan kumpulan informasi bermanfaat yang diorganisasikan ke
dalam aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke dalam
bentuk yang sesuai dengan kebutuhan seseorang.
Metodologi perancangan basis data adalah kumpulan teknik terorganisasi untuk
pembuatan rancangan basis data. Teknik terorganisasi ini merupakan kumpulan tahap-

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

tahapan yang memiliki aturan-aturan terurut. Teknik yang digunakan pada perancangan
basis data dibagi menjadi ada 3 yaitu:
1. Pemodelan data secara konseptual (CDM: Conceptual Data Modelling)
2. Pemodelan data secara logis (Data Model Mapping)
3. Pemodelan data secara fisik (PDM: Physical Data Modelling)
Membangun rancangan data secara konseptual dimulai dengan mengidentikasikan
himpunan entitas entitas , keterhubungan antar entitas (relationship), atribut-atribut pada
entitas, menentukan

atribut-atribut candidate

key

dan

primary

key,

melakukan

spesialisasi/generalisasi, dan menggambarkan ERD (Entity Relationship Diagram) ataupun


CDM (Conceptual Data Model).
Membangun rancangan secara logis adalah dengan melakukan pemetaan model data
konsep ke model data logik, melakukan turunan relasi-relasi dari model data logik,
validasi model menggunakan normalisasi, validasi model

berdasarkan

transaksi

transaksi pemakai, menggambarkan ER nya, mendenisikan integrity constraint yang


digunakan.
Membangun rancangan secara fisik adalah dengan menerjemahkan model data logis
untuk DBMS yang ditentukan, yaitu dengan merancang relasi-relasi basis untuk DBMS
target,

merancang

aturan-aturan integritas sesuai dengan yang ada pada DBMS yang

ditentukan.
Hubungan diantara ketiga pemodelan data tersebut dapat kita lihat pada diagram dibawah ini.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

Gambar 1. Diagram untuk menunjukkan hubungan antar pemodelan data [1]

Tugas Pendahuluan
1. Jelaskan dan beri contoh tentang :

Simple/atomic attribute dan Composite Attribute


Single-valued attribute dan Multi-valued attribute
Stored attribute dan Derived attribute
2. Jelaskan tentang referential integrity constraint, dan sebut dan jelaskan jenis

jenisnya.
3. Jelaskan tentang rasio kardinalitas, tunjukkan dengan gambar.
4. Jelaskan perbedaan pemodelan data secara konseptual dan fisik.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

5. Sebuah koperasi siswa (KOPSIS) melayani penjualan ATK, kebutuhan sekolah,

minuman serta snack kepada siswa. Dalam menjalankan usahanya, KOPSIS melakukan
pembelian barang kepada pemasok dengan menggunakan faktur pembelian barang.
Rancang model relasi antar entitas sesuai dengan form faktur pemesanan barang berikut
ini dengan menggunakan normalisasi 1NF, 2NF dan 3NF.

6. Selain penjualan dan pemesanan barang, KOPSIS juga memiliki data stok barang

yang tersedia, harga pembelian barang, dan harga penjualan. Lengkapi perancangan yang
dibuat pada no 1 berdasarkan penjelasan diatas sehingga menjadi CDM. Generate PDM
dan script databasenya.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

Asumsi yang digunakan adalah sebagai berikut:


a.

Pemesanan barang umumnya menggunakan satuan lusin, dus, pak, dst. yang

sesuai untuk masing masing jenis barang. Sedangkan penjualan barang


menggunakan satuan pc karena KOPSIS merupakan kategori retailer. Akan tetapi,
dalam tugas ini, diasumsikan bahwa semua satuan barang adalah sama. Sebagai
contoh: diakukan transaksi pembelian Aqua gelas 220 ml sejumlah 48 pc, Aqua
botol 350 ml sejumlah 24 pc, sehingga tidak dinyatakan dalam satuan dus maupun
lusin.
b.

Harga pembelian barang kepada supplier, utk beberapa barang kadang

bervariasi ketika dilakukan pembelian pada waktu yang berbeda. Contohnya adalah
harga Aqua gelas 220 ml pada bulan Januari dan bulan Februari berbeda, karena ada
fluktuasi harga. Akan tetapi dalam tugas ini, diasumsikan bahwa suatu barang
dengan kode barang yang sama memiliki harga beli dan harga jual yang tetap. Jika
terdapat perubahan harga beli, maka barang tersebut disimpan dengan kode barang
yang berbeda.

Tugas Praktikum
1. Buat perancangan studi kasus yang telah ditentukan oleh asisten dalam bentuk CDM

dan PDM.
2. Generate PDM yang telah dibuat menjadi script DDL dengan DBMS MySQL 5

Referensi
[1] Elmasri, Ramez. Fundamentals of database systems. Vol. 2. Pearson Education India,
2007.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

Modul 2 Mengenal DDL dan DML


Tujuan:
1. Mahasiswa mampu menjelaskan dan menggunakan script DDL (create, alter, drop)
2. Mahasiswa mampu menjelaskan dan menggunakan script DML (select, insert, update,
delete)
3. Mahasiswa mampu menjelaskan script DCL (revoke, grant)
4. Mahasiswa mampu menjelaskan dan menggunakan operator function (is [not] null,
between, like, in)

Materi
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering
disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengakses
database. Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL
pada semua software database hampir sama.
Terdapat 3 (tiga) jenis perintah SQL, yaitu :
1. DDL atau Data Definition Language
2. DML atau Data Manipulation Language
3. DCL atau Data Control Language
1. DDL (Data Definition Language)
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur
database, dalam hal ini database dan table. Beberapa perintah dasar yang termasuk DDL ini
antara lain :
CREATE untuk membuat basis data dan tabel
ALTER untuk mengubah struktur tabel
RENAME untuk mengubah nama tabel
DROP untuk menghapus basis data dan tabel
CREATE DATABASE
Sintaks : CREATE DATABASE nama_database
Contoh : CREATE DATABASE BARANG

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

CREATE TABLE
Perintah ini digunakan untuk membuat tabel dalam database.
Syntax:
CREATE TABLE tbl_name (
column_name data_type [DEFAULT
[column _constraint] ,
[table_constraint] );

expr]

Contoh:
Buat tabel untuk menampung data supplier:
CREATE TABLE SUPPLIER
(KODE_SUPPLIER CHAR(9)
NOT NULL,
NAMA_SUPPLIER VARCHAR(50)
NOT NULL,
ALAMAT_SUPPLIER VARCHAR(50),
KOTA_SUPPLIER VARCHAR(50),
PRIMARY KEY (KODE_SUPPLIER));
Buat tabel pembelian yang menampung foreign key dari tabel supplier.
CREATE TABLE Pembelian
(
KODE_PEMBELIAN CHAR(9)
NOT NULL,
NAMA_TRANS_PEMBELIAN VARCHAR(50),
TANGGAL_TRANS DATE,
HARGA_BELI INT,
QTY_BELI INT,
JML_TRANS_BELI INT,
KODE_SUPPLIER CHAR(9),
PRIMARY KEY (KODE_SUPPLIER),
FOREIGN KEY (KODE_SUPPLIER) REFERENCES SUPPLIER
(KODE_SUPPLIER) ON DELETE RESTRICT ON UPDATE CASCADE);
ALTER TABLE
Perintah ini digunakan untuk mengubah struktur tabel.
Syntax:
ALTER TABLE tbl_name
alter_specification [, alter_specification];
Untuk mengubah struktur dalam tabel, terdapat tiga macam spesifikasi perubahan (alter
specification) yang dapat dilakukan, yaitu:
a. Menambah (Add):

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

Sintaks SQL untuk menambah kolom:


ADD [COLUMN] col_name column_definition
[FIRST | AFTER col_name ];
Atau :
ADD [COLUMN] (col_name column_definition,...);
b. Mengubah (Change atau Modify):
Sintaks SQL untuk mengubah kolom:
CHANGE [COLUMN] old_col_name new_col_name
column_definition
[FIRST|AFTER col_name];
Atau
MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name];
c. Menghapus (Drop):
Sintaks SQL untuk menghapus kolom:
DROP [COLUMN] col_name;
DROP PRIMARY KEY;
DROP FOREIGN KEY fk_symbol ;
Contoh:
Tambahkan kolom KETERANGAN pada tabel SUPPLIER dengan tipe text.
Perintah:
ALTER TABLE SUPPLIER ADD KETERANGAN TEXT;
DROP DATABASE
Sintaks:
DROP DATABASE nama_database;
Contoh: Menghapus basisdata KOPSIS
DROP DATABASE KOPSIS;
DROP TABLE
Sintaks:
DROP TABLE nama_table;

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

10

Contoh: Menghapus tabel SUPPLIER


DROP TABLE SUPPLIER;
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang berhubungan dengan manipulasi atau
pengolahan data atau record dalam tabel. Manipulasi data dapat berupa:
- Penyisipan/penambahan data baru ke suatu basisdata (INSERT)
- Pemanggilan/menampilkan data yang ada dalam basisdata (SELECT)
- Pengubahan data di suatu basis data (UPDATE)
- Penghapusan data dari suatu basisdata (DELETE)

PERINTAH INSERT
Sintaks perintah INSERT langsung:
INSERT INTO <table specification>
[<column list>]
VALUES (<expression> [{,<expression>}. . . ]);
Contoh:
Masukkan data pada tabel SUPPLIER dengan isian
Kode Supplier = S0001
Nama Supplier = H. Subur
Alamat Supplier = Telang Indah Permai W-10
Kota Supplier = Bangkalan
Maka kalimat SQL yang dapat digunakan adalah sebagai berikut:
INSERT
INTO
SUPPLIER
ALAMAT_SUPPLIER,KOTA_SUPPLIER)
VALUES
('S0001','H.
Subur','
10','Bangkalan');

(KODE_SUPPLIER,NAMA_SUPPLIER,
Telang

Indah

Permai

W-

Atau
INSERT INTO SUPPLIER VALUES ('S0001','H. Subur',' Telang Indah
Permai W-10','Bangkalan');
PERINTAH SELECT
SELECT satu tabel

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

Syntax:
SELECT field_name
FROM table_name
WHERE [kondisi];
SELECT lebih dari satu tabel
SELECT table_name1.field_name,table_name2.field_name
FROM table_name1, table_name2
WHERE [kondisi];
Contoh:
SELECT NAMA_SUPPLIER,ALAMAT_SUPPLIER
FROM SUPPLIER
WHERE KODE_SUPPLIER ='S0001';
PERINTAH UPDATE
Syntax:
UPDATE
<table specification>
SET <column name = expression>
[ WHERE <condition> ];
Contoh:
Ubah data supplier diatas untuk field alamat menjadi Telang Raya No.2 Bangkalan
UPDATE
SUPPLIER
SET ALAMAT_SUPPLIER = 'Telang Raya No.2 Bangkalan'
WHERE KODE_SUPPLIER = 'S0001';
PERINTAH DELETE
Syntax:
DELETE
FROM <table specification>
[ WHERE <condition> ]
Contoh:
Hapus data supplier diatas pada tabel SUPPLIER
DELETE FROM SUPPLIER
WHERE KODE_SUPPLIER = S0001;
3. DCL atau Data Control Language

11

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

12

MySQL pada dasarnya merupakan sistem database yang aman. Di MySQL kita dapat
mengatur hak akses tiap user terhadap data di database. MySQL memungkinkan kita
mengatur hak akses user terhadap database, tabel, dan kolom. DCL merupakan perintah SQL
yang berhubungan dengan manipulasi user dan hak akses (priviledges).
GRANT
Syntax:
GRANT priv_type
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[WITH GRANT OPTION]
REVOKE
Syntax:
REVOKE priv_type
ON {tbl_name | * | *.* | db_name.*}
FROM user_name
Berikut ini pilihan untuk priv_type dalam bentuk umum perintah GRANT dan REVOKE di
atas:
ALL PRIVILEGES
ALTER
CREATE
DELETE
DROP

FILE
INDEX
INSERT
PROCESS
REFERENCES

RELOAD
SELECT
SHUTDOWN
UPDATE
USAGE

4. FUNCTION OPERATOR
Function yang dimaksud adalah function yang telah disediakan oleh server basisdata atau
dapat juga disebut sebagai build-in-function, meski sebenarnya function dapat dibuat sendiri
oleh pemrogram.
Operator IS [NOT] NULL
Operator IS NULL digunakan untuk memilih baris dalam kolom tertentu yang tidak
memiliki nilai atau NULL.
Sintaks:
<predicate with null> ::=
<scalar expression> IS [ NOT ] NULL
Contoh:

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

13

SELECT NAMA_SUPPLIER
FROM SUPPLIER
WHERE ALAMAT_SUPPLIER IS NOT NULL;
Operator BETWEEN
Operator BETWEEN digunakan untuk menentukan range nilai suatu ekspresi dalam perintah
SQL.
Syntax:
<predicate with between> ::=
<scalar expression> [ NOT ] BETWEEN <scalar expression>
AND <scalar expression>
Contoh:
Cari nama dan tanggal transaksi pembelian barang antara tahun 2014 sampai 2015
SELECT NAMA_TRANSAKSI,TGL_TRANSAKSI
FROM PEMBELIAN
WHERE YEAR(TGL_TRANSAKSI) BETWEEN 2014 AND 2015;
Operator LIKE
Operator LIKE digunakan untuk memilih nilai alfanumerik yang memiliki pola tertentu.
Syntax:
<predicate with like> ::=
<scalar expression> [ NOT ] LIKE <like pattern>
[ ESCAPE <character> ]
<like pattern> ::= <scalar alphanumeric expression>
Contoh:
Cari NAMA_SUPPLIER dari tabel SUPPLIER yang huruf kedua terakhirnya adalah a tanpa
melihat panjang charakter dalam namanya.
SELECT NAMA_SUPPLIER
FROM SUPPLIER
WHERE NAMA_SUPPLIER LIKE %a_;
Operator IN
Operator ini digunakan ketika data disajikan bentuk list/daftar yang dicek kondisinya.
Operator IN dapat dibandingkan dengan operator OR.
Syntax:
<predicate with in> ::=
<scalar expression> [ NOT ] IN <scalar expression
list> |

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

14

<row expression> [ NOT ] IN <row expression list>


<row expression list> ::=
( <scalar expression list>
[ , <scalar expression list> ]... )
<scalar expression list> ::=
( <scalar expression> [ , <scalar expression> ]... )
Contoh:
Tampilkan nama dan kota dari supplier pada tabel SUPPLIER yang tinggal di kota
Bangkalan dan Surabaya
Perintah SQL dengan menggunakan operator OR:
SELECT NAMA_SUPPLIER, KOTA_SUPPLIER
FROM SUPPLIER
WHERE KOTA_SUPPLIER =Bangkalan OR KOTA_SUPPLIER= SURABAYA;
Perintah SQL dengan menggunakan operator IN:
SELECT NAMA_SUPPLIER, KOTA_SUPPLIER
FROM SUPPLIER
WHERE KOTA_SUPPLIER IN (Bangkalan, Surabaya);

Tugas Pendahuluan
1. Buat script create table Mahasiswa dan Dosen dengan relasi perwalian dan integrity

constraint cascade on update dan restrict on delete.


2. Dari script DDL pada tugas pendahuluan modul 1, jalankan pada DBMS my SQL

untuk membuat tabel tabel dan relasinya. Gunakan mode integrity constraint cascade
on update dan restrict on delete.
3. Buat script penambahan data transaksi penjualan dan penambahan data transaksi

pemesanan barang pada database KOPSIS yang telah dibuat selama bulan Januari Mei
dengan minimal 15 transaksi setiap bulannya.
4. Buat script untuk menampilkan data pembelian barang pada Supplier X, yang

dilakukan bulan Januari sampai dengan bulan Februari.


5. Buat script untuk melakukan penghapusan data Supplier X pada no 4. Perhatikan

keberadaan integrity constraint.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

15

Tugas Praktikum
1. Implementasikan perancangan yang sudah dibuat pada tugas praktikum modul 1

dengan DBMS MySQL 5.


2. Buat script penambahan data untuk masing masing tabel pada database yang sudah

dibuat, @minimal 5 record.


3. Tampilkan derived attribute dari database yang sudah dibuat dengan menggunakan

operasi sum, avg, count dan group_by

Referensi
[1] Solichin, Achmad. MySQL5: Dari Pemula Hingga Mahir. Achmadtim.Net, 2010.
[2] Tahaghoghi, Seyed MM, and Hugh E. Williams. Learning MySQL. " O'Reilly Media,
Inc.", 2006.
[3] Axmark, David, and Michael Widenius. MySQL Reference Manual. O'Reilly, 2002.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

16

Modul 3 Mengenal UNION, JOIN dan View


Tujuan:
1. Mahasiswa mampu menjelaskan dan menggunakan operator union dan join (INNER JOIN
LEFT JOIN dan RIGHT JOIN)
2. Mahasiswa mampu membuat view yang melibatkan beberapa tabel

Materi
1. UNION
Union

didukung

oleh

MySQL mulai

dari

versi

4.0.

Pemakaian

union

dapat

menyederhanakan perintah persyaratan OR yang bertingkat. Bila dalam sebuah query


menghasilkan pemakaian perintah OR yang lebih dari satu sehingga dapat membuat
bingung, sebagai gantinya digunakan perintah UNION. Union dapat dikatakan sebagai
perintah untuk menggabungkan hasil query sql yang fungsinya sama dengan perintah OR.
Syntax:
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
Contoh:
SELECT TANGGAL_TRANS,NAMA_TRANS_PEMBELIAN, JML_TRANS_BELI
FROM PEMBELIAN
UNION
SELECT TANGGAL_TRANS,NAMA_TRANS_PENJUALAN,JML_TRANS_JUAL
FROM PENJUALAN
ORDER BY TANGGAL_TRANS;
2. JOIN
Operator Join digunakan untuk menghubungkan dua tabel atau lebih pada kolom yang
bersesuaian. Perintah JOIN ada beberapa macam, diantaranya: INNER JOIN, LEFT
JOIN, RIGHT JOIN, FULL JOIN.
INNER JOIN
Di dalam INNER JOIN, hasil akhir hanya akan menampilkan data yang ada di kedua
tabel.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

17

Jika pada tabel PEMBELIAN terdapat data sebagai berikut:


KODE_
PEMBELIAN

Tgl_Trans

NAMA_TRANS_PEMBELIAN

KODE_SUPPLI
ER

1038

13 Januari
2015
15 Januari
2015
17 Januari
2015

Pembelian
Joyko Gel
Pembelian
A4 80gr 1
Pembelian
220 ml 48

S0001

1039
1040

Bolpen
12 pc
Kertas HVS
rim
Aqua gls
pc

S0001
S0002

Tabel PEMBELIAN tersebut berelasi dengan tabel SUPPLIER dan terdapat data sebagai
berikut:
KODE_SUP
PLIER
S0001
S0002
S0003

NAMA_SUPPLIER

Alamat_SUPPLIER

Ahmad Rifai
Irwansyah
Hanum Salsabila

Perak Timur III 10


Telang Indah 1 A-5
Telang Asri C-15

Kota_SUPP
LIER
Surabaya
Bangkalan
Bangkalan

Maka kita dapat menggunakan INNER JOIN untuk menampilkan kode pembelian, nama
supplier dan tanggal pembelian.
Contoh:
SELECT a.Kode_PEMBELIAN, b.NAMA_SUPPLIER, a.TANGGAL_TRANS
FROM PEMBELIAN a
INNER JOIN SUPPLIER b
ON a.KODE_SUPPLIER=b.KODE_SUPPLIER;
Hasilnya:
KODE_TRANS
_PEMBELIAN
1038
1039
1040

NAMA_SUPPLIER
Ahmad Rifai
Ahmad Rifai
Irwansyah

Tgl_Trans
13 Januari 2015
15 Januari 2015
17 Januari 2015

LEFT JOIN
Perintah dengan operator ini akan menghasilkan data pada tabel kiri (tabel satu) walaupun
tidak memiliki relasi pada tabel kanan (tabel dua). Jika data yang terdapat di sebelah
kiri tidak terdapat pada tabel sebelah kanan, maka SQL Engine akan tetap mengeluarkan
nilai NULL. Sebagai gambaran LEFT JOIN adalah sebagai berikut:

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

18

Contoh:
SELECT a.Kode_PEMBELIAN, b.NAMA_SUPPLIER, a.TANGGAL_TRANS
FROM PEMBELIAN a
LEFT JOIN SUPPLIER b
ON a.KODE_SUPPLIER=b.KODE_SUPPLIER;
Hasilnya:
KODE_
PEMBELIAN
1038
1039
1040

NAMA_SUPPLIER
Ahmad Rifai
Ahmad Rifai
Irwansyah

Tgl_Trans
13 Januari 2015
15 Januari 2015
17 Januari 2015

RIGHT JOIN
Perintah dengan operator ini akan menghasilkan data pada tabel kanan (tabel dua) walaupun
tidak memiliki relasi pada tabel kiri (tabel satu). Sebagai gambaran RIGHT JOIN adalah
sebagai berikut:

Contoh:
SELECT a.Kode_PEMBELIAN, b.NAMA_SUPPLIER, a.TANGGAL_TRANS
FROM PEMBELIAN a
RIGHT JOIN SUPPLIER b
ON a.KODE_SUPPLIER=b.KODE_SUPPLIER;
Hasilnya:
KODE_
PEMBELIAN

NAMA_SUPPLIER

Tgl_Trans

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

1038
1039
1040
NULL

Ahmad Rifai
Ahmad Rifai
Irwansyah
Hanum Salsabila

19
13 Januari 2015
15 Januari 2015
17 Januari 2015
NULL

3. VIEW
View merupakan 'derived tables' sehingga ia harus didefinisikan dalam perintah SQL pada
tabel basis atau view yang lain. Tabel basis yang dimaksud di sini adalah tabel yang dimiliki
oleh suatu basisdata.
Sintaks:
CREATE VIEW view_name (column_name) AS
[SELECT BLOCK]
- Isi View bisa berupa gabungan beberapa tabel
- Didalam sintaks view bisa dimasukkan function yang sering digunakan dalam, seperti:
IS [NOT] NULL, JOIN, DISTINCT, BETWEEN, Operator AND, OR, MIN, MAX, AVG
dan lain-lain
Selain tabel basis yang menjadi referensi, view lainpun dapat digunakan sebagai referensi
ketika kita membuat view yang baru
Contoh:
Buatlah view untuk menampilkan semua transaksi (tanggal transaksi, nama transaksi, nilai /
jumlah transaksi) yang pernah dilakukan:
CREATE VIEW V_TRANSAKSI AS
SELECT TANGGAL_TRANS,NAMA_TRANS_PEMBELIAN,JML_TRANS_BELI
FROM PEMBELIAN
UNION
SELECT TANGGAL_TRANS,NAMA_TRANS_PENJUALAN,JML_TRANS_JUAL
FROM PENJUALAN
ORDER BY TANGGAL_TRANS;
Menghapus VIEW
View yang ada dalam basisdata dapat dihapus dengan menggunakan sintaks SQL berikut:
DROP VIEW view_name;
Contoh : Hapuslah view V_TRANSAKSI

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

20

DROP VIEW v_TRANSAKSI;

Tugas Pendahuluan
1. Jelaskan tentang operator UNION, INNER JOIN, LEFT JOIN dan RIGHT JOIN.

Berikan contoh dengan gambar.


2. a. Pada database KOPSIS yang sudah dibuat, buat view untuk menampilkan kode

barang, nama barang, harga pembelian barang dan harga penjualan barang.
b. Buat view untuk menampilkan tanggal transaksi, dan nama transaksi baik pembelian
barang maupun penjualan barang beserta harga pembelian dan harga penjualannya.
Harga pembelian dan penjualan tiap kode barang menggunakan view yang telah dibuat
pada no. 2a. (nested view)
3. Pada database KOPSIS yang sudah dibuat, tampilkan semua kode barang, nama

barang, data stok barang terakhir yang dimiliki oleh KOPSIS, baik yang berada di
gudang maupun di display menggunakan UNION/JOIN.

Tugas Praktikum
1. Buat view dengan menggunakan operator UNION atau JOIN pada DBMS studi kasus

masing masing yang telah ditentukan pada modul 1. (atas petunjuk asisten)
2. Buat nested view dengan menggunakan operator UNION atau JOIN pada DBMS

studi kasus masing masing yang telah ditentukan pada modul 1. (atas petunjuk asisten).

Referensi
[1] Solichin, Achmad. MySQL5: Dari Pemula Hingga Mahir. Achmadtim.Net, 2010.
[2] Tahaghoghi, Seyed MM, and Hugh E. Williams. Learning MySQL. " O'Reilly Media,
Inc.", 2006.
[3] Axmark, David, and Michael Widenius. MySQL Reference Manual. O'Reilly, 2002.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

21

Modul 4 Mengenal Stored Procedure dan Trigger


Tujuan:
1. Mahasiswa mampu menjelaskan dan menggunakan stored procedure
2. Mahasiswa mampu menjelaskan dan menggunakan trigger

Materi
Stored procedure dan trigger sama-sama merupakan perintah yang dibuat dalam bentuk
deklaratif dan prosedural. Perbedaannya adalah Stored procedure diaktifkan sebagai
suatu perintah oleh editor SQL, program, atau oleh Stored Procedure atau Trigger lain.
Sedangkan Trigger diaktifkan hanya oleh Sistem Manajemen Basisdata dalam suatu kondisi
tertentu (ketika pernyataan INSERT, UPDATE, DELETE dilaksanakan).
Stored Procedure
Syntax:
<create procedure statement> ::=
CREATE PROCEDURE <procedure name> ([<parameter list>])
<routine body>
<parameter list> ::= <parameter specification>
[ , <parameter specification> ]...
<parameter specification> ::= [IN|OUT|INOUT]
<parameter> <data type>
<routine body> ::= <begin-end block>
<begin-end block> ::=
[ <label> : ] BEGIN <statement list> END
[ <label> ]
<statement list> ::= { <body statement> ; }...
<statement in body> ::=
<declarative statement>| <procedural statement>
Sintaks untuk mengaktifkan atau memanggil stored procedure yang telah dibuat:
<call statement> ::=
CALL [<database name>. ]<stored procedure name>
([<scalar expression>[,<scalar expression>]...])
Sedangkan penghapusan Stored Procedure dapat dilakukan dengan sintaks SQL:
<drop procedure statement> ::=
DROP PROCEDURE [ IF EXISTS ]
[ <database name> . ] <procedure name>

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

22

Stored procedure dapat dibuat tanpa menggunakan parameter (bersifat statis) atau
dengan menggunakan parameter yang bersifat dinamis karena pengguna dapat mengisikan
nilai

sesuai yang diinginkan ketika stored procedure diaktifkan. Parameter yang dapat

digunakan terdiri dari tiga macam, yaitu parameter masukan (IN), parameter keluaran (OUT),
dan parameter masukan-keluaran (IN OUT).
Kasus: Pada database KOPSIS telah terjadi kesalahan dalam memasukkan transaksi
pembelian. Karena itu diperlukan suatu prosedur untuk menghapus data transaksi pembelian
yang dilakukan pada tanggal 13 Januari 2015.
Berikut ini contoh stored procedure tanpa penggunaan parameter.
CREATE PROCEDURE HAPUS_TRANSAKSI()
BEGIN
DELETE FROM PEMBELIAN
WHERE TGL_TRANS = 20150115;
END;
Berikut ini contoh stored procedure dengan penggunaan parameter.berupa tanggal transaksi
berdasarkan input user.
CREATE PROCEDURE HAPUS_TRANSAKSI
(IN P_TGL_TRANS DATE)
BEGIN
DELETE FROM PEMBELIAN
WHERE TGL_TRANS = P_TGL_TRANS;
END;
Deklarasi variabel yang digunakan untuk menyimpan hasil ekspresi sebelumnya, dapat
dibuat dengan perintah:
DECLARE NAMA_VARIABEL TYPE_DATA;
Penggunaan blok IF-THEN untuk menyeleksi kondisi, dapat digunakan didalam perintah
stored procedure. Perintah yang digunakan yaitu:
IF kondisi_seleksi THEN
[Blok pernyataan bila kondisi terpenuhi];
END IF;
Perintah SQL untuk aktivasi/pemanggilan stored procedure:
CALL nama_storedprocedure;

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

23

Perintah SQL untuk menghapus stored procedure:


DROP PROCEDURE nama_storedprocedure;
Trigger
Syntax:
<create trigger statement> ::=
CREATE [ <definer option> ]
TRIGGER <trigger name>
<trigger moment>
<trigger event>
<trigger action>
<definer option> ::=
DEFINER = { <user name> | CURRENT_USER }
<trigger moment> ::= BEFORE | AFTER
<trigger event> ::=
{ INSERT | DELETE | UPDATE }
ON <table specification> FOR EACH ROW
<trigger action> ::= <statement>
Sintaks SQL untuk menghapus Trigger:
<drop trigger statement> ::=
<trigger name>

DROP TRIGGER [ <table name> . ]

Untuk mempermudah pemahaman penggunaan trigger, maka perhatikan contoh berikut


ini. Pada basis data KOPSIS, dibutuhkan trigger untuk menghitung stok barang di display.
Trigger ini dijalankan setiap kali dilakukan transaksi penjualan.
CREATE TRIGGER TR_STOK
AFTER
UPDATE ON PENJUALAN FOR EACH ROW
BEGIN
SELECT a.STOK into v_stok
FROM BARANG a
WHERE (a.KODE_BARANG = NEW.KODE_BARANG);
UPDATE BARANG
SET (STOK = v_stok NEW.JML_ITEM)
END;

Tugas Pendahuluan
1. Jelaskan perbedaan stored procedure dan trigger dari kegunaan dan syntax

perintahnya.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

24

2. Pada database KOPSIS, buat stored procedure untuk menampilkan kode barang, nama

barang dan laba yang dihasilkannya. Laba ini diperoleh dari selisih harga pembelian tiap
item barang dan harga penjualan barang dikalikan jumlah barang terjual. Buat view
untuk menampilkannya pada semua data kode barang.
3. Pada database KOPSIS, lakukan modifikasi pada tabel yang menyimpan data

pembelian barang agar dapat menampung satuan kemasan barang seperti lusin (12 pc),
gross (144 pc), rim (500 lembar), pak (10 pc) dan buah (1 pc). Buat trigger untuk
menghitung jumlah barang dengan satuan buah setiap kali memasukkan transaksi
pembelian barang dengan jumlah satuan kemasan lusin, gross, rim dan pak.

Tugas Praktikum
1. Buat stored procedure pada DBMS studi kasus masing masing yang telah ditentukan

pada modul 1. (atas petunjuk asisten)


2. Buat trigger pada DBMS studi kasus masing masing yang telah ditentukan pada

modul 1. (atas petunjuk asisten).

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

25

Modul 5 Melakukan Koneksi dari Web ke Database


Tujuan:
1. Mahasiswa mampu menjelaskan arsitektur sistem basisdata berbasis web
2. Mahasiswa mampu melakukan koneksi ke database menggunakan library MySQL,
MySQLi dan PDO

Materi
1. Arsitektur Web Database
PHP adalah salah satu bahasa pemrograman berbasis web. PHP bersifat cepat,
gratis dan murah,

selain

itu PHP mendukung penggunaan basisdata seperti MySQL,

PostgreSQL, mSQL, Oracle dll.


Langkah kerja pada sistem basis data berbasis web sangat berbeda dengan sistem
basis data berbasis desktop. Pada sistem basis data berbasis web, terdapat web server yang
menjembatani antara request dari client kepada database server. Arsitektur sistemnya dapat
dilihat pada gambar berikut ini.

Berikut ini penjelasannya:


1. Web browser pada client mengeluarkan HTTP REQUEST pada web server tentang

sebuah halaman web. Contohnya client melakukan request halaman view_data.php


2. Web server menerima request dari client, membaca filenya dan kemudian di proses

oleh engine PHP.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

26

3. PHP engine mulai membaca script (parsing) PHP. Didalam script ditemukan perintah

untuk melakukan koneksi ke database server (MySQL). Sehingga PHP engine


melakukan koneksi dan query ke MySQL.
4. Server MySQL menerima query dari PHP engine dan memproses query tersebut.

Hasil query bisa berupa nilai tunggal ataupun beberapa baris data. Hasil query kemudian
dikirimkan lagi ke PHP engine.
5. PHP

engine

menyelesaikan

pemrosesan

script.

Dalam

hal

ini,

termasuk

menerjemahkan script PHP menjadi HTML untuk diberikan kepada web server.
6. Web server mengirimkan HHTML tersebut e web browser client.

2. Koneksi ke database
Untuk melakukan koneksi ke MySQL kita bisa menggunakan library API dari PHP 5.0 yaitu
MySQL, MySQLi dan PDO. Berikut ini contoh script untuk melakukan koneksi ke database
menggunakan MySQL, MySQLi dan PDO.
<?php
// mysqli
$mysqli = new mysqli("localhost", "user", "password", "databas
e");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!
AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);
// PDO
$pdo = new PDO('mysql:host= localhost;dbname=database','user',
'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS
_message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);
// mysql
$c = mysql_connect("localhost", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _me
ssage FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

27

Berikut adalah contoh script untuk melakukan koneksi ke server "localhost" kita dengan user
"root" tanpa password (kosong) dengan library mysql:
<?php
error_reporting(0);
$koneksi = mysql_connect("localhost","root","")
die("Koneksi Gagal !" . mysql_error());
if($koneksi) echo "Koneksi Berhasil";
mysql_close($koneksi);
?>

or

Jika koneksi berhasil dibuka maka akan muncul Koneksi Berhasil dan apabilah gagal,
maka di web akan muncul tulisan Koneksi Gagal.
3. Menentukan Database
Setelah koneksi berhasil, maka selanjutnya adalah memilih database yang akan digunakan.
berikut adalah syntax perintahnya :
mysql_select_db ( nama_database )
atau
mysql_select_db ( nama_database, $var_koneksi)
Berikut adalah contoh scriptnya :
<?php
error_reporting(0);
$koneksi=mysql_connect("localhost","root","")or die("Koneksi
Gagal !" . mysql_error());
if($koneksi) echo "Koneksi Berhasil";
$db
=
mysql_select_db("KOPSIS")
ada !" . mysql_error());

or

die("Database

tidak

echo "<br />";


if($db) echo "Database KOPSIS berhasil dibuka !";
mysql_close($koneksi);
?>
Dan jika berhasil maka tampilan akan muncul tulisan Koneksi Berhasil dan dibawanya
muncul Database KOPSIS berhasil dibuka

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

28

Tugas Pendahuluan
1. Jelaskan database server dan web server yang sudah diinstal dan keterkaitannya

dengan XAMPP. Sebutkan nama dan versinya.


2. Jelaskan syntax PHP dan penggunaannya untuk membuka koneksi ke server database

dengan menggunakan library mysql pada PHP


3. Jelaskan syntax PHP dan penggunaannya untuk membuka koneksi ke server database

dengan menggunakan library PDO pada PHP.


4. Bagaimana untuk menampilkan apakah koneksi database yang dilakukan berhasil atau

tidak?Jelaskan
5. Jelaskan syntax PHP dan penggunaannya untuk menentukan database yang akan

digunakan.

Tugas Praktikum
1. Lakukan koneksi ke database server dari web server yang ada dan tampilkan hasil

koneksi yang dilakukannya dengan menggunakan library MySQL pada PHP.


2. Lakukan koneksi ke database server dari web server yang ada dan tampilkan hasil

koneksi yang dilakukannya dengan menggunakan library MySQLi pada PHP.


3. Buat script PHP untuk menampilkan stored procedure dan trigger yang sudah dibuat

pada modul 4.

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

29

Modul 6 Pengembangan Sistem Informasi Sederhana berbasis Web


1. Mahasiswa mampu menjelaskan dan mengeksekusi query dari PHP
2. Mahasiswa mampu membuat dan menjelaskan sistem informasi sederhana berbasis web.

Materi
Built-in-function MySQL pada PHP
mysql_query()merupakan built-in-function untuk melakukan query ke database server.
Perintah ini digunakan untuk mengeksekusi query baik itu insert, update maupun delete.
Syntax:
Mysql_query(kalimat_sql,connection)
Contoh:
<?php
$koneksi=mysql_connect("localhost","root","")or die("Koneksi
Gagal !" . mysql_error());
if($koneksi) echo "Koneksi Berhasil";
$db
=
mysql_select_db("KOPSIS")
ada !" . mysql_error());

or

die("Database

echo "<br />";


if($db) echo "Database KOPSIS berhasil dibuka !";
$klmt_sql = 'INSERT INTO supplier'.
'(kode_supplier,nama_supplier,alamat_supplier) '.
'VALUES ( "123", "H. Agung", Telang Indah c-15)';
$rec_insert = mysql_query( $sql_statemanet);
if(! $rec_insert )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($koneksi);
?>
Beberapa built-in-function MySQL pada PHP antara lain :

tidak

MODUL PRAKTIKUM BASIS DATA


TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA

30

mysql_affected_rows mengembalikan banyaknya jumlah baris yang terpengaruh


oleh operasi MySQL yang dilakukan sebelumnya
mysql_client_encoding mengembalikan nama character set
mysql_close menutup koneksi pada server MySQL
mysql_connect membuka koneksi pada server MySQL
mysql_create_db membuat database pada server MySQL
mysql_db_name mengembalikan nama database yang ada pada mysql_list_dbs
mysql_db_query memilih database dan melakukan query pada database tersebut
mysql_drop_db menghapus database MySQL
mysql_errno Mengembalikan kode /nomer error yang terjadi karena operasi MySQL
yang dilakukan sebelumnya
mysql_error Menampilkan pesan error yang terjadi karena operasi MySQL yang
dilakukan sebelumnya
mysql_fetch_array Membaca satu baris data pada array asosiasi, ataupun array
numerik.
mysql_fetch_assoc Membaca satu baris data pada array asosiasi

Tugas Pendahuluan
1. Jelaskan cara menampilkan hasil query yang berupa beberapa baris record dalam

database.
2. Buat script PHP untuk melakukan query menampilkan soal no 2 pada modul 4.
3. Jelaskan perbedaan penggunaan method GET dan POST pada form.
4. Buat form HTML sederhana untuk memasukkan data pada tabel master Barang di

database KOPSIS. Jelaskan penggunaan masing masing syntax yang digunakan.


5. Buat form HTML sederhana untuk mengubah data pada tabel master Barang di

database KOPSIS. Jelaskan penggunaan masing masing syntax yang digunakan.

Tugas Praktikum
1. Buat form HTML sederhana untuk memasukkan data pada tabel di database pada

studi kasus masing - masing.


2. Buat form HTML sederhana untuk mengubah data pada tabel di database pada studi

kasus masing - masing

Anda mungkin juga menyukai