Anda di halaman 1dari 12

BAB VII

Normalisasi
(Pertemuan – 10)

Capaian Pembelajaran
• Mahasiswa Mampu melakukan normalisasi pada tabel

7.1 Deskripsi Normalisasi


Normalisasi adalah suatu proses formal untuk menentukaan atribut-atribut yang
seharusnya dikelompokkan secara bersama-sama dalam suatu relasi. Bentuk normal adalah
suatu aturan yang dikenakan pada relasi-relasi dalam basis data dan harus dipenuhi oleh relasi-
relasi tersebut pada langkah-langkah normalisasi. Alasan utama diperlukannya normalisasi
karena Permasalahan Redundansi. Redundansi adalah Perulangan yang berlebihan.
Redundansi menyebabkan :
– Pemborosan ruang penyimpanan
– Anomali pada saat insert (simpan), Update (edit/pembaharuan), Delete (hapus)
– Bisa menyebabkan inkonsistensi
Contoh Redundansi: NIM, Nama, Alamat yang sama ditulis berulang-ulang

Gambar 7.1 Contoh Anomali Tabel


Jenis-Jenis Anomali
1. Anomali Insert (Penyisipan)
Keadaan yang tidak diingini atau munculnya masalah saat akan menyisipkan data baru ke
dalam relasi dengan struktur yang tidak lengkap
Data baru bernama Rudi tetapi hobby belum tercatat…?
2. Anomali Update (Pembaharuan)
Keadaan di mana apabila satu nilai atribut perlu diperbaharui, jika lebih daripada satu data
yang terlibat yang disebabkan adanya pengulangan data maka apabila tidak semua data
diperbaharui akan menimbulkan inkonsistensi data.
- Andi berpindah alamat…?
3. Anomali Delete (Penghapusan)
Keadaan di mana apabila satu data dihapuskan pada suatu relasi, terjadi kehilangan data lain
yang masih diperlukan
Data hobby bersepeda dihilangkan Data Antok ikut hilang
Penyebab Redundansi
– Perulangan fakta yang sama
– Adanya atribut turunan
• Umur (diperoleh dari tgl lahir)
• Subtotal (diperoleh dari Qty x Harga)
Solusi Redundansi
– Penghilangan data turunan
– Dekomposisi: pemecahan sebuah relasi menjadi 2 atau lebih relasi
• Lossy decomposition/lossy-join decomposition (kehilangan informasi ketika relasi
dipecah menjadi relasi-relasi lain)
• Lossless-join decomposition (tidak ada informasi yang hilang ketika relasi dipecah
menjadi relasi-relasi lain)

7.2 Proses Normalisasi


Penormalan adalah proses menguraikan relasi-relasi yang bermasalah mengikut aturan
atau ciri-ciri tertentu. Penormalan dilaksanakan langkah demi langkah, yaitu dari satu bentuk
normal ke satu bentuk normal yang lebih tinggi. Setiap bentuk normal mempunyai syarat-syarat
kelayakan tertentu yang mesti dipenuhi sebelum relasi tersebut diuji untuk bentuk normal yang
lebih tinggi. Ada 6 tingkat bentuk Normal yaitu :
– Bentuk Normal pertama (1NF)
– Bentuk Normal Kedua (2NF)
– Bentuk Normal Ketiga (3NF)
– Bentuk Normal Boyce-Codd (BCNF)
– Bentuk Normal Keempat (4NF)
– Bentuk Normal Kelima (5NF)
Untuk relasi sederhana biasanya sudah dalam kondisi yang baik pada 2NF atau 3NF

Gambar 10. 3 Visualisasi Langkah Normalisasi

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.

b. Kebergantungan fungsi (functional dependency)


Kebergantungan fungsi merupakan suatu hal yang harus diperhatikan dalam
perancangan database yang baik. Diharapkan bahwa setiap attribut yang bukan key
bergantung fugsi sepenuhnya pada attribut yang merupakan key nya. Jika dalam proses
normalisasi table masih dijumpai attribut yang bukan key bergantung fungsi kepada
attribut yang bukan merupakan keynya, maka harus dilakukan normalisasi kembali.
Pada file pegawai dapat dilihat bahwa nama, tpt_lhr, tgl_lhr, alamat bergantung
fungsi sepenuhnya pada no_induk. “artinya dengan mengetahui no_induk seorang
pegawai sudah dapat dipastikan nama, tpt_lhr, tgl_lahir dari seorang pegwai”.
Notasi penulisan kebergantungan fungsi ditulis sbb:
A→B
Artinya bahwa A secara fungsional menentukan B, atau B secara fungsional
tergantung pada A.

Nim Nm_MK Nm_Mhs Nilai


