Rumahweb Journal
Belajar SQL Database Bagian 11

Belajar SQL Database Bagian 11 – Mengenal JOIN Lanjutan

Dalam proses belajar SQL database, memahami cara menggabungkan data dari beberapa tabel adalah langkah penting yang tidak bisa dilewatkan. Setelah sebelumnya kita membahas fungsi agregat dan grouping untuk mengolah data dalam jumlah besar, sekarang saatnya masuk ke teknik lanjutan yang sering digunakan dalam kasus yang lebih spesifik.

Di artikel kali ini, kita akan melanjutkan pembahasan ke materi JOIN yang lebih advanced. Jika sebelumnya Anda sudah mengenal JOIN dasar untuk menggabungkan tabel, maka pada bagian ini kita akan fokus pada dua jenis JOIN yang punya fungsi khusus, yaitu SELF JOIN dan CROSS JOIN.

Kedua jenis JOIN ini biasanya digunakan dalam kondisi tertentu yang tidak bisa diselesaikan dengan JOIN biasa, sehingga penting untuk dipahami agar Anda bisa lebih fleksibel dalam mengolah data di SQL.

Apa Itu JOIN Lanjutan?

Dalam proses belajar SQL database, tidak semua kebutuhan penggabungan data bisa diselesaikan dengan JOIN dasar. Ada kondisi tertentu yang membutuhkan teknik yang lebih spesifik, yang dikenal sebagai JOIN lanjutan.

JOIN lanjutan biasanya digunakan untuk:

  • Menghubungkan data dalam satu tabel yang sama
  • Menghasilkan kombinasi seluruh data dari beberapa tabel

Pada artikel ini, kita akan fokus membahas dua jenis JOIN lanjutan yang cukup sering digunakan, yaitu SELF JOIN dan CROSS JOIN. Dengan memahami kedua teknik ini, Anda bisa mengolah data dengan lebih fleksibel, terutama saat menghadapi struktur data yang lebih kompleks.

Pindah Hosting ke Rumahweb Gratis

Mengenal SELF JOIN

SELF JOIN adalah teknik JOIN yang digunakan untuk menggabungkan sebuah tabel dengan dirinya sendiri.

Sekilas mungkin terdengar aneh, tapi konsep ini sangat berguna ketika dalam satu tabel terdapat relasi antar data. Misalnya:

  • relasi pertemanan (user dengan user lain)
  • hubungan atasan dan bawahan dalam satu tabel karyawan
  • struktur organisasi atau hierarki lainnya

Dengan SELF JOIN, Anda bisa “memperlakukan” satu tabel seolah-olah menjadi dua tabel berbeda, sehingga relasi antar baris di dalamnya bisa dianalisis dengan lebih mudah.

Contoh Kasus SELF JOIN

Sebagai contoh, terdapat tabel mahasiswa dengan struktur berikut:

Data Tabel mahasiswa

Contoh Kasus SELF JOIN

Kolom id_teman menunjukkan relasi antar mahasiswa.

Query SELF JOIN

Berikut adalah contoh penggunaan query SELF JOIN pada database.

SELECT a.nama AS mahasiswa, b.nama AS teman
FROM mahasiswa a
JOIN mahasiswa b ON a.id_teman = b.id;

Hasil Query SELF JOIN

Berikut adalah hasil query SELF JOIN yang menampilkan relasi antar mahasiswa:

Data Tabel hasil self join

Hasil Query SELF JOIN

Penjelasan Cara Kerja SELF JOIN

Pada proses ini, tabel mahasiswa digunakan dua kali:

  • sebagai data utama (alias a)
  • sebagai data relasi (alias b)

JOIN dilakukan dengan kondisi:

a.id_teman = b.id

Artinya:

  • Andi terhubung dengan Budi
  • Budi terhubung dengan Andi
  • Citra terhubung dengan Budi

Dengan demikian, relasi yang sebelumnya berupa ID dapat ditampilkan menjadi nama yang lebih mudah dipahami.

Kapan Menggunakan SELF JOIN?

