Selasa, 04 November 2014


 Laporan hasil praktikum ke 6
“ NORMALISASI “
Assalamualaikum,, hai guys ….  Gimana kabarnya ?? moga baik aja ya, dan selalu dalam perlindungan Allah Swt, Amiinn..
            Menyambut hari yang cerah ini,, saya mau mosting ni,, setelah seminggu libur gak ada laporan ,, eehh sekarang ada lagi, kita akan berjumpa lagi dengan hasil laporan ku, yudah deh gak apa , semangat !!! hhe
            Oiyya pada kali ini ada sedikit perbedaan nii,, tau gak apa bedanya  ??? pada kali ini itu saya gak pakai postgre sql atau mysql untuk nyelesain hasil laporan ku ,, tapi pake Microsoft excel, dan materinya yaitu tentang NORMALISASI ,, aq pikir itu susah , tapi ternyata gak kok, yang penting kita memahami konsep dari normalisasi itu seperti apa , !.
 oke deh langsung aja kita simak yukk …
bismillah..
A.    Landasan Teori
Mungkin semua bertanya – tanya , apa sih sebenarnya normalisasi itu , kok sepertinya penting banget ? Hhe iya emang penting kok … oke deh simak ya ..
Normalisasi database merupakan suatu pendekatan sistematis untuk meminimalkan redundansi data pada suatu database agar database tersebut dapat bekerja dengan optimal. Jika anda seorang database administrator ketika terjadi sesuatu pada database seperti penurunan kinerja, mungkin anda akan ditanya apakah database tersebut telah di normalisasi?
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Normalisasi merupakan 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, 2008). Ada juga yang berpendapat normalisasi adalah proses penyusunan tabel – tabel yang tidak redundan (dobel), yang dapat menyebabkan anomali yaitu proses basis data yang memberikan efek samping yang tidak diharapkan (Misalnya menyebabkan data tidak konsisten atau membuat data hilang ketika data yang lain dihapus).
Nahh,, sobat udah tahu kan normalisasi itu apa ,,  gimana ? penting kan proses normalisasi itu, karena  jika kita tidak melakukan proses normalisasi terlebih dahulu  maka kemungkinan database kita akan mengalami hal seperti berikut  :
1.      Data yang sama tersimpan di beberapa tempat(file atau record)
2.      Ketidakmampuan untuk menghasilkan informasi tertentu
3.      Terjadi kehilangan informasi
4.      Terjadi adanya redudansi (pengulangan) atau duplikasi data sehingga memboroskan ruang penyimpanan dan menyulitkan saat prosesupdating data
5.      Timbul adanya NULL VALUE.
6.      Kehilangan informasi bisa terjadi bila pada waktu merancang database (melakukan proses dekomposisi yang keliru).

Dan juga akan menimbulkan ketidakefektifan suatu data . Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan sistem secara keseluruhan.
1.      INSERT Anomali : Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara langsung di database.
2.      DELETE Anomali: Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang harusnya tidak terhapus mungkin ikut terhapus.
3.      UPDATE Anomali: Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam artian data yang diubah tidak sesuai dengan yang diperintahkan atau yang diinginkan.

Tuh kan….banyak banget akibatnya kalau kita gak melakukan proses normalisasi,, mangkanya lebih baik kita menggunakannya agar database yang kita buat lebih maksimal, dan tidak terjadi kekeliruan pastinya.

Adapun tujuan kita melakukan proses normalisasi database :
1.      Untuk menghilangkan dan mengurangi redudansi data
2.      Memastikan dependensi data (Data berada pada tabel yang tepat).
3.      Mengeliminasi adanya duplikasi informasi,
4.      Memudahkan pengubahan struktur tabel,
5.      Memperkecil pengaruh perubahan struktur database,

Selanjutnya tahap untuk melakukan proses normalisasi database. Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun.Bentuk normalisasi yang sering digunakan adalah 1st NF, 2nd NF, 3rd NF,dan BCNF. 2NF adalah lebih baik dari 1NF. 3NF adalah lebih baik dari 2NF. Untuk kepentingan rancangan database bisnis, 3NF adalah bentuk terbaik dalam proses normalisasi (sudah mencukupi). Normalisasi dengan level paling tinggi tidak selalu diharapkan. Jadi normalisasi dilakukan, sepanjang dirasa sudah cukup normal (dengan mengikuti pra-syarat normalisasi diatas)

Berikut langkah- langkah normalisasi .


Untuk lebih jelasnya :

1. Unnormalization Form( bentuk tidak normal )
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. Data dikumpulkan apa adanya sesuai dengan saat menginput.
Contohnya :
Tabel 9.3


Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi tabel yang memenuhi kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue menjadi atribut single value, dengan cara menghilangkan repeating group pada tabel di atas. Repeating Group (elemen data berulang) adalah (No_Property, Alamat_Property,Tgl_Pinjam, Tgl_Selesai, Biaya, No_Pemilik, Nama_Pemilik)

