Anda di halaman 1dari 6

Di dalam suatu RDBMS termasuk MySQL, tentunya sudah menjadi suatu kewajaran

jika dalam satu database dapat terdiri dari beberapa tabel. Masing-masing tabel tersebut dapat
berhubungan (berelasi) satu sama lain. Relasi antar-tabel dapat berupa relasi 1-1 (one-to-one),
1-M (one-to-many), atau M-N (many-to-many). Sebagai contoh terlihat pada gambar
pemodelan data konseptual (class diagram) di bawah ini. Tabel pelanggan berhubungan
dengan pesan, pesan dengan barang, dsb.

Pada pembuatan suatu aplikasi, terkadang kita juga memerlukan tampilan data yang
tidak hanya berasal dari 1 (satu) tabel, namun bisa dari beberapa tabel sekaligus. Contohnya,
dari class diagram di bawah, kita ingin menampilkan nama pelanggan berikut transaksi yang
pernah dilakukannya. Dari contoh tersebut, kita harus bisa menggabungkan minimal dua
tabel, yaitu pelanggan dan pesan.

Untuk menggabungkan 2 (dua) atau lebih tabel, kita dapat menggunakan bentuk
perintah JOIN. Dalam tutorial ini, akan dijelaskan secara bertahap mengenai bagaimana
menggabungkan dua tabel atau lebih, terutama untuk menampilkan data yang berasal dari
beberapa tabel.

1. Inner Join
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang
NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan
dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan
(transaksi). Misalkan isi tabel pelanggan dan pesan adalah sebagai berikut :

Contoh isi tabel pelanggan

Tabel pesan.
Cara #1. Inner Join dengan WHERE.

Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:

SELECT tabel1.*, tabel2.* FROM tabel1, tabel2

WHERE tabel1.PK=tabel2.FK;

Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,


pesan.tgl_pesan

FROM pelanggan, pesan

WHERE pelanggan.id_pelanggan=pesan.id_pelanggan;

Hasilnya sebagai berikut.

Hasil Penggabungan 2 Tabel dengan WHERE.

Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilakukan
oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka
terdapat satu pelanggan yang tidak ditampilkan yaitu yang memiliki id pelanggan P0003.
Pelanggan tersebut tidak ditampilkan karena belum pernah melakukan transaksi.

Cara #1. Inner Join dengan klausa INNER JOIN.

Berikut ini bentuk umumnya:

SELECT tabel1.*, tabel2.*

FROM tabel1 INNER JOIN tabel2

ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,


pesan.tgl_pesan

FROM pelanggan INNER JOIN pesan

ON pelanggan.id_pelanggan=pesan.id_pelanggan;

Hasilnya akan sama dengan gambar di atas (cara #1).

2. Outer Join
Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan ada
data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel
pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah
melakukan pemesanan (transaksi).

Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT JOIN. Berikut ini bentuk
umum dan contohnya:

LEFT JOIN.

Bentuk umum:

SELECT tabel1.*, tabel2.*

FROM tabel1 LEFT JOIN tabel2

ON tabel1.PK=tabel2.FK;

Contoh perintah SQL:

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,


pesan.tgl_pesan

FROM pelanggan LEFT JOIN pesan

ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:

Hasil Perintah Left Join

Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga
data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi.
Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di
tabel kanan (pesan) pelanggan tersebut tidak ada.

RIGHT JOIN.

Bentuk umum:

SELECT tabel1.*, tabel2.*

FROM tabel1 RIGHT JOIN tabel2

ON tabel1.PK=tabel2.FK

Contoh perintah SQL:

SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,


pesan.tgl_pesan

FROM pelanggan RIGHT JOIN pesan

ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:

Hasil Perintah Right Join

Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi
semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan,
maka isi tabel pesan tetap ditampilkan.

Menggabungkan 3 Tabel atau Lebih.


Untuk menggabungkan tiga tabel atau lebih, pada dasarnya sama dengan penggabungan 2
(dua) tabel. Sebagai contoh misalnya kita akan menampilkan barang-barang yang dipesan
beserta nama barang dan harganya untuk pemesanan dengan nomor 1, sedemikian sehingga
hasilnya menjadi sebagai berikut:

Contoh Hasil Penggabungan 3 Tabel.


Skema tabel adalah seperti gambar di bawah ini.

Contoh class diagram sistem pembelian.

Anda mungkin juga menyukai