NURFAIZAH, M.Kom.
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
1
MODUL PRAKTIKUM SISTEM BASISI DATA
2
MODUL PRAKTIKUM SISTEM BASISI DATA
3
MODUL PRAKTIKUM SISTEM BASISI DATA
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
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
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:
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
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
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
B. TRIGGER INSERT TABEL PEMBELIAN DIMANA JUMLAH STOK BARANG TABEL BARANG
UPDATE DARI JUMLAH BELI TABEL PEMBELIAN
1. Tambahkan tabel pembelian sebagai berikut:
15
MODUL PRAKTIKUM SISTEM BASISI DATA
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
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
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.
MENGHAPUS VIEW
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
22
MODUL PRAKTIKUM SISTEM BASISI DATA
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
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
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
26
MODUL PRAKTIKUM SISTEM BASISI DATA
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
Kemudian lakukan eksekusi store procedure untuk melakukan perubahan nama pada
id_pelanggan 11 nama pelanggan menjadi Al-Fathan
28
MODUL PRAKTIKUM SISTEM BASISI DATA
Kemudian lakukan eksekusi store procedure untuk melakukan penghapusan data pada
record tabel pelanggan
29
MODUL PRAKTIKUM SISTEM BASISI DATA
30