Sunday, 2 November 2014

Praktikum 6: NORMALISASI

NORMALISASI

            Assalamu’alaykum, jumpa lagi di blog saya. Setelah UTS kemaren kan ngga ada laporan, kangen banget deh sama laporan praktikum yang satu ini. rasanya seminggu tanpanya weekend ku hampa ^^V
Kali ini saya akan membahas praktikum minggu ini yang berjudulkan “NORMALISASI” . Apa itu normalisasi serta apa saja yang dilakukan untuk membentuk sebuah database menjadi “normal” ? Langsung saja kita bahas yaa :D
A.    Landasan Teori

1.1  Pengertian Normalisasi
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. Suatu rancangan database disebut buruk jika :
·         Data yang sama tersimpan di beberapa tempat (file atau record)
·         Ketidakmampuan untuk menghasilkan informasi tertentu
·         Terjadi kehilangan informasi
·         Terjadi adanya redudansi (pengulangan) atau duplikasi data sehingga memboroskan ruang
·         penyimpanan dan menyulitkan saat proses updating data
·         Timbul adanya NULL VALUE.

1.2  Pentingnya Normalisasi

Kehilangan informasi bisa terjadi bila pada waktu merancang database (melakukan proses dekomposisi yang keliru). Tujuan normalisasi adalah menyempurnakan struktur table dengan:
·         mengeliminasi adanya duplikasi informasi,
·         memudahkan pengubahan struktur tabel,
·         memperkecil pengaruh perubahan struktur database

1.3  Functional Dependency (Fd)

Untuk melakukan normalisasi, harus bisa menentukan terlebih dahulu Functional Dependency (FD) atau Ketergantungan Fungsional, khususnya dalam melakukan dekomposisi rancangan database. Functional Dependency (FD) dapat disimbolkan dengan: A à B : artinya B memiliki ketergantungan dengan A. Berarti A secara fungsional menentukan B atau B secara fungsional tergantung pada A.
Dengan kondisi: jika dan hanya jika untuk setiap rows data pada tabel T, maka jika ada 2 rows di tabel T dengan nilai pada A yang sama, maka nilai pada B pasti juga sama.
Jadi, diberikan 2 rows, yaitu: row r1 dan row r2 dalam tabel T, dimana A à B, sehingga jika r1(A) = r2(A), maka r1(B)=r2(B)

1.4  Langkah-Langkah Normalisasi
1.      Unnormalization Form

Bentuk yang tidak normal dimaksudkan suatu kumpulan data yang akan diolah yang diperoleh dari format – format yang beraneka ragam, masih terdapat duplikasi, bisa saja tidak sempurna atau tidak lengkap, dan sesuai fakta lapangan. Bentuk ini didapat dari dokumen yang ada dilapangan atau manual dengan atribut bukan nilai sederhana

2.      First Normal Form (1NF)

·         Merubah dari bentuk tabel tidak normal (unnormalized table) menjadi bentuk normal pertama (1NF).
·         Suatu relation R disebut 1st NF jika dan hanya jika semua attribute value-nya simple/atomic (tidak boleh ada attribute yang composit & multivalue)
·         Tujuan 1NF adalah:
        Membuang adanya pengulangan (Redudansi) data,
        Menghindari adanya pencatatan Null Value, dan
        Menjaga setiap entry data dr relasi (perpotongan bariskolom) memiliki maksimal satu nilai tunggal.
·         Beberapa table dapat mengandung partial dependency
3.      Second Normal Form (2NF)

·         Sudah dalam bentuk / lolos 1NF.
·         Dibuat berdasarkan FULL FUNCTIONAL DEPENDENCY (ketergantungan fungsional penuh)
·         Normalisasi 2NF: jika tabel berada dalam bentuk normal pertama (1NF) dan setiap atribut bukan kunci (bukan PK) bergantung penuh (FULL DEPENDENT) pada kunci primer (PK).
·         Sehingga tidak ada atribut bukan kunci yang bergantung pada sebagian (parsial) kunci primer.
Langkah – langkah :
·         Jika terdapat atribut yang bergantung terhadap atribut bukan kunci utama dan merupakan atribut kunci maka pecah menjadi table baru.

4.      Third Normal Form (3NF)

·         Suatu relasi R disebut normal ke tiga (3rd NF) jika sudah memenuhi dalam bentuk normal ke dua (2nd NF) dan tidak dijumpai adanya ketergantungan TRANSITIF (Transitive Dependency).
·         Kebergantungan transitif (transitive dependency) adalah ketergantungan fungsional antara 2 (atau lebih) atribut bukan key (kunci/PK).
Syarat 3NF:
·         Harus berada dalam bentuk normal ke dua (2NF).
·         Ketergantungan field-field yang bukan PK adalah harus secara mutlak (full-dependent). Artinya harus tidak ada transitive dependency (ketergantungan secara transitif).
·         Langkah – langkah :
·         - Pastikan semua atribut non kunci bergantung penuh terhadap atribut kunci.
·         - Pisahkan menjadi tabel baru jika menemukan ketergantungan transitif dalam tabel tersebut.


