Minggu, 06 Oktober 2019

BAB 8 JOIN


 

8.1     Natural Join
Jika diperhatikan, penulisan query menggunakan SELECT untuk menampilkan data yang berrelasi menggunakan klausa WHERE memerlukan banyak energi. Query yang dituliskan panjang sehingga kemungkinan kesalahan dalam penulisan query pun semakin besar. Sebagai contoh perhatikan query berikut yang menggunakan klausa WHERE:
Gambar 8. 1 Menampilkan data desa dan kegiatan menggunakan klausa WHERE

Sekarang Anda dapat membuat tampilan yang sama dengan query yang lebih singkat, yaitu menggunakan NATURAL JOIN. Seperti yang ditunjukkan pada gambar berikut:
Gambar 8. 2 Menampilkan data kegiatan dan desa menggunakan NATURAL JOIN
Anda tidak perlu lagi menyamakan FK dengan PK nya, karena NATURAL JOIN memastikan atribut yang bernama sama pasti berhubungan. Sehingga Anda dapat menghemat waktu dan energi dengan menggunakan NATURAL JOIN. Walaupun demikian, ada paling tidak dua kondisi yang harus diperhatikan jika Anda memutuskan menggunakan NATURAL JOIN:
1.      Pastikan untuk atribut-atribut yang berhubungan/berrelasi memiliki nama yang sama.
2.      Pastikan untuk atribut-atribut yang tidak saling berhubungan/berrelasi tidak memiliki nama yang sama.
Untuk membuktikan kondisi tersebut, di sini akan diberikan tambahan tabel yaitu tabel petugas. Dimana tabel petugas berrelasi dengan tabel lainnya dalam hal pengelolaan sehingga database memiliki tabel yang mencatat history pengelolaan data. Lebih jelasnya digambarkan pada ERD berikut:
Gambar 8. 3 ERD yang menampilkan tabel histori pada database si_desa
Perhatikan pada tabel admin PK nya berubah menjadi idadmin (silakan diubah dengan menggunakan ALTER). Selain itu terdapat juga tambahan entitas yang lain, Berikut akan ditunjukkan pembuatan tabel ADMIN         

Gambar 8. 4 Pembuatan tabel admin
Sedangkan untuk tabel lainnya hanya akan dicontohkan pembuatan tabel kelola_pengarang saja. Silakan tabel lainnya juga dibuat dengan cara yang sama.
Gambar 8. 5 Pembuatan tabel penduduk
Kemudian isikan tabel admin dan tabel penduduk yang telah dibuat tadi dengan data sebagai berikut (tabel lainnya silakan diisi sendiri):
Perhatikan bahwa tabel admin dan tabel penduduk  memiliki atribut yang bernama sama, Akan tetapi jika kita gunakan natural join untuk menampilkan id desa dan id desa  pada tabel penduduk
Himpunan kosong dihasilkan dari natural join karena tidak memperhatikan kondisi dan syarat untuk natural join. Hal ini diakibatkan karena pada tabel admin memiliki atribut nama Untuk mengatasi permasalahan ini, dapat digunakan klausa where
Selain dengan klausa where, dapat juga digunakan left join, right join dan inner join untuk memecahkan permasalah di atas, yang dijabarkan pada sub bab beikutnya.

8.2     Left Join dan Right Join
Left Join akan menampilkan semua record dari tabel sebelah kiri, dan record dari tabel sebelah kanan yang cocok. Hasilnya akan NULL untuk bagian kanan jika tidak ada kecocokan. Misal diminta untuk ditampilkan tabel adminyang menampilkan juga no HP admin yang mencatat. Query yang tepat jika menggunakan left join adalah sebagai berikut:
Akan tetapi jika posisi kedua tabel yang berhubungan diubah, maka tampilan datanya pun akan memiliki arti yang lain.
Right join adalah join yang serupa dengan left join, hanya saja posisi tabel yang kanan akan ditampilkan semua record nya. Sedangkan tabel yang kiri hanya record yang bersesuaian saja.

8.3     Inner Join
Versi aman dari left join maupun right join adalah inner join. Inner join tidak mementingkan posisi tabel pada query dan fungsinya sama dengan klausa where.

Tidak ada komentar:

Posting Komentar

TUGAS BESAR PPEMROGRAMAN VISUAL