Cara Membuat Normalisasi pada Transaksi Minimarket untuk Desain Database

Normalisasi sangat lah penting bagi sebuah perusahaan bahkan individu yang ingin menyusun datanya dengan baik dan benar.

Tujuan dari normalisasi disini sendiri adalah untuk menghindari terjadinya berbagai anomali data dan tidak konsistensinya data. normalisasi ini sangat penting untuk menunjang kinerja database dan memastikan bahwa data dalam database tersebut aman dan tidak terjadi kesalahan jika mendapat perintah SQL terutama DML yaitu update, insert, dan delete. Saya pernah menulisnya pada catatan saya sebelumnya ” https://catatankakimu.wordpress.com/2016/12/05/normalisasi-pada-sistem-basis-data-atau-database/

Pada catatan kali ini saya akan langsung memberikan contoh bagaimana caranya membuat normalisasi. Disini saya akan memberikan contoh transaksi yang ada pada sebuah minimarket.

 

Pada transaksi pertama, saya memberikan contoh nota penjualan. Nota penjualan disini adalah sebagai tanda bukti stok barang yang dipesan oleh sebuah Minimarket. Nota Penjualan biasanya berisi detail barang-barang dengan harga dan banyak nya jumlah barang yang akan dipesan oleh sebuah Minimarket.

1-nota-penjualan

 

Untuk bukti transaksi Kedua, saya memiliki contoh Faktur Tagihan. Faktur Tagihan disini berupa ringkasan dari beberapa Nota Penjualan yang dimiliki oleh Minimarket tersebut. Faktur Tagihan disini bisa berarti sebuah Minimarket bisa memesan beberapa barang atau jenis barang yang berbeda-beda dengan beberapa bagian barang yang jenisnya saling berkaitan akan dimasukan kedalam satu Nota Penjualan.

2-faktur-tagihan

 

Bukti transaksi yang ketiga adalah Kuitansi Pembayaran. Adalah bukti pembayaran yang sudah dilakukan oleh sebuah Minimarket. Kuitansi Pembayaran bisa mencakup beberapa Fakur Tagihan. Pada sebuah minimarket dalam waktu satu minggu biasanya bisa memesan beberapa barang yang nantinya akan tercatan pada Nota Penjualan dan kemudian akan masuk ke Faktur Tagihan. Untuk Pembayaran biasanya supplier memberikan waktu paling tidak satu bulan sekali untuk melunasi semua pembelian yang telah dilakukan oleh Minimarket tersebut dan jika pembayaran sudah dilakukan transaksi tersebut akan masuk dalam bentuk Kuitansi Pembayaran.

3-kuitansi-pembayaran

 

Saya telah menjabarkan tiga contoh bentuk transaksi yang ada pada sebuah minimarket. Kali ini saya akan menjabarkan bagaimanacaranya membuat normalisasi dari ketiga contoh transaksi diatas.

Untuk pertama-tama kita harus membuat yang namanya Unnormalized Form (UNF). Intinya kita tinggal mendata atau menulis detail apa aja yang ada pada setiap bukti transaksi, berikut adalah contoh nya :

UNF

Nota Penjualan

Nota = NoPjl + Tanggal + KodeJenis + NamaJenis + KodePlg + NamaPlg + AlamatPlg + KotaPlg + { KodeBrg + NamaBrg + Qty + Satuan + Harga + Jumlah } + Total + Bayar + Sisa + Kembali + Keterangan + KodePjl + NamaPjl + PICPlg

Faktur Tagihan

Faktur     = NoFak + TglFak + KodeCara + NamaCara + JatuhTempo + KodePlg + NamaPlg + AlamatPlg + KotaPlg + { Tanggal + Nomor + Total + Bayar + Sisa } + NilaiFak + Keterangan + KodePjl + NamaPjl + PICPlg

Kuitansi Pembayaran

Kuitansi   = NoKui + TglKui + KodeCara + NamaCara + JatuhTempo + KodePlg + NamaPlg + AlamatPlg + KotaPlg + { TglFak + NoFak + NilaiFak + NilBayar + NilSisa } + TotNilaiFak + TotNilBayar + TotNilSisa + Keterangan + KodePjl + NamaPjl + PICPlg

 

Langkah kedua kita harus membuat First Normal Form (1NF), yaitu dengan memberikan tanda pada nomor dan kode pada setiap bukti transaksi yang nanti nya akan digunakan untuk Primary Key pada Database :

1NF

Nota Penjualan

