You are on page 1of 7

Fungsi JOIN SQL

A. Materi Dasar
JOIN merupakan salah satu fungsi yang ada di SQL yang digunakan untuk penggabungan
table melalui kolom atau key tertentu dimana memiliki nilai terkait untuk mendapatkan satu
set data dengan informasi lengkap.
Pada bahasa SQL, operasi JOIN atau penggabungan antar table ini merupakan perintah
dasar yang sangat penting pada database relasional. Gunanya adalah untuk mendukung
perancangan database yang baik. Jika kita ingin menghasilkan output data yang valid,
menjamin integritas data dan meminimalisir duplikasi data.
Contoh penggunaan JOIN ketika kita ingin menggabungkan table User dan table Order.
Table User dapat dilakukan JOIN terhadap table Order karena pada table Order terdapat
kolom id yang berhubungan dengan kolom id pada table User. Berikut ilustrasinya.

Kapan SQL JOIN Digunakan

JOIN di SQL digunakan pada saat kamu ingin menggabungkan data dari banyak tabel.
Biasanya, hal ini terjadi ketika data yang kamu perlukan berada di tabel yang berbeda-
beda.

Pada contoh tabel user dan tabel order di atas, kamu tidak mungkin menggabungkan tabel
tersebut pada database karena satu user dapat memiliki banyak order. Menggabungkan
kedua tabel itu di database membuat tabel tersebut tidak normalized yang merupakan hal
yang kurang baik pada database jenis relasional.

Karena kamu tidak bisa menggabungkannya sedari awal di database, kamu hanya dapat
menggabungkannya pada saat melakukan query. Hal inilah yang ingin dicapai dengan
menggunakan perintah JOIN di SQL. Agar, kamu dapat menggabungkan datamu yang
terpisah karena normalisasi tabel.
Jenis-jenis JOIN yang ada di SQL

Pada umumnya, terdapat empat jenis JOIN di SQL yakni:

 INNER JOIN
 LEFT JOIN
 RIGHT JOIN
 FULL JOIN

Masing-masing JOIN ini memiliki kegunaan dan perbedaannya di dalam SQL.

Untuk contoh pada masing-masing jenis JOIN, akan menggunakan data tabel berikut ini.

Tabel user:

id | name |
------+----------------+
1 | Anto |
2 | Alam |
3 | Budi |
4 | Kris |

Tabel order:

id | user_id | total |
------+----------+----------+
1 | 2 | 50000 |
2 | 2 | 76000 |
3 | 3 | 10000 |
4 | 4 | 500 |
5 | 10 | 99999 |

INNER JOIN

INNER JOIN mengambil data dimana kedua tabel memiliki data untuk syarat yang tertera
pada perintah ON. Misal perintah SQL berikut ini,

SELECT user.name, order.total


FROM order
INNER JOIN user
ON user.id = order.user_id;

Pada perintah SQL di atas, hanya akan memunculkan data dari tabel order dan user yang
keduanya memiliki user_id pada order sama dengan id pada tabel user. Berikut ini adalah
hasil dari perintah SQL di atas.

name | total |
--------+----------+
Alam | 50000 |
Alam | 76000 |
Budi | 10000 |
Kris | 500 |

Berikut gambarannya pada diagram Venn.

LEFT JOIN

Perintah LEFT JOIN akan mengambil semua data yang ada di tabel sebelah kiri dari
perintah LEFT JOIN, dan akan mencoba menggabungkannya dengan tabel kanan. Jika
tidak ada pasangannya, nilai dari table kiri tetap ada dan nilai yang tidak ada di tabel kanan
akan menjadi NULL.

Contoh menggunakan perintah SQL berikut ini,

SELECT user.name, order.total


FROM order
LEFT JOIN user
ON user.id = order.user_id;

Perintah SQL di atas, akan memunculkan seluruh data dari tabel order. Namun, hanya
beberapa data yang memenuhi syarat dari tabel user yang muncul. Berikut ini adalah hasil
dari perintah SQL di atas.

name | total |
--------+----------+
Anto | NULL |
Alam | 50000 |
Alam | 76000 |
Budi | 10000 |
Kris | 500 |

Berikut gambarannya pada diagram Venn.


RIGHT JOIN

Berkebalikan dengan LEFT JOIN, perintah RIGHT JOIN akan mengambil semua data yang
ada di tabel sebelah kanan dari perintah RIGHT JOIN. Perintah ini akan mencoba
menggabungkannya dengan tabel yang ada di sebalah kiri. Jika tidak ada pasangannya,
nilai dari table kanan tetap ada dan nilai yang tidak ada di tabel kiri akan menjadi NULL.

Dengan contoh yang mirip dengan sebelumnya, inilah contoh RIGHT JOIN menggunakan
perintah SQL berikut ini,

SELECT user.name, order.total


FROM order
RIGHT JOIN user
ON user.id = order.user_id;

Perintah SQL di atas, akan memunculkan seluruh data dari tabel user. Namun, hanya
beberapa data yang memenuhi syarat dari tabel order yang muncul. Berikut ini adalah hasil
dari perintah SQL di atas.

name | total |
--------+----------+
Alam | 50000 |
Alam | 76000 |
Budi | 10000 |
Kris | 500 |
NULL | 99999 |

Berikut gambarannya pada diagram Venn.

FULL JOIN

Perintah FULL JOIN atau FULL OUTER JOIN akan mengambil semua data dari kedua
tabel. Perintah ini akan mencoba menggabungkan kedua data sesuai dengan syarat. Jika
tidak ada pasangannya, nilai akan dijadikan NULL.

Contoh penggunaan FULL JOIN menggunakan perintah SQL dapat dilihat di bawah ini,

SELECT user.name, order.total


FROM order
FULL OUTER JOIN user
ON user.id = order.user_id;
Perintah SQL di atas, akan memunculkan seluruh data dari tabel user. Namun, hanya
beberapa data yang memenuhi syarat dari tabel order yang muncul. Berikut ini adalah hasil
dari perintah SQL di atas.

name | total |
--------+----------+
Anto | NULL |
Alam | 50000 |
Alam | 76000 |
Budi | 10000 |
Kris | 500 |
NULL | 99999 |

Berikut gambarannya pada diagram Venn.

B. Percobaan

Tabel yang di gunakan untuk percobaan:


Percobaan 1:

SELECT
pegawai.idpeg,
pegawai.nama,
pegawai.namakel,
pegawai.jk,
pegawai.nocab,
cabang.nama as namacabang,
cabang.alamat as alamatcabang
FROM
pegawai
INNER JOIN cabang
ON
pegawai.nocab=cabang.nocab;

Hasil Percobaan 1:
Kolom dan data apa saja yang Tampil? Jika error tulis penyebab dan penyelesaiannya!
Percobaan 2:

SELECT
pegawai.idpeg,
pegawai.nama,
pegawai.namakel,
pegawai.jk,
pegawai.nocab,
cabang.nama as namacabang,
cabang.alamat as alamatcabang
FROM
pegawai
LEFT JOIN cabang
ON
pegawai.nocab=cabang.nocab;

Hasil Percobaan 2:
Kolom dan data apa saja yang Tampil? Jika error tulis penyebab dan penyelesaiannya!

C. Berdasarkan Hasil result set, tuliskan Perbedaan antara perintah


Buatlah Query dengan perintah Right Join dan Full Join, Amati dan simpulkan.
D. Kesimpulan:

You might also like