0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan13 halaman

Materi Basdat 2 - Join

Diunggah oleh

rozakkangabdul
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan13 halaman

Materi Basdat 2 - Join

Diunggah oleh

rozakkangabdul
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 13

Modul 8

Modul 8

Join

A. Kompetensi Dasar :
3.14. Menerapkan pembuatan basis data pada RDMS
4.14. Membuat basis data pada RDMS

B. Alokasi Waktu : 24 X 45 menit ( 4 Pertemuan )


C. Tujuan Pembelajaran :

Melalui proses mencari informasi, berdiskusi, dan presentasi, siswa diharapkan dapat
berpikir kritis dalam memahami pembuatan basis data pada RDMS, kemudian
kreatif dan terampil mengomunikasikan hasil observasi struktur basis data dalam
bentuk presentasi hasil kerjasama kelompok.

D. Materi Pembelajaran
1. Relationship
Relationship adalah suatu hubungan antara beberapa entitas. Konsep ini
sangat penting sekali di dalam basis data, di mana memungkinkan
entitas- entitas untuk saling berhubungan satu sama lain.
Di dalam sebuah relationship, primary key memiliki peran penting untuk
mengaitkan entitas. Selain itu, primary key juga digunakan untuk
mendefinisikan batasan keterhubungan.
2. Join
Join merupakan salah satu konstruksi dasar dari SQL dan basis data. Join
dapat didefinisikan sebagai kombinasi record dari dua atau lebih tabel di
dalam basis data relasional dan menghasilkan sebuah tabel (temporary)
baru—yang disebut sebagai joined table.

Join dapat diklasifikasikan ke dalam dua jenis, yaitu inner join dan outer
join.
Modul 8

a. Inner Join
Inner join pada dasarnya adalah menemukan persimpangan
(intersection) antara dua buah tabel. Sintaks inner join diperlihatkan
sebagai berikut:
SELECT A1, A2, ..., An FROM r1

INNER JOIN r2
ON r1.join_key = r2.join_key

Inner join juga dapat direpresentasikan dalam bentuk implisit sebagai


berikut :

SELECT A1, A2, ..., An FROM r1, r2


WHERE r1.key = r2.key

Misalkan terdapat tabel A dan B, maka hasil inner join dapat


diperlihatkan— sebagai bidang terarsir—dalam diagram Venn seperti
Gambar 1.

Gambar 1. Inner join

b. Outer Join
Outer join dibagi ke dalam tiga jenis, yaitu left outer join, right outer
join, dan full outer join.
1) Left Outer Join’
Left outer join (atau left join) mengembalikan semua nilai dari
tabel kiri ditambah dengan nilai dari tabel kanan yang sesuai
(atau NULL jika tidak ada nilai yang sesuai).
Sintaks left outer join diperlihatkan sebagai berikut:
Modul 8

SELECT A1, A2, ..., An


FROM r1
LEFT OUTER JOIN r2
ON r1.join_key = r2.join_key

Left outer join antara tabel A dan B dapat diilustrasikan dalam


diagram Venn seperti Gambar 2.

Gambar 2. Left outer join

2) Right Outer Join


Right outer join (atau right join) pada dasarnya sama seperti left
join, namun dalam bentuk terbalik—kanan dan kiri.
Sintaks right outer join diperlihatkan sebagai berikut:
SELECT A1, A2, ..., An
FROM r1
RIGHT OUTER JOIN r2
ON r1.join_key = r2.join_key

Right outer join antara tabel A dan B dapat diilustrasikan dalam


diagram Venn seperti Gambar 3.

Gambar 3. Right join


Modul 8

3) Full Outer Join


Full outer join (atau full join) pada hakekatnya merupakan
kombinasi dari left dan right join.
Sintaks full outer join diperlihatkan sebagai berikut:
SELECT A1, A2, ..., An
FROM r1
FULL OUTER JOIN r2
ON r1.join_key = r2.join_key

Bentuk visual dari full outer join dapat diperlihatkan


menggunakan diagram Venn seperti Gambar 4

Gambar 4 Full Outer Join

Selain empat jenis join yang utama di atas, masih ada beberapa
variasi join lainnya, seperti CROSS JOIN (cartesian product),
NATURAL JOIN, dan sebagainya.

Perlu juga diperhatikan, join bisa diimplementasikan dalam


