• Tidak ada hasil yang ditemukan

Berikut perintah FULL JOIN yang akan menampilkan data pengarang yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota FROM Pengarang p

FULL JOIN Penerbit t

ON p.KotaTinggal=t.Kota

Tabel 7-13 Hasil Relasi Full Join

KodePeng NamaPeng Kota

172-32-1176 Johnson White NULL 213-46-8915 Marjorie Green NULL 238-95-7766 Cheryl Carson Berkeley 267-41-2394 Michael O'Leary NULL 274-80-9391 Dean Straight NULL 341-22-1782 Meander Smith NULL 409-56-7008 Abraham Bennet Berkeley 427-17-2319 Ann Dull NULL 472-27-2349 Burt Gringlesby NULL 486-29-1786 Charlene Locksley NULL

NULL NULL Washington

NULL NULL Chicago

NULL NULL Boston

NULL NULL Paris

NULL NULL New York

NULL NULL Dallas

NULL NULL München

7.5 Subquery

Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT, UPDATE dan DELETE atau dengan kata lain subquery adalah query dalam query.

terhadap perintah query tersebut. namun demikian, tergantung kepada data jika kalau ingin dibandingkan mana yang lebih baik antara subquery dengan JOIN ini.

Subquery dapat ditempatkan pada perintah SELECT setelah klausa Select, From, Where, Group BY dan Having. Umumnya perintah sub Query ini mengikuti format sebagai berikut:

WHERE ekspresi [NOT] IN (subquery)

WHERE ekspresi operator perbandingan [ANY | ALL] (subquery)

WHERE [NOT] EXISTS (subquery)

Untuk melakukan percobaan terhadap perintah sub Query ini akan disediakn dua buah tabel yaitu tabel Penerbit, tabel Pengarang dan tabel Buku

Tabel 7-14 Data Penerbit

KodePen NamaPen Kota

0736 New Moon Books Boston

0877 Binnet & Hardley Washington 1389 Algodata Infosistems Berkeley 1622 Five Lakes Publishing Chicago

1756 Ramona Publishers Dallas

9901 GGG&G München

9952 Scootney Books New York

9999 Lucerne Publishing Paris

Tabel 7-15 Data Buku

Kode JudulBuku Jenis KodePen

BU1032 The Busy Executive's Database Guide business 1389 BU1111 Cooking with Computers:

Surreptitious Balance Sheets business 1389 BU2075 You Can Combat Computer Stress! business 0736 BU7832 Straight Talk About Computers business 1389 MC2222 Silicon Valley Gastronomic Treats mod_cook 0877 MC3021 The Gourmet Microwave mod_cook 0877 MC3026 The Psychology of Computer

Cooking UNDECIDED 0877

PC1035 But Is It User Friendly? popular_comp 1389 PC8888 Secrets of Silicon Valley popular_comp 1389

Tabel 7-16 Data Pengarang

KodePeng NamaPeng KotaTinggal

172-32-1176 Johnson White Menlo Park 213-46-8915 Marjorie Green Oakland 238-95-7766 Cheryl Carson Berkeley 267-41-2394 Michael O'Leary San Jose 274-80-9391 Dean Straight Oakland 341-22-1782 Meander Smith Lawrence 409-56-7008 Abraham Bennet Berkeley 427-17-2319 Ann Dull Palo Alto 472-27-2349 Burt Gringlesby Covelo 486-29-1786 Charlene Locksley San Francisco

Operator IN

Subquery dengan menggunakan operator IN adalah akan me-list hasil dari subquery untuk dibandingkan dengan ekspresi where yang diberikan. Subquery akan dijalankan terlebih dahulu baru kemudian query pemanggilnya akan dijalankan.

Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator IN

SELECT NamaPen FROM Penerbit WHERE kodePen IN (SELECT kodePen FROM Buku WHERE jenis='business')

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-17 Hasil Query Operator IN

NamaPen

New Moon Books Algodata Infosistems

Berdasarkan pada perintah query diatas, pertama kali akan menjalankan query untuk buku dahulu sehingga akan menghasilkan nilai 1389, 1389, 0736, 1389. Kemudian akan menjalankan perintah query pada Penerbit dengan kondisi KodePen didasarkan pada hasil query pertama. Perintah query ini dapat diterjemahkan sbb:

SELECT NamaPen FROM Penerbit

WHERE kodePen IN (‘1389’, ‘1389’,’0736’, ‘1389’)

