Normalisasi
(Pertemuan – 10)
Capaian Pembelajaran
• Mahasiswa Mampu melakukan normalisasi pada tabel
Latihan / Tugas
Lakukan normalisasi di tahap awal untuk mengurangi redundansi pada tabel berikut :
BAB VIII
Normalisasi Lanjutan
(Pertemuan – 10)
Capaian Pembelajaran
• Mahasiswa Mampu melakukan normalisasi pada tabel
8.1 Pengantar
Ada beberapa istilah yang harus dipahami terlebih dahulu sebelum membahas jauh tentang
normalisasi, antara lain:
- Field Key
- Kebergantungan fungsi.
a. Field key (field kunci)
• Candidate key (kunci kandidat): adalah satu attribut atau set attribut yang
mengidentifikasikan secara unik suatu kejadian spesifik dari entity.
Jika satu kunci kandidat terdapat lebih dari satu attribut, maka biasanya disebut
sebagai composite key (kunci campuran).
Contoh :
File pegawai berisikan attribut : no_induk, no_ktp, nama, tpt_lahir, tgl_lahir, alamat,
kota.
Candidate key disini yaitu :
– No_induk, no_ktp : karena unik dan tidak mungkin ganda.
– Nama : dapat juga dijadikan key tetapi masih ada kemungkinan namaya sama.
– Nama+tgl_lahir : ada kemungkinan bisa dijadikan key
– Nama+tpt_lahir+tgl_lahir : bisa dijadikan sebagai key
• Primary key (kunci primer) : adalah satu attribut atau satu set minimal attribut yang
tidak hanya mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat
mewakili setiap kejadian dari suatu entity.
Contoh :
No_induk dan no_ktp : dapat dijadikan sebagai primary key karena unik dan dapat
mewakili satu entity pegawai.
• Alternate key (kunci alternatif) : merupakan kunci kandidat yang tidak dipakai
sebagai kunci akses tetapi dipakai sebagai kunci pengurutan. Contoh: Nama
• Foreign key (kunci tamu) : merupakan satu kunci (primary key) yang mewakili
hubungan terhadap entity yang dituju.
Contoh : file gaji dengan attribut sbb: no_induk, no_bukti, tgl, gjktr, ptg, gjbrs.
– No_induk : merupakan kunci tamu yang menghubungkan file pegawai dengan
file gaji.
– No_bukti : merupakan kunci primer karena unik dan dapat mewakili entity.
– No_induk+no_bukti : dapat dijadikan sebagai kunci kandidat dan kunci
alternatif.
3. 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, dan juga periksa apakah masih ada attribut
yang bukan key masih bergantung fungsi terhadap attribut yang bukan key nya.
Jika masih terdapat kesulitan dan ada attribut yang bukan key masih bergantung fungsi
terhadap key yang bukan key nya, maka harus dilakukan normalisasi data.
Untuk melakukan normalisasi kedua harus sudah ditentukan key field nya.
Dari contoh table sebelumnya bahwa nm_siswa dan wali, bergantung fungsi pada nim.
Tapi kelas bukan merupakan fungsi dari table mahasiswa. Dengan demikian maka table
dinormalisasi kembali. Sehingga menjadi dua table sebagai berikut:
Tabel mahasiswa
4. Bentuk Normal Ketiga,untuk membentuk normal ketiga, maka tabel harus sudah dalam
bentuk normal kedua, dan semua attribut bukan key harus bergantung penuh pada
attribut yang merupakan key nya.
Penyelesaian :
Bentuk Tidak Normal
No.fac kdsup nmsup kode nmbrg taglfac tgljtp qty harga jumllah total
779 S01 Hitachi R02 RCook 02/02/03 10/02/03 10 150000 1500000 1500000
A01 AC½PK 10 1350000 13500000
998 G01 Gobel 07/02/03 09/03/03 33500000
A02 AC1PK 10 2000000 20000000
Nofac kdsup nmsup kdbrg nmbrg tglfac tgljtp qty harga jumllah total
779 S01 Hitachi R02 RCook 02/02/03 10/02/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 33500000
Jika table normal pertama dijadikan sebagai database maka perlu diperiksa apakah terjadi
kesulitan dalam hal penyisipan, penghapusan ataupun peng update.
Table Nota
No factur
Tanggal factur
Tgl jatu tempo
Quantity
Keterangan:
Harga
Jumlah - key field
Total
Kode supplier = foreign key
Kode barang
Tabel Nota
Nofac Tglfac Tgljtp Qty Harga Jumlah Total Kdsup Kdbrg
779 02/02/03 10/09/03 10 150.000 1.500.000 1.500.000 S01 R02
998 07/02/03 09/03/03 10 1.000.000 10.000.000 33.500.000 G01 A01
998 07/02/03 09/03/03 10 2.000.000 20.000.000 33.500.000 G01 A02
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.
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.
No factur
Tanggal factur
Tgl jatu tempo
Total
Kode supplier
No factur
Kode barang
Table Transaksi
Quantity
Harga
jumlah
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. Dan redundansi yang
terjadi pada tahap normal kedua sudah dapat di optimalkan.
Table Supplier Tabel Barang
Kd_supp Nm_supp Kd_brg Nm_brg
G01 Gobel R02 RCOOK
S01 Hitachi A01 AC1/2PK
A02 AC1PK
Table Nota
No_fac KD_supp Tgl_fac Tgl_jttempo Total
779 S01 02/02/03 10/02/03 1500000
998 G01 07/02/03 09/03/03 33500000
Latihan / Tugas