Holla! kali ini, mimin mau berbagi tentang salah satu konsep penting dalam database yaitu left join. Mungkin bagi sebagian dari kalian yang masih awam dengan istilah-istilah teknis di bidang IT, left join bisa terdengar cukup menakutkan atau sulit dipahami.

Tapi jangan khawatir, mimin akan mencoba menjelaskan konsep ini dengan bahasa yang lebih santai dan mudah dipahami. Ikuzo!

Pengertian Left Join

Left join adalah jenis join dalam pengolahan data di database yang digunakan untuk menggabungkan informasi dari dua tabel yang berbeda. Dalam konsep left join, semua data dari tabel kiri akan ditampilkan, sedangkan data dari tabel kanan yang sesuai juga akan disertakan.

Dalam SQL (Structured Query Language), left join dapat dilakukan dengan menggunakan perintah “LEFT JOIN” atau “LEFT OUTER JOIN”. Dalam hasil left join, semua baris dari tabel kiri akan tetap ditampilkan, bahkan jika tidak ada data yang sesuai dalam tabel kanan. Jika ada data yang sesuai dalam tabel kanan, data tersebut akan ditampilkan bersama dengan data dari tabel kiri.

Left join sangat berguna dalam pengolahan data di database, terutama ketika kita ingin menggabungkan informasi dari tabel-tabel yang memiliki relasi antara satu sama lain. Misalnya, kita dapat menggunakan left join untuk menggabungkan informasi dari tabel “Pembeli” dan tabel “Pesanan” dalam database toko online, di mana tabel “Pembeli” berisi informasi tentang semua pembeli yang melakukan pesanan, dan tabel “Pesanan” berisi informasi tentang pesanan yang telah dibuat.

Dengan menggunakan left join, kita dapat menampilkan semua pembeli, bahkan jika mereka belum melakukan pesanan, dan menampilkan informasi pesanan dari pembeli yang telah melakukan pesanan.

Kapan menggunakan Left Join?

Ketika bekerja dengan database, sering kali kita perlu menggabungkan informasi dari dua tabel atau lebih yang saling terkait. Salah satu cara untuk menggabungkan tabel tersebut adalah dengan menggunakan join. Left join adalah salah satu jenis join yang paling umum digunakan. Namun, kapan sebaiknya kita menggunakan left join?

Pertama, kita perlu memastikan bahwa tabel yang akan digabungkan memiliki relasi atau hubungan antara satu sama lain. Misalnya, kita memiliki tabel Pembeli dan tabel Pesanan dalam database toko online. Tabel Pembeli memiliki kolom id_pembeli, sementara tabel Pesanan memiliki kolom id_pembeli yang mengacu pada pembeli yang melakukan pesanan. Dalam hal ini, kedua tabel memiliki relasi atau hubungan antara satu sama lain melalui kolom id_pembeli.

Kedua, kita harus mempertimbangkan tujuan dari penggabungan data. Jika kita ingin menampilkan semua data dari tabel kiri, bahkan jika tidak ada data yang sesuai dalam tabel kanan, maka left join adalah pilihan yang tepat. Misalnya, jika kita ingin menampilkan semua pembeli dalam tabel Pembeli, bahkan jika mereka belum pernah melakukan pesanan dalam tabel Pesanan, maka left join akan menampilkan semua pembeli dalam tabel Pembeli, bahkan jika tidak ada data yang sesuai dalam tabel Pesanan.

Namun, jika tujuan kita adalah untuk menampilkan hanya data yang sesuai antara kedua tabel, maka left join mungkin tidak tepat. Dalam hal ini, inner join mungkin lebih tepat, di mana hanya data yang memiliki nilai yang sesuai di kedua tabel yang akan ditampilkan.

Selain itu, kita juga harus mempertimbangkan jumlah data yang akan digabungkan. Jika jumlah data dalam tabel yang akan digabungkan sangat besar, left join dapat memakan waktu yang lama dan mengurangi performa query. Dalam hal ini, kita mungkin perlu mempertimbangkan cara lain untuk menggabungkan tabel, seperti menggunakan subquery atau temporary table.

