Apa Itu Normalisasi?
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi.
Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik. Dapat dilakukan melalui proses insert, update, delete dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas dalam relasi tersebut.
Normalisasi di perlukan untuk database berskala besar.
Tujuan Normalisasi
- Untuk menghilangkan kerangkapan data (redudansi).
- Untuk mengurangi kompleksitas (kerumitan).
- untuk mempermudah pemodifikasian data dan menghilangkan anomali data.
Keunggulan dari Normalisasi Database
d
- Memecah table (sangat) kompleks menjadi beberapa tabel. sederhana. Seperti Tabel Master (Data cenderung tetap), Tabel Transaksi (dinamik, berhubungan dengan tabel master).
- Mudah diatur, dipleihara dan mempermudah proses pelaporan data.
- Tabel (terutama Tabel Master) bisa digunakan berulang kali.
- Ketika terjadi perubahan atas tabel master, maka tabel transaksi otomatis juga berubah menyesuaikan tabel master.
Kerugian dari Normalisasi
- Meningkatkan jumlah dari penggabungan antar tabel (JOIN).
- Menyebabkan query yang cukup rumit.
Cara Melakukan Normalisasi
- Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu kebeberapa tingkat.
- Apabila tabel yang diuji belum memenuhi persyaratan tertentu maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optional.
Tahapan atau Bentuk-bentuk Normalisasi
Bentuk normal adalah keadaan relasi yang dihasilkan dengan menerapkan aturan sederhana berkaitan dengan konsep kebergantungan fungsional pada relasi yang bersangkutan.
Tahap-tahap normalisasi tersebut adalah:
(1) Bentuk Normal ke Satu (1NF)
Syarat:
- Tidak ada set aribut yang berulang atau bernilai ganda, setiap atribut yang dimiliknya bersifat atomic (bernilai tunggal) untuk setiap baris.
- Telah ditentukannya primary key untuk tabel atau relasi.
- Tiap atribut hanya memiliki satu pengertian.
- Tiap atribut yang dapat memiliki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
(2) Bentuk Normal ke Dua (2NF)
Syarat:
- Bentuk data telah memenuhi kriteria bentork normal ke satu.
- Atribut bukan kunci (non - key atribut) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key.
- Kunci primer hanya mengandung satu atribut.
(3) Bentuk Normal ke Tiga (3NF)
Syarat:
- Bentuk data telah memenuhi kriteria ke dua.
- Tidak boleh terdapat ketergantungan transitif terhadap kunci utama atau primary key.
(4) Boyce-Codd Normal Form (BCNF)
Syarat:
- Semua anomali (kesalahan data) yang tersisa dari hasil penyempurnaan kebergantungan fungsional telah dihilangkan.
(5) Bentuk Normal ke Empat (4NF)
Syarat:
- Bila dan hanya bila telah berada dalam bentuk BCNF dan tidak ada multivalued dependency nontrivial.
- Multivalued Dependency Nontrivial (MVD) dipakai dalam 4NF.
- Dependency ini dipakai untuk menyatakan hubungan satu (one to many).
(5) Bentuk Normal ke Lima (5NF)
Syarat:
- Semua anomali (kesalahan data) yang tertinggal telah dihilangkan.
Dari beberapa tahap normalisasi diatas, Bentuk Normal Pertama (1NF) sampai Normal ke Tiga (3NF), merupakan bentuk normal yang umum dipakai. Umumnya bila ketiga bentuk normal tersebut telah dipenuhi, maka persoalan anomali tidak akan muncul.
Contoh Kasus Normalisasi
Kasus 1 :
Entitas Mahasiswa Belum Ternormalisasi:
Hasil 1: Entitas Mahasiswa 1NF
Kasus 1 :
Entitas Mahasiswa Belum Ternormalisasi:
Tabel 1 : Entitas Mahasiswa
NIM
|
NAMA
|
Sem
|
MaKul
|
NIDN
|
Nama Dosen
|
201001
|
Andika
Saputra
|
1
|
Algoritma
|
1078523
|
Riyanti
Anjani
|
Struktur Data
|
1078523
|
Riyanti
Anjani
|
|||
201002
|
Biyanti Anggie
|
3
|
Struktur Data
|
1078523
|
Riyanti
Anjani
|
Orkom
|
1078523
|
Riyanti
Anjani
|
|||
Metnum
|
1075047
|
Susan
Savitri
|
|||
201003
|
Naura Putri
|
5
|
Web
|
1075047
|
Susan
Savitri
|
Jarkom
|
1077021
|
Erwin
Masadi
|
|||
Metnum
|
1075047
|
Susan
Savitri
|
Hasil 1: Entitas Mahasiswa 1NF
Tabel 2 : Entitas Mahasiswa 1NF
(Telah Ternormalisasi Bentuk Pertama)
NIM
|
NAMA
|
Sem
|
MaKul
|
NIDN
|
Nama Dosen
|
201001
|
Andika
Saputra
|
1
|
Algoritma
|
1078523
|
Riyanti
Anjani
|
201001
|
Andika
Saputra
|
1
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Biyanti Anggie
|
3
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Biyanti Anggie
|
3
|
Orkom
|
1078523
|
Riyanti Anjani
|
201002
|
Biyanti Anggie
|
3
|
Metnum
|
1075047
|
Susan
Savitri
|
201003
|
Naura Putri
|
5
|
Web
|
1075047
|
Susan
Savitri
|
201003
|
Naura Putri
|
5
|
Jarkom
|
1077021
|
Erwin
Masadi
|
201003
|
Naura Putri
|
5
|
Metnum
|
1075047
|
Susan
Savitri
|
Kasus 2 :
Entitas Dosen Belum Ternormalisasi
Tabel 3 : Entitas Dosen
NIDN
|
NAMA DOSEN
|
MaKul_1
|
MaKul_2
|
MaKul_3
|
1078523
|
Riyanti
Anjani
|
Algoritma
|
Struktur Data
|
Orkom
|
1075047
|
Susan
Savitri
|
Metnum
|
Web
|
-
|
1077021
|
Erwin
Masadi
|
Jarkom
|
-
|
-
|
Hasil
2: Entitas Dosen 1NF
Tabel 4 : Entitas Dosen 1NF
(Telah Ternormalisasi Bentuk Pertama)
NIDN
|
NAMA DOSEN
|
MaKul
|
1078523
|
Riyanti
Anjani
|
Algoritma
|
1078523
|
Riyanti
Anjani
|
Struktur Data
|
1078523
|
Riyanti
Anjani
|
Orkom
|
1075023
|
Susan
Savitri
|
Metnum
|
1075023
|
Susan
Savitri
|
Web
|
1077021
|
Erwin
Masadi
|
Jarkom
|
Kasus 3:
Entitas Mahasiswa 1NF,
Tidak Memenuhi 2NF
Tabel 2 : Entitas Mahasiswa 1NF
NIM
|
NAMA
|
Sem
|
MaKul
|
NIDN
|
Nama Dosen
|
201001
|
Andika
Saputra
|
1
|
Algoritma
|
1078523
|
Riyanti
Anjani
|
201001
|
Andika
Saputra
|
1
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Biyanti Anggie
|
3
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Biyanti Anggie
|
3
|
Orkom
|
1078523
|
Riyanti Anjani
|
201002
|
Biyanti Anggie
|
3
|
Metnum
|
1075047
|
Susan
Savitri
|
201003
|
Naura Putri
|
5
|
Web
|
1075047
|
Susan
Savitri
|
201003
|
Naura Putri
|
5
|
Jarkom
|
1077021
|
Erwin
Masadi
|
201003
|
Naura Putri
|
5
|
Metnum
|
1075047
|
Susan
Savitri
|
Proses menuju 2NF untuk Relasi Mahasiswa
Primary
Key (PK) : NIM
•Atribut yang
bergantung dengan PK :
–Nama
–Semester
•Atribut yang
tidak bergantung dengan PK:
–Makul
–NIDN
–NamaDosen
Untuk
memenuhi
2NF, atribut
yang tidak bergantung dengan primary key dipecah menjadi entitas baru, sehingga
entitas
mahasiswa
dipecah
menjadi
2
entitas,
yaitu
–Entitas Mahasiswa 2NF(Nim, Nama, Semester)
–Entitas Ambil_MK (Makul, Nidn, NamaDosen)
HASIL
3A :
Entitas Mahasiswa 2NF
NIM
|
NAMA
|
Sem
|
201001
|
Andika
Saputra
|
1
|
201001
|
Andika
Saputra
|
1
|
201002
|
Biyanti Anggie
|
3
|
201002
|
Biyanti Anggie
|
3
|
201002
|
Biyanti Anggie
|
3
|
201003
|
Naura Putri
|
5
|
201003
|
Naura Putri
|
5
|
201003
|
Naura Putri
|
5
|
Terjadi
kerangkapan data yang tidak diperlukan (redudansi), untuk itu,data yang sama
bisa dihilangkan
Tabel 5 : Entitas Mahasiswa 2NF
(Telah Ternormalisasi Bentuk ke 2)
NIM
|
NAMA
|
Sem
|
2010001
|
Andika
Saputra
|
1
|
2010002
|
Biyanti Anggie
|
3
|
2010003
|
Naura Putri
|
5
|
HASIL
3B: Entitas Ambil_MK 2NF
Tabel 6: Entitas Ambil_MK 2NF (Telah Ternormalisasi Bentuk ke
2)
NIM
|
MaKul
|
NIDN
|
Nama Dosen
|
201001
|
Algoritma
|
1078523
|
Riyanti
Anjani
|
201001
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Orkom
|
1078523
|
Riyanti Anjani
|
201002
|
Metnum
|
1075047
|
Susan
Savitri
|
201003
|
Web
|
1075047
|
Susan
Savitri
|
201003
|
Jarkom
|
1077021
|
Erwin
Masadi
|
201003
|
Metnum
|
1075047
|
Susan
Savitri
|
Catatan : Agar tidak terputus
relasi antara entitas mahasiswa dan
entitas
Ambil_MK,
maka perlu ditambahkan atribut penghubungnya, yaitu NIM.
Ketergantungan Transitif
Ketergantungan
Transitif
tidak
memiliki
ketergantungan
secara
langsung
terhadap
primary key.
Nim
|
Kd_Jur
|
Jurusan
|
Kd_MK
|
Nilai
|
20100001
|
13
|
TIF
|
MK001
|
85
|
20100002
|
11
|
TPS
|
MK002
|
80
|
20100003
|
11
|
TPS
|
MK002
|
90
|
Ketergantungan transitif :
Nim à Kd_Jur (kd_jurusan bergantung pada Nim)
Kd_Jur à Jurusan (jurusan bergantung pada kd_jurusan)
, MAKA
Nim à Jurusan (Jurusan bergantung
transitif
dengan Nim)
Kasus 4: Entitas Ambil_MK 2NF,
Tidak Memenuhi 3NF
Tabel 6: Entitas Ambil_MK 2NF
NIM
|
MaKul
|
NIDN
|
Nama Dosen
|
201001
|
Algoritma
|
1078523
|
Riyanti
Anjani
|
201001
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Struktur Data
|
1078523
|
Riyanti Anjani
|
201002
|
Orkom
|
1078523
|
Riyanti Anjani
|
201002
|
Metnum
|
1075047
|
Susan
Savitri
|
201003
|
Web
|
1075047
|
Susan
Savitri
|
201003
|
Jarkom
|
1077021
|
Erwin
Masadi
|
201003
|
Metnum
|
1075047
|
Susan
Savitri
|
Proses menuju 3NF untuk Entitas Ambil_MK 2NF
•Primary Key (PK) : NIDN
•Atribut yang bergantung dengan PK :
–Nama Dosen
•Atribut yang bergantung transitif dengan PK:
–NIM
–Makul
Untuk memenuhi 2NF, Entitas Ambil_MK 2NF dipecah menjadi 2 Entitas, yaitu
–Entitas Dosen 3NF (NIDN, Nama Dosen)
–Entitas Ambil_MK 3NF (Nim, Makul)
HASIL
4A: Entitas Dosen 3NF
Tabel 7: Entitas Dosen 3NF (Telah Ternormalisasi Bentuk ke 3)
NIDN
|
Nama Dosen
|
1078523
|
Riyanti
Anjani
|
1078523
|
Riyanti Anjani
|
1078523
|
Riyanti Anjani
|
1078523
|
Riyanti Anjani
|
1075047
|
Susan
Savitri
|
1075047
|
Susan
Savitri
|
1077021
|
Erwin
Masadi
|
1075047
|
Susan
Savitri
|
Menjadi:
NIDN
|
Nama Dosen
|
1078523
|
Riyanti
Anjani
|
1075047
|
Susan
Savitri
|
1077021
|
Erwin
Masadi
|
Keterangan : Data yang sama pada
tabel sebelah kiri di buang, sehingga akan menghasilkan tabel sebelah kanan
HASIL
4B : Entitas Ambil_MK memenuhi 3NF
NIM
|
Makul
|
201001
|
Algoritma
|
201001
|
Struktur Data
|
201002
|
Struktur Data
|
201002
|
Orkom
|
201002
|
Metnum
|
201003
|
Web
|
201003
|
Jarkom
|
201003
|
Metnum
|
Menjadi :
Tabel 8: Entitas Ambil_MK 3NF (Telah Ternormalisasi Bentuk ke
3)
NIM
|
Makul
|
NIDN
|
201001
|
Algoritma
|
1078523
|
201001
|
Struktur Data
|
1078523
|
201002
|
Struktur Data
|
1078523
|
201002
|
Orkom
|
1078523
|
201002
|
Metnum
|
1075047
|
201003
|
Web
|
1075047
|
201003
|
Jarkom
|
1077021
|
201003
|
Metnum
|
1075047
|
Catatan : Agar tidak terputus
relasi antara entitas dosen 3NF dan
entitas
Ambil_MK 3NF, maka perlu ditambahkan atribut
penghubungnya, yaitu NIDN
Tambahan
Tabel 8: Entitas Makul 3NF (Telah Ternormalisasi Bentuk ke 3)
Kd-MK
|
MaKul
|
A
|
Algoritma
|
B
|
Struktur Data
|
B
|
Struktur Data
|
C
|
Orkom
|
D
|
Metnum
|
E
|
Web
|
F
|
Jarkom
|
D
|
Metnum
|
Menjadi:
Kd-MK
|
MaKul
|
A
|
Algoritma
|
B
|
Struktur Data
|
C
|
Orkom
|
D
|
Metnum
|
E
|
Web
|
F
|
Jarkom
|
Keterangan : Data yang sama pada
tabel sebelah kiri di buang, sehingga akan menghasilkan tabel sebelah kanan
Demikianlah, Pembahasan mengenai Normalisasi Database beserta Contoh Kasus dan penyelesaian Normalisasi. Semoga Bermanfaat.
3 komentar
Click here for komentarmalah bingung sumpah
ReplyIyaa bingung
ReplyMAKASIH KA
ReplySilahkan berkomentar secara bijak dan sesuai dengan topik pembahasan. Terimakasih. ConversionConversion EmoticonEmoticon