Normalisasi
Oleh : Agus Mulyanto, S.Kom, M.T., M.Sc.
2
NORMALISASI
Normalisasi merupakan pemilah-milahan satu table yang besar dan kompleks menjadi beberapa table, dimanatabel yang dipilah tersebut saling berhubungan satu dengan yang lainnya Alasan mengapa perlu dilakukan normaisasi terhadap tabel: Mengurangi redundansi data Membuat field yang bukan key bergantung fungsi
sepenuhnya pada primary key-nya Agar kesulitan dalam proses penyisipan/ penambahan,
pengupdate-an danpenghapusan data tidak sulit dilakukan
Bentuk-bentuk normalisasi
Bentuk tidak normal
Bentuk normal pertama
Bentuk normal kedua
Bentuk normal ketiga
Dan seterusnya sampai dengan normal yang ke N
Bentuk-bentuk normalisasi (1)
Bentuk tidak normal, pada bentuk ini biasanya data yang direkam tidak megikuti suatu format yang tertentu, bisa saja data terduplikasi atau data tidak lengkap
Bentuk Normal Pertama,pada bentuk ini data dibuat dalam table 2 dimensi dan tidak ada attribut yang bernilai ganda atau berulang ulang
Bentuk-bentuk normalisasi (2)
Bentuk Normal Kedua,untuk membentuk normal kedua, table harus sudah dalam bentuk normal pertama. Kemudian periksa apakah masih terjadi kesulitan dalam hal penambahan, penghapusan dan update data.
Periksa apakah masih ada attribut yang bukan key masih bergantung fungsi terhadap attribut yang bukan merpakan key nya.
Penerapan Bentuk Normalisasi
Perancangan database dengan model konseptual ini bisa dirancang dengan menggunakan dokumen dasar dari system yang dipakai. Sebagai contoh dari sebuah bon faktur pembelian barang berikut ini:
Penerapan Bentuk Normalisasi
Langkah pertama yang dilakukan yakni membentuk informasi diatas kedalam bentuk tabel transaksi
Dari contoh faktur-faktur yang ada kemudian dimasukkan dalam tabel tersebut, sehingga diperoleh bentuk tabel sebagi berikut :
Penerapan Bentuk Normalisasi (1)
Tabel berikut adalah bentuk tidak normal yang diperoleh dari faktur yang ada
Nofac kdsup nmsup kdbrg nmbrg tglfac tgljtp qty harga jumllah total
779 S01 Hitachi R02 RCook 02/02/03
02/03/03
10 150000 1500000 1500000
998 G01 Gobel
A01 AC½PK07/02/0
309/03/0
3
10 1350000 13500000 33500000
A02 AC1PK 10 2000.000
20.000.000
Langkah selanjutnya adalah menjadikan bentuk tidak normal kedalam bentuk normal yang pertama.
Yaitu dengan melengkapi kekosongan data untuk kolom/field yang ada. Sehingga diperoleh tabel sebagai berikut:
Penerapan Bentuk Normalisasi (2)
Penerapan Bentuk Normalisasi (3)
Nofac kdsup nmsup kdbrg nmbrg tglfac tgljtp qty harga jumllah total
779 S01 Hitachi R02 RCook 02/02/03 02/03/03 10 150000 1500000 1500000
998 G01 Gobel A01 AC½PK 07/02/03 09/03/03 10 1350000 13500000 33500000
998 G01 Gobel A02 AC1PK 07/02/03 09/03/03 10 2000.000
20.000.000
33500000Dari tabel diatas dapat dilihat :Dari tabel diatas dapat dilihat :
Terjadi redundansi dataTerjadi redundansi data Jika dilakukan penghapusan satu record Jika dilakukan penghapusan satu record
berdasarkan kriteria tertentu akan berdasarkan kriteria tertentu akan mengakibatkan terhapusnya record lainmengakibatkan terhapusnya record lain
Penambahan data susah dilakukan jika tidak terjadi transaksi. Misalnya penambahan sebuah data suplier, namun suplier tersebut belum pernah melakukan transakasi
Dari penjelasan diatas dapat disimpulkan bahwa tabel tidak normal dan harus dilakukan normal yang kedua
Penerapan Bentuk Normalisasi (4)
Untuk mendapatkan bentuk normal kedua, maka table harus sudah dalam bentuk normal pertama. Dan dalam hal ini harus sudah ditentukan mana saja field yang menjadi kunci calon (kandidat key).
Dari Sebagai kandidat key dari table diperoleh sebanyak 3 kandidat key :
no factur
kode supplier
kode barang
Penerapan Bentuk Normalisasi (5)
Dari ketiga kunci kandidat dapat dibentuk table yang mana field yang bukan key harus bergantung fungsi terhadap field yang merupakan key nya.
Penerapan Bentuk Normalisasi (6)
Penerapan Bentuk Normalisasi (7)
Penerapan Bentuk Normalisasi (8)
Penerapan Bentuk Normalisasi (9)
Dari hasil normal kedua dapat dilihat bahwa tidak tejadi lagi kesulitan dalam hal penyisipan, penghapusan dan update. Hal ini dapat dilihat untuk menyisipkan satu supplier baru dapat dilakukan tanpa supplier tersebut harus melakukan transaksi pada table nota. Demikian juga untuk penghapusan dan penyisipan.
Penerapan Bentuk Normalisasi (10)
Tetapi dari table masih terlihat adanya permasalahan yaitu bahwa dalam table nota masih ada field yang bergantung fungsi kepada field yang bukan key nya, yaitu :
Field quantity tidak bergantung penuh pada key no factur.
Masih terdapat redundansi data yaitu : setiap satu no factur yang tediri dari 5 jenis barang, maka 5 kali pula dituliskan no facturnya, tanggal factur, tanggal jatuh tempo dan total.
Penerapan Bentuk Normalisasi (11)
Karena tabel belum normal maka harus dilanjutkan dengan melakukan normalisasi tabel yang ketiga
Untuk membentuk normal ketiga, table harus sudah dalam bentuk normal kedua. Dan semua filed yang bukan keynya harus bergantung fungsi sepenuhnya pada field yang merupakan key nya
Sehingga hasil dari normal ketiga diperoleh table berikut:
Penerapan Bentuk Normalisasi (12)
Penerapan Bentuk Normalisasi (13)
Dari hasil normal ketiga ini dapat dilihat bahwa tidak ada terjadi kesulitan peyisipan, penghapusan dan update. Dan juga terlihat bahwa setiap field yang bukan key sudah bergantung fungsi sepenuhnya terhadap field yang merupakan key nya. Redundansi yang terjadi pada tahap normal kedua sudah dapat di optimalkan.
Penerapan Bentuk Normalisasi (14)
Penerapan Bentuk Normalisasi (15)
Dari hasil rancangan di atas kemudian kita dapat menentukan /mendisain struktur dari setiap tabel hasil rancangan kita, sebagai berikut:
Field Name Type Size Description
KDSUP TEXT 3 Kode Suplier
NMSUP TEXT 15 Nama Suplier
ALMT TEXT 20 Alamat Suplier
TELP TEXT 12 Nomor Telepon Suplier
Struktur Tabel Suplier
Field Name Type Size Description
KDBRG TEXT 3 Kode Barang
NMBRG TEXT 15 Nama Barang
JENIS TEXT 15 Jenis Barang
Struktur Tabel Barang
Penerapan Bentuk Normalisasi (16)
Field Name Type Size Description
NOFAC TEXT 3 Nomor Faktur Pembelian
TGLFAC DATE - Tanggal Faktur Pembelian
TGLJT DATE - Tanggal Jatuh Tempo
KDSUP TEXT 3 Kode Suplier
Struktur Tabel Transaksi
Penerapan Bentuk Normalisasi (17)
Penerapan Bentuk Normalisasi (18)
Field Name Type Size Description
NOFAC TEXT 3 Nomoer Faktur Pembelian
KDBRG TEXT 3 Kode Barang
QTY NUMBER - Banyak Barang Yg Dibeli
HARGA NUMBER - Harga Pembelian Barang
Struktur Tabel Detail Transaksi