• Tidak ada hasil yang ditemukan

Evaluasi Praktikum I

Dalam dokumen BASIS DATA 1 MODUL PRAKTIKUM (Halaman 39-47)

Praktikum :

1. Imple mentasikan database anda pada Power Designer 2. Generate database anda pada MySql

3. Untuk selanjutnya Ikuti perintah yang diberikan o leh asisten praktiku m. Tujuan :

v Prakt ikan lebih me maha mi dan mengimp le mentasikan tentang ERD

v Prakt ikan lebih me maha mi dan mengimp le mentasikan tentang DDL dan DML

Tug as Pendahuluan

1. Buatlah ERD database

a. Nrp genap : data base perpusatakaan b. Nrp ganjil : data base retail

MODUL VIII

DML (DATA MANIPULATION LANGUAGE)

Dasar Te ori

Perintah SELECT ada lah perintah untuk mena mpilkan data yang ada di dala m suatu tabel, yang mana dala m pengembangannya perintah ini akan menjadi sebuah perintah yang sangat penting dan berpengaruh hingga saat pemrogra man di stored procedures dan triggers. Selain perintah-perintah SELECT yang dibahas dala m modul V dan VI, masih ada banyak perintah-perintah SELECT lain yang lebih luas lagi dala m penggunaan perintah SELECT.

Praktikum

Coba semua contoh operasi DM L d i bawah ini :

1. JOIN dan KUNCI

Terkadang kita harus me milih data dari dua tabel atau lebih untuk mendapatkan hasil yang komplit. Oleh karena itu, kita harus mela kukan sebuah JOIN. Join merupakan operasi yang digunakan untuk menggabungkan dua tabel atau lebih dengan hasil berupa gabungan dari kolo m-ko lo m yang berasal dari tabel-tabel tersebut. Pada join sederhana, tabel-tabel-tabel-tabel digabungkan dan didasarkan pada pencocokan antara kolo m pada tabel yang berbeda.

Tabel-tabel dala m sebuah basisdata dapat dihubungkan satu sama la in menggunakan kunci. Kunci utama ada lah sebuah kolo m dengan nilai unik untuk masing-masing baris. Tujuannya adalah menggabungkan data antartabel tanpa mengulangi se mua data pada setiap tabel.

Tujuan :

v Prakt ikan dapat memaha mi dan me man ipulasi data dalam database dengan lebih luas lagi.

Tug as Pendahuluan

v Apa yang anda ketahui tentang JOIN, UNION, INTERSECT, EXCEPT, dan operator comparison ANY dan A LL?

v Buat contoh perintah SQL untuk SELECT yang menggunakan JOIN, UNION, INTERSECT, EXCEPT, dan operator comparison ANY dan ALL !

Misalnya kita me milih data dari dua tabel (tabel Mahasiswa dan Jurusan) dengan mengacu pada kedua tabel sebagai berikut :

SELECT MAHASISWA.Na maDepan, JURUSAN.Na ma Jurusan FROM MAHASISWA, JURUSAN

WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

Untuk mengetahui siapa yang mengamb il jurusan Teknik Informatika, gunakan pernyataan SQL berikut :

SELECT MAHASISWA.Na maDepan FROM MAHASISWA, JURUSAN

WHERE MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan AND JURUSAN.Na ma Jurusan = "Teknik In formatika"

Kita pun bisa menggunakan kata kunci JOIN untuk me milih data. Ada tiga macam kunci JOIN, yaitu INNER JOIN, LEFT JOIN, dan RIGHT JOIN.

1.1 INNER JOIN

Inner join digunakan untuk mena mpilkan data dari dua tabel yang berisi data sesuai dengan syarat di belakang on (tidak boleh null), dengan kata lain semua data dari tabel kiri mendapat pasangan data dari tabel sebelah kanan. Sintaks untuk INNER JOIN :

SELECT fie ld1, fie ld2, …

FROM tabel1 INNER JOIN tabel2

ON tabel1.kunci_uta ma = tabel2.kunci_asing

Misalnya, untuk mengetahui siapa yang telah mengambil jurusan dan jurusan apa yang diambil, kita dapat menggunakan pernyataan berikut :

SELECT MAHASISWA.Na maDepan, JURUSAN.Na ma Jurusan FROM MAHASISWA INNER JOIN JURUSAN

ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

INNER JOIN a kan me munculkan semua baris kedua tabel jika ada pasangannya. Jika ada baris pada Tabel Mahasiswa yang tidak me miliki pasangan, maka baris tidak a kan dimunculkan pada Tabel Jurusan.

1.2 LEFT JOIN

Le ft join digunakan untuk mena mpilkan semua data dari tabel sebelah kiri perintah left join beserta pasangannya dari tabel sebelah kanan. Meskipun terdapat data dari sebelah kiri tida k me miliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.

Sintaks untuk LEFT JOIN : SELECT fie ld1, fie ld2, … FROM tabel1 LEFT JOIN tabel2

Misalkan, kita ingin mena mpilkan semua mahasiswa dan jurusan yang diambil, jika ada. Kita dapat menggunakan pernyataan berikut :

SELECT MAHASISWA.Na maDepan, JURUSAN.Na ma Jurusan FROM MAHASISWA LEFT JOIN JURUSAN

ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

LEFT JOIN akan me munculkan semua baris tabel perta ma (Mahasiswa), bahkan jika t idak ada pasangannya di tabel kedua (Jurusan). Jika ada baris pada tabel Mahasiswa yang tidak ada pasangannya pada tabel Jurusan, maka ia pun akan dimunculkan.

1.3 RIGHT JOIN

Right join digunakan untuk mena mpilkan semua data dari tabel sebelah kanan perintah right join beserta pasangannya dari tabel sebelah kiri. Meskipun terdapat data dari sebelah kanan tidak me miliki pasangan, tetap akan ditampilkan dengan pasangannya berupa nilai NULL.

Sintaks untuk RIGHT JOIN : SELECT fie ld1, fie ld2, …

FROM tabel1 RIGHT JOIN tabel2

ON tabel1.kunci_uta ma = tabel2.kunci_asing

Misalkan, kita ingin mena mpilkan semua na ma dari tabel Mahasiswa dan Jurusan yang diambil, jika ada. Kita dapat menggunakan pernyataan berikut :

SELECT MAHASISWA.Na maDepan, JURUSAN.Na ma Jurusan FROM MAHASISWA RIGHT JOIN JURUSAN

ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan

RIGHT JOIN a kan me munculkan semua baris tabel kedua (Jurusan), bahkan jika tidak ada pasangannya di tabel pertama (Mahasiswa). Jika ada baris pada tabel Jurusan yang tidak ada pasangannya pada tabel Mahasiswa, maka ia pun akan dimunculkan.

Untuk mengetahui siapa yang mengamb il jurusan Manajemen Info rmatika, kita menggunakan pernyataan berikut :

SELECT MAHASISWA.Na maDepan

FROM MAHASISWA INNER JOIN JURUSAN

ON MAHASISWA.KodeJurusan = JURUSAN.KodeJurusan WHERE JURUSAN.Na maJurusan = ‘Manaje men Informatika’

2. UNION dan UNION ALL

2.1 UNION

Perintah UNION digunakan untuk me milih informasi yang berhubungan dari dua tabel, mirip dengan perintah JOIN. Na mun, ket ika menggunakan perintah UNION, tipe data semua kolo m yang dipilih harus sama. UNION hanya me munculkan nila i unik.

Sintaks :

Pernyataan 1 UNION Pernyataan 2

Misalkan, kita me mpunyai tabel baru bernama Mahasiswa2 dimana field -fieldnya adalah sama dengan field di tabel Mahasiswa yaitu NRP, Na ma Depan, Na ma Bela kang, Te mpatLah ir, TanggalLahir, dan Ala mat. Maka untuk mena mp ilkan semua Mahasiswa pada tabel Mahasiswa dan Mahasiswa2, gunakan pernyataan berikut :

SELECT Na ma Depan FROM MA HASISWA UNION

SELECT Na ma Depan FROM MA HASISWA2

Perintah tidak dapat digunakan untuk mena mpilkan semua mahasiswa pada tabel Mahasiswa dan Mahasiswa2. Pada contoh, kita me mpunyai dua mahasiswa dengan nama sama (yaitu Hasan Martono) dan dua mahasiswa dengan nama depan sama (yaitu Kiki), ma ka hanya satu yang dimunculkan ka rena perintah UNION hanya me milih nila i unik.

2.2 UNION ALL

Perintah UNION ALL sama dengan perintah UNION, kecua li bahwa UNION ALL me milih se mua nilai.

Sintaks :

Pernyataan 1 UNION A LL Pernyataan 2

Dengan menggunakan tabel Mahasiswa dan Mahasiswa2, kita dapat menggunakan pernyataan berikut untuk mena mpilkan semua mahasiswa dari dua tabel :

SELECT Na ma Depan FROM MA HASISWA UNION A LL

SELECT Na ma Depan FROM MA HASISWA2

3. Pernyataan S ELECT INTO

Pernyataan SELECT INTO digunakan untuk me mbuat backup suatu tabel. Sintaks :

SELECT na ma_ko lo m INTO na ma_tabel_baru IN basisdata_baru FROM Su mber

Contoh berikut adalah me mbuat backup Tabel Mahasiswa. SELECT * INTO Mahasiswa_Bac kup

FROM Mahasiswa

Klausa IN dapat digunakan untuk menyalin tabel ke basisdata lain. SELECT Mahasiswa.* INTO Mahasiswa IN ’Backup.mdb’ FROM Mahasiswa

Jika hanya ingin menyalin beberapa fie ld, kita dapat me laku kannya dengan menuliskan fie ld-field setelah pernyataan SELECT.

SELECT Na ma Depan, Na ma Be la kang INTO Mahasiswa_Backup FROM Mahasiswa

