Normalisasi database merupakan salah satu konsep penting dalam desain basis data yang wajib dikuasai oleh mahasiswa dan pemula dalam dunia komputer. Normalisasi membantu mengatur data agar tersimpan secara efisien, mengurangi redundansi, dan menjaga integritas data. Untuk dapat memahami normalisasi secara menyeluruh, latihan soal sangat penting. Artikel ini akan memberikan latihan soal normalisasi database lengkap untuk mahasiswa dan pemula, disertai penjelasan dan jawaban, sehingga memudahkan pembaca belajar dengan sistematis dan siap menghadapi ujian atau tugas kuliah.
Pengertian Normalisasi Database
Normalisasi adalah proses penyusunan tabel dalam database agar data tersimpan secara terstruktur, efisien, dan bebas dari redundansi yang tidak perlu. Normalisasi biasanya dilakukan dalam beberapa tahapan yang disebut bentuk normal (normal form), yaitu:
- 1NF (First Normal Form): Memastikan setiap kolom memiliki nilai atomik dan tidak ada data berulang dalam satu kolom.
- 2NF (Second Normal Form): Semua kolom non-primer harus sepenuhnya bergantung pada primary key, menghilangkan dependensi parsial.
- 3NF (Third Normal Form): Menghapus dependensi transitif, kolom non-primer tidak bergantung pada kolom non-primer lain.
- BCNF (Boyce-Codd Normal Form): Perbaikan dari 3NF untuk mengatasi anomali tertentu dalam struktur tabel.
Tujuan normalisasi adalah untuk:
- Mengurangi redundansi data agar database lebih efisien.
- Menjaga integritas dan konsistensi data.
- Memudahkan pemeliharaan database.
- Meningkatkan performa query dan operasi basis data.
Tips Mengerjakan Latihan Soal Normalisasi Database
- Identifikasi Primary Key. Primary key adalah kolom atau kombinasi kolom yang unik untuk setiap baris data.
- Periksa atomicity data. Pastikan setiap kolom hanya menyimpan satu nilai tunggal (1NF).
- Periksa dependensi kolom. Kolom non-primer harus bergantung sepenuhnya pada primary key (2NF).
- Hapus dependensi transitif. Kolom non-primer tidak boleh bergantung pada kolom non-primer lain (3NF).
- Latihan rutin. Semakin sering berlatih soal normalisasi, semakin cepat dan tepat kemampuan analisis tabel.
Contoh Latihan Soal Normalisasi Database
Berikut latihan soal normalisasi database untuk mahasiswa dan pemula, mulai dari 1NF hingga 3NF dan BCNF, disertai jawaban dan pembahasan.
Soal 1: Identifikasi 1NF
Diberikan tabel berikut:
| ID_Mahasiswa | Nama_Mahasiswa | Alamat | Mata_Kuliah |
|---|---|---|---|
| 001 | Andi | Jakarta | Matematika, Fisika |
| 002 | Budi | Bandung | Kimia |
Pertanyaan: Apakah tabel ini sudah memenuhi 1NF? Jika tidak, normalisasi hingga 1NF.
Jawaban dan Pembahasan:
Tabel belum memenuhi 1NF karena kolom Mata_Kuliah menyimpan lebih dari satu nilai dalam satu baris. 1NF mengharuskan setiap kolom bersifat atomik.
Hasil Normalisasi 1NF:
| ID_Mahasiswa | Nama_Mahasiswa | Alamat | Mata_Kuliah |
|---|---|---|---|
| 001 | Andi | Jakarta | Matematika |
| 001 | Andi | Jakarta | Fisika |
| 002 | Budi | Bandung | Kimia |
Soal 2: Identifikasi 2NF
Tabel berikut sudah dalam 1NF:
| ID_Mahasiswa | ID_Mata_Kuliah | Nama_Mahasiswa | Nama_Mata_Kuliah | Nilai |
|---|---|---|---|---|
| 001 | M001 | Andi | Matematika | 85 |
| 001 | M002 | Andi | Fisika | 90 |
| 002 | M003 | Budi | Kimia | 80 |
Pertanyaan: Apakah tabel ini sudah memenuhi 2NF? Jika tidak, normalisasi hingga 2NF.
Baca Juga : Contoh Soal Perkalian Cross Vektor 3 Dimensi Beserta Jawabannya
Jawaban dan Pembahasan:
Tabel belum memenuhi 2NF karena kolom Nama_Mahasiswa bergantung pada ID_Mahasiswa, dan Nama_Mata_Kuliah bergantung pada ID_Mata_Kuliah, bukan pada primary key kombinasi (ID_Mahasiswa + ID_Mata_Kuliah).
Hasil Normalisasi 2NF:
Tabel Mahasiswa:
| ID_Mahasiswa | Nama_Mahasiswa |
|---|---|
| 001 | Andi |
| 002 | Budi |
Tabel Mata_Kuliah:
| ID_Mata_Kuliah | Nama_Mata_Kuliah |
|---|---|
| M001 | Matematika |
| M002 | Fisika |
| M003 | Kimia |
Tabel Nilai:
| ID_Mahasiswa | ID_Mata_Kuliah | Nilai |
|---|---|---|
| 001 | M001 | 85 |
| 001 | M002 | 90 |
| 002 | M003 | 80 |
Soal 3: Identifikasi 3NF
Diberikan tabel berikut (sudah dalam 2NF):
| ID_Produk | Nama_Produk | Kategori | Harga | Supplier |
|---|---|---|---|---|
| P001 | Laptop | Elektronik | 10000000 | Supplier A |
| P002 | Mouse | Elektronik | 500000 | Supplier B |
| P003 | Buku | Pendidikan | 80000 | Supplier C |
Pertanyaan: Apakah tabel ini sudah memenuhi 3NF? Jika tidak, normalisasi hingga 3NF.
Jawaban dan Pembahasan:
Tabel belum memenuhi 3NF karena kolom Kategori dan Supplier bergantung pada kolom Nama_Produk, bukan hanya pada primary key ID_Produk. Ini disebut dependensi transitif.
Hasil Normalisasi 3NF:
Tabel Produk:
| ID_Produk | Nama_Produk | Harga | ID_Kategori | ID_Supplier |
|---|---|---|---|---|
| P001 | Laptop | 10000000 | K001 | S001 |
| P002 | Mouse | 500000 | K001 | S002 |
| P003 | Buku | 80000 | K002 | S003 |
Tabel Kategori:
| ID_Kategori | Kategori |
|---|---|
| K001 | Elektronik |
| K002 | Pendidikan |
Tabel Supplier:
| ID_Supplier | Supplier |
|---|---|
| S001 | Supplier A |
| S002 | Supplier B |
| S003 | Supplier C |
Soal 4: Latihan BCNF
Diberikan tabel:
| ID_Dosen | Mata_Kuliah | Ruang |
|---|---|---|
| D001 | Matematika | R101 |
| D002 | Fisika | R102 |
| D003 | Matematika | R103 |
Pertanyaan: Apakah tabel ini sudah memenuhi BCNF? Jika tidak, jelaskan normalisasinya.
baca Juga : Universitas Teknokrat Indonesia Masuk 10 Besar Kampus Swasta Terbaik Nasional Versi AppliedHE ASEAN 2026
Jawaban dan Pembahasan:
Tabel belum memenuhi BCNF karena satu Mata_Kuliah dapat diajar oleh lebih dari satu dosen. Ini menciptakan dependensi parsial pada kandidat key (Mata_Kuliah → Ruang).
Normalisasi BCNF:
Tabel Mata_Kuliah:
| Mata_Kuliah | Ruang |
|---|---|
| Matematika | R101 |
| Matematika | R103 |
| Fisika | R102 |
Tabel Dosen_Mata_Kuliah:
| ID_Dosen | Mata_Kuliah |
|---|---|
| D001 | Matematika |
| D002 | Fisika |
| D003 | Matematika |
Soal 5: Latihan Gabungan Normalisasi
Diberikan tabel penjualan:
| ID_Pesanan | Tanggal | Nama_Pelanggan | Produk | Jumlah | Harga |
|---|---|---|---|---|---|
| P001 | 2026-01-01 | Andi | Laptop | 1 | 10000000 |
| P002 | 2026-01-02 | Budi | Mouse | 2 | 500000 |
| P003 | 2026-01-02 | Andi | Keyboard | 1 | 300000 |
Pertanyaan: Normalisasi tabel ini hingga 3NF.
Jawaban dan Pembahasan:
Tabel memiliki redundansi pada pelanggan dan produk.
Tabel Pelanggan:
| ID_Pelanggan | Nama_Pelanggan |
|---|---|
| 001 | Andi |
| 002 | Budi |
Tabel Produk:
| ID_Produk | Produk | Harga |
|---|---|---|
| 001 | Laptop | 10000000 |
| 002 | Mouse | 250000 |
| 003 | Keyboard | 300000 |
Tabel Pesanan:
| ID_Pesanan | Tanggal | ID_Pelanggan |
|---|---|---|
| P001 | 2026-01-01 | 001 |
| P002 | 2026-01-02 | 002 |
| P003 | 2026-01-02 | 001 |
Tabel Pesanan_Detail:
| ID_Pesanan | ID_Produk | Jumlah |
|---|---|---|
| P001 | 001 | 1 |
| P002 | 002 | 2 |
| P003 | 003 | 1 |
Kesimpulan
Latihan soal normalisasi database sangat penting bagi mahasiswa dan pemula untuk memahami konsep normalisasi dari 1NF hingga BCNF. Dengan latihan ini, siswa dapat:
- Mengenali kolom yang tidak atomik dan melakukan 1NF.
- Menghapus dependensi parsial dan mencapai 2NF.
- Menghilangkan dependensi transitif dan mencapai 3NF.
- Memperbaiki anomali tabel untuk BCNF.
Latihan rutin akan membuat mahasiswa lebih cepat mengenali pola, memahami dependensi antar kolom, dan mampu menormalisasi tabel dengan tepat. Artikel ini SEO-friendly karena menggunakan kata kunci “Latihan Soal Normalisasi Database untuk Mahasiswa dan Pemula”, subjudul yang jelas, dan struktur soal-pembahasan yang sistematis, sehingga mudah ditemukan oleh mahasiswa yang mencari referensi belajar normalisasi database.
Penulis : Reyfen Andrian
Post Comment