Subquery diatas pun seperti dijelaskan terdahulu bahwa dapat menggunakan perintah JOIN dengan bentuk sbb:

SELECT DISTINCT NamaPen FROM Penerbit p

INNER JOIN Buku b

ON p.kodePen=b.KodePen AND jenis='business'

Jika operator IN ditambahkan operator NOT maka akan menjadi NOT IN. hal ini akan memberikan nilai kebalikan dari hasil yang didapat dengan menggunakan perintah IN

SELECT NamaPen FROM Penerbit

WHERE kodePen NOT IN (SELECT kodePen FROM Buku

WHERE jenis='business')

Tabel 7-18 Hasil Query Operator Not IN

NamaPen Binnet & Hardley Five Lakes Publishing Ramona Publishers GGG&G

Scootney Books Lucerne Publishing

Operator EXISTS

Operator Exists ini akan melakukan pemeriksaan terhadap hasil subqery apakah menghasilkan baris-data atau tidak, jika subquery tersebut menghasilkan baris data maka akan mengembalikan nilai true dan sebaliknya jika tidak menghasikan data maka akan mengembalikan nilai false

Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator EXISTS

SELECT NamaPen FROM Penerbit p WHERE EXISTS (SELECT * FROM Buku b

WHERE b.KodePen= p.KodePen AND jenis='business')

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-19 Hasil Query Operator Exists

NamaPen

New Moon Books Algodata Infosistems

Jika operator EXISTS ditambahkan operator NOT maka akan menjadi NOT EXISTS. hal ini akan memberikan nilai kebalikan dari hasil yang didapat dengan menggunakan perintah EXISTS

SELECT NamaPen FROM Penerbit p WHERE NOT EXISTS (SELECT * FROM Buku b

WHERE b.KodePen= p.KodePen AND jenis='business')

Tabel 7-20 Hasil Query Operator Not Exists

NamaPen Binnet & Hardley Five Lakes Publishing Ramona Publishers GGG&G

Scootney Books Lucerne Publishing

Operator Komporasi

Subquery memungkinkan juga menggunakan operator komparasi yang terdiri dari =, < >, >, > =, <, ! >, ! <, or < =. Berbeda dengan operator sebelum penggunaaan operator ini subquery harus menghasilkan data tunggal yang menjadi parameter untuk query pemanggilnya.

Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator komparasi = SELECT NamaPeng FROM Pengarang WHERE KotaTinggal = (SELECT Kota FROM Penerbit

WHERE namaPen='Algodata Infosistems') Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-21 Hasil Query Operator Komparasi

NamaPeng Cheryl Carson Abraham Bennet

Operator ANY dan ALL

Penggunaan operator ini dipadukan dengan operator relasi sehingga nanti akan terbentuk >ANY, =ANY , <> ANY, >ALL dan <>ALL

>ANY mengadung arti bahwa akan mengambil nilai lebih besarnya dari nilai terendah yang ada dalam list tersebut. contoh >ANY (1,2,3) maka nilai lebih besarnya adalah 1

>ALL mengandung arti bahwa akan mengambil nilai lebih besarnya dari nilai tertinggi yang ada dalam lsit tersebut. Contoh >ALL (1,2,3) maka nilai lebih besarnya adalah 3

=ANY pada dasarnya sama dengan fungsi operator IN yaitu akan menyamakan apa yang ada dala list sebagai hasil dari subquerynya. <>ANY tidak serta merta sama dengan NOT IN, hal ini berbeda karena <>ANY menghasilkan not = a or not = b , sementara NOT IN menghasilkan not = a and not = b. <>ALL pengertianya sama dengan NOT IN

Berikut contoh perintah Subquery untuk menampilkan nama penerbit untuk buku yang berjenis business dengan menggunakan operator <>ANY

SELECT NamaPeng FROM Pengarang

WHERE KotaTinggal <>ANY (SELECT Kota

FROM Penerbit)

Tabel 7-22 Hasil Query Operator ANY

NamaPeng Johnson White Marjorie Green Cheryl Carson Michael O'Leary Dean Straight Meander Smith Abraham Bennet Ann Dull Burt Gringlesby Charlene Locksley

Rangkuman

1. Structure Query Language (SQL) menyediakan banyak fungsi-fungsi yang siap digunakan oleh penggunaya, baik pungsi untuk melakukan pertungan, fungsi penangan string, fungsi penagan tanggal dan fungsi-fungsi untuk proses agregasi data

