Thursday, May 7, 2020

MULTIPLE TABLES SQL (INNER JOIN, RIGHT JOIN, LEFT JOIN, UNION)

Dalam artikel ini, kita akan membahas tentang konsep Joins dalam penerapannya pada banyak tabel (multiple tabel). Biasanya untuk mengefisienkan penyimpanan data, kita sering memisahkan informasi yang kita butuhkan ke dalam beberapa tabel yang berbeda.

Pada penerapannya, kita membutuhkan data yang didapatkan berdasarkan hasil kombinasi dari beberapa tabel. Fungsi Joins memberikan akses untuk mengkombinasikan data dari dua atau lebih tabel. Pada akhirnya informasi akan ditampilkan dalam satu tabel hasil kombinasi dari 2 atau lebih tabel.

Sebagai contoh, dalam sebuah database perpustakaan terdapat 3 tabel dengan informasi yang berbeda.

1.    Buku yang memiliki kolom (field) antara lain Kode_BukuJudul_BukuHarga dengan record seperti tampilan pada gambar dibawah ini.

2.    anggota yang memiliki kolom (field) antara lain Nomor_AnggotaNamaKelas dengan record seperti tampilan pada gambar dibawah ini.

3.    pinjaman yang memiliki kolom (field) antara lain Kode PinjamanTanggal_PinjamTanggal Kembali, Kode_Buku, Id Anggota dengan record seperti tampilan pada gambar dibawah ini.


PRASYARAT MULTIPLE TABLE

Ada hal yang mendasar dan harus dipahami terlebih dahulu sebelum menerapkan Multiple Tabel. Fungsi dari Primary Key dan Foreign Key pada database harus diketahui terlebih dahulu, karena ini akan menjadi dasar dalam proses penggabungan data dari beberapa tabel nantinya.

Pada tabel Anggota yang menjadi Primary Key adalah Nomor_Anggota

Pada tabel Buku yang menjadi Primary Key adalah Kode_Buku

Sementara pada tabel pinjaman yang menjadi Primary Key adalah Kode_Pinjaman dan terdapat Foreign Key yaitu Kode_Buku & Id_Anggota

Terdapat 2 cara yang bisa digunakan dalam mengelola data multiple tabel, cara yang pertama menggunakan fungsi JOIN cara yang kedua adalah dengan menerapkan fungsi Parent - Child Relationship.


PENERAPAN JOIN

Dalam prakteknya tabel-tabel diatas akan membentuk suatu informasi data secara keseluruhan, misalnya user ingin menampilkan informasi yang berisikan NamaKelasTanggal_Pinjam, Tanggal_Kembali, Judul Buku.

Untuk mendapatkan informasi tersebut, penggabungan ke-3 tabel harus dilakukan karena NamaKelas terdapat pada tabel anggota, kemudian Tanggal_Pinjam, Tanggal_Kembali terdapat pada tabel pinjaman, dan Judul Buku terdapat pada tabel buku.

 

INNER JOIN

Inner join adalah sebuah perintah yang digunakan untuk menampilkan data dengan menghubungkan dua tabel atau lebih. Pada perintah inner join data yang akan ditampilkan hanyalah data yang memiliki pasangan saja.

Pada kasus database perpustakaan ini yang memiliki hubungan adalah Primary Key Kode_Buku pada tabel buku berhubungan dengan foreign key Kode_Buku pada tabel pinjaman.

Dan  Primary Key Nomor_Anggota pada tabel anggota berhubungan dengan foreign key Id_Anggota pada tabel pinjaman. Perhatikan tabel di bawah, kita akan menampilkan data dari 2 tabel (Pinjaman dan buku) seperti berikut :

Maka query yang digunakan adalah sbb;

SELECT Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM buku E

INNER JOIN pinjaman P

ON E.Kode_Buku = P.Kode_Buku

Jika ingin menampilkan data gabungan dari ke-3 tabel seperti penjelasan diatas maka query yang kita gunakan.

SELECT Nama, Kelas, Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM buku E

INNER JOIN pinjaman P ON E.Kode_Buku = P.Kode_Buku

INNER JOIN anggota A ON A.Nomor_Anggota = P.Id_Anggota

Tampilan yang akan dihasilkan adalah

 

RIGHT JOIN

Fungsi dari Right Join hampir sama dengan Inner Join, Jika pada INNER JOIN data yang ditampilkan adalah data yang memiliki hubungan namun pada right join data yang akan ditampilkan adalah semua data yang terdapat pada tabel sebelah kanan, termasuk data yang bersifat NULL.

Untuk mendapatkan data diatas maka query yang digunakan

SELECT Nama, Kelas, Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM buku E

RIGHT JOIN pinjaman P ON E.Kode_Buku = P.Kode_Buku

RIGHT JOIN anggota A ON A.Nomor_Anggota = P.Id_Anggota


LEFT JOIN

Fungsi dari Left Join adalah kebalikan dari Right Join, Jika pada Right Join seluruh data yang ditampilkan termasuk data yang bersifat NULL adalah data yang terdapat pada tabel sebelah kanan, maka Left Join seluruh data yang ditampilkan termasuk data yang bersifat NULL adalah data yang terdapat pada tabel sebelah kiri

Untuk mendapatkan data diatas maka query yang digunakan

SELECT Nama, Kelas, Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM buku E

LEFT JOIN pinjaman P ON E.Kode_Buku = P.Kode_Buku

LEFT JOIN anggota A ON A.Nomor_Anggota = P.Id_Anggota

 

FUNGSI UNION

Fungsi Union sendiri digunakan untuk menggabungkan antara Left dan Right, jadi Union akan menampilkan keseluruhan data yang saling terhubung baik itu bernilai ataupun NULL.


Untuk mendapatkan data diatas maka query yang digunakan

SELECT Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM buku E

LEFT JOIN pinjaman P ON E.Kode_Buku = P.Kode_Buku

UNION

SELECT Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM buku E

RIGHT JOIN anggota A ON A.Nomor_Anggota = P.Id_Anggota

 

PENERAPAN PARENT-CHILD RELATIONSHIP

Untuk penggunaan fungsi ini maka query yang digunakan

SELECT Nama, Kelas, Tanggal_Pinjam, Tanggal Kembali, Judul_Buku

FROM anggota A, buku E, pinjaman P

WHERE E.Kode_Buku = P.Kode_Buku AND A.Nomor_Anggota = P.Id_Anggota

 Hasil dari query ini akan sama dengan menggunakan fungsi Inner Join





Previous Post
Next Post

14 comments: