0% menganggap dokumen ini bermanfaat (0 suara)
281 tayangan15 halaman

Modul 5 Relasi - Join (Revisi) PDF

Modul 5 membahas relasi dan join antar entitas dalam basis data. Tujuannya adalah memahami hubungan antar entitas, operasi pengambilan data dari beberapa entitas, dan menyelesaikan kasus retrieval yang melibatkan lebih dari satu entitas. Jenis join yang dibahas meliputi inner join, outer join (left, right, full), dan union. Latihan membahas contoh penerapan relasi dan berbagai jenis join antara tabel karyawan dan departemen.

Diunggah oleh

Trang Trung
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)
281 tayangan15 halaman

Modul 5 Relasi - Join (Revisi) PDF

Modul 5 membahas relasi dan join antar entitas dalam basis data. Tujuannya adalah memahami hubungan antar entitas, operasi pengambilan data dari beberapa entitas, dan menyelesaikan kasus retrieval yang melibatkan lebih dari satu entitas. Jenis join yang dibahas meliputi inner join, outer join (left, right, full), dan union. Latihan membahas contoh penerapan relasi dan berbagai jenis join antara tabel karyawan dan departemen.

Diunggah oleh

Trang Trung
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/ 15

Praktikum Basis Data 2018 – TE UM

MODUL 5
RELASI & JOIN
A. TUJUAN
 Memahami keterhubungan entitas di dalam basis data.
 Memahami jenis-jenis operasi pengambilan data di beberapa entitas.
 Mampu menyelesaikan kasus retrieval yang melibatkan lebih dari satu entitas.
 Memahami fungsi Union pada mysql.

B. PETUNJUK
-
Awali setiap aktivitas dengan do’a, semoga berkah dan mendapat kemudahan.
-
Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar.
-
Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur.
-
Tanyakan kepada asisten/dosen apabila ada hal-hal yang kurang jelas

C. DASAR TEORI
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.

Didalam 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 kontruksi dasar dari SQL dan basis data. Join dapat
didefinisikan sebagai kombinasi record dari dua atau lebih table di dalam basis data
relasional dan menghasilkan sebuah tabel (temporary) baru yang disebut sebagai joined
tabel.
Praktikum Basis Data 2018 – TE UM

Join dapat diklasifikasikan ke dalam dua jenis, yaitu inner join dan outer join. 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.join_key = r2.join_key

Misalkan terdapat table A dan B, maka hasil inner join dapat diperlihatkan sebagai
bidang terasir 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.
Praktikum Basis Data 2018 – TE UM

Left Outer Join


Left outer join atau left join mengembalikan semua nilai dari table kiri ditambah
dengan nilai dari tabel kanan yang sesuai atau NULL jika tidak ada nilai yang
sesuai.
Sintaks left outer join diperlihatkan sebagai berikut :
SELECT A1, A2, . . ., An
FROM r1
LEFT OUTER JOIN r2
ON r1.join_key = r2.join_key

Left outer join antar tabel A dan B dapat diilustrasikan dalam diagram Venn
seperti Gambar 2.

Gambar 2. Left Outer Join


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 OUTERR JOIN r2 ON r1.join_key
= r2.join_key

Right outer join antara table A dan B dapat diilustrasikan dalam diagram Venn
seperti Gambar 3.
Praktikum Basis Data 2018 – TE UM

Gambar 3. Right Outer Join

Full Outer Join


Full outer join atau full join pada hakikatnya 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.
Praktikum Basis Data 2018 – TE UM

3. Union
MySQL Union adalah statemaen yang mengkombinasikan dua buah atau lebih resulset
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.

Secara default statemen UNION akan menghapus semua record duplikat dari resulset.
Apabila Anda ingin record duplikat tetap di tampilkan maka pada resulset 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
Praktikum Basis Data 2018 – TE UM

FROM r2;

SELECT A1, A2, . . .An

FROM r1 UNION ALL


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

D. LATIHAN
1. Relationship
Dalam latihan ini digunakan dua buah table bernama karyawan dan departemen
dengan relationship bekerja pada. Struktur tabelnya diperlihatkan sebgai 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;

Data yang digunakan adalah sebagai berikut :


Tabel Karyawan Tabel Departemen
Praktikum Basis Data 2018 – TE UM

2. Inner Join
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 :

SELECT *
FROM karyawan INNER JOIN departemen ON karyawan.id_dep
= departemen.id_dep;

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;

Bandingkan hasil eksekusi perintah SQL yang menggunakan INNER JOIN dengan
yang menggunakan bentuk implisitnya !

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
Praktikum Basis Data 2018 – TE UM

Perhatikan bahwa untuk menampilkan field tertentu saja, maka nama field tersebut
harus disebutkan secara eksplisit beserta nama tabel tempat field.

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

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) ?

3. Outer Join
Left Outer Join
Contoh penggunaan LEFT OUTER JOIN adalah sebagai berikut :

SELECT *
FROM karyawan k LEFT OUTER JOIN departemen d ON k.id_dep
= d.id_dep;
Praktikum Basis Data 2018 – TE UM