2. Fungsi agregasi data akan berhubungan dengan klausa GROUP BY untuk membuat kelompok data jika terdapat kolom yang tidak diagregasi akan ditampilkan sebagai hasil query

3. Klausa GROUP BY mempunyai parameter untuk mengseksi data menggunakan HAVING

4. Membuat hubungan antar tabel dapat dilakukan dengan perpaduan antara FROM dan WHERE pada perintah select.

5. Selain itu hubungan antar tabel dapat menggunakan perintah JOIN 6. Perintah JOIN terdiiri dari peritah :

a. Inner Join b. Outher Join

i. Left Join ii. Right Join iii. Full Join

7. INNER JOIN ini mensyaratkan data di kedua belah tabel singkon, Data yang tidak singkron tidak akan ditampilkan sebagai hasil query tersebut

8. Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada diseblah kiri) walaupun dalam relasi tidak singkron dengan nama_tabel_2 (disebelah kanan)

9. Perintah RIGHT JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_2 (yang ada disebalah kanan) walaupun dalam relasi tidak singkron dengan nama_tabel_1 (disebelah kiri).

10. Perintah FULL JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada disebalah kiri) dan akan menampilkan seluruh baris nama_tabel_1 (disebelah kanan) walaupun ada tidak singkron diantara keduanya.

11. Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT, UPDATE dan DELETE atau dengan kata lain subquery adalah query dalam query.

Umumnya perintah sub Query ini mengikuti format sebagai berikut: a. WHERE ekspresi [NOT] IN (subquery)

b. WHERE ekspresi operator perbandingan [ANY | ALL]

(subquery)

c. WHERE [NOT] EXISTS (subquery)

12. Subquery menggunakan operator IN, Not IN, Exists, Not Exists, Any, All dan operator relasi

13. Subquery dengan menggunakan operator IN adalah akan me-list hasil dari subquery untuk dibandingkan dengan ekspresi where yang diberikan.

14. Operator Exists ini akan melakukan pemeriksaan terhadap hasil subqery apakah menghasilkan baris-data atau tidak, jika subquery tersebut menghasilkan baris data maka akan mengembalikan nilai true dan sebaliknya jika tidak menghasikan data maka akan mengembalikan nilai false

15. Operator komparasi yang terdiri dari =, < >, >, > =, <, ! >, ! <, or < =. Berbeda dengan operator sebelum penggunaaan operator ini subquery harus menghasilkan data tunggal yang menjadi parameter untuk query pemanggilnya.

16. Penggunaan operator ini dipadukan dengan operator relasi sehingga nanti akan terbentuk >ANY, =ANY , <> ANY, >ALL dan <>ALL

Latihan

1. Jelaskan kegunaan dari masing-masing fungsi agregasi

2. Berikan contoh perintah query yang menggunakan GROUP BY untuk menghitung jumlah mahasiswa laki-laki atau perempuan per angkatan 3. Jelaskan dan berikan contoh untuk klausa HAVING

4. Jelaskan perbedaan dari INNER JOIN dan OUTER JOIN dan berikan contohnya

5. Untuk kasus-kasus seperti apakah Left Join dan Right Join ini akan digunakan

6. Jelaskan karateristik operator Exists yang ada dalam sebuah subquery 7. Jelaskan perbedaan antara operator IN dan ANY dalam sebah subquery

8. Dengan menggunakan struktur basidata yang sudah dibentuk pada tugas sebelumnya maka buat perintah-perintah SQL :

a. Menghitung jumlah karyawan berdasarkan golongan tertentu

b. Total gaji seluruh karyawan berdasarkan pada golongan yang ada pada tabel gaji

c. Menghitung kehadiran karyawan per bulan aktif d. Menampilkan golongan dan pangkat karyawan e. Menampilkan karyawan yang tidak hadir pada tanggal

Kuis Benar Salah

1. Fungsi-fungsi aggregation tidak dapt digunakan untuk kondisi pencarian dalam Where

2. Hasil dari perintah select dengan menggunakan fungsi fungsi aggregation akan mengembalikan hanya satu baris data saja

3. Merelasikan antar tabel hanya dapat dilakukan dengan perintah Inner Join saja

4. Pengertian penulisan Left Join sama dengan Left Outer Join

5. Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada tabel yang ada disebelah kiri walaupun dalam relasi tidak singkron dengan tabel disebelah kanan

6. Penulisan alias tabel hanya dapat dilakukan dengan menabahkan keyword AS

