Anda di halaman 1dari 1

Data Transaksi Laundry Kiloan "KUSAMKUSUT"

id_transaksi no_pelanggan nama_pelanggan alamat_kos jenis komposisi tanggal_masuk tanggal_selesai layanan status_ambil tanggal_ambil nama_pengambil nominal_bayar
TR001 P001 Haidar Gang Jeruk baju baju 3kg 1-Apr-20 2-Apr-20 Cuci, Setrika sudah 2-Apr-20 Haidar 20,000
TR002 P002 Jacky Gang Jeruk baju, selimut baju 1kg, selimut 3kg 1-Apr-20 1-Apr-20 Cuci, Setrika, Express
sudah 1-Apr-20 Temannya Jacky 25,000
TR003 P001 Haidar Gang Jeruk boneka, jeans boneka 2kg, jeans 3kg 4-Apr-20 6-Apr-20 Cuci, Setrika, SuperClean
sudah 6-Apr-20 Haidar 50,000
TR004 P003 Komar Gang Mangga baju baju 5kg 5-Apr-20 6-Apr-20 Cuci belum - - 35,000

Asumsi:
Tidak usah dianggap serius, sy gak begitu paham juga masalah laundry, jadi klo aneh jangan heran ya
Layanan adalah fasilitas yang ditawarkan oleh laundry
Komposisi dihitung pake KG smua
Laundry bisa diambilkan temannya

1NF yang melanggar adalah kolom komposisi, jenis, layanan


untuk kolom tersebut bs saja kita susun seperti kasus minggu lalu, dg menambah jumlah record...tapi ini ada 3 kolom, so akan sangat merepotkan. Jadi solusinya kita akan pecah ke tabel lain

transaksi id_transaksi no_pelanggan nama_pelanggan alamat_kos tanggal_masuktanggal_selesai status_ambil tanggal_ambil nama_pengambil nominal_bayar
TR001 P001 Haidar Gang Jeruk 1-Apr-20 2-Apr-20 sudah 2-Apr-20 Haidar 20,000
TR002 P002 Jacky Gang Jeruk 1-Apr-20 1-Apr-20 sudah 1-Apr-20 Temannya Jacky 25,000
TR003 P001 Haidar Gang Jeruk 4-Apr-20 6-Apr-20 sudah 6-Apr-20 Haidar 50,000
TR004 P003 Komar Gang Mangga 5-Apr-20 6-Apr-20 belum - - 35,000

cucian id_transaksi jenis berat


TR001 baju 3
TR002 baju 1
TR002 selimut 3
TR003 boneka 2
TR003 jeans 3
TR004 baju 5

kolom komposisi sy ubah ke kolom berat, walaupun bisa juga masih pakai 'komposisi' tapi nulisnya ribet

layanan id_transaksi layanan


TR001 Cuci
TR001 Setrika
TR002 Cuci
TR002 Setrika
TR002 Express
TR003 Cuci
TR003 Setrika
TR003 SuperClean
TR004 Cuci

2NF Untuk tabel cucian dan layanan sudah oke, bahkan dg syarat 3NF pun sudah memenuhi.
kita hanya perlu memproses tabel transaksi
Syarat 2NF adalah tidak ada kolom non key yang bergantung ke hanya sebagian dari PK
Tentu tidak ada kolom tsb, PK hanya satu, dan semua kolom bergantung penuh, silakan bisa dicek satu2. Dg kita tau id_transaksi, sudah pasti kita tahu setiap kolom yg lain.
Jadi, ketiga tabel sudah memenuhi 2NF

3NF Syaratnya tidak boleh ada kolom yang bergantung fungsional transitif, cirinya bergantung pada NON-KEY
Contohnya:
nama pelanggan bergantung pada no_pelanggan
alamat kos bergantung pada no_pelanggan

Dua kolom itu bs dipisah ke tabel yg berbeda, diikuti no pelanggan

no_pelanggan nama_pelanggan alamat_kos id_transaksi no_pelanggan tanggal_masuk tanggal_selesai status_ambil tanggal_ambil nama_pengambil nominal_bayar
P001 Haidar Gang Jeruk TR001 P001 1-Apr-20 2-Apr-20 sudah 2-Apr-20 Haidar 20,000
P002 Jacky Gang Jeruk TR002 P002 1-Apr-20 1-Apr-20 sudah 1-Apr-20 Temannya Jacky 25,000
P003 Komar Gang Mangga TR003 P001 4-Apr-20 6-Apr-20 sudah 6-Apr-20 Haidar 50,000
TR004 P003 5-Apr-20 6-Apr-20 belum - - 35,000

Ada mahasiswa yang tanya..bisakah kolom yang kosong (tanggal_ambil) bisa diatasi?
Agar tidak kosong? Bisa saja...itu di tingkatan normal berikutnya, kita tidak perlu sampai kesana, tapi untuk sekedar informasi, kita bs kembangkan tabel transaksi menjadi dua tabel

TAMBAHAN SAJA

id_transaksi no_pelanggan tanggal_masuk tanggal_selesai nominal_bayar tabel transaksi


TR001 P001 1-Apr-20 2-Apr-20 20,000
TR002 P002 1-Apr-20 1-Apr-20 25,000
TR003 P001 4-Apr-20 6-Apr-20 50,000
TR004 P003 5-Apr-20 6-Apr-20 35,000

id_transaksi status_ambil tanggal_ambil nama_pengambil tabel pengambilan


TR001 sudah 2-Apr-20 Haidar
TR002 sudah 1-Apr-20 Temannya Jacky kita bs nantinya dengan SQL, mengetahui mana transaksi yang blm kembali dg mengecek tabel pengambilan ini
TR003 sudah 6-Apr-20 Haidar dengan begini, tidak ada kolom yang kosong. Tapi, secara programming, bentuk ini lebih kompleks untuk pembuatan programnya.

Anda mungkin juga menyukai