Anda di halaman 1dari 5

QUERY MULTI TABEL

A. Kondisi Database

Tersedia dua buah table yang ber-relasi :

Tabel DosenWali

nik nama prodi


D0001 Pak Anggoro, ST., MT T.INF
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF
D0003 Pak Sofyan, S.T., M.Kom S.I
D0004 Pak Buhairo, S.Kom, M.T S.I

Tabel Mahasiswa

nim nama Ipk nik_dosenwali


M00001 Susiyanto 3.56 D0001
M00002 Mujiyono 2.56 D0001
M00003 Andri Baskoro 3.23 D0001
M00004 Yudi Mansuro 2.75 D0002
M00005 Ratih Basuki 2.98 D0002
M00006 Andi Tenery 3.15 D0003

Perhatikan bahwa kedua Tabel berelasi dengan aturan one to many. Sisi ‘one’ ada pada Tabel Dosen
Wali dan sisi ‘many’ ada pada Tabel Mahasiswa. Maknanya adalah “satu record data di Tabel Dosen Wali
akan berhubungan dengan satu atau banyak record data di Tabel Mahasiswa”.

Nama kolom yang berelasi tidak harus sama, tetapi isi data-nya lah yang harus sama baik tipe atau
ukurannya.

B. Latihan Query Antar Dua Tabel

1. Menampilkan daftar mahasiswa bimbingan dosen Pak Anggoro, ST., MT :

SELECT * FROM mahasiswa, dosenwali


WHERE mahasiswa.nik_dosenwali=dosenwali.nik
AND dosenwali.nama='Pak Anggoro, ST., MT'

nim nama ipk nik_dosenwali nik nama prodi


nim nama ipk nik_dosenwali nik nama prodi
M00001 Susiyanto 3.56 D0001 D0001 Pak Anggoro, ST., MT T.INF

M00002 Mujiyono 2.56 D0001 D0001 Pak Anggoro, ST., MT T.INF

M00003 Andri Baskoro 3.23 D0001 D0001 Pak Anggoro, ST., MT T.INF

2. Menampilkan daftar mahasiswa bimbingan dosen Pak Anggoro, ST., MT yang IPK nya di atas 3:

SELECT * FROM mahasiswa, dosenwali


WHERE mahasiswa.nik_dosenwali=dosenwali.nik
AND dosenwali.nama='Pak Anggoro, ST., MT'
AND ipk>3

nim nama ipk nik_dosenwali nik nama prodi


M00001 Susiyanto 3.56 D0001 D0001 Pak Anggoro, ST., MT T.INF

M00003 Andri Baskoro 3.23 D0001 D0001 Pak Anggoro, ST., MT T.INF

3. Menampilkan daftar mahasiswa bimbingan dosen Pak Anggoro, ST., MT khusus kolom nim,
nama, dan ipk saja :

SELECT nim, mahasiswa.nama, ipk FROM mahasiswa, dosenwali


WHERE mahasiswa.nik_dosenwali=dosenwali.nik
AND dosenwali.nama='Pak Anggoro, ST., MT'

nim nama ipk


M00001 Susiyanto 3.56
M00002 Mujiyono 2.56
M00003 Andri Baskoro 3.23

4. Menampilkan rata-rata IPK mahasiswa yang dosen walinya Pak Anggoro, ST., MT :

SELECT average(ipk) as rata_rata_ipk FROM mahasiswa, dosenwali


WHERE mahasiswa.nik_dosenwali=dosenwali.nik
AND dosenwali.nama='Pak Anggoro, ST., MT'

rata_rata_ipk
3.116666634877523

5. Menampilkan relasi LEFT JOIN Tabel Dosenwali dan Tabel Mahasiswa

SELECT * FROM dosenwali


LEFT JOIN mahasiswa ON dosenwali.nik=mahasiswa.nik_dosenwali

nik nama prodi nim nama ipk nik_dosenwali


D0001 Pak Anggoro, ST., MT T.INF M00001 Susiyanto 3.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00002 Mujiyono 2.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00003 Andri Baskoro 3.23 D0001
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00004 Yudi Mansuro 2.75 D0002
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00005 Ratih Basuki 2.98 D0002
D0003 Pak Sofyan, S.T., M.Kom S.I M00006 Andi Tenery 3.15 D0003
D0004 Pak Buhairo, S.Kom, M.T S.I NULL NULL NULL NULL

6. Menampilkan relasi LEFT JOIN Tabel Dosenwali dan Tabel Mahasiswa dengan kondisi WHERE

SELECT * FROM dosenwali


LEFT JOIN mahasiswa ON dosenwali.nik=mahasiswa.nik_dosenwali
WHERE nik_dosenwali IS NOT NULL