Left join adalah pilihan yang tepat ketika kita ingin menampilkan semua data dari tabel kiri, bahkan jika tidak ada data yang sesuai dalam tabel kanan. Namun, kita harus mempertimbangkan relasi antara kedua tabel, tujuan penggabungan data, dan jumlah data yang akan digabungkan sebelum memutuskan menggunakan left join.

Contoh penggunaan Left Join

Di sini kita memiliki dua tabel yaitu Karyawan dan Proyek, di mana tabel Karyawan berisi informasi tentang semua karyawan dan tabel Proyek berisi informasi tentang proyek-proyek yang sedang berjalan di perusahaan tersebut. Kedua tabel memiliki kolom id_karyawan sebagai relasi antara kedua tabel.

Berikut adalah contoh penggunaan left join untuk menggabungkan informasi dari tabel Karyawan dan tabel Proyek:

SELECT karyawan.nama, karyawan.jabatan, proyek.nama_proyek
FROM karyawan
LEFT JOIN proyek ON karyawan.id_karyawan = proyek.id_karyawan;

Berikut adalah penjelasan mengenai Query di atas:

  • Pada baris pertama, kita menentukan kolom-kolom yang akan ditampilkan dalam hasil query, yaitu kolom nama dan jabatan dari tabel Karyawan dan kolom nama_proyek dari tabel Proyek.
  • Pada baris kedua, kita menentukan tabel yang akan diambil datanya, yaitu tabel Karyawan.
  • Pada baris ketiga, kita menggunakan left join untuk menggabungkan data dari tabel Karyawan dan tabel Proyek. Kita menggunakan LEFT JOIN karena kita ingin menampilkan semua karyawan dalam tabel Karyawan, bahkan jika mereka belum terlibat dalam proyek apa pun dalam tabel Proyek. Kita juga menentukan relasi antara kedua tabel menggunakan kolom id_karyawan.
  • Pada baris keempat, kita menentukan nama tabel yang akan digabungkan, yaitu tabel Proyek.
  • Pada baris kelima, kita menentukan kondisi yang akan digunakan untuk menggabungkan kedua tabel, yaitu bahwa nilai kolom id_karyawan pada tabel Karyawan harus sama dengan nilai kolom id_karyawan pada tabel Proyek.

Hasil dari query di atas adalah informasi tentang semua karyawan dalam tabel Karyawan, beserta nama proyek yang mereka terlibat (jika ada). Jika karyawan tersebut belum terlibat dalam proyek apa pun, nilai kolom nama_proyek akan null. Contoh hasil query dapat dilihat di bawah ini:

namajabatannama_proyek
Andi AyManagerWebsite Redesign
Fahmi MaulidinaDeveloperWebsite Redesign
Ibnu NeroManagerNULL
WawanDeveloperNULL
Mike ChanDeveloperMobile App

Dalam hasil output tersebut, kita dapat melihat informasi tentang semua karyawan yang terdaftar dalam tabel Karyawan. Kolom nama menampilkan nama karyawan, sedangkan kolom jabatan menampilkan jabatan karyawan.

Kolom nama_proyek menampilkan nama proyek yang sedang ditangani oleh karyawan tersebut. Dalam hal ini, kita dapat melihat bahwa Andi Ay dan Fahmi Maulidina sedang bekerja pada proyek Website Redesign sedangkan Ibnu Nero dan Wawan tidak sedang bekerja pada proyek manapun. Mike Chan sedang bekerja pada proyek Mobile App.

Perlu diperhatikan bahwa Ibnu Nero dan Wawan memiliki nilai NULL pada kolom nama_proyek karena mereka tidak sedang bekerja pada proyek manapun dan tidak memiliki id proyek yang terdaftar di tabel Proyek. Ini adalah contoh bagaimana LEFT JOIN dapat membantu kita mengambil informasi dari tabel utama bahkan ketika tidak ada pasangan nilai di tabel kedua.