::: BELAJAR SQL (LANJUT) 3 :::

Kadangkala kita dihadapkan pada redudansi data (data rangkap) dimana terdapat data-data yang sama yang membuat suatu tabel menjadi tidak efektif dan efisien. Contohnya terlihat dalam tabel dibawah ini:

ID Nama Alamat Tgl_beli Barang Harga
003 Fitri Mugas 010902 Buku 20000
002 Lutfi Mataram 020902 Tas 80000
001 Evi Bukitsari 020902 Buku 20000
004 Agung Kalideres 030902 Pulpen 10000
001 Evi Bukitsari 030902 Majalah 20000
002 Lutfi Mataram 040902 Pulpen 10000
001 Evi Bukitsari 050902 Buku 20000
005 Asri Kauman 050902 Buku 20000
003 Fitri Mugas 050902 Tas 80000

Melihat tabel diatas memang memusingkan. Anda harus menginput Nama dan Alamat setiap terjadi transaksi. Untuk lebih memudahkan, tabel diatas dapat kita bagi menjadi dua tabel yakni tabel Pelanggan dan tabel Transaksi. Prosesnya sering disebut sebagai normalisasi.

Pelanggan

ID Nama Alamat
001 Evi Bukitsari
002 Lutfi Mataram
003 Fitri Mugas
004 Agung Kalideres
005 Asri Kauman

Transaksi

ID Tgl_beli Barang Harga
003 010902 Buku 20000
002 020902 Tas 80000
001 020902 Buku 20000
004 030902 Pulpen 10000
001 030902 Majalah 20000
002 040902 Pulpen 10000
001 050902 Buku 20000
005 050902 Buku 20000
003 050902 Tas 80000

Dengan begitu, maka tiap terjadi transaksi baru, kita cukup menginput data baru di tabel Transaksi saja dan kita tidak perlu menuliskan Nama maupun Alamat karena telah disimpan pada tabel Pelanggan. Perhatikan! tabel Pelanggan dan Transaksi memiliki penghubung (primary key) yang sama yaitu ID. 

Untuk menggabungkan kembali tabel Pelanggan dan tabel Transaksi seperti semula kita gunakan perintah ini :

SELECT Pelanggan.ID,Pelanggan.Nama,Pelanggan.Alamat,
Transaksi.Tgl_beli,Transaksi.Barang,Transaksi.Harga
FROM Pelanggan,Transaksi
WHERE Pelanggan.ID=Transaksi.ID;

Bila kita ingin mengurutkan tabel berdasarkan tanggal belinya maka perintahnya menjadi:

SELECT Pelanggan.ID,Pelanggan.Nama,Pelanggan.Alamat,
Transaksi.Tgl_beli,Transaksi.Barang,Transaksi.Harga
FROM Pelanggan,Transaksi
WHERE Pelanggan.ID=Transaksi.ID;

 

Nah, selesai sudah kursus tutorial SQL tahap lanjut ini. Secara garis besar, anda telah menguasai teknik-teknik SQL namun belum cukup sampai disini. Anda harus mempelajari teknik-teknik lainnya agar anda dapat lebih mahir dalam memecahkan masalah pada SQL. Anda dapat mempelajari teknik lainnya di situs lain atau artikel saya yang lain.

 

Created at Sep 6 2002