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
alhamdulillah jazaqillaukhoiro mba atas info nya, sangat bermanfaat... :D
BalasHapus