Perhatikan baris kedua dan keempat pada hasil eksekusi di atas, apa yang
menyebabkan timbulnya NULL value ?

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;

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).

Right Outer Join


Contoh penggunaan RIGHT OUTER JOIN adalah sebagai berikut :

SELECT *
FROM karyawan k RIGHT OUTER JOIN departemen d ON k.id_dep
= d.id_dep;
Praktikum Basis Data 2018 – TE UM

Perhatikan kembali baris kedua dan keempat pada hasil eksekusi di atas, apa yang
menyebabkan timbulnya NULL value ?

Full Outer Join


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;

Cross Join
Cross join pada hakikatnya merupakan inner join dimana kondisi join selalu
dievaluasi true. Secara matematis, jika A dan B merupakan dua himpunan, maka cross
join-nya sama dengan X.
Praktikum Basis Data 2018 – TE UM

Contoh penggunaan CROSS JOIN adalah sebagai berikut :

SELECT * FROM karyawan CROSS JOIN departemen;

Atau dalam bentuk implisitnya :

SELECT * FROM karyawan, departemen;


Praktikum Basis Data 2018 – TE UM

4. Union
Buatlah tabel baru bernama karyawan2 pada database yang sama. Data tabelnya
adalah sebagai berikut :

nama id_dep
Dani 17
Anisa 18
Bagus 12

Setelah itu coba lakukan penggabungan dengan perintah :

SELECT nama, id_dep FROM karyawan

UNION
SELECT nama, id_dep FROM karyawan2;

Lakukan perintah yang sama namun menggunakan UNION ALL. Jelaskan apa
perbedaan fungsi UNION dan UNION ALL.

E. TUGAS PRAKTIKUM
Perhatikan, dalam mengerjakan tugas praktikum ini, sebaiknya pernyataan SQL disimpan
di file untuk kemudian dieksekusi.

Tugas praktikum ini menggunakan tabel-tabel yang sudah dibuat sebelumnya. Berikut
adalah data-data tabel yang akan digunakan (sesuaikan nilainya agar sama persis).
Praktikum Basis Data 2018 – TE UM

Tabel Mahasiswa

Tabel ambil_mk

Tabel Matakuliah

1. Dapatkan banyak mahasiswa yang tidak mengambil matakuliah. Selesaikan dengan


pendekatan join eksplisit dan implisit.

2. Kelompokan data mahasiswa yang mengambil matakuliah berdasarkan jenis


kelaminnya, kemudian hitung banyaknya.

3. Dapatkan nama mahasiswa yang mengambil matakuliah beserta kode_mk dan


nama_mk yang diambilnya. Selesaikan dengan pendekatan join eksplisit dan implisit.
Praktikum Basis Data 2018 – TE UM

4. Dapatkan nim, nama, dan total sks yang diambil oleh mahasiswa, Dimana total sksnya
lebih dari 3 dan kurang dari 6.

5. Dapatkan total sks matakuliah yang diambil oleh mahasiswa terdaftar.

F. TUGAS RUMAH
1. Buatlah database baru dengan nama Universitas. Lalu didalamnya terdapat tabel-tabel
berikut : Tabel Instruktur
nip Nama jurusan asal_kota

1 Junrico Ilmu Komputer Malang

2 Fahmi Hidayat Ilmu Komputer Malang

3 Danio Juan Ilmu Sejarah Klaten

4 Bobi Kristian Sastra Indonesia Magelang

Tabel matakuliah
kd_mk nama_mk sks

PTI101 Algoritma dan Pemograman 3

PTI102 Basis Data 3

PTI103 Visual Basic 3

IS101 Sejarah Indonesia 3

PTI007 Proyek Perangkat Lunak 3

SI102 Sastra Indonesia 3

Tabel ambil_mk
nip kd_mk ruangan jml_mhs

1 PTI102 H5211 40

2 PTI102 H5212 45

2 PTI103 H5206 40

3 IS101 I7312 30
Praktikum Basis Data 2018 – TE UM

4 IS102 I7322 40

a. Tampilkan kd_mk dan mata kuliah yang jumlah mahasiswanya 40.


b. Tampilkan data Instruktur yang mengajar ilmu sastra.
c. Tampilkan data Instruktur yang tidak mengajar ilmu komputer.
d. Tampilkan data Instruktur yang tidak mengajar.

2. Buatlah tabel seperti di bawah ini.


Tabel Customer
customer_id customer_name customer_addres

CS001 Aan Pasuruan

CS002 Hanif Banyuwangi

CS003 Mirza Malang

CS004 Tanti Tegal

CS005 Budie Kediri

Tabel Orders
order_id order_date customer_id qty amount

CS001 10-12-2016 CS001 1 40000

CS002 11-01-2017 CS002 2 50000

CS003 12-01-2017 CS005 3 35000

a. Gabungkan kedua tabel tersebut dengan JOIN dan UNION


b. Tampilkan data customer yang memiliki amount order diatas 35000
c. Tampilkan field order_date dan amount dengan syarat tahun order setelah 2016 dan
amount order kurang dari 40000

Selamat Mengerjakan

Anda mungkin juga menyukai