5.      Boyce-Codd Normal Form (BCNF)

·         Secara praktis, tujuan rancangan database adalah cukup sampai pada level 3NF. Akan tetapi untuk kasus-kasus tertentu kita bisa mendapatkan rancangan yang lebih baik lagi apabila bisa mencapai ke BCNF.
·         BCNF ditemukan oleh: R.F. Boyce dan E.F. Codd
·         Suatu relasi R dikatakan dalam bentuk BCNF: jika dan hanya jika setiap atribut kunci (Key) pada suatu relasi adalah kunci kandidat (candidate key).
·         Kunci kandidat (candidate key) adalah atribut-atribut dari entitas yang mungkin dapat digunakan sebagai kunci (key) atribut.
·         BCNF hampir sama dengan 3NF, dengan kata lain setiap BCNF adalah 3NF.

6.      Fourth Normal Form (4NF)
Dilakukan jika terdapat anomali pada (3NF)
7.       Fifth Normal Form (5NF)
Langkah ini untuk memecah relasi menjadi dua sehingga relasi tersebut tidak digabungkan kembali manjadi satu dan jika terdapat anomali pada (5NF)

B.     Hasil Praktikum
Buatlah normalisasi dari data berikut:


1.      Unnormalization Form
Bentuk unnormalisasi ini merupakan bentuk yang masih sederhana dan terdapat kerancuan data serta redudansi data, serta terdapat kolom yang berisikan nilai null. 



2.      First Normal Form (1NF)
Pada bentuk normal bentuk pertama, kita harus mengisikan semua nilai null. Selain itu kita harus membuat primary key nya. Primary key pada bentuk unnormalization di atas adalah no_faktur dan kode_bar. Berikut gambaran tabel nya


3.      Second Normal Form
Setelah menenutkan primary key, kita dapat membentuk normal kedua. Pertama primary key hanya boleh tergantung (functional dependency),dan menghilangkan ketergantungan parsial pada tabel dengan cara membuat tabel baru.
Nama_bar, harga_bar, diskon1, dan PPN bergantung pada kode_bar maka kita buat tabel barang

Lalu nama_pel, bergantung pada id_pel, maka kita buat tabel pelanggan

Lalu kita buat tabel petugas dengan atribut id_pet dan nama_pet

Kemudian yang terakhir adalah membuat tabel transaksi yang berisikan atribut no_faktur, tanggal, jml_bar, harga_bar, total, id_pel, kode_bar, id_pet, dan diskon2, seperti gambar tabel di bawah ini


4.      Third Normal Form (3NF)
Bentuk normal yang kedua harus terpenuhi sebelum bisa membuat bentuk normal ketiga ini. Selain itu, tidak boleh ada ketergantungan transitif yaitu primary key  tergantung pada atribut bukan primary key. Pada tabel pelanggan dan petugas tidak perlu diubbah lagi karena sudah tidak ada ketergantungan transitif.






Dibuat diagram seperti dibawah ini untuk mengetahui relasi antar tabelpada normalisasi yang telah kita lakukan


C.     Kesimpulan, Kritik Dan Saran Serta  Manfaat Bagi Pembaca
1.      Kesimpulan
Setelah melakukan praktikum ini, saya dapat menyimpulkan bahwa normalisasi adalah teknik dalam pembuatan tabel, dengan tabel yang terdiri dari berbagai macam masalah seperti kerancuan, redudansi dan adanya nilai null, dengan normalisasi masalah-masalah tersebut bisa diminimalisir serta kita mendapatkan sebuah tabel yang akurat dan valid relasinya. Normalisasi dilakukan memlalui beberapa tahap, yaitu unnormalization, 1NF, 2NF, 3NF, 4NF dan5NF. Namun database yang baik cukup sampai pada 3NF saja.
2.      Kritik dan Saran
Dalam laporan ini, saya merasa banyak kekurangan dan kekeliruan dalam melakukan normalisasi, dibutuhkan ketelitian dan logika yang cerdas untuk memisahkan tabel-tabel tersebut dan menjadikannya suatu relasi yang ciamik, oleh karenanya diperlukan pembelajaran yang lebih lagi, serta bimbingan yang ekstra dari dosen maupun asisten lab, sebaiknya diberi tahu normalisai yang benar, agar kami para praktikan lebih mengerti apa kekurangan dan kesalahan kami.
3.      Manfaat
Semoga pembaca pada umumnya dapat mengetahui dan mengerti tahapan-tahapan yang dilakukan apabila ingin melakukan normalisasi agar diperoleh database yang baik.

D.    Daftar Pustaka
Nugroho, Adi. 2011. Perancangan dan Implementasi Sistem Basis Data. Yogyakarta: ANDI



Leave a Reply