SELF JOIN umumnya digunakan dalam kondisi berikut:

  • Relasi antar data dalam satu tabel
  • Struktur organisasi (atasan dan bawahan)
  • Data hierarki (parent dan child)
  • Relasi antar pengguna

Mengenal CROSS JOIN

Selain SELF JOIN, terdapat juga CROSS JOIN yang memiliki fungsi berbeda. CROSS JOIN digunakan untuk menghasilkan seluruh kombinasi kemungkinan dari dua tabel.

Contoh Kasus CROSS JOIN

Misalnya terdapat dua tabel:

Data Tabel mahasiswa

Contoh Kasus CROSS JOIN

Data Tabel jurusan

Data Tabel jurusan

Query CROSS JOIN

SELECT mahasiswa.nama, jurusan.jurusan
FROM mahasiswa
CROSS JOIN jurusan;

Hasil Query CROSS JOIN

Berikut adalah hasil dari CROSS JOIN yang menghasilkan seluruh kombinasi data:

Data Tabel hasil cross join

Hasil Query CROSS JOIN

Penjelasan Cara Kerja CROSS JOIN

CROSS JOIN tidak menggunakan kondisi seperti JOIN lainnya.

Semua data pada tabel pertama akan dikombinasikan dengan seluruh data pada tabel kedua.

Sebagai contoh:

  • Andi dipasangkan dengan TI dan SI
  • Budi dipasangkan dengan TI dan SI

Sehingga menghasilkan seluruh kombinasi yang mungkin.

Perbedaan SELF JOIN dan CROSS JOIN

Dalam belajar SQL database, penting untuk memahami perbedaan antara SELF JOIN dan CROSS JOIN karena keduanya digunakan untuk tujuan yang sangat berbeda.

SELF JOIN digunakan untuk menghubungkan data dalam tabel yang sama, biasanya untuk melihat relasi antar baris, seperti hubungan antar karyawan atau struktur hierarki. Sementara itu, CROSS JOIN digunakan untuk menggabungkan semua kemungkinan kombinasi data dari dua tabel, tanpa kondisi tertentu.

AspekSELF JOINCROSS JOIN
KonsepMenggabungkan tabel dengan dirinya sendiriMenggabungkan semua kombinasi antar tabel
TujuanMencari relasi dalam satu tabelMenghasilkan kombinasi data (cartesian product)
Kondisi JOINMenggunakan kondisi (ON)Tidak menggunakan kondisi
Jumlah hasil dataBergantung pada relasi dataBisa sangat banyak (perkalian jumlah baris)
Contoh penggunaanRelasi atasan–bawahan, hierarki organisasiKombinasi produk & kategori, variasi data

Studi Kasus SELF JOIN (Relasi Mata Pelajaran)

Dalam sebuah sistem sekolah, terdapat data mata pelajaran yang memiliki keterkaitan dengan mata pelajaran lain, misalnya sebagai prasyarat (contoh: harus belajar dasar sebelum lanjut).

Relasi ini disimpan dalam satu tabel menggunakan kolom prasyarat_id.

Struktur Tabel Mata Pelajaran

Data Tabel mata_pelajaran

Struktur Tabel Mata Pelajaran

Penjelasan Data

  • Matematika Lanjut memiliki prasyarat Matematika Dasar
  • Fisika Lanjut memiliki prasyarat Fisika Dasar
  • Mata pelajaran dasar tidak memiliki prasyarat

Query SELF JOIN

SELECT 
    m.nama_mapel AS mata_pelajaran,
    p.nama_mapel AS prasyarat
FROM mata_pelajaran m
LEFT JOIN mata_pelajaran p
ON m.prasyarat_id = p.id;

Hasil Query

Data Tabel hasil self join

Hasil Query

Penjelasan:

  • Tabel digunakan dua kali (alias m dan p)
  • Relasi dilakukan dari prasyarat_id ke id
  • LEFT JOIN digunakan agar data tanpa prasyarat tetap ditampilkan 

Studi Kasus CROSS JOIN (Jadwal Hari dan Mata Pelajaran)

Dalam sebuah sistem sekolah, diperlukan pembuatan jadwal pelajaran berdasarkan kombinasi hari dan mata pelajaran.

