Table JoinTable Join
www.rahmadani.net 1
Pertemuan Ke-11
Maksudnya..
Join merupakan operasi yang digunakan
untuk mendapatkan data gabungan dari dua
tabel atau lebih.
Operasi ini juga menggunakan perintah
SELECT dan biasanya dipakai untuk
memperoleh detail data dari tabel-tabel yang
saling terkait( terelasi)
www.rahmadani.net 2
Join merupakan operasi yang digunakan
untuk mendapatkan data gabungan dari dua
tabel atau lebih.
Operasi ini juga menggunakan perintah
SELECT dan biasanya dipakai untuk
memperoleh detail data dari tabel-tabel yang
saling terkait( terelasi)
Syntax:
Select nama_kolom,nama_kolom,[nama_kolom] From
nama_tabel,[Cross/Inner/[Left/Right]Outer]Join
nama_tabel On nama_tabel.Ref_nama_kolom OperatorJoin
Nama_tabel.Ref_nama_kolom.
Keterangan :
Nama_kolom : menspesifikasikan nama kolom dari satu atau
beberapa tabel yang ditampilkan.
Nama_tabel : adalah nama tabel dari tabel yang diambil
Ref.nama_kolom : adalah nama_kolom yang digunakan
menggabungkan dua tabel dengan menggunakan kunci yang umum.
Operator Join menspesifikasikan operator yang digunakan untuk
menggabungkan tabel.
www.rahmadani.net 3
Select nama_kolom,nama_kolom,[nama_kolom] From
nama_tabel,[Cross/Inner/[Left/Right]Outer]Join
nama_tabel On nama_tabel.Ref_nama_kolom OperatorJoin
Nama_tabel.Ref_nama_kolom.
Keterangan :
Nama_kolom : menspesifikasikan nama kolom dari satu atau
beberapa tabel yang ditampilkan.
Nama_tabel : adalah nama tabel dari tabel yang diambil
Ref.nama_kolom : adalah nama_kolom yang digunakan
menggabungkan dua tabel dengan menggunakan kunci yang umum.
Operator Join menspesifikasikan operator yang digunakan untuk
menggabungkan tabel.
1. Cross Join/Cartesian Join
Cross Join akan menghasilkan kombinasi semua baris
yang terdapat dalam tabel-tabel yang digabungkan baik
yang tidak berpasangan maupun yang berpasangan.
Contoh;
Pada Dbase MYAKADEMIK, tuliskan kode berikut:
SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa
CROSS JOIN Mata_Kuliah
Atau
SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa,
Mata_Kuliah
Atau
SELECT A.NIM, A.Nama,B.Nama_MK, C.Nilai FROM Mahasiswa A,
Mata_Kuliah B, KHS C
Simpulan:
Pada kenyataannya, join jenis ini jarang berguna dan dapat
menimbulkan proses yang sangat lama sekiranya masing-masing tabel
mengandung jumlah data yang besar. Meskipun begitu jenis join
inilah yang merupakan dasar dari join antar tabel.
www.rahmadani.net 4
Cross Join akan menghasilkan kombinasi semua baris
yang terdapat dalam tabel-tabel yang digabungkan baik
yang tidak berpasangan maupun yang berpasangan.
Contoh;
Pada Dbase MYAKADEMIK, tuliskan kode berikut:
SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa
CROSS JOIN Mata_Kuliah
Atau
SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa,
Mata_Kuliah
Atau
SELECT A.NIM, A.Nama,B.Nama_MK, C.Nilai FROM Mahasiswa A,
Mata_Kuliah B, KHS C
Simpulan:
Pada kenyataannya, join jenis ini jarang berguna dan dapat
menimbulkan proses yang sangat lama sekiranya masing-masing tabel
mengandung jumlah data yang besar. Meskipun begitu jenis join
inilah yang merupakan dasar dari join antar tabel.
2. Inner Join
Join ini akan menghasilkan output yang berupa kombinasi
baris-baris yang memiliki pasangan apa saja. Kombinasi
baris yang bukan pasangan akan dieliminasi dan baris-
baris yang tidak memiliki pasangan pada tabel lainnya tidak
akan dimunculkan.
Dalam Inner Join, perlu diperhatikan ketika akan menjoinkan beberapa
tabel;
1.Tentukan kolom-kolom yang akan ditampilkan
2.Kelompokkan kolom tersebut berdasarkan tabel
3.Tentukan kolom yang sama (saling mereferensi) dari tabel-tabel yang
akan di joinkan.
4.Kolom yang sama tersebut menjadi kondisi join dari tabel yang dipilih.
5.Mengaliaskan nama tabel
6.Bila diperlukan tentukan kondisi atau syarat yang harus ada.
www.rahmadani.net 5
Join ini akan menghasilkan output yang berupa kombinasi
baris-baris yang memiliki pasangan apa saja. Kombinasi
baris yang bukan pasangan akan dieliminasi dan baris-
baris yang tidak memiliki pasangan pada tabel lainnya tidak
akan dimunculkan.
Dalam Inner Join, perlu diperhatikan ketika akan menjoinkan beberapa
tabel;
1.Tentukan kolom-kolom yang akan ditampilkan
2.Kelompokkan kolom tersebut berdasarkan tabel
3.Tentukan kolom yang sama (saling mereferensi) dari tabel-tabel yang
akan di joinkan.
4.Kolom yang sama tersebut menjadi kondisi join dari tabel yang dipilih.
5.Mengaliaskan nama tabel
6.Bila diperlukan tentukan kondisi atau syarat yang harus ada.
Contoh;
Pada Dbase MYAKADEMIK, joinkan antara tabel
KHS dengan Mata_Kuliah;
SELECT*FROM KHS, Mata_Kuliah WHERE
KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle lama)
Atau
SELECT*FROM KHS inner join Mata_Kuliah on
KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle baru)
Atau
SELECT*FROM KHS join Mata_Kuliah on
KHS.Kode_MK=Mata_Kuliah.Kode_MK
www.rahmadani.net 6
Pada Dbase MYAKADEMIK, joinkan antara tabel
KHS dengan Mata_Kuliah;
SELECT*FROM KHS, Mata_Kuliah WHERE
KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle lama)
Atau
SELECT*FROM KHS inner join Mata_Kuliah on
KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle baru)
Atau
SELECT*FROM KHS join Mata_Kuliah on
KHS.Kode_MK=Mata_Kuliah.Kode_MK
Simpulan..
Untuk INNER JOIN terdapat dua cara penulisan;
1. Memisahkan daftar tabel yang akan di-join dengan
tanda koma dan melakukan pengecekan kondisi
dengan klausa WHERE.
2. Menggunakan keyword INNER JOIN atau boleh juga
disingkat dengan JOIN saja diantara dua tabel yang
akan di-join dan melakukan pengecekan kondisi
dengan Keyword ON.
Kedua cara diatas hanya berlaku untuk dua tabel saja.
Jadi bagaimana jika tabel yang mau di JOIN kan lebih
dari dua tabel??
www.rahmadani.net 7
Untuk INNER JOIN terdapat dua cara penulisan;
1. Memisahkan daftar tabel yang akan di-join dengan
tanda koma dan melakukan pengecekan kondisi
dengan klausa WHERE.
2. Menggunakan keyword INNER JOIN atau boleh juga
disingkat dengan JOIN saja diantara dua tabel yang
akan di-join dan melakukan pengecekan kondisi
dengan Keyword ON.
Kedua cara diatas hanya berlaku untuk dua tabel saja.
Jadi bagaimana jika tabel yang mau di JOIN kan lebih
dari dua tabel??
Perhatikan contoh berikut, kita akan men joinkan Tabel
Mahasiswa, Mata_Kuliah dan KHS;
Cara 1:
SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester,
C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A INNER JOIN KHS C
ON A.Nim=C.NIm INNER JOIN Mata_Kuliah B ON
B.Kode_MK=C.Kode_MK
Cara 2:
SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester,
C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A, Mata_Kuliah B,
KHS C WHERE A.Nim=C.NIm AND B.Kode_MK=C.Kode_MK
Result:
www.rahmadani.net 8
Perhatikan contoh berikut, kita akan men joinkan Tabel
Mahasiswa, Mata_Kuliah dan KHS;
Cara 1:
SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester,
C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A INNER JOIN KHS C
ON A.Nim=C.NIm INNER JOIN Mata_Kuliah B ON
B.Kode_MK=C.Kode_MK
Cara 2:
SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester,
C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A, Mata_Kuliah B,
KHS C WHERE A.Nim=C.NIm AND B.Kode_MK=C.Kode_MK
Result:
Jadi, apa kesimpulannya jika tabel yang akan di-join kan lebih dari dua??
3.Outer Join
Pemahaman Outer Join sebenarnya hampir sama
dengan Inner Join hanya saja baris yang tidak
memiliki pasangan tetap akan ditampilkan.
Outer Join, dibagi menjadi beberapa bagian:
1.Left Outer Join
2.Right Outer Join
3.Full Outer Join
www.rahmadani.net 9
Pemahaman Outer Join sebenarnya hampir sama
dengan Inner Join hanya saja baris yang tidak
memiliki pasangan tetap akan ditampilkan.
Outer Join, dibagi menjadi beberapa bagian:
1.Left Outer Join
2.Right Outer Join
3.Full Outer Join
Agar lebih memahami tentang Outer Join
perhatikan contoh berikut:
Cross join
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M Cross Join KHS K
Atau
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M,KHS K
Inner Join
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M Inner JOIN KHS K on m.nim=k.nim
Outer Join
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M LEFT JOIN KHS K on m.nim=k.nim
www.rahmadani.net 10
Cross join
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M Cross Join KHS K
Atau
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M,KHS K
Inner Join
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M Inner JOIN KHS K on m.nim=k.nim
Outer Join
SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM
Mahasiswa M LEFT JOIN KHS K on m.nim=k.nim
Simpulan..
Secara sederhana dapat dikatakan bahwa perbedaan antara
Cross Join dengan Jenis Join lainnya adalah ada dan tidaknya
persyaratan atau pengecekan kondisi Join.
Cross Join merupakan yang tidak memiliki persyaratan,
sementara jenis join lainnya (INNER atau OUTER)
memerlukan persyaratan. Persyaratan yang dimaksud adalah
bahwa data pada kolom foreign key di tabel yang merujuk
harus sama dengan data pada kolom primary key di tabel
yang dirujuk.
Persyaratan Kondisi ;
Tabel_1.Kolom_Primary_Key=Tabel_2.Kolom_Foreign_Key
Atau sebaliknya.
www.rahmadani.net 11
Secara sederhana dapat dikatakan bahwa perbedaan antara
Cross Join dengan Jenis Join lainnya adalah ada dan tidaknya
persyaratan atau pengecekan kondisi Join.
Cross Join merupakan yang tidak memiliki persyaratan,
sementara jenis join lainnya (INNER atau OUTER)
memerlukan persyaratan. Persyaratan yang dimaksud adalah
bahwa data pada kolom foreign key di tabel yang merujuk
harus sama dengan data pada kolom primary key di tabel
yang dirujuk.
Persyaratan Kondisi ;
Tabel_1.Kolom_Primary_Key=Tabel_2.Kolom_Foreign_Key
Atau sebaliknya.
Right Outer Join
Baris pada tabel yg berada disebelah kanan operator Right
Outer Join ada yang tidak memiliki pasangan dengan tabel
yang terletak di kanan right outer join atau right join, baris
ini tetap disertakan dalam penggabungan.
Contoh:
SELECT M.NIm, M.Nama, K.Kelas,
K.Kode_Jurusan as JUrusan FROm Mahasiswa m
Right Outer Join Kelas K on M.kelas=K.Kelas
Hal yang sama juga berlaku pada Left Outer Join
www.rahmadani.net 12
Baris pada tabel yg berada disebelah kanan operator Right
Outer Join ada yang tidak memiliki pasangan dengan tabel
yang terletak di kanan right outer join atau right join, baris
ini tetap disertakan dalam penggabungan.
Contoh:
SELECT M.NIm, M.Nama, K.Kelas,
K.Kode_Jurusan as JUrusan FROm Mahasiswa m
Right Outer Join Kelas K on M.kelas=K.Kelas
Hal yang sama juga berlaku pada Left Outer Join
Full Outer Join
Full Outer Join adalah gabungan antara model Left
Outer Join dan Right Outer Join.
Contoh;
SELECT K.Dosen_Wali, J.Ketua FROM Kelas K
FULL OUTER JOIN Jurusan J ON
K.Dosen_Wali=J.Ketua
Result
www.rahmadani.net 13
Full Outer Join adalah gabungan antara model Left
Outer Join dan Right Outer Join.
Contoh;
SELECT K.Dosen_Wali, J.Ketua FROM Kelas K
FULL OUTER JOIN Jurusan J ON
K.Dosen_Wali=J.Ketua
Result
Simpulan..
Agak berbeda dengan JOIN lainnya (INNER JOIN
atau CROSS JOIN), cara penulisan OUTER JOIN
hanya bisa dilakukan dengan satu cara.
Walaupun demikian, Anda dapat menyingkat
dengan menghilangkan Keyword Outer, sehingga
penulisan, misal; Left Outer Join dapat disingkat
menjadi Left Join dan seterusnya.
www.rahmadani.net 14
Agak berbeda dengan JOIN lainnya (INNER JOIN
atau CROSS JOIN), cara penulisan OUTER JOIN
hanya bisa dilakukan dengan satu cara.
Walaupun demikian, Anda dapat menyingkat
dengan menghilangkan Keyword Outer, sehingga
penulisan, misal; Left Outer Join dapat disingkat
menjadi Left Join dan seterusnya.
Latihan;
1. Pada Database MYAKADEMIKS, gabungkan atau joinkan dengan
Inner Join Tabel KHS dengan Mata_Kuliah??
SELECT*FROM (Tabel1) JOIN (Tabel2) on
Tabel1.FieldTable2=Table2.FieldTable2
2. Gabungkan Field NIM, Nama_MK, Bobot, Nilai dan tambahkan Field
Nilai Angka kemudian di konversi nilai huruf KHS menjadi nilai
Angka??
SELECT K.NIM, M.Nama_MK, M.Bobot, K.Nilai,
CASE
WHEN Nilai='A' THEN 4
WHEN Nilai='B' THEN 3
WHEN Nilai='C' THEN 2
WHEN Nilai='D' THEN 1
ELSE 0
END AS Nilai_Angka From KHS K JOIN Mata_Kuliah M on
K.Kode_MK=M.Kode_MK
Dari kode diatas..hitung field Nilai Angka dengan mengalikan setiap
kondisi dengan Bobot??
www.rahmadani.net 15
1. Pada Database MYAKADEMIKS, gabungkan atau joinkan dengan
Inner Join Tabel KHS dengan Mata_Kuliah??
SELECT*FROM (Tabel1) JOIN (Tabel2) on
Tabel1.FieldTable2=Table2.FieldTable2
2. Gabungkan Field NIM, Nama_MK, Bobot, Nilai dan tambahkan Field
Nilai Angka kemudian di konversi nilai huruf KHS menjadi nilai
Angka??
SELECT K.NIM, M.Nama_MK, M.Bobot, K.Nilai,
CASE
WHEN Nilai='A' THEN 4
WHEN Nilai='B' THEN 3
WHEN Nilai='C' THEN 2
WHEN Nilai='D' THEN 1
ELSE 0
END AS Nilai_Angka From KHS K JOIN Mata_Kuliah M on
K.Kode_MK=M.Kode_MK
Dari kode diatas..hitung field Nilai Angka dengan mengalikan setiap
kondisi dengan Bobot??
3. Kemudian tampilkan NIM dan Mahasiswa yang
datanya berada pada dua tabel tersebut??
• Data yg ingin diketahui dari kedua tabel tersebut Mhasiswa dan
KHS;
SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa
Inner Join KHS ON Mahasiswa.NIM=KHS.NIM
• Bisa pake grouping agar yg nampil diwakili 1
SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa
Inner Join KHS ON Mahasiswa.NIM=KHS.NIM group by
Mahasiswa.NIM, Mahasiswa.Nama
www.rahmadani.net 16
• Data yg ingin diketahui dari kedua tabel tersebut Mhasiswa dan
KHS;
SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa
Inner Join KHS ON Mahasiswa.NIM=KHS.NIM
• Bisa pake grouping agar yg nampil diwakili 1
SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa
Inner Join KHS ON Mahasiswa.NIM=KHS.NIM group by
Mahasiswa.NIM, Mahasiswa.Nama
4. Tampilkan NIM, Nama mahasiswa serta tambahkan field IPK dan
perhitungannya dengan menjoinkan Tabel Mahasiswa, Mata_Kuliah dan
KHS dan gunakan klausa GROUP BY untuk menampilkan Field dan Tabel
yang dijoinkan??
SELECT KHS.NIM, Mahasiswa.Nama, (SUM(
CASE
WHEN KHS.NIlai='A' THEN 4*Mata_Kuliah.Bobot
WHEN KHS.NIlai='B' THEN 3*Mata_Kuliah.Bobot
WHEN KHS.NIlai='C' THEN 2*Mata_Kuliah.Bobot
WHEN KHS.NIlai='D' THEN 1*Mata_Kuliah.Bobot
ELSE 0
END)/SUM(Mata_Kuliah.Bobot)) AS IPK FROM KHS INNER JOIN
Mata_Kuliah
ON KHS.Kode_MK=Mata_Kuliah.Kode_MK INNER JOIN Mahasiswa ON
KHS.NIM=Mahasiswa.NIM
GROUP BY KHS.NIM, Mahasiswa.Nama
www.rahmadani.net 17
SELECT KHS.NIM, Mahasiswa.Nama, (SUM(
CASE
WHEN KHS.NIlai='A' THEN 4*Mata_Kuliah.Bobot
WHEN KHS.NIlai='B' THEN 3*Mata_Kuliah.Bobot
WHEN KHS.NIlai='C' THEN 2*Mata_Kuliah.Bobot
WHEN KHS.NIlai='D' THEN 1*Mata_Kuliah.Bobot
ELSE 0
END)/SUM(Mata_Kuliah.Bobot)) AS IPK FROM KHS INNER JOIN
Mata_Kuliah
ON KHS.Kode_MK=Mata_Kuliah.Kode_MK INNER JOIN Mahasiswa ON
KHS.NIM=Mahasiswa.NIM
GROUP BY KHS.NIM, Mahasiswa.Nama
www.rahmadani.net 18

