Pengertian Normalisasi
Normalisasi adalah proses mengorganisasi data ke dalam tabel-tabel yang memiliki hubungan logis sehingga mengurangi redundansi (pengulangan data) dan menghindari terjadinya anomali pada database.
Melalui normalisasi, setiap data akan ditempatkan pada tabel yang sesuai sehingga database menjadi lebih terstruktur dan mudah dikelola.
Tujuan Normalisasi
Normalisasi dilakukan dengan tujuan untuk:
- Mengurangi pengulangan data (redundansi).
- Menjaga konsistensi data.
- Menghindari kesalahan saat menambah, mengubah, atau menghapus data.
- Mempermudah proses pemeliharaan database.
- Meningkatkan efisiensi penyimpanan data.
Manfaat Normalisasi
Beberapa manfaat normalisasi antara lain:
- Database menjadi lebih terstruktur.
- Mengurangi penggunaan ruang penyimpanan.
- Mempermudah pencarian data.
- Meminimalkan kesalahan dalam pengelolaan data.
- Mempermudah pengembangan sistem di masa depan.
Masalah pada Database yang Belum Dinormalisasi
Jika database belum dinormalisasi, dapat muncul beberapa masalah berikut.
1. Redundansi Data
Redundansi adalah penyimpanan data yang sama secara berulang.
Contoh:
| NIM | Nama Mahasiswa | Mata Kuliah | Nama Dosen |
|---|---|---|---|
| 231011001 | Indah | Basis Data | Bapak Andi |
| 231011001 | Indah | Pemrograman Web | Bapak Budi |
Nama mahasiswa Indah ditulis berulang kali sehingga menyebabkan pemborosan penyimpanan.
2. Anomali Data
Anomali adalah masalah yang muncul ketika melakukan operasi pada database.
a. Insert Anomaly
Terjadi ketika data tidak dapat ditambahkan karena informasi lain belum tersedia.
Contoh:
Tidak dapat menambahkan data mata kuliah baru karena belum ada mahasiswa yang mengambil mata kuliah tersebut.
b. Update Anomaly
Terjadi ketika perubahan data harus dilakukan di banyak tempat.
Contoh:
Jika nama dosen berubah, maka semua baris yang memuat nama dosen tersebut harus diperbarui.
c. Delete Anomaly
Terjadi ketika penghapusan suatu data menyebabkan hilangnya informasi lain yang masih diperlukan.
Contoh:
Menghapus data mahasiswa terakhir yang mengambil suatu mata kuliah menyebabkan informasi mengenai mata kuliah tersebut ikut hilang.
Bentuk-Bentuk Normalisasi
Normalisasi dilakukan secara bertahap mulai dari Unnormalized Form (UNF) hingga bentuk normal tertentu.
1. Unnormalized Form (UNF)
UNF adalah kondisi awal di mana data masih belum terstruktur dan masih terdapat kelompok data yang berulang.
Contoh
| NIM | Nama | Mata Kuliah |
| 231011001 | Indah | Basis Data, Pemrograman Web |
Pada contoh di atas, kolom Mata Kuliah berisi lebih dari satu nilai sehingga belum memenuhi aturan normalisasi.
2. First Normal Form (1NF)
Suatu tabel dikatakan memenuhi 1NF apabila:
- Setiap kolom hanya memiliki satu nilai (Atomic Value).
- Tidak terdapat kelompok data yang berulang.
- Setiap baris bersifat unik.
Contoh
| NIM | Nama | Mata Kuliah |
| 231011001 | Indah | Basis Data |
| 231011001 | Indah | Pemrograman Web |
Data sudah dipisahkan sehingga setiap sel hanya memiliki satu nilai.
3. Second Normal Form (2NF)
Suatu tabel memenuhi 2NF apabila:
- Sudah memenuhi 1NF.
- Setiap atribut non-key bergantung sepenuhnya pada Primary Key.
Contoh
Tabel Mahasiswa
| NIM (PK) | Nama |
| 231011001 | Indah |
| 231011002 | Andi |
Tabel Mata Kuliah
| KodeMK (PK) | Nama Mata Kuliah |
| IF201 | Sistem Basis Data |
| IF202 | Pemrograman Web |
Tabel KRS
| NIM (FK) | KodeMK (FK) |
| 231011001 | IF201 |
| 231011001 | IF202 |
Data mahasiswa dan mata kuliah dipisahkan sehingga tidak terjadi pengulangan.
4. Third Normal Form (3NF)
Suatu tabel memenuhi 3NF apabila:
- Sudah memenuhi 2NF.
- Tidak terdapat ketergantungan transitif (Transitive Dependency), yaitu atribut non-key tidak boleh bergantung pada atribut non-key lainnya.
Contoh
Sebelum 3NF
| NIM | Nama | Kode Prodi | Nama Prodi |
Sesudah 3NF
Tabel Mahasiswa
| NIM | Nama | Kode Prodi |
Tabel Program Studi
| Kode Prodi | Nama Prodi |
Dengan demikian, informasi program studi tidak disimpan berulang pada tabel mahasiswa.
Boyce-Codd Normal Form (BCNF)
BCNF merupakan penyempurnaan dari 3NF.
Pada BCNF, setiap determinan harus merupakan kandidat kunci (Candidate Key).
BCNF digunakan pada database yang memiliki struktur hubungan lebih kompleks.
Contoh Proses Normalisasi
Misalkan terdapat data berikut.
| NIM | Nama | Mata Kuliah | Dosen |
| 231011001 | Indah | Basis Data | Andi |
| 231011001 | Indah | Pemrograman Web | Budi |
Setelah dinormalisasi menjadi:
Tabel Mahasiswa
| NIM | Nama |
| 231011001 | Indah |
Tabel Mata Kuliah
| KodeMK | Nama Mata Kuliah | Dosen |
| IF201 | Basis Data | Andi |
| IF202 | Pemrograman Web | Budi |
Tabel KRS
| NIM | KodeMK |
| 231011001 | IF201 |
| 231011001 | IF202 |
Struktur database menjadi lebih rapi dan tidak terjadi pengulangan data.
Ringkasan
- Normalisasi adalah proses penyusunan tabel agar database menjadi lebih efisien dan bebas redundansi.
- Tujuan utama normalisasi adalah mengurangi pengulangan data serta menghindari anomali.
- Tahapan normalisasi yang umum digunakan adalah 1NF, 2NF, dan 3NF.
- Normalisasi menghasilkan struktur database yang lebih mudah dipelihara dan dikembangkan.