Untuk menghasilkan seluruh kemungkinan jadwal, dapat digunakan CROSS JOIN.

Struktur Tabel Hari

Data Tabel hari

Struktur Tabel Hari

Struktur Tabel Mata Pelajaran

Data Tabel mata_pelajaran

Struktur Tabel Mata Pelajaran

Query CROSS JOIN

SELECT hari.nama_hari, mata_pelajaran_jadwal.nama_mapel
FROM hari
CROSS JOIN mata_pelajaran_jadwal;

Hasil Query

Data Tabel hasil cross join

Hasil Query

Penjelasan:

  • CROSS JOIN menggabungkan setiap baris dari tabel pertama dengan seluruh baris pada tabel kedua
  • Tidak menggunakan kondisi JOIN
  • Jumlah hasil merupakan perkalian jumlah baris dari kedua tabel

Contoh:

  • 2 hari × 2 mata pelajaran = 4 kombinasi

Kelebihan dan Kekurangan

SELF JOIN

Kelebihan:

  • Fleksibel untuk menangani relasi dalam satu tabel, tanpa perlu membuat tabel tambahan
  • Sangat cocok untuk data dengan struktur hierarki, seperti relasi atasan–bawahan atau kategori bertingkat

Kekurangan:

  • Membutuhkan penggunaan alias yang tepat agar query tidak membingungkan
  • Lebih kompleks untuk dipahami, terutama bagi pemula

Kapan sebaiknya digunakan?
Gunakan SELF JOIN ketika Anda ingin menganalisis hubungan antar data dalam satu tabel, misalnya mencari siapa atasan dari setiap karyawan atau melihat relasi antar user.

CROSS JOIN

Kelebihan:

  • Mudah digunakan karena tidak memerlukan kondisi JOIN
  • Efektif untuk menghasilkan semua kemungkinan kombinasi data

Kekurangan:

  • Menghasilkan jumlah data yang sangat besar (cartesian product)
  • Berpotensi memperlambat query jika digunakan pada tabel besar

Kapan sebaiknya digunakan?
Gunakan CROSS JOIN saat Anda memang membutuhkan seluruh kombinasi data, misalnya untuk membuat variasi produk (warna × ukuran) atau skenario pengujian data.

Kapan sebaiknya dihindari?
Hindari jika tidak benar-benar diperlukan, terutama pada tabel dengan jumlah data besar, karena dapat membebani database dan memperlambat performa.

Tips Menggunakan JOIN

Agar penggunaan JOIN tetap optimal, beberapa hal berikut dapat diperhatikan:

  • Gunakan alias agar query lebih mudah dipahami
  • Hindari penggunaan CROSS JOIN pada tabel besar tanpa filter
  • Pastikan relasi data sudah sesuai
  • Gunakan EXPLAIN untuk analisis query

Penutup

Dalam proses belajar SQL database, memahami SELF JOIN dan CROSS JOIN akan membantu Anda mengolah data dengan lebih tepat sesuai kebutuhan. SELF JOIN digunakan ketika Anda ingin melihat relasi antar data dalam satu tabel, sementara CROSS JOIN digunakan untuk menghasilkan seluruh kombinasi data dari beberapa tabel.

Keduanya memiliki fungsi yang berbeda, namun sama-sama penting dalam kondisi tertentu. Dengan memahami kapan dan bagaimana menggunakan kedua teknik ini, Anda bisa membuat query yang lebih efisien dan relevan.

Demikian tutorial belajar SQL database bagian 11 tentang fungsi JOIN lanjutan. Jangan lewatkan seri belajar SQL database lainnya dari Rumahweb untuk terus meningkatkan pemahaman Anda. Semoga bermanfaat!

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Kholifatush Sholichah

Kholifatush Sholichah, atau yang akrab disapa Lika adalah bagian dari team Technical Support Rumahweb. Lika suka menulis jurnal tentang WordPress, cara mengatasi berbagai macam error, seperti SSL error, database error, dan masalah teknis lainnya yang sering terjadi pada website. Melalui tulisannya, Lika ingin membantu Anda mengatasi masalah tersebut dengan solusi yang mudah dipahami.

banner pop up - Pindah Hosting ke Rumahweb