Normalisasi dan Contoh Kasus Normaliasi
Normalisasi
adalah suatu proses untuk mengubah suatu tabel yang
memiliki masalah tertentu ke dalam dua buah tabel atau lebih, yang
tidak lagi memiliki masalah tersebut (Abdul Kadir, 2002: 52). Masalah tersebut
biasanya merupakan suatu ketidakkonsistenan (tidak normal) apabila dilakukan
penghapusan (delete), pengubahan (update) dan pembacaan (retrieve)
pada suatu basis data.
Bentuk
normalisasi adalah suatu aturan yang dikenakan pada tabel-tabel dalam basis
data dan harus dipenuhi oleh tabel-tabel tersebut pada level-level
normalisasi. Ada macam-macam bentuk
normalisasi, diantaranya adalah bentuk tidak normal, bentuk normal pertama,
bentuk normal kedua dan bentuk normal ketiga.
Aturan-aturan dalam masing-masing bentuk
normalisasi tersebut adalah sebagai berikut (Abdul Kadir, 2002: 54) :
a. Bentuk tidak normal
Bentuk
ini merupakan kumpulan data yang akan disimpan, tidak ada keharusan mengikuti
suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi dan data
dikumpulkan apa adanya.
b. Bentuk normal pertama
Suatu
tabel dikatakan dalam bentuk normal pertama (1NF) bila setiap kolom bernilai
tunggal untuk setiap baris. Ini berarti bahwa nama kolom yang berulang cukup
diwakili oleh sebuah nama kolom (tidak perlu ada indeks dalam memberi
nama kolom).
c. Bentuk normal kedua
Suatu
tabel berada dalam bentuk normal kedua (2NF) jika tabel berada dalam bentuk
normal pertama, semua kolom bukan kunci primer tergantung sepenuhnya terhadap
kunci primer. Suatu kolom disebut tergantung sepenuhnya terhadap kunci primer
jika nilai pada suatu kolom selalu bernilai sama untuk suatu nilai kunci primer
yang sama.
d. Bentuk normal ketiga
Suatu
tabel berada dalam bentuk normal ketiga (3NF) jika tabel berada dalam
bentuk normal kedua, setiap kolom bukan kunci primer tidak memiliki
ketergantungan secara transitif terhadap kunci primer.
Model Konseptual Basisdata
Field (Atribut) Kunci
setiap file selalu terdapat kunci dari file berupa
field atau satu set field yang dapat mewakili record. Misalnya Nomor Pokok Mahasiswa (NPM) merupakan
kunci dari tabel mahasiswa suatu Perguruan Tinggi, setiap pencarian cukup
dengan menyebut nomor mahasiswa tersebut maka dapat diketahui identitas
mahasiswa lainnya seperti nama, alamat dan atribut lainnya.
Nomor
Pegawai (NIP) bagi data dosen, NIK untuk data karyawan, Kode_Kuliah untuk data
Mata kuliah, dan lain sebagainya.
Jenis
Atribut Pada Entitas
Atribut
yang melekat pada suatu entitas ada bermacam tipe seperti yang akan dijelaskan
sebagai berikut :
- Atribut Sederhana : atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain. Contoh Entitas mahasiswa mempunyai atribut sederhana berupa NIM, Nama Mahasiswa .
- Atribut Komposit : atribut komposit merupakan atribut yang masih dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tersendiri. Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat dipecah menjadi sub atribut seperti nama_kota, kode_pos.
- Atribut Bernilai Tunggal : yaitu atribut yang hanya memiliki satu nilai untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut NPM, Nama, Alamat isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NPM, 1 Nama, 1 Alamat.
- Atribut Bernilai Jamak : yaitu atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya.Contoh : entitas mahasiswa mempunyai atribut Hobby isi data dari atribut ini boleh lebih dari 1 data. Mahasiswa Roshita memiliki NPM 13402021 beralamat di Jalan Garuda 32 Yogyakarta memiliki Hobby (Olah Raga, Nyanyi, Masak dan Nonton TV)
- Atribut Harus Bernilai : yaitu atribut yang harus memiliki nilai data untuk setiap barisnya. Biasanya atribut seperti ini sudah ditetapkan dalam perancangan tabelnya sehingga jika dalam pengisian dokosongi akan terjadi kesalahan. Contoh : entitas mahasiswa mempunyai atribut NPM dan Nama_Mahasiswa yang harus diisi datanya, sebab jika tidak diisi akan terjadi kekacauan dalam basis data.
- Atribut Bernilai Null : yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya.Contoh : entitas mahasiswa mempunyai atribut Alamat, Hobby, Nama_Pacar yang boleh untuk tidak diisi tetapi kalau diisi akan lebih baik,
- Atribut Turunan : yaitu atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain yang berkaitan. Contoh : entitas mahasiswa mempunyai atribut IPK yang diperoleh dari pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIM mahasiswa yang sama dan diproses sehingga menghasilkan IPK untuk mahasiswa yang bersangkutan.
Kebergantungan Fungsi
Kebergantungan Fungsi didefinisikan sebagai hubungan antara satu relasi
dengan relasi lainnya.
Misalnya : sebuah relasi R, atribut Y dan R adalah bergantung fungsi pada
atribut X dari R jika dan hanya jika setiap nilai X dalam R punya hubungan
dengan tepat satu nilai Y dalam R (dalam setiap satu waktu). File relasi pegawai atribut berisi : No Pegawai,
No KTP, Nama, Tempat Lahir, Tgl Lahir, Alamat, Kota. Isi dari atribut nama
bergantung pada No Pegawai. Jadi dapat dikatakan bahwa atribut nama bergantung
secara fungsi pada No Pegawai dan Nomor Pegawai menunjukkan secara fungsi nama.
jika anda mengetahui no pegawai maka anda dapat menentukan nama pegawai
tersebut.
Isi dari
atribut nama bergantung pada No Pegawai. Jadi dapat dikatakan bahwa atribut
nama bergantung secara fungsi pada No Pegawai dan Nomor Pegawai menunjukkan
secara fungsi nama. jika anda mengetahui no pegawai maka anda dapat menentukan
nama pegawai tersebut. Notasi untuk kebergantungan fungsi ini adalah
Teknik Model Data Relasional ada 2 yaitu :
•
Teknik Normalisasi
•
Teknik Entity Relationship
Namun yang akan dibahas lebih lanjut adalah Teknik Normalisasi.
Teknik Normalisasi
Beberapa pengertian mengenai normalisasi :
Ø Istilah
Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis
data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur
tabel 9 relasi) dalam basis data (dengan tujuan utnuk mengurangi kemubaziran
data) , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi
terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R).
Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk
mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi
keflekxibelan.
Ø Kroenke
mendefinisikan normalisasi sebagai proses untuk mengubah suatu relasi yang
memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang tida
memiliki masalah tersebut. Masalah yang dimaksud oleh kroenke ini sering
disebut dengan istilah anomali.
Ø Normalisasi merupakan sebuah teknik dalam
logical desain sebuah basis data / database, teknik pengelompokkan atribut dari
suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
Ø Normalisasi adalah suatu proses memperbaiki / membangun dengan model data
relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika.
Proses normalisasi adalah proses pengelompokan data elemen menjadi
tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi
dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saat
menambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu basis data.
Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi
pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum
optimal.
Tujuan dari normalisasi itu sendiri adalah untuk menghilangkan kerangkapan
data, mengurangi kompleksitas, dan untuk mempermudah pemodifikasian
data.
Tahapan Normalisasi
- Bentuk Normal Kesatu (1 NF / First Normal Form)
Bentuk Bentuk Normal Kesatu mempunyai ciri yaitu
setiap data dibentuk dalam file
flat, data dibentuk dalam satu record demi satu record dan nilai dari field berupa “atomic value”. Tidak
ada set atribut yang berulang ulang atau
atribut bernilai ganda (multi value). Tiap field hanya satu pengertian,
bukan merupakan kumpulan data
yang mempunyai arti mendua. Hanya satu arti saja dan juga bukanlah pecahan kata kata sehingga artinya lain.
Atom adalah zat terkecil yang masih memiliki sifat
induknya, bila dipecah lagi maka
ia tidak memiliki sifat induknya.
Contoh :
Kelas (Kode Kelas, Nama Kelas, Pengajar)
Ini merupakan bentuk 1NF karena tidak ada yang
berganda dan tiap atribut satu
pengetian yang tunggal
Contoh Data
Mahasiswa (NPM, Nama, Dosen Wali, Semester1,
Semester2 Semester3)
Mahasiswa yang punya NPM, Nama, Dosen Wali
mengikuti 3 mata kuliah. Di sini ada perulangan semester sebanyak 3 kali. Bentuk seperti ini bukanlah
1NF.
- Bentuk Normal Kedua (2NF)
Bentuk Normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk Normal Kesatu. Atribut
bukan kunci haruslah bergantung secara fungsi pada kunci utama, sehingga untuk membentuk Normal Kedua haruslah sudah ditentukan kunci-kunci
field. Kunci field harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Dari contoh relasi mahasiswa pada bentuk Normal
Kesatu, terlihat bahwa kunci
utama adalah NPM. Nama Mahasiswa dan Dosen Wali bergantung pada NPM, Tetapi Kode Semester bukanlah fungsi
dari Mahasiswa maka file siswa
dipecah menjadi 2 relasi yaitu :
Relasi Mahasiswa
Dan
Relasi Ambil Kuliah
- Bentuk Normal Ketiga (3NF)
Untuk menjadi bentuk Normal
Ketiga maka relasi haruslah dalam bentuk Normal Kedua dan semua atribut bukan
primer tidak punya hubungan yang transitif. Artinya setiap atribut bukan kunci
harus bergantung hanya pada kunci primer secara menyeluruh. Contoh pada bentuk Normal kedua di atas termasuk juga bentuk Normal Ketiga
karena seluruh atribut yang ada di situ bergantung penuh pada kunci primernya.
Boyce-Codd Normal
Form (BNCF)
Boyce-Codd Normal Form
mempunyai paksaan yang lebih kuat dari bentuk Normal
ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap
atribut dipaksa bergantung pada fungsi pada atribut super key.
Pada contoh dibawah ini
terdapat relasi Seminar, Kunci Primer adalah NPM + Seminar. Siswa boleh
mengambil satu atau dua seminar. Setiap seminar membutuhkan 2 pembimbing dan
setiap siswa dibimbing oleh salah satu diantara 2 pembimbing seminar tersebut.
Setiap pembimbing hanya boleh mengambil satu seminar saja. pada contoh ini NPM
dan Seminar menunjukkan seorang Pembimbing.
Relasi Seminar
Bentuk Relasi Seminar adalah
bentuk Normal Ketiga, tetapi tidak BCNF karena Kode Seminar masih bergantung
fungsi pada Pembimbing, jika setiap Pembimbing dapat mengajar hanya satu
seminar. Seminar bergantung pada satu atribut bukan super key seperti yang
disayaratakan oleh BCNF. Maka relasi Seminar harus dipecah menjadi dua yaitu :
Penerapan
Bentuk Normalisasi
Proses perancangan basis data dapat dimulai dari
dokumen dasar yang dipakai dalam sistem sesungguhnya. Kadang-kadang basis data
dibentuk dari sistem nyata yang mempunyai bentuk masih belum menggambarkan
entitas-entitas secara baik. Sebagai contoh basis data yang dibangun dari
daftar faktur pembelian sebagai berikut :
Langkah Pertama
Bentuklah menjadi tabel Un-Normalized, dengan
mencantumkan semua field data yang
ada.
Menuliskan semua data yang akan direkam, bagian yang
doubel tidak perlu dituliskan. Terlihat record-record yang tidak lengkap, sulit
untuk membayangkan bagaimana bentuk record yang harus dibentuk untuk merekam
data tersebut.
Langkah Kedua
Ubahlah menjadi bentuk Normal Kesatu dengan
memisahkan data pada field-field yang tepat dan bernilai atomik, juga seluruh
record harus lengkap datanya. Bentuk file masih flat.
Dengan bentuk Normal Kesatu ini telah dapat dibuat
satu file dengan 11 field yaitu No faktur, Kode Suplier, Nama Suplier, Kode
Barang, Nama Barang, Tanggal, Jatuh Tempo, Quntity, Harga, Jumlah, Total.
Namun bentuk Normal Kesatu ini mempunyai banyak
kelemahan diantaranya yaitu :
•
Penyisipan data
Kode Suplier dan Nama Suplier tidak bisa
ditambahkan tanpa adanya transaksi pembelian.
•
Penghapusan data
Jika salah satu record
dihapus maka semua data yang ada di situ akan terhapus juga.
•
Pengubahan data
Data suplier ditulis berkali-kali (Kode dan Nama).
Jika suatu saat terjadi perubahan Nama suplier maka harus mengganti semua
record yang ada data supliernya. Bila tidak maka akan terjadi inkonsistensi.
•
Redundansi
Field jumlah merupakan
redundansi karena setiap harga dikalikan kuantitas hasilnya adalah jumlah,
sehingga field ini dapat dibuang. Bila
tidak maka dapat mengakibatkan inkonsistensi jika terjadi perubahan harga.
Langkah
Ketiga
Pembentukan
Normal Kedua dengan mencari field kunci yang dapat dipakai sebagai patokan
dalam pencarian dan yang mempunyai sifat yang unik. Melihat kondisi dari
permasalahn faktur di atas dapat diambil kunci kandidat sbb :
§ No
faktur
§ Kode
Suplier
§ Kode
Barang
Buatlah tiga tabel dengan kunci tersebut, lihatlah
kebergantungan fungsional field lain terhadap kunci, maka didapatkan tabel sebagai
berikut :
Dengan pemecahan seperti di atas maka sebagian dari
pertanyaan pengujian pada bentuk normal kesatu yaitu masalah penyisipan, penghapusan
dan pengubahan dapat dijawab. Data suplier dapat ditambahkan kapan saja tanpa harus
ada transaksi pembelian. Namun permasalahan masih ada yaitu pada tabel nota.
§ Field Kuantitas dan Harga tidak bergantung
peenuh pada kunci primer nomor nota, ia juga bergantung fungsi pada kode
barang. Hal ini disebut sebagai kebergantungan yang transitif dan harus
dipisahkan dari tabel.
§ M
= redundansi masih terjadi, yaitu setiap kali satu nota yang terdiri dari 5
macam barang yang dibeli maka 5 kali pula nota dituliskan ke nomor nota,
tanggal nota, tempo dan total. Ini harus dipisahkan bila terjadi penggandaan
tulisan yang berulang-ulang.
Langkah Ke 4
Bentuk normal ketiga mempunyai syarat setiap tabel
tidak mempunyai field yang bergantung transitif, harus bergantung penuh pada
kunci utama. Maka terbentuklah tabel sebagai berikut :
Langkah Ke-5
Pengujian di sini untuk memastikan kebenaran isi
tabel dan hubungan antara tabel tersebut. Ujian bahwa setiap tabel haruslah punya hubungan dengan tabel yang lainnya.
Bila tidak ada penghubungan antar tabel maka dapat dikatakan perancangan untuk
membuat satu basis data adalah gagal.
Langkah
Ke-6 Relasi Antar tabel
Gambarkan
hubungan relasi antar file yang ada sebagai berikut :
Pengertian relasi di atas adalah
§ Satu
supplier punya banyak nota
§ Nota
punya relasi dengan suplier bukan sebaliknya suplier punya relasi terhadap
nota.
§
Satu
nota punya banyak transaksi barang
§
Satu
barang terjadi beberapa kali transaksi pembelian barang.
Langkah
Ke-7
Permasalahan
di atas hanya terbatas pada satu dokumen Faktur pembelian barang, padahal pada
kenyataannya tentu faktur tersebut mempunyai dokumen pelengkap misalnya nota
penjualan barang, laporan stok barang, laporan penjualan, laporan pembelian dan
masih banyak lagi laporan dan dokumen data enty lainya.
Dengan
langkah-langkah perancangan seperti di atas maka diperoleh field-field untuk
melengkapi tabel-tabel yang ada dalam satu basis data. Misalnya tabel
barang dengan bertambahnya field yang lain menjadi :
REFERENSI
Ali, Muhammad. 1995. Materi
Kuliah Basis Data. Jakarta.