Boxed-Width Version (true/false)

Rabu, 26 Januari 2022

thumbnail

Penggabungan Tabel dari Relasi Kolom(Inner Join dan Cross Join)

 Penggabungan Tabel dari Relasi Kolom

Key Columns

Penjelasan selanjutnya adalah mengenai key columns dan bagaimana penggunaannya dalam menggabungkan kedua tabel.

Perhatikan kembali tabel ms_item_warna dan ms_item_kategori yang telah ditemui pada pembahasan sebelumnya.

 

Dari rangkaian pembahasan sebelumnya, dapat disimpulkan bahwa kedua tabel tersebut memiliki hubungan/relasi yaitu pada kolom nama_barang (tabel ms_item_warna) dan kolom nama_item (tabel ms_item_kategori) karena banyak kecocokan dari isi data.

 Kedua kolom ini untuk selanjutnya disebut sebagai kolom kunci atau key columns.

 

Menggabungkan Tabel dengan Key Columns

Saatnya  mempraktekkan penggabungan tabel ms_item_kategori dan ms_item_warna menggunakan key columns.

Cobalah tuliskan query berikut di code editor:

 

Jika query yang ditunjukkan dengan benar diketikkan maka akan mendapatkan hasil berikut setelah menekan tombol .

 

Dapat dilihat hasil dari penggabungan dua tabel tersebut yaitu berupa tabel baru dengan empat kolom dan enam baris data. Perlu diketahui bahwa penggabungan ini bersifat sementara artinya tabel asli di database tidak mengalami perubahan, dan tabel baru hasil penggabungan ini juga tidak serta merta tersimpan di database.  

Penjelasan Query Penggabungan Tabel

Penggabungan dua tabel menjadi satu tabel baru menggunakan query SELECT pada subbab sebelumnya dilakukan dengan cara berikut:

  • menuliskan dua nama tabel yang akan digunakan dengan dipisahkan operator koma (,).
  • menuliskan pasangan key columns dengan penghubung operator sama dengan (=) di bagian filter atau kondisi.

 

Berikut adalah gambaran detil syntax penggunaan cara di atas:

 

Cara join seperti ini disebut dengan cara join menggunakan operator koma.

 

Penjelasan Hasil Penggabungan Tabel

Sejauh ini aku tidak menemukan masalah yang signifikan, tapi ketika berusaha menggabungkan tabel aku masih kesulitan. Untungnya Senja masih di sampingku.

“Nja, aku mau nanya. Jika aku amati, penggabungan tabel menghasilkan enam baris data. Sedangkan di kedua tabel asal masing-masing memiliki delapan baris data. Lalu, kenapa bisa berkurang dua baris data?” tanyaku penasaran.

“Untuk menjawab pertanyaan tersebut, cobalah perhatikan gambar berikut,” jawab Senja lugas langsung memberi penjelasan lengkap bersama visualnya

Dua tabel di bagian atas yaitu tabel ms_item_kategori dan tabel ms_item_warna merupakan tabel sumber data, dan bagian bawah adalah tabel hasil penggabungan dari kedua tabel tersebut.

Dari tabel hasil penggabungan terlihat bahwa baris data yang muncul hanyalah baris data yang isi datanya terdapat di kedua key columns, dan data yang isinya cocok untuk kedua tabel jumlahnya hanya enam dari total delapan baris data yang ada. Sedangkan baris data yang berisi belimbing, jamur, apel dan daun bawang, tidak terdapat di kedua tabel, sehingga baris data ini akan di-exclude dan tidak akan muncul di tabel hasil penggabungan.

 

Penjelasan Proses Penggabungan Tabel

Mari diperhatikan kembali gambar di bawah ini untuk penjelasan proses penggabungan.

Panah berwarna magenta menunjukkan proses pencocokan dan penggabungan data. Sebagai contoh: Baris data pertama dengan isi “bayam” pada key column nama_item (tabel ms_item_kategori), akan mencari isi yang sama di key column nama_barang (tabel ms_item_warna), dan ditemukan pada baris kedua kemudian dihubungkan menjadi satu baris di tabel baru hasil penggabungan.

Pencocokan dengan pencarian ini berdasarkan bagian kondisi (conditional clause) pada query yang ditandai dengan warna kuning berikut.

Setelah seluruh data ditemukan dengan kondisi ini, dan jika tidak menentukan spesifik kolom maka seluruh kolom data dari kedua tabel akan dimunculkan dengan isi/baris data yang sama dan terdapat di kedua key column digabungkan menjadi satu baris pada tabel baru. 

Isi data yang ditandai dengan warna merah adalah data yang tidak memiliki pasangan sehingga tidak bisa digabungkan, dan dengan demikian tidak memiliki data gabungan pada hasil akhir.