2. First Normal Form (1NF)

Pada tahap ini dilakukan penghilangan beberapa group elemen yang berulang agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang atomic (bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya.

Suatu tabel dianggap normal ke satu (1NF) jika :
a.       Masing - masing baris bernilai tunggal dan tidak bernilai null..
b.      Tidak ada set atribut yang berulang atau bernilai ganda.

Adapun langkah – langkah nya :
1.  Isikan setiap data bernilai tunggal dan tidak null
2. Membuang perulangan data dalam satu baris dengan baris yang lain.

Namun pada tahap ini masih ada kelemahan yaitu :
a.       Pengulangan informasi
b.      Potensi inkonsistensi pada operasi update
c.       Tersembunyinya informasi tertentu
Contoh nya :

Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel 9.3) tersebut adalah menghilangkan elemen data yang berulang dengan data-data Pelanggan yang sesuai pada setiap baris. Hasil dari tabel yang telah memenuhi bentuk normal pertama dapat dilihat pada Tabel 9.4. kita dapat mengidentifikasi primary key untuk relasi Pelanggan_Biaya yang masih memiliki composite key (No_Pelanggan, No_Property).

Pada kasus ini kita akan memperoleh primary key yang bersifat composite key. Relasi Pelanggan_Biaya dapat didefinisikan sebagai berikut. Pelanggan_Biaya =(No_Pelanggan, No_Property, Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai, Biaya,No_Pemilik, Nama_Pemilik)
Tabel 9.4
 

3. Second Normal Form (2NF)
    Pada tahap ini kita bisa mengasah logika kita , dari contoh adanya suatu database, kita harus tahu mana yang harus di jadikan primary key dan mana yang berfungsi sebagai fuungsional depedensi ( ketergantungan fungsi  ).

Adapun kita bisa melakukan Bentuk normal kedua (2NF) jika :
1. Harus telah berbentuk normal pertama (1NF).
2. Pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki          ketergantungan fungsional pada primary key secara utuh. Suatuatribut dikatakan ketergantungan fungsional jika harga pada atribut tersebut menentukan harga dari atribut yang lain. Misalnya, nim → mhs_nama.

Langkah – langkah 2NF :

Jika terdapat atribut yang bergantung terhadap atribut bukan kunci utama dan
merupakan atribut kunci maka pecah menjadi table baru.

Tabel 9.5
Tabel Pelanggan Biaya dalam bentuk normal kedua (2-NF)


 