Nota = NoPjl + Tanggal + KodeJenis + NamaJenis + KodePlg + NamaPlg + AlamatPlg + KotaPlg + KodeBrg + NamaBrg + Qty + Satuan + Harga + Jumlah + Total + Bayar + Sisa + Kembali + Keterangan + KodePjl + NamaPjl + PICPlg

Faktur Tagihan

Faktur     = NoFak + TglFak + KodeCara + NamaCara + JatuhTempo + KodePlg + NamaPlg + AlamatPlg + KotaPlg + Tanggal + Nomor + Total + Bayar + Sisa + NilaiFak + Keterangan + KodePjl + NamaPjl + PICPlg

Kuitansi Pembayaran

Kuitansi   = NoKui + TglKui + KodeCara + NamaCara + JatuhTempo + KodePlg + NamaPlg + AlamatPlg + KotaPlg + TglFak + NoFak + NilaiFak + NilBayar + NilSisa + TotNilaiFak + TotNilBayar + TotNilSisa + Keterangan + KodePjl + NamaPjl + PICPlg

 

Langkah ketiga membuat Second Normal Form (2NF), disini kita memisahkan antara Detail transaksi dengan Header atau Keterangan Transaksi.

2NF

Nota Penjualan

NotaH = NoPjl + Tanggal + KodeJenis + NamaJenis + KodePlg + NamaPlg + AlamatPlg + KotaPlg + Total + Bayar + Sisa + Kembali + Keterangan + KodePjl + NamaPjl + PICPlg

NotaD = NoPjl + KodeBrg + NamaBrg + Qty + Satuan + Harga + Jumlah

Faktur Tagihan

FakturH    = NoFak + TglFak + KodeCara + NamaCara + JatuhTempo + KodePlg + NamaPlg + AlamatPlg + KotaPlg + NilaiFak + Keterangan + KodePjl + NamaPjl + PICPlg

FakturD    = NoFak + Tanggal + Nomor + Total + Bayar + Sisa

Kuitansi Pembayaran

KuitansiH  = NoKui + TglKui + KodeCara + NamaCara + JatuhTempo + KodePlg + NamaPlg + AlamatPlg + KotaPlg + TotNilaiFak + TotNilBayar + TotNilSisa + Keterangan + KodePjl + NamaPjl + PICPlg

KuitansiD  = NoKui + TglFak + NoFak + NilaiFak + NilBayar + NilSisa

 

Langkah terakhir Third Normal Form (3NF), adalah memisahkan semua detail transaksi dengan detail kode masing-masing yang ada pada setiap transaksi tersebut sebagai primary key nya.

3NF

Nota Penjualan

NotaH      = NoPjl + Tanggal + KodeJenis + KodePlg + Total + Bayar + Sisa + Kembali + Keterangan + KodePjl

NotaD      = NoPjl + KodeBrg + Qty + Jumlah

Pelanggan  = KodePlg + NamaPlg + AlamatPlg + KotaPlg + PICPlg

JenisJual  = KodeJenis + NamaJenis

Penjual    = KodePjl + NamaPjl

Barang     = KodeBrg + NamaBrg + Satuan + Harga

Faktur Tagihan

FakturH    = NoFak + TglFak + KodeCara + JatuhTempo + KodePlg + NilaiFak + Keterangan + KodePjl

FakturD    = NoFak + NoPjl + Sisa

MsCara     = KodeCara + NamaCara

Pelanggan  = KodePlg + NamaPlg + AlamatPlg + KotaPlg + PICPlg

Penjual    = KodePjl + NamaPjl

NotaH      = NoPjl + Tanggal + Total + Bayar

Kuitansi Pembayaran

KuitansiH  = NoKui + TglKui + KodeCara + JatuhTempo + KodePlg + TotNilaiFak + TotNilBayar + TotNilSisa + Keterangan + KodePjl

KuitansiD  = NoKui + NoFak + NilSisa

MsCara     = KodeCara + NamaCara

Pelanggan  = KodePlg + NamaPlg + AlamatPlg + KotaPlg + PICPlg

Penjual    = KodePjl + NamaPjl

FakturH    = NoFak + TglFak + NilaiFak + NilBayar

 

Selesai ….

Memang agak rumit ya teman-teman sekalian. Coba dipahami secara perlahan saja, jika memang ada yang kurang mengerti bisa ditanyakan atau menulis komentar yang telah di sediakan.

Bentuk normalisasi diatas adalah hanya sebagai contoh. Kebutuhan disetiap perusahaan masing-masing sangatlah berbeda. So, jangan disamakan percis seperti diatas.

Tinggalkan komentar