Cara pencocokan dan penggabungan disebut dengan INNER JOIN - dimana isi dari key column kedua tabel harus cocok satu sama lain baru dapat digabungkan.

Penjelasan Senja selalu lengkap seperti biasa. Aku mengintip buku catatan dari sudut mataku, tak terasa sudah sekitar tiga halaman habis oleh coretan tanganku. Malam ini harus kurapikan nih!

“Satu lagi, Aksara. Saya perhatikan kamu suka sekali mencatat, jangan kelewat soal ini: jika kamu biasa bekerja dengan Excel, proses ini hampir menyerupai penggunaan fungsi vlookup. Jadi harusnya sudah terbiasa.”

 

Menggunakan Prefix Nama Tabel

Seperti yang dijelaskan sebelumnya, jika akan menggunakan wildcard (*), dan tidak menentukan spesifik nama kolom yang akan dimunculkan di bagian SELECT, maka secara default urutan kolom dimulai dengan kolom dari tabel yang dinyatakan pertama di bagian FROM. Akan tetapi, bisa juga memanfaatkan wildcard dengan menambahkan prefix nama tabel, dimana dengan merinci prefix nama tabel ini, dimungkinkan untuk menentukan urutan kolom dari tabel mana yang muncul duluan.

Jika lupa dapat mengacu kembali ke Modul: Fundamental SQL Using SELECT Statement, Chapter: Prefix dan Alias.

 

Sebagai contoh, jika akan menggabungkan kedua tabel, dengan menyatakan tabel ms_item_warna terlebih dahulu di bagian FROM, tetapi yang ingin dimunculkan kolomnya di awal hasil adalah dari yang ms_item_kategori, maka querynya akan menjadi sebagai berikut.

Jika query yang diketikkan sesuai dengan yang ditunjukkan dan berhasil dijalankan maka akan diperoleh hasil berikut ini:

Terlihat urutan kolom yang muncul adalah dari tabel ms_item_kategori terlebih dahulu.

 

Penggabungan Tanpa Kondisi

Sesuai dugaanku. Aku kembali menemukan hal yang membingungkan. Dan, tampaknya hari ini Senja memang sudah mendedikasikan waktunya untuk mengajariku karena (beruntungnya!) Senja masih tepat di sebelahku.

“Nja, hehehe. Sorry mau ganggu lagi. Bagaimana kalau aku ingin menggabungkan tabel tanpa ada kondisi? Apakah tetap bisa memakai metode ini?”

Senja memicingkan matanya pada layar laptop yang kutunjuk sebelum menjawab. “Pertanyaan bagus. Penjelasan dan praktek yang kita lakukan pada materi sebelumnya adalah penggabungan dua tabel dengan menggunakan kondisi, yaitu terdapat data yang sama pada key kolom dari kedua tabel. Akan tetapi, memang benar, dalam beberapa case di real problem, sering kali terdapat permasalahan tertentu dimana kita ingin menggabungkan tabel tanpa ada kondisi. Proses penggabungan ini juga dapat dilakukan dengan metode koma dan tanpa menggunakan kondisi relasi antar kolom.”

Aku mencoba mencerna penjelasan Senja. Sebelum aku sempat memahami semuanya. Senja sudah mengajakku untuk melihat contoh.

“Berikut adalah contoh query dari penggabungan seperti itu.”

 

“Terlihat pada query kita hanya menyertakan nama dua tabel yang akan diambil datanya, tapi tidak ada informasi kondisi bagaimana kedua tabel tersebut berelasi satu dengan yang lainnya melalui key column. Lalu apa hasilnya?” tanya Senja retoris.

“Kamu hanya butuh untuk mengetik  query ini pada code editor dan jalankan, jika berhasil dengan baik maka akan muncul hasil dengan enam puluh empat baris data seperti berikut.”

Aku memperhatikan dengan saksama. Jangan sampai ada yang terlewat!

