Tutorial “join” di SQL

Tutorial mengenai JOIN dalam SQL untuk pemula:


Tutorial SQL JOIN untuk Pemula

Daftar Isi

  1. Pengantar Tentang SQL JOIN
  2. Jenis-Jenis JOIN
  3. Tabel Contoh dan Data
  4. Contoh Penggunaan JOIN
  5. Kesimpulan

1. Pengantar Tentang SQL JOIN

Dalam database relasional, seringkali kita memiliki data yang tersebar di berbagai tabel. Namun, dalam banyak situasi, kita perlu menggabungkan data dari lebih dari satu tabel untuk mendapatkan informasi yang lengkap. Inilah di mana JOIN berperan.


2. Jenis-Jenis JOIN

Ada beberapa jenis JOIN dalam SQL:

  • INNER JOIN: Menggabungkan baris dari dua tabel berdasarkan kolom yang terkait. Hanya mengembalikan baris yang cocok dari kedua tabel.
  • LEFT JOIN (atau LEFT OUTER JOIN): Mengembalikan semua baris dari tabel kiri, dan baris yang cocok dari tabel kanan. Jika tidak ada kecocokan, hasil di sisi kanan adalah NULL.
  • RIGHT JOIN (atau RIGHT OUTER JOIN): Mirip dengan LEFT JOIN, tetapi mengembalikan semua baris dari tabel kanan.
  • FULL JOIN (atau FULL OUTER JOIN): Mengembalikan baris saat ada kecocokan di salah satu tabel.
  • CROSS JOIN: Menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua.
  • SELF JOIN: Menggabungkan tabel dengan dirinya sendiri.

3. Tabel Contoh dan Data

Misalkan kita memiliki dua tabel: Siswa dan Pendaftaran.

Tabel Siswa

siswa_idnama_siswa
1Alice
2Bob
3Charlie
4David

Tabel Pendaftaran

pendaftaran_idsiswa_idmata_pelajaran
11Matematika
22IPA
33Sastra
45Sejarah

4. Contoh Penggunaan JOIN

Ayo lihat contoh penggunaan JOIN pada tabel di atas:

  • INNER JOIN
  SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
  FROM Siswa
  INNER JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;

Hasil:

nama_siswamata_pelajaran
AliceMatematika
BobIPA
CharlieSastra
  • LEFT JOIN
  SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
  FROM Siswa
  LEFT JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;

Hasil:

nama_siswamata_pelajaran
AliceMatematika
BobIPA
CharlieSastra
DavidNULL

  • RIGHT JOIN Mengembalikan semua baris dari tabel kanan, dan baris yang cocok dari tabel kiri. Jika tidak ada kecocokan di sisi kiri, hasilnya adalah NULL.
  SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
  FROM Siswa
  RIGHT JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;

Hasil:

nama_siswamata_pelajaran
AliceMatematika
BobIPA
CharlieSastra
NULLSejarah

  • FULL JOIN Mengembalikan baris saat ada kecocokan di salah satu tabel. Jika tidak ada kecocokan di salah satu sisi, hasilnya adalah NULL.
  SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
  FROM Siswa
  FULL JOIN Pendaftaran ON Siswa.siswa_id = Pendaftaran.siswa_id;

Hasil:

nama_siswamata_pelajaran
AliceMatematika
BobIPA
CharlieSastra
DavidNULL
NULLSejarah

  • CROSS JOIN Menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua, menghasilkan produk kartesian dari tabel-tabel tersebut.
  SELECT Siswa.nama_siswa, Pendaftaran.mata_pelajaran
  FROM Siswa
  CROSS JOIN Pendaftaran;

Hasilnya akan menggabungkan setiap siswa dengan setiap mata pelajaran, jadi jika ada 4 siswa dan 4 mata pelajaran, maka akan ada 16 kombinasi yang dihasilkan.

Tentu! Mari kita coba dengan contoh SELF JOIN.

SELF JOIN sering digunakan pada tabel yang memiliki relasi dengan dirinya sendiri. Misalnya, kita punya tabel Karyawan di mana setiap karyawan memiliki seorang manajer, dan manajer tersebut juga merupakan karyawan dalam tabel yang sama.

Misalkan kita memiliki tabel Karyawan sebagai berikut:

Tabel Karyawan

karyawan_idnamamanajer_id
1AntonNULL
2Budi1
3Charlie1
4Dina2
5Elsa2

Dalam tabel di atas, Anton adalah manajer, dan dia sendiri tidak memiliki manajer (ditandai dengan NULL). Budi dan Charlie memiliki Anton sebagai manajer mereka, sedangkan Dina dan Elsa memiliki Budi sebagai manajer mereka.

Jika kita ingin mengetahui nama manajer untuk setiap karyawan, kita dapat menggunakan SELF JOIN:

SELECT 
    k1.nama AS nama_karyawan,
    k2.nama AS nama_manajer
FROM 
    Karyawan k1
LEFT JOIN 
    Karyawan k2 ON k1.manajer_id = k2.karyawan_id;

Hasil:

nama_karyawannama_manajer
AntonNULL
BudiAnton
CharlieAnton
DinaBudi
ElsaBudi

Dengan SELF JOIN, kita dapat dengan mudah mengaitkan data dalam tabel yang sama untuk mendapatkan informasi yang relevan antara dua entitas yang berbeda dalam tabel yang sama.


5. Kesimpulan

JOIN adalah salah satu konsep dasar namun sangat penting dalam SQL. Memahami cara kerja JOIN dan kapan harus menggunakan jenis JOIN tertentu sangat penting bagi siapa saja yang bekerja dengan database relasional. Terus praktekkan untuk menguasainya!


Semoga tutorial ini membantu Anda untuk memahami konsep JOIN dalam SQL dengan lebih baik. Selamat belajar!

More from author

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Related posts

Advertismentspot_img

Latest posts

BREED #238: The GOAL | Hanung Teguh, Army Alghifari & Fuad A Herya

https://www.youtube.com/watch?v=gPYpISHRVxc Berikut adalah ringkasan dan poin-poin diskusi dari buku “The Goal” karya Eliyahu M. Goldratt, sebagaimana dibahas dalam sesi review tersebut: Topik Utama Buku Buku ini...

The Overpost: TRUMP NYESEL HAJAR 145% TARIFF KE CHINA?! – AMA Leon The Overpost

Ringkasan: 1. Alasan Apple Enggan Investasi di Indonesia Apple tidak mau berurusan dengan birokrasi berbelit (20 instansi), mafia tanah, dan premanisme. Menginginkan efisiensi, kepastian hukum, dan stabilitas operasional. 2. Dampak Perang Dagang AS - China pada Apple Trump awalnya mengenakan tarif 145% tapi kemudian memberi pengecualian pada produk penting seperti iPhone. Apple terlalu besar untuk gagal (too big to fail) – menyumbang 6-7% bobot S&P 500. Ketergantungan besar pada China (80-90% iPhone dibuat di sana) membuat sulit berpindah dalam waktu singkat. Penurunan harga saham Apple 20% dalam seminggu setelah pengumuman tarif.

Ringkasan dr. Richard Lee, MARS: Sarwendah

MINDSET 07 - JADI JANDA BUKAN AKHIR!! PEREMPUAN YANG TETAP BERDIRI DIKAKI SENDIRI! https://www.youtube.com/watch?v=fpulFdb9xW0 Percakapan Bersama Sarwendah tentang Keluarga, Perceraian, dan Peran sebagai Ibu Ringkasan video: 1. Isu...