Sabtu, 23 April 2011

SIM 2 Normalisasi

NORMALISASI
Pengertian Normalisasi
Normalisasi adalah suatu teknik untuk mengorganisasi data kedalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.
Tujuan dari normalisasi
a. Untuk menghilangkan kerangkapan data
b. Untuk mengurangi kompleksitas
c. Untuk mempermudah pemodifikasian data
Tahapan Normalisasi



Ketergantungan Fungsional
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.
Misal, terdapat skema database Pemasok-barang :
Pemasok (No-pem, Na-pem)
Tabel Pemasok barang

Ketergantungan fungsional dari tabel Pemasok barang adalah :
No-pem ---> Na-pem

Ketergantungan Fungsional Penuh
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah kegabungan)
Contoh :
Kirim barang ( No-pem, Na-pem, No-bar, Jumlah)

Ketergantungan Transitif
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X, jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. ( X àY, Y àZ, maka X àZ )




Contoh :


Ketergantungan transitif :
No-pem à Kode-kota
Kode-kota à Kota , maka
No-pem à Kota

Proses 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 :


1. 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.


2. 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


3. 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 :

Contoh kasus

Bentuk normal pertama (BNI)
Tabel Contoh atribut jamak yaitu alamat
kode_plg Nama_plg Alamat1 Alamat2 alamat …
P-101 Kirana Deresan II no 23 Perumahan no
P-102 Karisma Karang Nangka II no 199



Gambar Diagram E-R dengan entity alamat
Gambar Diagram E-R dengan entity penyalur
Gambar Diagram Skema BNI
Gambar Diagram E-R yang telah memenuhi BNII
Gambar Diagram Skema BNII
Gambar Skema Diagram BNII dengan tambahan atribut pada entity barang
Gambar Diagram E-R yang telah memenuhi BNIII
Gambar Skema Diagram BNIII
Tabel pelanggan
Kode_plg nama_plg Alamat
P-101 Kirana Deresan II no 23
P-102 Karisma Karang Nangka II no 199
P-103
P-104 Lutfi Gendeng no 642
P-105 Qornain Gendeng no 642
P-106 Ambarukmo ….
Tabel barang
kode_brg nama_brg tipe_brg
B-101 pena alat tulis
B-102 pensil 2B alat tulis
B-103 penghapus alat tulis
B-104 penggaris alat tulis
B-201 batere nasional batu batere
B-202 batere alkalin batu batere
B-301 MILO 300 g Susu
B-302 MILO 600 g Susu

Tabel penyalur
Kode_pyl nama_pyl Alamat
S-11 Indo Grosir Jl.Magelang no …
S-12 Indo Maret Jl. Magelang no …
S-13 Pamela Jl. Kusuma Negara no …
S-14 WS Jl. Wonosari no …
Tabel info
No_info Kode_brg kadaluarsa Harga dasar Persen_laba discount persediaan
1 B-101 null 3000 1.2 0.1 50
2 B-102 null 1000 1.2 0.1 75
3 B-103 null 1000 1.2 0.1 30
4 B-104 null 2500 1.2 0.1 10
5 B-201 null 1000 1.2 0.1 25
6 B-202 null 2000 1.2 0.1 15
7 B-301 2007 13000 1.1 0.03 5
8 B-301 2009 13000 1.1 0.03 10

1 komentar: