Anda di halaman 1dari 31

MODUL PRAKTIKUM SISTEM BASIS DATA

TRI ASTUTI, S.Kom., M.Eng.

NURFAIZAH, M.Kom.

UNIVERSITAS AMIKOM PURWOKERTO

FAKULTAS ILMU KOMPUTER

PROGRAM STUDI INFORMATIKA


MODUL PRAKTIKUM SISTEM BASISI DATA


PRAKTIKUM 7
A. JOIN TABLE
Terkadang kita harus memilih data dari dua tabel atau lebih untuk
mendapatkan hasil yang komplit. Oleh karena itu, kita harus melakukan sebuah
JOIN. Join merupakan operasi yang digunakan untuk menggabungkan dua tabel
atau lebih dengan hasil berupa gabungan dari kolom3kolom yang berasal dari
tabel-tabel tersebut. Pada join sederhana, tabel-tabel digabungkan dan
didasarkan pada pencocokan antara kolom pada tabel yang berbeda.
Tabel-tabel dalam sebuah basisdata dapat dihubungkan satu sama lain
menggunakan kunci. Kunci utama adalah sebuah kolom dengan nilai unik untuk
masing-masing baris. Tujuannya adalah menggabungkan data antar tabel tanpa
mengulangi semua data pada setiap tabel. Kita bisa menggunakan kata kunci
JOIN untuk memilih data. Ada tiga macam kunci JOIN, yaitu INNER JOIN, LEFT JOIN,
dan RIGHT JOIN. Tahapan praktium join tabel sebagai berikut:
1. Membuat Database toko, yang terdiri dari 4 tabel yaitu tabel barang, tabel
pelanggan, tabel penjualan, tabel penjualan_detail.
2. Buat database toko

3. Buat tabel barang

1
MODUL PRAKTIKUM SISTEM BASISI DATA


4. Buat tabel pelanggan

5. Buat Tabel penjualan

6. Buat Tabel penjualan_detail

2
MODUL PRAKTIKUM SISTEM BASISI DATA


7. Inputkan data pada barang sehingga hasilnya sebagai berikut

8. Inputkan data pada pelangga seperti pada tabel berikut

9. Inputkan data pada tabel penjualan sebagai berikut:

10. Inputkan data pada tabel penjualan_detail sebagai berikut:

3
MODUL PRAKTIKUM SISTEM BASISI DATA


B. MEMBUAT RELASI TABEL


1. Klik kanan pada Database Diagrams kemudian klik new diagram seperti berikut

2. Muncul tampilan untuk memilih tabel yang akan direlasikan, pilih semua tabel dari
database toko dengan cara klik Add satu persatu tabel atau dengan cara blok seluruh
tabel kemudian klik Add

4
MODUL PRAKTIKUM SISTEM BASISI DATA


3. Secara otomatis tabel akan berelasi jika penggunaan primary key dan pemanggilan
foreign key sesuai seperti berikut

C. INNER JOIN
Inner join digunakan untuk menampilkan data dari dua tabel yang berisi data
sesuai dengan syarat di belakang on (tidak boleh null). penulisan INNER JOIN dapat

dilakukan dengan beberapa cara yaitu (1) menggunakan klausa INNER JOIN (2)

menggunakan klausa CROSS JOIN (3) cukup menggunakan klausa JOIN saja.

tabel akan digabungkan berdasarkan data yang sama, yang ada pada kedua

tabel, jika di gambarkan dalam bentuk diagram venn, bentuk inner join seperti
tampak pada gambar berikut:

5
MODUL PRAKTIKUM SISTEM BASISI DATA


Sebagai contoh kita akan menampilkan data pelanggan yang melakukan transaksi
pembelian, query yang kita jalankan:

 Pelanggan dengan nama Delta tidak muncul, hal ini disebabkan pelanggan

tersebut tidak pernah melakukan transaksi.


 Transaksi dengan id_transaksi 5 tidak muncul, karena transaksi tersebut memiliki

nilai id_transaksi NULL, sehingga tidak terhubung ke pelanggan manapun.

D. OUTER JOIN
Cara kedua untuk menggabungkan tabel pada SQL adalah menggunakan

outer join. Pada outer join, data pada salah satu tabel akan ditampilkan semua,

sedangkan data pada tabel yang lain hanya akan ditampilkan jika data tersebut

ada pada tabel pertama. OUTER JOIN dibagi menjadi dua, yaitu LEFT OUTER

JOIN dan RIGHT OUTER JOIN.

1. LEFT OUTER JOIN


Left outer join digunakan untuk menampilkan semua data dari tabel sebelah kiri
perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun
terdapat data dari sebelah kiri tidak memiliki pasangan, tetap akan ditampilkan

6
MODUL PRAKTIKUM SISTEM BASISI DATA


dengan pasangannya berupa nilai NULL. Pada LEFT OUTER JOIN, semua data pada

tabel sebelah kiri akan ditampilkan, sedangkan data pada tabel disebelah kanan
hanya akan ditampilkan jika data terkait pada tabel tersebut muncul di tabel

sebelah kiri. LEFT OUTER JOIN dapat ditulis menggunakan dua cara, yaitu (1)

dengan klausa LEFT OUTER JOIN, (2) cukup dengan klausa LEFT JOIN saja. Jika di

gambarkan dalam bentuk diagram venn, bentuk LEFT OUTER JOIN tampak pada

gambar berikut:

Contoh kita tampilkan semua data pelanggan beserta data transaksinya,


jalankan query berikut:

7
MODUL PRAKTIKUM SISTEM BASISI DATA


2. RIGHT JOIN
Right join digunakan untuk menampilkan semua data dari tabel sebelah kanan
perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat
data dari sebelah kanan tidak memiliki pasangan, tetap akan ditampilkan dengan

pasangannya berupa nilai NULL. Kebalikan dari LEFT OUTER JOIN, pada RIGHT

OUTER JOIN, data pada tabel sebelah kanan akan ditampilkan semua, sedangkan

data pada sebelah kiri hanya ditampilkan jika data terkait pada tabel tersebut

muncul pada tabel sebelah kanan. Sama seperti LEFT OUTER JOIN, RIGHT OUTER

JOIN juga dapat ditulis menggunakan dua cara, yaitu ditulis secara utuh atau

cukup RIGHT JOIN saja. Saya sendiri lebih prefer menggunakan RIGHT JOIN saja.

Jika digambarkan dalam bentuk diagram venn, maka, bentuk right outer join akan
tampak seperti gambar berikut:

Contoh kita tampilkan semua data transaksi beserta data pelanggannya, jalankan

query berikut:

8
MODUL PRAKTIKUM SISTEM BASISI DATA


TUGAS PRAKTIKUM 7
1. Buatlah database dengan nama kepegawaian, buat struktur tabelnya sehingga didapatkan relasi
tabel sebagai berikut

2. Isikan data pada masing-masing tabel minimal 5 record


3. Buatlah query inner join dan outer join untuk menampilkan data dari 2 tabel

9
MODUL PRAKTIKUM SISTEM BASISI DATA


PRAKTIKUM 8
SUB QUERY

Sub Query adalah query nested atau sebuah query ada di dalam query. Sub query
merupakan pernyataan SELECT yang merupakan bagian dari pernyataan INSERT,
SELECT. Sub query digunakan untuk menangani masalah dalam query, sub query
biasanya ditambahkan di sintaks WHERE nya.

LANGKAH PRAKTIKUM
1. Buatlah database perkuliahan
2. Buat tabel sehingga menghasilkan relasi seperti berikut

3. Isikan data pada tabel mahasiswa dengan isi record sebagai berikut

10
MODUL PRAKTIKUM SISTEM BASISI DATA


4. Isikan data pada tabel matakuliah dengan isi record sebagai berikut

5. Isikan data pada tabel ambilmk dengan isi record sebagai berikut

1. Operator IN
Operator IN memiliki arti : sama dengan member di dalam list.

Sebagai contoh, kita bisa menggunakan operator ini untuk mendapatkan data
mahasiswa yang mengambil matakuliah.

11
MODUL PRAKTIKUM SISTEM BASISI DATA


2. Operator ANY
Operator ANY / SOME memiliki arti : membandingkan suatu nilai dengan setiap nilai
yang dikembalikan oleh subquery.

Misalkan kita ingin mendapatkan data matakuliah yang memiliki sks lebih besar dari
sembarang sks matakuliah.

3. Operator ALL
Operator ALL memiliki arti: membandingkan suatu nilai dengan semua nilai yang
dikembalikan oleh subquery.

Misal, kita ingin mendapatkan data matakuliah yang memiliki sks lebih besar dari
semua sks matakuliah di semester 4.

12
MODUL PRAKTIKUM SISTEM BASISI DATA


TUGAS
Berdasarkan database perkuliahan diatas tuliskan query untuk kasus berikut:
1. Tampilkan nama mahasiswa dan nilai matakuliah yang memiliki nilai tertinggi
dalam matakuliah ‘A02’.
2. Tampilkan nim dan nama mahasiswa yang memiliki nilai di atas rata-rata nilai
dari semua mahasiswa yang mengambil matakuliah dengan kode ‘A03’
3. Dari data mahasiswa yang terdaftar, siapa sajakah (nama) mahasiswa yang
tidak mengambil matakuliah ‘A01’?

13
MODUL PRAKTIKUM SISTEM BASISI DATA


PRAKTIKUM 9
TRIGGER
Trigger dapat didefinisikan sebagai himpunan kode (prosedural) yang
dieksekusi secara otomatis sebagai respon atas suatu kejadian berkaitan dengan
tabel basis data. Kejadian (event) yang dapat membangkitkan trigger umumnya
berupa pernyataan INSERT, UPDATE, dan DELETE.
Berdasarkan ruang lingkupnya, trigger diklasifikasikan menjadi dua jenis : row
trigger dan statement trigger. Trigger baris (row) mendefinisikan aksi untuk setiap
baris tabel: trigger pernyataan hanya berlaku untuk setiap pernyataan INSERT,
UPDATE, dan DELETE.
Dari sisi perilaku (behavior) eksekusi, trigger dapat dibedakan menjadi
beberapa jenis; namun umumnya ada dua jenis: trigger BEFORE dan AFTER. Sesuai
penamaannya, jenis-jenis ini merepresentasikan waktu eksekusi trigger-misalnya
sebelum ataukah sesudah pernyataan-pernyataan yang berkorespondensi.
Adakalanya trigger dipandang sebagai bentuk spesifik dari stored procedure
(terkait pendefinisian body). Bagaimanapun, trigger akan dipanggil (secara
otomatis) ketika event terjadi, sedangkan stored procedure harus dipanggil secara
eksplisit.
Secara umum perintah Trigger sebagai berikut

CREATE TRIGGER <<PERINTAH


TRIGGER>> ON <<NAMA TABEL>> FOR
<<INSERT|UPDATE|DELETE>> AS
<<STATEMENT>>

14
MODUL PRAKTIKUM SISTEM BASISI DATA


KEGIATAN PRAKTIKUM
A. TRIGGER INSERT DATA BARANG
1. Gunakan tabel barang pada database toko
2. Ketikan perintah trigger berikut

3. Tambahkan data barang


4. Lihat hasilnya trigger akan menghsilkan info penambahan data barang

B. TRIGGER INSERT TABEL PEMBELIAN DIMANA JUMLAH STOK BARANG TABEL BARANG
UPDATE DARI JUMLAH BELI TABEL PEMBELIAN
1. Tambahkan tabel pembelian sebagai berikut:

2. Ketikkan pernyataan pembuatan trigger berikut yang digunakan untuk


menambahkan jumlah otomatis di tabel barang saat ada penambahan data di
tabel pembelian

15
MODUL PRAKTIKUM SISTEM BASISI DATA


3. Tambahkan data di tabel pembelian, perhatiakan hasil running program dari


query penambahan data pada tabel pembelian maka akan ada 2 tabel yang
bertambah.
Berikut data awal tabel barang dan tabel pembelian

Kita akan menambahkan data pada tabel pembelian sebanyak 15 dengan kode
barang 1

16
MODUL PRAKTIKUM SISTEM BASISI DATA


Perhatikan hasil dari running query diatas akan memberikan perubahan pada 2 tabel, hasil
dari barang dan tabel pembelian adalah sebagai berikut:

C. TRIGGER INSERT TABEL PENJUALAN DIMANA DATA STOK BARANG TABEL BARANG
AKAN BERKURANG JIKA ADA TRANSAKSI DI TABEL PENJUALAN
Contoh praktikum untuk membuat trigger update menggunakan tabel barang dan tabel
penjualan.
1. Tambahkan kolom id_barang pada tabel penjualan dan jadikan sebagai foreign key,
tuliskan query berikut

2. Ketikan trigger update berikut ini yang berfungsi untuk mengurangi stok pada tabel
barang jika ada proses transaksi di tabel penjualan

3. Data awal tabel barang dan tabel penjualan

17
MODUL PRAKTIKUM SISTEM BASISI DATA


4. Tambahkan data pada tabel penjualan dengan kode barang 4 dan total
transaksi 14

5. Hasil update tabel barang dan tabel penjualan, stok barang dengan id_barang 4 pada
tabel barang sebelum ada insert data penjualan berjumlah 23 setelah ada proses
penjualan sebanyak 14 hasil akhir dari stok barang stok barang berjumlah 9 seperti pada
data berikut ini

18
MODUL PRAKTIKUM SISTEM BASISI DATA


D. TRIGGER UPDATE
1. Tuliskan perintah trigger berikut, fungsi trigger akan menghasilkan pengurangan stok
pada stok barang jika ada perubahan pencatatan transaksi penjualan di tabel penjualan

2. Berikut isi tabel barang dan tabel penjualan sebelum dilakukan proses update pada
transaksi penjualan

3. Lakukan perintah update transkasi penjualan dengan id_barang 4 dengan


total_transaksi =10 dan perhatikan hasilnya seperti berikut

Jumlah stok pada tabel barang dengan id_barang 4 bertambah 4 menjadi 13 karena ada
update transaksi total_transkasi pada tabel penjualan yang semula berjumlah 14 diganti
menjadi 10.

19
MODUL PRAKTIKUM SISTEM BASISI DATA


TUGAS

Tabel penjualan dan tabel barang sebelum ditambahkan perintah trigger hapus

Buatlah trigger untuk menghapus data penjualan, sehingga saat ada data penjualan yang
dihapus dari tabel penjualan akan tampil seperti berikut:

Tabel penjualan dan tabel barang setelah ditambahkan perintah trigger hapus

20
MODUL PRAKTIKUM SISTEM BASISI DATA


PRAKTIKUM 10
VIEW
View adalah tabel virtual atau query yang tersimpan. Data yang terakses melalui
view tidak disimpan dalam database sebagai obyek tersendiri akan tetapi berupa
query select dari satu atau lebih tabel. View digunakan untuk melakukan fungsi-
fungsi berikut:
a. Membatasi pengguna kepada baris data tertentu dalam tabel Sebagai contoh:
mengijinkan pekerja hanya melihat data catatan kerja harian miliknya dari
tabel Catatan Kerja Harian
b. Membatasi pengguna kepada kolom tertentu dalam tabel Sebagai contoh:
mengijinkan pekerja yang tidak berada pada bagian kepegawaian untuk
melihat kolom nama, departemen, telepon dari tabel pekerja tetapi tidak
diijinkan melihat beberapa kolom lain yang berkaitan dengan gaji atau
informasi pribadi.
c. Menggabungkan kolom dari beberapa tabel sehingga terlihat seperti sebuah
tabel Menjumlahkan informasi dari pada memberikan detail Sebagai contoh:
menyajikan jumlah dari kolom, nilai maksimum atau minimum dari sebuah
kolom.

MEMBUAT VIEW MERUBAH VIEW


CREATE VIEW NamaView AS ALTER VIEW NamaView AS
Select_Statement Select_Statement

MENGHAPUS VIEW

DROP VIEW NamaView

21
MODUL PRAKTIKUM SISTEM BASISI DATA


KEGIATAN PRAKTIKUM
1. MEMBUAT VIEW
a. Sebelumnya kita lihat data tabel barang keseluruhan sebagai berikut

b. Buat VIEW untuk menampilkan data barang yang memiliki id kategori 1 dan
hasilnya sebagai berikut menampikan data dengan id barang 1,2 dan 3 karena
memiliki id kategori 1

2. VIEW UNTUK MENAMPILKAN DATA TERTENTU


View juga berfungsi sama seperti layaknya tabel ‘biasa’, sebagai contoh, kita
dapat melakukan query untuk menampilkan data tertentu saja dari VIEW
barang_kategori1

22
MODUL PRAKTIKUM SISTEM BASISI DATA


3. VIEW SAAT ADA PERUBAHAN PADA TABEL UTAMA


a. Tambahkan data pada tabel barang dan tampilkan datanya

b. Tampilkan view barang_kategori1 sebagai berikut, maka hasil penambahan data pada
tabel barang secara otomatis muncul pada tabel view