7. Join tabel hanya dapat dilakukan untuk tabel yang dapat dihubungkan salah satu dari kolom data dikedua table

8. Full join adalah sama dengan menampilkan seluruh isi data dari kedua sisi table

9. operator exists pada sub query hanya memeriksa keberadaan baris data pada sub query tersebut dengan mengembalikan nilai true jika ada dan false jika tidak ada.

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

1 Perhatikan penyataan berikut:

3. Fungsi agregasi menghasilkan 1 baris data saja

4. Kodisi filter untuk data pada agregasi tidak menggunaka Where tetapi Having

A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah

2 Perhatikan penyataan berikut:

1. Perintah Join tidak ada dalam struktur penulisan Select 2. Outer Join akan menampilkan data Null pada data yang

tidak ketemu di tabel pembandingnya A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah

3 Perhatikan penyataan berikut:

1. Fungsi agregasi menghasilkan 1 baris data saja

2. Kodisi filter untuk data pada agregasi tidak menggunaka Where tetapi Having

A. 1 dan 2 betul D. 1 salah 2 betul B. 1 dan 2 salah E. tidak ada jawaban C. 1 betul 2 salah

4 Pernyataan berikut ini :

Perintah ini akan menghasilkan seluruh baris data pada tabel yang ada disebelah kiri walaupun dalam relasi tidak singkron dengan tabel disebelah kanan

A. JOIN D. Full Join

B. Left Join E. tidak ada jawaban C. Right Join

5 Pernyataan berikut ini :

Subquery dengan menggunakan operator ________ akan me-list hasil dari subquery untuk dibandingkan dengan ekspresi where yang diberikan. Subquery akan dijalankan terlebih dahulu baru kemudian query pemanggilnya akan dijalankan.

A. operator IN D. operator any B. operator exists E. tidak ada jawaban C. operator not exists

6 Jika ada perintah SQL sbb:

SELECT Nim, Nama, NamaJur FROM Mahasiswa, Jurusan

WHERE _______________________ Perintah yang harus diberikan pada Where.. A. where mahasiswa.kodeJur =

jurusan.KodeJur D. kodeJur

B. kodeJur=KodeJur E. tidak ada jawaban C. m.kodeJur = j.KodeJur

Untuk soal no 7:

KodePeng NamaPeng Kota

172-32-1176 Johnson White NULL 213-46-8915 Marjorie Green NULL 238-95-7766 Cheryl Carson Berkeley 267-41-2394 Michael O'Leary NULL

7 Dengan menggunakan tabel diatas perintah subQuery yang dibuat adalah:

SELECT KodePeng, NamaPeng, Kota FROM Pengarang p

____________ Penerbit t ON p.KotaTinggal=t.Kota Perintah pada bagian kosong adalah

A. Inner Join D. Right Join B. Left Join E. full Join C. Join On

8 Jika ada kondisi operator ANY sbb: >ANY (1,2,3,4)

Yang dianggap nilai tersebarnya oleh perintah Any ini adalah:

A. 1 D. 4

B. 2 E. >4

C. 3

9 Jika ada kondisi where kode <>ALL maka dapat diganti dengan operator:

A. Not ANY D. ANY

B. NOT IN E. ALL

C. NOT ALL

10 Perintah SQL ini akan menimbulkan error

SELECT KodeJur, COUNT(Nim) as Jumlah FROM Mahasiswa Untuk memperbaikinya maka perlu ditambahkan

A. WHERE KodeJur D. ORDER BY KodeJur B. GROUP KodeJur E. salah semua

8 PENGENALAN ARSITEKTUR BASIS

DATA

Overview

Sistem database merupakan satu kesatuan antara DBMS dan database nya. DBMS merupakan paket software yang digunakan untuk mengatur akses data ke database. Bagaimana struktur DBMS di dalamnya dan arsitektur sistem database diimplementasikan, akan diterangkan lebih detail dalam bab ini.

Tujuan

Mahasiswa memahami DBMS beserta komponen-komponen yang membangunnya.

8.1 Pendahuluan

Sistem database merupakan satu kesatuan dari Database Management System (DBMS) dan database. DBMS adalah kumpulan dari program-program yang mengijinkan user untuk melakukan create, maintain, dan control terhadap semua kegiatan yang mengakses database.

Tujuan utamanya adalah untuk menyediakan sistem yang aman, nyaman, dan efisien untuk user dalam mengakses dan menyimpan informasi.

Dokumen terkait