00310001 Sistem Basisdata Tony A Record 1
00310004 Sistem Basisdata Butet B Record 2
00310001 Komunikasi Data Tony Record 3
00310002 Komunikasi Data Jack Record 4
00310004 Komunikasi Data Butet Record 5
00310001 Sistem Operasi Tony B Record 6
00310002 Visual Basic Jack C Record 7
Nim → nm_mhs, artinya attribut nm_mhs hanya bergantung pada nim. Hal ini bisa
dilihat jika nim nya sama pasti nm_mhs nya juga sama.
Nm_mk + nim → nilai, artinya attribut nilai bergantung sepenuhnya terhadap nama
mata kuliah dan nim atau dengan kata lain bahwa setiap mata kuliah dan nim tertentu
pasti nilainya dapat ditentukan.
Nim -/→ nm_mk, artinya attribut nm_mk tidak bergantung pada nim. Hal ini dapat
dibuktikan bahwa pada rec. 1 dan rec. 2 nilai dari nm_mk nya sama tapi nim nya
berbeda.

8.2 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.
2. Bentuk Normal Pertama, pada bentuk ini data dibuat dalam table 2 dimensi dan tidak
ada attribut yang berniali ganda atau berulang ulang.
Contoh:
Nim nm_siswa wali kelas1 kelas2 kelas3
003101 januar sony mi0101 mi0102
003102 butet juni mi0101 mi0104 mi0107

maka bentuk normal pertama dari table diatas adalah :

Nim nm_siswa wali kelas


003101 januar sony mi0101
003101 januar sony mi0102
003102 butet juni mi0101
003102 butet juni mi0104
003102 butet juni mi0107

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

Nim nm_mhs wali


003101 januar sony
003102 butet juni
Tabel transaksikelas Tabel kelas

Nim kelas kelas


003101 mi0101 mi0101
003101 mi0102 mi0102
003102 mi0101 mi0104
003102 mi0104 mi0107
003102 mi0107 mi0108

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.

8.3 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:
Faktur Pembelian Barang
PT. CAKARA PERSADA
Jl. Beringin Jaya 21
Medan
Kode Supplier : G01 Tanggal : 07/02/03
Nama Supplier : Gobel Nusantara Nomor : 998

Kode Nama Barang Quantity Harga Jumlah


A01 AC SPLIT ½ PK 10 1.350.000 13.500.000
A02 AC SPLIT 1 PK 10 2.000.000 20.000.000
TOTAL FAKTUR 33.500.000
Jatuh Tempo Faktur :09/03/03

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

Bentuk Normal Pertama


Bentuk normal pertama diperoleh dari bentuk tidak normal, yang dilakukan dengan cara
melengkapi perulangan pengisian data pada table. Sehingga diperoleh sentuk table menjadi
sbb:

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.

Disini dilihat terjadi kesulitan-kesulitan itu yakni:


- kesulitan dalam hal penyisipan, dimana kita tidak bisa menambahkan supplier baru jika
tidak dilakukan pembelian dari supplier tersebut.
- Kesulitan dalam hal penghapusan, dimana kita tidak bisa melakukan penghapusan
bedasarkan salah satu field. Sebagai contoh jika dilakukan penghapusan berdasarkan no fac
779 maka akan menghapus supplier Hitachi dari database.
- Kesulitan dalam hal update, dimana jika dilakukan perubahan alamat terhadap satu
supplier, harus merubah diseluruh record yang terdapat nama supplier tersebut.

Bentuk Normal Kedua


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 (key).

Sebagai kandidat key dari table diperoleh sebanyak 3 kandidat key :


- no factur
- kode supplier
- kode barang
dari ketiga kunci kandidat dapaat dibentuk table yang mana field yang bukan key harus
bergantung fungsi terhadap field yang merupakan key nya.

Table Supplier Table Barang


Kode supplier Kode barang
Nama supplier Nama barang

Table Nota
No factur
Tanggal factur
Tgl jatu tempo
Quantity
Keterangan:
Harga
Jumlah - key field
Total
Kode supplier = foreign key
Kode barang

Gambar 8.1 Relasional Database Normal Kedua


Tabel Supplier Tabel Barang
Kd_supp Nm_supp Kd_brg Nm_brg
G01 Gobel R02 RCOOK
S01 Hitachi A01 AC1/2PK
A02 AC1PK

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

Gambar 8.2. Tabel Normal Ke Dua

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.

Dari permasalahan diatas maka table nota harus di normalkan kembali.

Bentuk normal 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:
Table Supplier Tabel Barang

Kode supplier Kode barang


Nama supplier Table Nota Nama barang

No factur
Tanggal factur
Tgl jatu tempo
Total
Kode supplier

Table Detail Transaksi

No factur
Kode barang
Table Transaksi
Quantity
Harga
jumlah

Gambar 8.3 Relasional Database Normal Ketiga


Keterangan:
- Field garis bawah satu merupakan kunci primer
- Field garis bawah dua merupakan kunci tamu

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

Table Detail transaksi


No_fac Kd_brg Qty Harga Jumlah
779 R02 10 150.000 1.500.000
998 A01 10 1.350.000 13.500.000
998 A02 10 2.000.000 20.000.000

Gambar 8.4 Tabel Normal Ke Tiga

Latihan / Tugas

Lakukan normalisasi dari dokumen berikut :

Anda mungkin juga menyukai