4.      Third Normal Form (3NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF,namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut.

Misalkan kita akan melakukan update terhadap nama dari seorang Pemilik (pemilik), seperti Durki (No_Pemilik: CO93), kita harus melakukan update terhadap dua baris dalam relasi Property_Pemilik (lihat Tabel 9.5, (c) relasi Property_Pemilik). Jika kita hanya mengupdate satu baris saja, sementara baris yang lainnya tidak, maka data didalam database tersebut akan inkonsisten / tidak teratur. Anomaly update ini disebabkan oleh suatu ketergantungan transitif (transitive dependency). Kita harus menghilangkan ketergantungan tersebut dengan melakukan normalisasi ketiga (3-NF).

Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut.
1. Bentuk data telah memenuhi kriteria bentuk normal kedua.
2. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif,
 dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap priamry key di relasi itu saja. Seluruh atribut non-primary key pada relasi Pelanggan dan Biaya di atas terlihat memiliki ketergantungan fungsional (functional dependency) terhadap primary key dari masing-masing tabel / relasi. Relasi / tabel Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif (transitive dependency), sehingga tabel tersebut telah memenuhi kriteria normal ketiga (3-NF).

Seluruh atribut non-primary key pada relasi Property_Pemilik di atas terlihat memiliki ketergantungan fungsional (functional dependency) terhadap primary key, kecuali Nama_Pemilik yang masih memiliki ketergantungan fungsional (functional dependency) terhadap No_Pemilik. Inilah contoh ketergantungan dari transitif (transitive dependency), yang terjadi ketika atribut non-primary key (Nama_Pemilik) bergantung secara fungsi terhadap satu atau lebih atribut non-primary key lainnya (No_Pemilik). Kita harus menghilangkan ketergantungan transitif (transitive dependency) tersebut dengan menjadikan relasi Property_Pemilik menjadi 2 relasi / tabel dengan format / bentuk sebagai berikut.

· Relasi / Tabel Property_Untuk_Pemilik yang terdiri dari atribut-atribut:

No_property  Alamat_Property, Biaya, No_Pemilik

{No_property sebagai primary key}

· Dan relasi Pemilik yang terdiri dari atribut-atribut:

No_Pemilik  Nama_Pemilik

{No_Pemilik sebagai primary key}

Hasil akhir normalisasi tabel Pelanggan_Biaya sampai ke bentuk normal ketiga adalah

sebagai berikut:

5. Boyce Codd Normal Form (BCNF)

Secara praktis tujuan analisis database cukup sampai pada 3NF, Akan tetapi dalam
suatu kasus tertentu lebih baik bila dapat mencapat BCNF. Beberapa pemikir
menyamakan antara 3NF dengan BCNF. Bentuk normal BCNF terpenuhi jika :

- Masing-masing atribut utama bergantung fungsional penuh pada masing kunci
dimana kunci tersebut bukan bagiannya.
- Setiap determinan atribut-atribut relasi adalah kunci relasi atau kandidat kunci. - BCNF dapat memiliki lebih dari satu kunci. - BCNF hampir sama dengan 3NF.

Langkah – langkah : - Hilangkan dependensi pada bukan kunci kandidat.

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
Di atas kan sudah di jelaskan bagaimanakah menjalankan proses normalisasi, agar lebih mantap simak yuk contoh soal dan pembahasannya.  
Kali ini kami di suruh untuk menormalisasikan dari suatu sistem informasi berikut :

1.      Sistem informasi toko serba_ada
Kelihatannya udah jelimet ya,,, bingung mau di apain, tapi gak kok sebenarnya , tadi kita kan sudah mempelajari bagaimanakah untuk menormalisasikan suatu data , lah sekarang tinggal di praktekkan.

Oke deh pertama kita buat dulu Unnormalization Form( bentuk tidak normal ) :

Pada tahap ini terserah kita sih mau menginisialisasikan gimana, yang penting semua yang ada di dalam data termuat dalam tabel . seperti berikut :

Unnormalization Form


Selanjutnya untuk First Normal Form (1NF )

Untuk 1NF, gak jauh beda sama unnormalization , hanya pada 1NF tiap baris tidak boleh bernilai null.

Kemudian untuk Second Normal Form (2NF )

Pada 2NF kita harus tahu yang mana sebagai primary key dan mana yang sebagai ketergantungan fungsional yang mana tidak bisa dipisahkan. kemudian kita jadikan tabel nya. Seperti berikut :  



           
          

Third Normal Form (3NF)
Pada tahap ini kita dapat menambahkan kolom baru yang mana dianggap sebagai tabel transitif , sehingga dapat dipecah lagi. Seperti berikut : 



           
           
             

         


Dan berikut hasil akhir dari normalisasi :



            Tugas

Sistem informasi rental buku “pustaka ilmu”


Unnormalization Form

Kita masukkan semua data di atas menjadi 1 tabel yang ada di dalam sistem informasi tersebut. Seperti berikut :

First Normal Form (1NF )
Hampir sama dengan proses unnormalization form , hanya saja gak ada baris yang bernilai null , seperti berikut :


Second Normal Form (2NF )
Kita cari manakah yang bisa di jadikan sebgai primary key kemudian buat tabel masing- masing dari primary key tersebut , seperti berikut :




          


Third Normal Form (3NF )

Pada tahap ini lebih kompleks lagi , karena kita bisa memecah tabel 2NF yang sebagai fungsi ketergantungan, kemudian kita bisa membuatnya dengan tabel baru lagi, seperti berikut :








Hasil Akhir Normalisasi



C.     Kesimpulan
Dari hasil di atas dapat disimpulkan bahwa proses normalisasi digunakan agar tidak terjadi anomaly- anomaly dalam suatu data, sehingga kita tidak mengalami eror saat melakukan pendataan, dan juga mudah dalam memodifikasi suatu data. Dan pada umumnya proses normalisasi hanya sampai di tahap 3NF atau BCNF , karena pada tahap tersebut sudah bisa dikatakan data sudah benar ( data telah konsisten).  Tentunya proses normalisasi sangatlah diperlukan dalam suatu sistem informasi .

D.    Kritik dan Saran
Tak ada manusia yang sempurna, begitupun laporan ini, karena yang membuat hanyalah manusia biasa, maka kritik dan saran pun sangat saya butuhkan untuk kedepannya. Jangan lupa untuk tetap berlatih supaya kita b isa memahami betul setiap materi yang ada.

E.     Manfaat
Dengan adanya hasil praktikum kal ini diharapkan dapat memberikan manfat bagi pembaca, sehingga pembaca bisa melakukan proses dan diatas, dan juga mengetahui bagaimanakah untuk membuat suatu database yang baik. Semoga bermanfaat

F.      Daftar Pustaka 
modul praktikum bab VI
Kristanto, Harianto.2001.Konsep dan Perancangan DATABASE.Yogyakarta: ANDI.
normalisasi-data.pdf










1 komentar:

  1. alhamdulillah jazaqillaukhoiro mba atas info nya, sangat bermanfaat... :D

    BalasHapus