+-----------+----------+-------------+--------------+
| nama_item | kategori | nama_barang | warna        |
+-----------+----------+-------------+--------------+
| bayam     | sayuran  | apel        | merah        |
| belimbing | buah     | apel        | merah        |
| duku      | buah     | apel        | merah        |
| durian    | buah     | apel        | merah        |
| gandum    | buah     | apel        | merah        |
| jamur     | sayuran  | apel        | merah        |
| jambu air | buah     | apel        | merah        |
| jeruk     | buah     | apel        | merah        |
| bayam     | sayuran  | bayam       | hijau        |
| belimbing | buah     | bayam       | hijau        |
| duku      | buah     | bayam       | hijau        |
| durian    | buah     | bayam       | hijau        |
| gandum    | buah     | bayam       | hijau        |
| jamur     | sayuran  | bayam       | hijau        |
| jambu air | buah     | bayam       | hijau        |
| jeruk     | buah     | bayam       | hijau        |
| bayam     | sayuran  | daun bawang | hijau        |
| belimbing | buah     | daun bawang | hijau        |
| duku      | buah     | daun bawang | hijau        |
| durian    | buah     | daun bawang | hijau        |
| gandum    | buah     | daun bawang | hijau        |
| jamur     | sayuran  | daun bawang | hijau        |
| jambu air | buah     | daun bawang | hijau        |
| jeruk     | buah     | daun bawang | hijau        |
| bayam     | sayuran  | duku        | kuning pekat |
| belimbing | buah     | duku        | kuning pekat |
| duku      | buah     | duku        | kuning pekat |
| durian    | buah     | duku        | kuning pekat |
| gandum    | buah     | duku        | kuning pekat |
| jamur     | sayuran  | duku        | kuning pekat |
| jambu air | buah     | duku        | kuning pekat |
| jeruk     | buah     | duku        | kuning pekat |
| bayam     | sayuran  | durian      | kuning       |
| belimbing | buah     | durian      | kuning       |
| duku      | buah     | durian      | kuning       |
| durian    | buah     | durian      | kuning       |
| gandum    | buah     | durian      | kuning       |
| jamur     | sayuran  | durian      | kuning       |
| jambu air | buah     | durian      | kuning       |
| jeruk     | buah     | durian      | kuning       |
| bayam     | sayuran  | gandum      | coklat       |
| belimbing | buah     | gandum      | coklat       |
| duku      | buah     | gandum      | coklat       |
| durian    | buah     | gandum      | coklat       |
| gandum    | buah     | gandum      | coklat       |
| jamur     | sayuran  | gandum      | coklat       |
| jambu air | buah     | gandum      | coklat       |
| jeruk     | buah     | gandum      | coklat       |
| bayam     | sayuran  | jambu air   | merah        |
| belimbing | buah     | jambu air   | merah        |
| duku      | buah     | jambu air   | merah        |
| durian    | buah     | jambu air   | merah        |
| gandum    | buah     | jambu air   | merah        |
| jamur     | sayuran  | jambu air   | merah        |
| jambu air | buah     | jambu air   | merah        |
| jeruk     | buah     | jambu air   | merah        |
| bayam     | sayuran  | jeruk       | oranye       |
| belimbing | buah     | jeruk       | oranye       |
| duku      | buah     | jeruk       | oranye       |
| durian    | buah     | jeruk       | oranye       |
| gandum    | buah     | jeruk       | oranye       |
| jamur     | sayuran  | jeruk       | oranye       |
| jambu air | buah     | jeruk       | oranye       |
| jeruk     | buah     | jeruk       | oranye       |
+-----------+----------+-------------+--------------+

 

Aku menggumam mengerti. Terlihat banyak sekali hasil yang keluar, ini dikarenakan setiap baris data pada kedua tabel akan dihubungkan satu sama lain - tanpa ada hubungan.

Jumlah enam puluh empat baris data ini adalah hasil perkalian dari jumlah data dari kedua tabel, dimana masing-masing memiliki delapan baris data. Cara menggabungkan kedua tabelseperti ini disebut dengan mekanisme cross join.

 

 

Kesimpulan

Bahasa SQL diciptakan untuk sistem database relasional atau RDBMS. Dan aspek relasional inilah yang menjadi fitur paling penting dan unggul, dimana beberapa tabel dapat digabungkan menjadi satu sumber data baru.

Cara menggabungkan antar tabel disebut sebagai mekanisme join. Pada bab ini telah dicontohkan bagaimana dua tipe join, yaitu inner join dan cross join diterapkan dengan dua contoh tabel sederhana.

 

Inner join terjadi jika kedua tabel digabungkan melalui kolom kunci atau key column. Syarat penggabungan adalah dimana Isi data dari key column tabel yang satu harus dapat dicocokkan dengan isi data dari key column tabel yang lain.

Sedangkan cross join terjadi dari penggabungan tabel tanpa kondisi, dan menghasilkan seluruh penggabungan data seperti proses perkalian.

 

Untuk bab ini, inner join maupun cross join dilakukan dengan cara menggunakan operator koma dan pengkondisian where. Pada bab selanjutnya, akan terlihat penggunaan inner join dengan menggunakan keyword INNER JOINON.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

source:DQLAB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Related Posts :

Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

About

Diberdayakan oleh Blogger.

Featured

advertise here

Cari Blog Ini

Fans Page

Unordered List

Fanspage

Most Recent Post

Advertise Here

banner

Sample Text

Text Widget

Formulir Kontak

Nama

Email *

Pesan *

About Us

About Us
There are many variations of passages of Lorem Ipsum available.

Ethereum Price

Monday Tuesday Wednesday
$402.89 $384.06 $396.34

Facebook