nik nama prodi nim nama ipk nik_dosenwali


D0001 Pak Anggoro, ST., MT T.INF M00001 Susiyanto 3.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00002 Mujiyono 2.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00003 Andri Baskoro 3.23 D0001
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00004 Yudi Mansuro 2.75 D0002
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00005 Ratih Basuki 2.98 D0002
D0003 Pak Sofyan, S.T., M.Kom S.I M00006 Andi Tenery 3.15 D0003

7. Menampilkan relasi INNER JOIN Tabel Dosenwali dan Tabel Mahasiswa

SELECT * FROM dosenwali


INNER JOIN mahasiswa ON dosenwali.nik=mahasiswa.nik_dosenwali

nik nama prodi nim nama ipk nik_dosenwali


D0001 Pak Anggoro, ST., MT T.INF M00001 Susiyanto 3.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00002 Mujiyono 2.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00003 Andri Baskoro 3.23 D0001
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00004 Yudi Mansuro 2.75 D0002
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00005 Ratih Basuki 2.98 D0002
D0003 Pak Sofyan, S.T., M.Kom S.I M00006 Andi Tenery 3.15 D0003

8. Menampilkan relasi RIGHT JOIN Tabel Dosenwali dan Tabel Mahasiswa

SELECT * FROM dosenwali


RIGHT JOIN mahasiswa ON dosenwali.nik=mahasiswa.nik_dosenwali

nik nama prodi nim nama ipk nik_dosenwali


NULL NULL NULL M00007 Sudarsono 3.45
nik nama prodi nim nama ipk nik_dosenwali
D0001 Pak Anggoro, ST., MT T.INF M00003 Andri Baskoro 3.23 D0001
D0001 Pak Anggoro, ST., MT T.INF M00001 Susiyanto 3.56 D0001
D0001 Pak Anggoro, ST., MT T.INF M00002 Mujiyono 2.56 D0001
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00004 Yudi Mansuro 2.75 D0002
D0002 Ibu Hanafi, S.Kom, M.Kom T.INF M00005 Ratih Basuki 2.98 D0002
D0003 Pak Sofyan, S.T., M.Kom S.I M00006 Andi Tenery 3.15 D0003

9. Menampilkan IPK RATA-RATA semua bimbingan SETIAP Dosen

SELECT nik,dosenwali.nama,AVG(IPK) AS rata_rata_ipk_bimbingan FROM dosenwali,mahasiswa


WHERE dosenwali.nik=mahasiswa.nik_dosenwali
GROUP BY nik

nik nama rata_rata_ipk_bimbingan


D0001 Pak Anggoro, ST., MT 3.116666634877523
D0002 Ibu Hanafi, S.Kom, M.Kom 2.865000009536743
D0003 Pak Sofyan, S.T., M.Kom 3.1500000953674316

10. Menampilkan IPK RATA-RATA semua bimbingan SETIAP Dosen khusus Dosen-Dosen yang rata-
rata IPK bimbingannya di atas 3.

SELECT nik,dosenwali.nama,AVG(IPK) AS rata_rata_ipk_bimbingan FROM dosenwali,mahasiswa


WHERE dosenwali.nik=mahasiswa.nik_dosenwali
GROUP BY nik
HAVING rata_rata_ipk_bimbingan>3

nik nama rata_rata_ipk_bimbingan


D0001 Pak Anggoro, ST., MT 3.116666634877523
D0003 Pak Sofyan, S.T., M.Kom 3.1500000953674316

C. Latihan Soal :
1. Tampilkan daftar mahasiswa bimbingan dari Ibu Hanafi, S.Kom, M.Kom
2. Tampilkan daftar mahasiswa bimbingan dari Ibu Hanafi, S.Kom, M.Kom yang IPK di bawah 3.
3. Tampilkan daftar mahasiswa yang ipk lebih besar atau sama dengan 3 dan JOIN kan dengan tabel
dosen wali (INNER, LEFT, dan RIGHT)
4. Tampilkan Dosen-Dosen yang rata-rata IPK bimbingannya di atas 3 dan dari Prodi T.INF

OPERATOR FUNGSI CONTOH


NOT atau ! Sebagai Negasi (bukan) dari NOT purwoketo atau
suatu nilai !purwokerto
OR atau || ATAU, akan bernilai benar jika Buah = “Jambu” OR
salah satu atau kedua ekspersi Buah=”Jeruk”
adalah benar
AND atau && DAN, akan bernilai benar hanya Buah = “Jambu” AND
bila ekpresi adalah benar Buah=”Jeruk”

Anda mungkin juga menyukai