bentuk bersarang (nested join). Jadi, di dalam sebuah operasi
join bisa terdapat operasi join lainnya.

3. Union
MySQL Union adalah statemen yang mengkombinasikan dua buah atau
lebih resultset dari beberapa table dengan statemen SELECT sehingga
menjadi satu buah resulset. Union Statemen memiliki beberapa ketentuan
sebagai berikut.
a. Jumlah kolom/field dari setiap statemen SELECT harus sama.
b. Tipe data kolom/field dari setiap statemen SELECT harus kompatibel.
Modul 8

Secara default Statemen UNION akan menghapus semua record duplikat


dari resultset. Apabila Anda ingin record duplikat tetap di tampilkan maka
pada resultset tuliskan secara explisit UNION ALL. Perbedaan Union dan
Union All dapat dijelaskan pada gambar diagram Venn 5 dan 6.

Gambar 5 Union

Gambar 6 Union ALL

Fungsi Union sendiri dapat dijalankan dengan sintaks sebagai berikut :

SELECT A1,A2, ...An


FROM r1 UNION
SELECT A1,A2, ...An
FROM r2;

SELECT A1,A2, ...An


FROM r1 UNION ALL
SELECT A1,A2, ...An
FROM r2;
Modul 8

E. Kegiatan Pembelajaran
Kegiatan Pembelajaran 1
IPK : (1) Menjelaskan pembuatan basis data berbasis RDMS

(2) Membuat basis data berbasis RDMS

Langkah – Langkah :

1. Dalam latihan ini digunakan dua buah tabel bernama karyawan dan
departemen dengan relationship bekerja pada. Struktur tabelnya
diperlihatkan sebagai berikut:

CREATE TABLE karyawan(


nama varchar(30) NOT NULL, id_dep int(5) NOT NULL
)ENGINE = MyISAM;
CREATE TABLE departemen( id_dep int(5) NOT NULL,
nama_dep varchar(30) NOT NULL, PRIMARY KEY(id_dep)
)ENGINE = MyISAM;

2. Data yang digunakan sebagai berikut

Tabel karyawan Tabel Departemen

3. Sebagaimana dijelaskan, inner join akan mengembalikan data di tabel A


dan B yang sesuai. Sebagai contoh, untuk mendapatkan data karyawan
yang memiliki departemen, eksekusi pernyataan atau perintah SQL
berikut:

SELEECT *
FROM karyawan INNER JOIN departemen
ON karyawan.id_dep = departemen.id_dep;
Modul 8

4. Selain itu, dapat pula menggunakan bentuk implisit dari inner join di atas,
yaitu sebagai berikut :

SELECT * FROM karyawan, departemen


WHERE karyawan.id_dep = departemen.id_dep;

5. Bandingkan hasil eksekusi perintah SQL yang menggunakan INNER JOIN


dengan yang menggunakan bentuk implisitnya!
6. Dalam pengambilan data ini, kita juga bisa menspesifikasikan field terkait.
Sebagai contoh, untuk mengambil nama karyawan dan nama departemen
yang ditempatinya saja, eksekusi perintah SQL berikut :

SELECT karyawan.nama, departemen.nama_dep FROM


karyawan
INNER JOIN departemen
ON karyawan.id_dep = departemen.id_dep;

7. Perhatikan bahwa untuk menampilkan field tertentu saja, maka nama


field tersebut harus disebutkan secara eksplisit beserta nama tabel
tempat field.
8. Agar penulisan SQL lebih efisien, kita dapat memanfaatkan fitur “derived
table” (atau alias). Contohnya adalah sebagai berikut :

SELECT k.nama, d.nama_dep


FROM karyawan k INNER JOIN departemen d ON k.id_dep
=
d.id_dep;
Modul 8

9. Pada pernyataan SQL di atas, tabel karyawan dinotasikan dengan huruf k