23
MODUL PRAKTIKUM SISTEM BASISI DATA


4. MENAMBAHKAN DATA LEWAT TABEL VIEW


a. Isi tabel view barang_kategori1 seperti berikut

b. Hasil dari penambahan data dengan id barang 10 berhasil dilakukan dan masuk di
dalam tabel barang, pada tabel barang_kategori1 tidak muncul karena view tersebut
tergantung pada id kategori saat id kategori tidak diinputkan maka data tidak muncul

LATIHAN
1. Buatlah view dari tabel pelanggan data yang akan ditampilkan bebas
2. Bautlah perintah perubahan data pada tabel pelanggan dan menambahkan
data dari tabel view

24
MODUL PRAKTIKUM SISTEM BASISI DATA


PRAKTIKUM 11
STORED PROCEDURE
Stored Procedure adalah kumpulan dari perintah Transact-SQL yang dikompile
dalam satu unit untuk dijalankan bersama. Dalam SQL Server store procedure
memiliki kemampuan antara lain:
1. Menerima parameter input dan mengembalikan beberapa nilai parameter
output dari procedure yang dipanggil.
2. Mengandung statement pemrograman yang melakukan operasi terhadap
database termasuk memanggil store procedure lain.
3. Memberikan status yang mengindikasikan keberhasilan atau kegagalan
eksekusi store procedure
Keuntungan pemakaian store procedure adalah:
1. Merupakan pemrograman modular Store procedure dibuat sekali dan dapat
dipakai berulang untuk komputasi yang sama
2. Memungkinkan eksekusi lebih cepat Ketika pertama kali dijalankan store
procedure akan tersimpan dalam memori. Sehingga memungkinkan eksekusi
berikutnya lebih cepat.
3. Mengurangi trafik jaringan Barisan kode transact SQL yang seharusnya
dilewatkan jaringan, akan digantikan dengan statement tunggal pemanggilan
store procedure
4. Dapat digunakan sebagai mekanisme sekuriti

MEMBUAT STORE PROCEDURE

CREATE PROCEDURE [ PROCEDURE ] Nama_Procedure


[ { @parameter tipe_data } ] AS sql_statement [ ...n ]

MERUBAH STORE PROCEDURE

ALTER PROCEDURE [ PROCEDURE ] Nama_Procedure [ {


25
@parameter tipe_data } ] AS sql_statement [ ...n ]
MODUL PRAKTIKUM SISTEM BASISI DATA


MENGHAPUS STORE PROCEFURE

DROP PROCEDURE [ PROCEDURE ] Nama_Procedure

KEGIATAN PRAKTIKUM
1. Dengan menggunakan tabel pelanggan pada database toko, buat store
procedure untuk menampilkan semua data pelanggan.

2. Buat store procedure kedua yang akan digunakan untuk menampilkan data
pelanggan berdasarkan id pelanggan tertentu

3. Untuk menjalankan store procedure gunakan perintah EXEC, seperti berikut

26
MODUL PRAKTIKUM SISTEM BASISI DATA


4. Membuat procedure untuk insert data pelanggan

Untuk mengekskusi query tersebut lakukan perintah berikut

Setelah itu lakukan perintah untuk melihat isi semua data pelanggan
menggunakan store procedure tampilpelanggan dan didapatkan hasil seperti
berikut data id_pelanggan 11 berhasil masuk ke tabel pelanggan

27
MODUL PRAKTIKUM SISTEM BASISI DATA


5. Membuat procedure untuk update data pelanggan

Kemudian lakukan eksekusi store procedure untuk melakukan perubahan nama pada
id_pelanggan 11 nama pelanggan menjadi Al-Fathan

Lakukan lagi perintah store procedure tampilpelanggan untuk menampilkan data


pelanggan untuk melihat perubahan datanya

28
MODUL PRAKTIKUM SISTEM BASISI DATA


6. Membuat procedure untuk delete data

Kemudian lakukan eksekusi store procedure untuk melakukan penghapusan data pada
record tabel pelanggan

Lakukan lagi perintah store procedure tampilpelanggan untuk menampilkan data


pelanggan untuk melihat perubahan datanya

29
MODUL PRAKTIKUM SISTEM BASISI DATA


Pelanggan dengan id_pelanggan 11 sudah terhapus dari tabel

30

Anda mungkin juga menyukai