Kita dapat pula mena mbahkan klausa WHERE.

Contoh berikut adalah me mbuat tabel Mahasiswa_Backup dengan dua kolom (Na ma Depan, Na ma Be la kang) dengan me milih Mahasiswa yang tempat lahirnya di Yogyakarta dari tabel Mahasiswa.

SELECT Na ma Depan, Na ma Be la kang INTO Mahasiswa_Backup FROM Mahasiswa

WHERE Te mpat_Lah ir = ‘Yogyakarta’ Kita pun dapat me milih data lebih dari satu tabel.

Contoh berikut adalah me mbuat tabel baru Mahasiswa_Jurusan_Backup yang mengandung data dua tabel, Mahasiswa dan Jurusan.

SELECT Mahasiswa.Na ma Depan, Jurusan.Na maJurusan INTO Mahasiswa_Jurusan_Backup

FROM Mahasiswa INNER JOIN Jurusan

ON Mahasiswa.KodeJurusan = Jurusan.KodeJurusan

4. Operator comparison ANY dan ALL

4.1 Operator ANY

Operator ANY digunakan berkaitan dengan subquery. Operator ini menghasilkan TRUE (benar) jika paling tidak salah satu perbandingan dengan hasil subquery menghasilkan nilai TRUE. Ilustrasinya :

Gaji > ANY (S)

Jika subquery S menghasilkan G1, G2, ..., Gn , ma ka kondisi di atas identik dengan: (gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn )

Misalkan perintah untuk mena mpilkan semua data SKS yang ju mlahnya bukan yang terkecil :

SELECT * FROM Mataku liah

WHERE SKS > A NY (SELECT SKS FROM Mataku liah)

4.2 Operator ALL

Operator ALL digunakan untuk me laku kan perbandingan dengan subquery. Kondisi dengan ALL menghasilkan n ila i TRUE (benar) jika subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan TRUE untuk setiap nila i query terhadap hasil subquery.

Misalkan perintah untuk mena mpilkan data SKS yang ju mlahnya paling tinggi : SELECT * FROM Mataku liah

5. UNION, INTERS ECT dan EXCEPT

5.1 UNION

UNION me rupakan operator yang digunakan untuk menggabungkan hasil query, dengan ketentuan jumlah, na ma dan tipe ko lo m dari masing-masing tabel yang akan ditamp ilkan datanya harus sama.

Berikut ini perintah untuk me mperoleh data pada tabel Mahasiswa dimana te mpat lahirnya Yogyaka rta dan Surabaya :

SELECT Na ma Depan, Te mpat_Lahir FROM Mahasiswa

WHERE Te mpat_Lah ir = " Yogyakarta" UNION

SELECT Na ma Depan, Te mpat_Lahir FROM Mahasiswa

WHERE Te mpat_Lah ir = "Surabaya"; Perintah di atas identik dengan :

SELECT Na ma Depan, Te mpat_Lahir FROM Mahasiswa

WHERE Te mpat_Lah ir = “ Yogyaka rta” OR Te mpat_Lahir = “Surabaya” Na mun tidak se mua penggabungan dapat dilakukan dengan OR, ya itu jika beke rja pada dua tabel atau lebih.

5.2 INTERS ECT

INTERSECT merupakan operator yang digunakan untuk mempe roleh data dari dua buah query dimana data yang ditampilkan adalah yang memenuhi kedua query tersebut dengan ketentuan jumlah, na ma dan tipe kolom dari masing-masing tabel yang akan ditamp ilkan datanya harus sama.

Syntax :

SELECT * FROM na matabel1 INTERSECT

SELECT * FROM na matabel2

Pada MySQL t idak terdapat operator INTERSECT na mun sebagai gantinya dapat menggunakan operator IN yang bisa diperdala m di bagian Nested Queries.

5.3 EXCEPT / Set Difference

EXCEPT merupakan operator yang digunakan untuk me mpe roleh data dari dua buah query dimana data yang ditampilkan adalah data yang ada pada hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan jumlah, nama dan tipe kolo m dari masing-masing tabel yang akan ditampilkan datanya harus sama.

Syntax :

SELECT * FROM na matabel1 EXCEPT

SELECT * FROM na matabel2

Pada MySQL t idak terdapat operator EXCEPT na mun sebagai gantinya dapat menggunakan operator NOT IN yang bisa diperdala m di bagian Nested Queries. Tug as :

Dari topik pembuatan aplikasi basis data yang telah anda buat, buatlah masing-masing perintah DM L berikut :

5. Buatlah perintah SQL untuk mena mp ilkan data yang berasal dari dua tabel dan tiga tabel dengan menggunakan perintah JOIN.

6. Buatlah perintah SQL yang menggunakan UNION, INTERSECT, dan EXCEPT.

7. Buatlah perintah SQL yang menggunakan operator comparison ANY dan ALL.

MODUL 9

Dalam dokumen BASIS DATA 1 MODUL PRAKTIKUM (Halaman 39-47)

Dokumen terkait