dan tabel departemen menggunakan huruf d. Perhatikan hasil eksekusi
perintah SQL tersebut, apakah sama dengan hasil eksekusi perintah SQL
sebelumnya (yang tidak menggunakan fitur (derived table) ?.

Kegiatan Pembelajaran 2
IPK : (1) Menjelaskan pembuatan basis data berbasis RDMS

(2) Membuat basis data berbasis RDMS

Langkah – Langkah :

1. Contoh penggunaan LEFT OUTER JOIN adalah sebagai berikut :

SELECT *
FROM karyawan k LEFT OUTER JOIN departemen d ON
k.id_dep = d.id_dep;

2. Perhatikan baris kedua dan keempat pada hasil eksekusi di atas, apa yang
menyebabkan timbulnya NULL value?
3. Apabila diperlukan, kita juga dapat menggunakan klausa WHERE di dalam
join. Sebagai contoh, untuk mendapatkan data karyawan yang tidak
memiliki departemen, eksekusi perintah SQL berikut :

SELECT *
FROM karyawan k LEFT OUTER JOIN departemen d ON
k.id_dep = d.id_dep
WHERE d.id_dep IS NULL;
Modul 8

4. Dari hasil eksekusi di atas, dapat kita ketahui bahwa karyawan yang
bernama Budi dan Dani tidak memiliki departemen (nama departemennya
tidak tercatat di dalam tabel departemen).

5. Contoh penggunaan RIGHT OUTER JOIN adalah sebagai berikut :

SELECT *
FROM karyawan k RIGHT OUTER JOIN departemen d ON
k.id_dep = d.id_dep;

6. Perhatikan kembali baris kedua dan keempat pada hasil eksekusi di atas,
apa yang menyebabkan timbulnya NULL value?
7. Beberapa DBMS tidak mendukung fungsionalitas full outer join. Meski
demikian, join ini dapat disimulasikan dengan memanfaatkan UNION.
Tekniknya ialah dengan menggabung left join dan right join seperti
perintah SQL berikut :

SELECT *
FROM karyawan k LEFT OUTER JOIN departemen d ON
k.id_dep = d.id_dep
UNION SELECT *
FROM karyawan k RIGHT OUTER JOIN departemen d ON
k.id_dep = d.id_dep;
Modul 8

8. Cross join pada hakekatnya merupakan inner join di mana kondisi join
selalu dievaluasi true. Secara matematis, jika A dan B merupakan dua
himpunan, maka cross join-nya sama dengan X. Contoh penggunaan
CROSS JOIN adalah sebagai berikut :

SELECT *
FROM karyawan CROSS JOIN departemen;

9. Atau dalam bentuk implisitnya :

SELECT * FROM karyawan, departemen;

Kegiatan Pembelajaran 3
IPK : (1) Menjelaskan pembuatan basis data berbasis RDMS

(2) Membuat basis data berbasis RDMS

(3) Menguji coba basis data berbasis RDMS

Langkah – Langkah :

1. Buatlah tabel baru bernama karyawan2 pada database yang sama. Data
tabelnya adalah sebagai berikut.

Nama Id_dep
Dani 17
Anisa 18
Bagus 12
Modul 8

2. Setelah itu coba lakukan penggabungan dengan perintah :

SELECT nama, id_dep


FROM karyawan
UNION
SELECT nama, id_dep
FROM karyawan2;

3. Lakukan perintah yang sama namun menggunakan UNION ALL. Jelaskan


apa perbedaan fungsi UNION dan UNION ALL.

Kegiatan Pembelajaran 4
STUDY KASUS

1. Buatlah database baru dengan nama Universitas. Lalu didalamnya


terdapat tabel- tabel berikut :
2. Tabel guru
Nip nama pengajar Asalkota

1 Steve Budi Ilmu komputer Bantul

2 Alan Bahasa Sola


Schumacer Indonesia
3 James golling Ilmu komputer Klaten

4 Biily Gates Ilmu komputer Magetan

3. Tabel matapelajaran
nomp namamp jp

KOM101 Algoritma dan Pemrograman 3

KOM102 Basis Data 3

KOM201 Pemrograman Beorientasi 3


Objek
Modul 8

SR101 Desain Elementer 3

4. Tabel kelas
nip nomp Ruangan Jmlsiswa1

1 KOM101 101 50

1 KOM102 102 35

2 SR101 101 45

3 KOM201 101 55

1. Tampilkan Nomor dan matapelajaran yang pesertanya lebih dari 40


orang.
2. Tampilkan nip dan nama guru yang mengajar mata kuliah 'Basis Data'
3. Tampilkan Total jumlah total siswa yang Diajar oleh 'Steve Budi
menggunakan JOIN.

F. EVALUASI
1. Jelaskan apa yang dimaksud dengan Relational database

2. Sebut dan jelaskan macam macam join


Modul 8

3. Jelaskan apa yang dimaksud union

Anda mungkin juga menyukai