Part 11 table join

  • 1.
  • 2.
    Maksudnya.. Join merupakan operasiyang digunakan untuk mendapatkan data gabungan dari dua tabel atau lebih. Operasi ini juga menggunakan perintah SELECT dan biasanya dipakai untuk memperoleh detail data dari tabel-tabel yang saling terkait( terelasi) www.rahmadani.net 2 Join merupakan operasi yang digunakan untuk mendapatkan data gabungan dari dua tabel atau lebih. Operasi ini juga menggunakan perintah SELECT dan biasanya dipakai untuk memperoleh detail data dari tabel-tabel yang saling terkait( terelasi)
  • 3.
    Syntax: Select nama_kolom,nama_kolom,[nama_kolom] From nama_tabel,[Cross/Inner/[Left/Right]Outer]Join nama_tabelOn nama_tabel.Ref_nama_kolom OperatorJoin Nama_tabel.Ref_nama_kolom. Keterangan : Nama_kolom : menspesifikasikan nama kolom dari satu atau beberapa tabel yang ditampilkan. Nama_tabel : adalah nama tabel dari tabel yang diambil Ref.nama_kolom : adalah nama_kolom yang digunakan menggabungkan dua tabel dengan menggunakan kunci yang umum. Operator Join menspesifikasikan operator yang digunakan untuk menggabungkan tabel. www.rahmadani.net 3 Select nama_kolom,nama_kolom,[nama_kolom] From nama_tabel,[Cross/Inner/[Left/Right]Outer]Join nama_tabel On nama_tabel.Ref_nama_kolom OperatorJoin Nama_tabel.Ref_nama_kolom. Keterangan : Nama_kolom : menspesifikasikan nama kolom dari satu atau beberapa tabel yang ditampilkan. Nama_tabel : adalah nama tabel dari tabel yang diambil Ref.nama_kolom : adalah nama_kolom yang digunakan menggabungkan dua tabel dengan menggunakan kunci yang umum. Operator Join menspesifikasikan operator yang digunakan untuk menggabungkan tabel.
  • 4.
    1. Cross Join/CartesianJoin Cross Join akan menghasilkan kombinasi semua baris yang terdapat dalam tabel-tabel yang digabungkan baik yang tidak berpasangan maupun yang berpasangan. Contoh; Pada Dbase MYAKADEMIK, tuliskan kode berikut: SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa CROSS JOIN Mata_Kuliah Atau SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa, Mata_Kuliah Atau SELECT A.NIM, A.Nama,B.Nama_MK, C.Nilai FROM Mahasiswa A, Mata_Kuliah B, KHS C Simpulan: Pada kenyataannya, join jenis ini jarang berguna dan dapat menimbulkan proses yang sangat lama sekiranya masing-masing tabel mengandung jumlah data yang besar. Meskipun begitu jenis join inilah yang merupakan dasar dari join antar tabel. www.rahmadani.net 4 Cross Join akan menghasilkan kombinasi semua baris yang terdapat dalam tabel-tabel yang digabungkan baik yang tidak berpasangan maupun yang berpasangan. Contoh; Pada Dbase MYAKADEMIK, tuliskan kode berikut: SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa CROSS JOIN Mata_Kuliah Atau SELECT Mahasiswa.nama, Mata_Kuliah.Nama_MK FROM Mahasiswa, Mata_Kuliah Atau SELECT A.NIM, A.Nama,B.Nama_MK, C.Nilai FROM Mahasiswa A, Mata_Kuliah B, KHS C Simpulan: Pada kenyataannya, join jenis ini jarang berguna dan dapat menimbulkan proses yang sangat lama sekiranya masing-masing tabel mengandung jumlah data yang besar. Meskipun begitu jenis join inilah yang merupakan dasar dari join antar tabel.
  • 5.
    2. Inner Join Joinini akan menghasilkan output yang berupa kombinasi baris-baris yang memiliki pasangan apa saja. Kombinasi baris yang bukan pasangan akan dieliminasi dan baris- baris yang tidak memiliki pasangan pada tabel lainnya tidak akan dimunculkan. Dalam Inner Join, perlu diperhatikan ketika akan menjoinkan beberapa tabel; 1.Tentukan kolom-kolom yang akan ditampilkan 2.Kelompokkan kolom tersebut berdasarkan tabel 3.Tentukan kolom yang sama (saling mereferensi) dari tabel-tabel yang akan di joinkan. 4.Kolom yang sama tersebut menjadi kondisi join dari tabel yang dipilih. 5.Mengaliaskan nama tabel 6.Bila diperlukan tentukan kondisi atau syarat yang harus ada. www.rahmadani.net 5 Join ini akan menghasilkan output yang berupa kombinasi baris-baris yang memiliki pasangan apa saja. Kombinasi baris yang bukan pasangan akan dieliminasi dan baris- baris yang tidak memiliki pasangan pada tabel lainnya tidak akan dimunculkan. Dalam Inner Join, perlu diperhatikan ketika akan menjoinkan beberapa tabel; 1.Tentukan kolom-kolom yang akan ditampilkan 2.Kelompokkan kolom tersebut berdasarkan tabel 3.Tentukan kolom yang sama (saling mereferensi) dari tabel-tabel yang akan di joinkan. 4.Kolom yang sama tersebut menjadi kondisi join dari tabel yang dipilih. 5.Mengaliaskan nama tabel 6.Bila diperlukan tentukan kondisi atau syarat yang harus ada.
  • 6.
    Contoh; Pada Dbase MYAKADEMIK,joinkan antara tabel KHS dengan Mata_Kuliah; SELECT*FROM KHS, Mata_Kuliah WHERE KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle lama) Atau SELECT*FROM KHS inner join Mata_Kuliah on KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle baru) Atau SELECT*FROM KHS join Mata_Kuliah on KHS.Kode_MK=Mata_Kuliah.Kode_MK www.rahmadani.net 6 Pada Dbase MYAKADEMIK, joinkan antara tabel KHS dengan Mata_Kuliah; SELECT*FROM KHS, Mata_Kuliah WHERE KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle lama) Atau SELECT*FROM KHS inner join Mata_Kuliah on KHS.Kode_MK=Mata_Kuliah.Kode_MK (syle baru) Atau SELECT*FROM KHS join Mata_Kuliah on KHS.Kode_MK=Mata_Kuliah.Kode_MK
  • 7.
    Simpulan.. Untuk INNER JOINterdapat dua cara penulisan; 1. Memisahkan daftar tabel yang akan di-join dengan tanda koma dan melakukan pengecekan kondisi dengan klausa WHERE. 2. Menggunakan keyword INNER JOIN atau boleh juga disingkat dengan JOIN saja diantara dua tabel yang akan di-join dan melakukan pengecekan kondisi dengan Keyword ON. Kedua cara diatas hanya berlaku untuk dua tabel saja. Jadi bagaimana jika tabel yang mau di JOIN kan lebih dari dua tabel?? www.rahmadani.net 7 Untuk INNER JOIN terdapat dua cara penulisan; 1. Memisahkan daftar tabel yang akan di-join dengan tanda koma dan melakukan pengecekan kondisi dengan klausa WHERE. 2. Menggunakan keyword INNER JOIN atau boleh juga disingkat dengan JOIN saja diantara dua tabel yang akan di-join dan melakukan pengecekan kondisi dengan Keyword ON. Kedua cara diatas hanya berlaku untuk dua tabel saja. Jadi bagaimana jika tabel yang mau di JOIN kan lebih dari dua tabel??
  • 8.
    Perhatikan contoh berikut,kita akan men joinkan Tabel Mahasiswa, Mata_Kuliah dan KHS; Cara 1: SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester, C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A INNER JOIN KHS C ON A.Nim=C.NIm INNER JOIN Mata_Kuliah B ON B.Kode_MK=C.Kode_MK Cara 2: SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester, C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A, Mata_Kuliah B, KHS C WHERE A.Nim=C.NIm AND B.Kode_MK=C.Kode_MK Result: www.rahmadani.net 8 Perhatikan contoh berikut, kita akan men joinkan Tabel Mahasiswa, Mata_Kuliah dan KHS; Cara 1: SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester, C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A INNER JOIN KHS C ON A.Nim=C.NIm INNER JOIN Mata_Kuliah B ON B.Kode_MK=C.Kode_MK Cara 2: SELECT A. NIM, A.Nama, B.Nama_MK, B.Bobot, C.Semester, C.Nilai, C.Tahun_Ajaran FROM Mahasiswa A, Mata_Kuliah B, KHS C WHERE A.Nim=C.NIm AND B.Kode_MK=C.Kode_MK Result: Jadi, apa kesimpulannya jika tabel yang akan di-join kan lebih dari dua??
  • 9.
    3.Outer Join Pemahaman OuterJoin sebenarnya hampir sama dengan Inner Join hanya saja baris yang tidak memiliki pasangan tetap akan ditampilkan. Outer Join, dibagi menjadi beberapa bagian: 1.Left Outer Join 2.Right Outer Join 3.Full Outer Join www.rahmadani.net 9 Pemahaman Outer Join sebenarnya hampir sama dengan Inner Join hanya saja baris yang tidak memiliki pasangan tetap akan ditampilkan. Outer Join, dibagi menjadi beberapa bagian: 1.Left Outer Join 2.Right Outer Join 3.Full Outer Join
  • 10.
    Agar lebih memahamitentang Outer Join perhatikan contoh berikut: Cross join SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M Cross Join KHS K Atau SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M,KHS K Inner Join SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M Inner JOIN KHS K on m.nim=k.nim Outer Join SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M LEFT JOIN KHS K on m.nim=k.nim www.rahmadani.net 10 Cross join SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M Cross Join KHS K Atau SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M,KHS K Inner Join SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M Inner JOIN KHS K on m.nim=k.nim Outer Join SELECT M.NIM, M.Nama, K.Kode_MK, K.Nilai FROM Mahasiswa M LEFT JOIN KHS K on m.nim=k.nim
  • 11.
    Simpulan.. Secara sederhana dapatdikatakan bahwa perbedaan antara Cross Join dengan Jenis Join lainnya adalah ada dan tidaknya persyaratan atau pengecekan kondisi Join. Cross Join merupakan yang tidak memiliki persyaratan, sementara jenis join lainnya (INNER atau OUTER) memerlukan persyaratan. Persyaratan yang dimaksud adalah bahwa data pada kolom foreign key di tabel yang merujuk harus sama dengan data pada kolom primary key di tabel yang dirujuk. Persyaratan Kondisi ; Tabel_1.Kolom_Primary_Key=Tabel_2.Kolom_Foreign_Key Atau sebaliknya. www.rahmadani.net 11 Secara sederhana dapat dikatakan bahwa perbedaan antara Cross Join dengan Jenis Join lainnya adalah ada dan tidaknya persyaratan atau pengecekan kondisi Join. Cross Join merupakan yang tidak memiliki persyaratan, sementara jenis join lainnya (INNER atau OUTER) memerlukan persyaratan. Persyaratan yang dimaksud adalah bahwa data pada kolom foreign key di tabel yang merujuk harus sama dengan data pada kolom primary key di tabel yang dirujuk. Persyaratan Kondisi ; Tabel_1.Kolom_Primary_Key=Tabel_2.Kolom_Foreign_Key Atau sebaliknya.
  • 12.
    Right Outer Join Barispada tabel yg berada disebelah kanan operator Right Outer Join ada yang tidak memiliki pasangan dengan tabel yang terletak di kanan right outer join atau right join, baris ini tetap disertakan dalam penggabungan. Contoh: SELECT M.NIm, M.Nama, K.Kelas, K.Kode_Jurusan as JUrusan FROm Mahasiswa m Right Outer Join Kelas K on M.kelas=K.Kelas Hal yang sama juga berlaku pada Left Outer Join www.rahmadani.net 12 Baris pada tabel yg berada disebelah kanan operator Right Outer Join ada yang tidak memiliki pasangan dengan tabel yang terletak di kanan right outer join atau right join, baris ini tetap disertakan dalam penggabungan. Contoh: SELECT M.NIm, M.Nama, K.Kelas, K.Kode_Jurusan as JUrusan FROm Mahasiswa m Right Outer Join Kelas K on M.kelas=K.Kelas Hal yang sama juga berlaku pada Left Outer Join
  • 13.
    Full Outer Join FullOuter Join adalah gabungan antara model Left Outer Join dan Right Outer Join. Contoh; SELECT K.Dosen_Wali, J.Ketua FROM Kelas K FULL OUTER JOIN Jurusan J ON K.Dosen_Wali=J.Ketua Result www.rahmadani.net 13 Full Outer Join adalah gabungan antara model Left Outer Join dan Right Outer Join. Contoh; SELECT K.Dosen_Wali, J.Ketua FROM Kelas K FULL OUTER JOIN Jurusan J ON K.Dosen_Wali=J.Ketua Result
  • 14.
    Simpulan.. Agak berbeda denganJOIN lainnya (INNER JOIN atau CROSS JOIN), cara penulisan OUTER JOIN hanya bisa dilakukan dengan satu cara. Walaupun demikian, Anda dapat menyingkat dengan menghilangkan Keyword Outer, sehingga penulisan, misal; Left Outer Join dapat disingkat menjadi Left Join dan seterusnya. www.rahmadani.net 14 Agak berbeda dengan JOIN lainnya (INNER JOIN atau CROSS JOIN), cara penulisan OUTER JOIN hanya bisa dilakukan dengan satu cara. Walaupun demikian, Anda dapat menyingkat dengan menghilangkan Keyword Outer, sehingga penulisan, misal; Left Outer Join dapat disingkat menjadi Left Join dan seterusnya.
  • 15.
    Latihan; 1. Pada DatabaseMYAKADEMIKS, gabungkan atau joinkan dengan Inner Join Tabel KHS dengan Mata_Kuliah?? SELECT*FROM (Tabel1) JOIN (Tabel2) on Tabel1.FieldTable2=Table2.FieldTable2 2. Gabungkan Field NIM, Nama_MK, Bobot, Nilai dan tambahkan Field Nilai Angka kemudian di konversi nilai huruf KHS menjadi nilai Angka?? SELECT K.NIM, M.Nama_MK, M.Bobot, K.Nilai, CASE WHEN Nilai='A' THEN 4 WHEN Nilai='B' THEN 3 WHEN Nilai='C' THEN 2 WHEN Nilai='D' THEN 1 ELSE 0 END AS Nilai_Angka From KHS K JOIN Mata_Kuliah M on K.Kode_MK=M.Kode_MK Dari kode diatas..hitung field Nilai Angka dengan mengalikan setiap kondisi dengan Bobot?? www.rahmadani.net 15 1. Pada Database MYAKADEMIKS, gabungkan atau joinkan dengan Inner Join Tabel KHS dengan Mata_Kuliah?? SELECT*FROM (Tabel1) JOIN (Tabel2) on Tabel1.FieldTable2=Table2.FieldTable2 2. Gabungkan Field NIM, Nama_MK, Bobot, Nilai dan tambahkan Field Nilai Angka kemudian di konversi nilai huruf KHS menjadi nilai Angka?? SELECT K.NIM, M.Nama_MK, M.Bobot, K.Nilai, CASE WHEN Nilai='A' THEN 4 WHEN Nilai='B' THEN 3 WHEN Nilai='C' THEN 2 WHEN Nilai='D' THEN 1 ELSE 0 END AS Nilai_Angka From KHS K JOIN Mata_Kuliah M on K.Kode_MK=M.Kode_MK Dari kode diatas..hitung field Nilai Angka dengan mengalikan setiap kondisi dengan Bobot??
  • 16.
    3. Kemudian tampilkanNIM dan Mahasiswa yang datanya berada pada dua tabel tersebut?? • Data yg ingin diketahui dari kedua tabel tersebut Mhasiswa dan KHS; SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa Inner Join KHS ON Mahasiswa.NIM=KHS.NIM • Bisa pake grouping agar yg nampil diwakili 1 SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa Inner Join KHS ON Mahasiswa.NIM=KHS.NIM group by Mahasiswa.NIM, Mahasiswa.Nama www.rahmadani.net 16 • Data yg ingin diketahui dari kedua tabel tersebut Mhasiswa dan KHS; SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa Inner Join KHS ON Mahasiswa.NIM=KHS.NIM • Bisa pake grouping agar yg nampil diwakili 1 SELECT Mahasiswa.NIM, Mahasiswa.Nama FROM Mahasiswa Inner Join KHS ON Mahasiswa.NIM=KHS.NIM group by Mahasiswa.NIM, Mahasiswa.Nama
  • 17.
    4. Tampilkan NIM,Nama mahasiswa serta tambahkan field IPK dan perhitungannya dengan menjoinkan Tabel Mahasiswa, Mata_Kuliah dan KHS dan gunakan klausa GROUP BY untuk menampilkan Field dan Tabel yang dijoinkan?? SELECT KHS.NIM, Mahasiswa.Nama, (SUM( CASE WHEN KHS.NIlai='A' THEN 4*Mata_Kuliah.Bobot WHEN KHS.NIlai='B' THEN 3*Mata_Kuliah.Bobot WHEN KHS.NIlai='C' THEN 2*Mata_Kuliah.Bobot WHEN KHS.NIlai='D' THEN 1*Mata_Kuliah.Bobot ELSE 0 END)/SUM(Mata_Kuliah.Bobot)) AS IPK FROM KHS INNER JOIN Mata_Kuliah ON KHS.Kode_MK=Mata_Kuliah.Kode_MK INNER JOIN Mahasiswa ON KHS.NIM=Mahasiswa.NIM GROUP BY KHS.NIM, Mahasiswa.Nama www.rahmadani.net 17 SELECT KHS.NIM, Mahasiswa.Nama, (SUM( CASE WHEN KHS.NIlai='A' THEN 4*Mata_Kuliah.Bobot WHEN KHS.NIlai='B' THEN 3*Mata_Kuliah.Bobot WHEN KHS.NIlai='C' THEN 2*Mata_Kuliah.Bobot WHEN KHS.NIlai='D' THEN 1*Mata_Kuliah.Bobot ELSE 0 END)/SUM(Mata_Kuliah.Bobot)) AS IPK FROM KHS INNER JOIN Mata_Kuliah ON KHS.Kode_MK=Mata_Kuliah.Kode_MK INNER JOIN Mahasiswa ON KHS.NIM=Mahasiswa.NIM GROUP BY KHS.NIM, Mahasiswa.Nama
  • 18.