Skip to content
  • Beranda
  • Tentang
  • Mengapa
  • Program
  • Fasilitas
  • Spotlight
    • Acara Mendatang
    • Berita Terbaru
  • Daftar
  • EN
    • ID
  • Beranda
  • Tentang
  • Mengapa
  • Program
  • Fasilitas
  • Spotlight
    • Acara Mendatang
    • Berita Terbaru
  • Daftar
  • EN
    • ID

Memahami Normalisasi: Dari 1NF hingga 4NF

March 13, 2025

by Yulia, S.T., M.Kom.

Apa Itu Normalisasi?

Normalisasi adalah proses sistematis dalam desain basis data untuk mengorganisir data guna mengurangi redundansi dan meningkatkan integritas data. Proses ini bertujuan untuk memastikan bahwa setiap elemen data disimpan dengan cara yang paling efisien dan bebas dari anomali saat operasi CRUD (Create, Read, Update, Delete).

Mengapa Normalisasi Penting?

  • Menghindari Redundansi Data: Data tidak tersimpan secara duplikat, sehingga lebih hemat ruang penyimpanan.
  • Meningkatkan Konsistensi: Perubahan data dilakukan hanya pada satu tempat.
  • Memperbaiki Integritas Data: Mencegah ketidaksesuaian data akibat penyimpanan ganda.
  • Mengurangi Anomali Data: Mencegah anomali saat memasukkan, menghapus, atau memperbarui data.

Tahapan Normalisasi

Normalisasi dilakukan melalui beberapa tahapan yang disebut Bentuk Normal (Normal Form – NF). Berikut adalah bentuk normalisasi dari 1NF hingga 4NF, beserta contoh penerapannya.

  1. First Normal Form (1NF) – Menghindari Data yang Tidak Atomik

Aturan 1NF:

  1. Setiap kolom hanya boleh memiliki satu nilai per sel (atomic values).
  2. Setiap baris dalam tabel harus unik dan memiliki kunci utama (Primary Key).

Contoh Sebelum 1NF (Belum Ternormalisasi)

Misalkan kita memiliki tabel Orders yang menyimpan informasi pemesanan:

Order_IDCustomerProductsQuantity
1001AliceLaptop, Mouse1, 2
1002BobKeyboard1

πŸ‘‰ Masalah:

  • Kolom Products memiliki lebih dari satu nilai dalam satu sel, melanggar aturan atomicity.
  • Tidak ada struktur yang jelas untuk banyak produk dalam satu order.

Setelah 1NF (Setiap Sel Berisi Satu Nilai Saja)

Order_IDCustomerProductQuantity
1001AliceLaptop1
1001AliceMouse2
1002BobKeyboard1

Primary Key: (Order_ID, Product)

πŸ“Œ Kenapa Sekarang Sudah Memenuhi 1NF?

βœ… Setiap sel hanya memiliki satu nilai per baris (tidak ada daftar nilai dalam satu sel).
βœ… Tidak ada data yang bersarang atau bersifat repetitif dalam satu atribut.
βœ… Setiap baris bersifat unik dan memiliki Primary Key yang jelas.

  1. Second Normal Form (2NF) – Menghilangkan Partial Dependency

Aturan 2NF:

  1. Tabel harus memenuhi 1NF.
  2. Setiap kolom non-kunci harus sepenuhnya bergantung pada kunci utama.
  3. Jika kunci utama adalah kombinasi dari beberapa kolom, maka tidak boleh ada atribut yang hanya bergantung pada sebagian dari kunci tersebut (Partial Dependency).

Contoh Sebelum 2NF (Mengandung Partial Dependency)

Order_IDCustomerProduct_IDProduct_NameQuantity
1001AliceP001Laptop1
1001AliceP002Mouse2
1002BobP003Keyboard1

Primary Key: (Order_ID, Product_ID)

πŸ‘‰ Masalah:

  • Customer hanya bergantung pada Order_ID, bukan pada (Order_ID, Product_ID).
  • Product_Name hanya bergantung pada Product_ID, bukan pada (Order_ID, Product_ID).

Setelah 2NF (Pisahkan Tabel Customer dan Product)

Tabel Orders (Hubungan Order dan Customer)

Order_IDCustomer_ID
1001C001
1002C002

Primary Key: Order_ID

Tabel Order_Details (Detail Produk dalam Order)

Order_IDProduct_IDQuantity
1001P0011
1001P0022
1002P0031

Primary Key: (Order_ID, Product_ID)

Tabel Customers

Customer_IDCustomer_Name
C001Alice
C002Bob

Primary Key: Customer_ID

Tabel Products

Product_IDProduct_Name
P001Laptop
P002Mouse
P003Keyboard

Primary Key: Product_ID

πŸ“Œ Kenapa Sekarang Sudah Memenuhi 2NF?

βœ… Setiap kolom non-kunci sekarang sepenuhnya bergantung pada kunci utama (tidak ada lagi kolom yang hanya bergantung pada sebagian dari kunci utama).
βœ… Tabel Orders hanya menyimpan hubungan antara Order_ID dan Customer_ID, tanpa informasi produk.
βœ… Tabel Order_Details hanya menyimpan informasi produk dalam setiap order, tanpa informasi pelanggan.
βœ… Tabel Products hanya menyimpan informasi tentang produk, tanpa informasi order atau customer.

  1. 3rd Normal Form (3NF) – Menghilangkan Ketergantungan Transitif

Aturan 3NF:

  1. Tabel harus memenuhi 2NF.
  2. Tidak boleh ada ketergantungan transitif, yaitu atribut non-kunci tidak boleh bergantung pada atribut non-kunci lainnya.
  3. Setiap atribut non-kunci harus bergantung hanya pada kunci utama.

πŸ“Œ Contoh Sebelum 3NF (Belum Ternormalisasi Sepenuhnya)

Misalkan kita memiliki tabel Orders berikut:

Order_IDCustomer_IDCustomer_NameCustomer_Address
1001C001AliceNew York
1002C002BobChicago
1003C001AliceNew York

Primary Key: Order_ID

πŸ‘‰ Masalah:

  • Customer_Name dan Customer_Address bergantung pada Customer_ID, bukan pada Order_ID.
  • Customer_Name dan Customer_Address adalah atribut non-kunci yang bergantung pada atribut non-kunci lainnya (Customer_ID).
  • Ini adalah ketergantungan transitif, yang melanggar 3NF.

πŸ“Œ Setelah 3NF (Pemisahan Tabel untuk Menghilangkan Ketergantungan Transitif)

Agar tabel memenuhi 3NF, kita harus memisahkan data pelanggan ke tabel tersendiri.

βœ… Tabel Orders (Sekarang Hanya Berisi Informasi Order)

Order_IDCustomer_ID
1001C001
1002C002
1003C001

Primary Key: Order_ID

βœ… Tabel Customers (Sekarang Berisi Informasi Pelanggan Terpisah)

Customer_IDCustomer_NameCustomer_Address
C001AliceNew York
C002BobChicago

Primary Key: Customer_ID

πŸ“Œ Kenapa Sekarang Sudah Memenuhi 3NF?

βœ… Tabel Orders hanya menyimpan informasi yang bergantung pada Order_ID (tidak ada atribut non-kunci yang bergantung pada atribut non-kunci lain).
βœ… Tabel Customers hanya menyimpan informasi pelanggan dan Customer_Address tetap bergantung pada Customer_ID.
βœ… Tidak ada ketergantungan transitif, karena Customer_Name dan Customer_Address sekarang hanya bergantung pada Customer_ID, bukan pada Order_ID.

  1. BCNF (Boyce-Codd Normal Form) – Menghilangkan Ketergantungan Fungsional Parsial

Aturan BCNF:

  1. Tabel harus memenuhi 3NF.
  2. Setiap determinan* dalam tabel harus merupakan candidate key**.

*) Determinan adalah atribut atau sekumpulan atribut dalam sebuah tabel yang menentukan nilai atribut lain. Dengan kata lain, jika kita mengetahui nilai dari determinan, maka kita dapat menentukan nilai atribut lain yang bergantung padanya.

Notasi: Jika A β†’ B, maka A adalah determinan dan B adalah atribut yang bergantung pada A (Bergantung secara fungsional pada A).

**) Candidate Key adalah atribut atau kombinasi atribut yang dapat digunakan sebagai kunci utama (Primary Key) karena dapat secara unik mengidentifikasi setiap baris dalam tabel.

Sederhananya, Candidate Key adalah sekumpulan kunci potensial yang memenuhi syarat sebagai Primary Key. Dari Candidate Key yang tersedia, kita memilih satu sebagai Primary Key, sementara yang lain bisa menjadi Alternate Key.

Contoh Sebelum BCNF (Melanggar Aturan Candidate Key)

Student_IDCourse_IDInstructor
S001C001Mr. John
S002C002Dr. Smith
S001C002Dr. Smith

Candidate Key: (Student_ID, Course_ID)

πŸ‘‰ Masalah:

  • Instructor hanya bergantung pada Course, bukan pada (Student_ID, Course_ID). Course bukan candidate key.

Setelah BCNF (Pisahkan Relasi Dosen dan Mata Kuliah)

Tabel Student_Course

Student_IDCourse_ID
S001C001
S002C002
S001C002

Primary Key: (Student_ID, Course_ID)

Tabel Courses

Course_IDCourse_NameInstructor
C001MathMr. John
C002ScienceDr. Smith

Primary Key: Course_ID

πŸ“Œ Kenapa Sekarang Sudah Memenuhi BCNF?

βœ… Sekarang setiap tabel hanya memiliki atribut yang bergantung sepenuhnya pada Candidate Key masing-masing.
βœ… Tidak ada determinan yang bukan Candidate Key.
βœ… Struktur tabel lebih efisien dan bebas dari anomali data yang mungkin terjadi sebelum BCNF diterapkan.

  1. Fourth Normal Form (4NF) – Menghindari Multi-Valued Dependency (MVD)

Fourth Normal Form (4NF) adalah bentuk normalisasi yang memastikan bahwa tidak ada ketergantungan multi-nilai (Multi-Valued Dependency / MVD) dalam tabel.

Aturan 4NF:

  1. Tabel harus memenuhi BCNF.
  2. Tidak boleh ada Multi-Valued Dependency (MVD)*.
  3. Jika satu atribut memiliki lebih dari satu nilai independen terhadap kunci utama, maka tabel harus dipecah.

4NF memastikan bahwa setiap atribut dalam tabel hanya menyimpan satu jenis hubungan dengan kunci utama, sehingga tidak ada dua hubungan independen dalam satu tabel.

*) Β Multi-Valued Dependency (MVD) terjadi ketika satu atribut dalam tabel memiliki lebih dari satu nilai yang independen dari atribut lain dalam tabel.

Jika A β†’β†’ B, maka B memiliki banyak nilai untuk A, tetapi B dan atribut lain dalam tabel tidak memiliki hubungan langsung satu sama lain.

Contoh Multi-Valued Dependency dalam Tabel (Belum 4NF)

Misalkan kita memiliki tabel Student_Course_Hobby, yang menyimpan data mahasiswa, mata kuliah yang diambil, dan hobi mereka.

Student_IDCourseHobby
S001MathChess
S001MathMusic
S001ScienceChess
S002ScienceMusic

πŸ‘‰ Masalah:

  • Student_ID memiliki Multi-Valued Dependency dengan Course dan Hobby.
  • Course dan Hobby tidak bergantung satu sama lain tetapi masih disimpan dalam satu tabel.
  • Ini menyebabkan redundansi data dan sulit dalam pengelolaan.

πŸ“Œ Cara menormalkan ke 4NF (Memisahkan Relasi yang Tidak Saling Bergantung)

Agar tabel memenuhi 4NF, kita harus memisahkan hubungan independen menjadi dua tabel berbeda.

βœ… Tabel Student_Course (Relasi Mahasiswa dan Mata Kuliah)

Student_IDCourse
S001Math
S001Science
S002Science

Primary Key: (Student_ID, Course)

βœ… Tabel Student_Hobby (Relasi Mahasiswa dan Hobi)

Student_IDHobby
S001Chess
S001Music
S002Music

Primary Key: (Student_ID, Hobby)

πŸ“Œ Kenapa Sekarang Sudah Memenuhi 4NF?

βœ… Tabel Student_Course hanya berisi hubungan antara mahasiswa dan mata kuliah, tanpa informasi tentang hobi.
βœ… Tabel Student_Hobby hanya berisi hubungan antara mahasiswa dan hobi, tanpa informasi tentang mata kuliah.
βœ… Tidak ada lagi Multi-Valued Dependency dalam satu tabel.

Kesimpulan

Normalisasi adalah proses penting dalam desain basis data untuk menghindari duplikasi, meningkatkan efisiensi, dan menjaga integritas data. Dengan menerapkan normalisasi hingga 4NF, database dapat berfungsi lebih optimal dan lebih mudah dikelola.

Semoga panduan ini membantu dalam memahami konsep normalisasi dengan lebih baik! πŸš€

#Normalisasi #NormalisasiDatabase #DatabaseNormalization #DatabaseDesign #1NF #2NF #3NF #BCNF #4NF #SQLBestPractices #DataManagement #DatabaseOptimization #RedundansiData #IntegritasData #CRUDOperations #BoyceCoddNormalForm #RelationalDatabase #DatabaseBestPractices

Facebook
LinkedIn
WhatsApp
Email
Tautan Penting
  • Petra e-Journal
  • Pusat Karir
  • Perpustakaan Digital
  • Katalog Orang Tua Mahasiswa Baru
  • Petra e-Journal
  • Pusat Karir
  • Perpustakaan Digital
  • Katalog Orang Tua Mahasiswa Baru

Beasiswa

Sebagai Universitas Kristen terkemuka di dunia, UK Petra berkomitmen untuk membina generasi masa depan bangsa dari berbagai kalangan tanpa memandang latar belakang.

Pelajari Lebih Lanjut

Frequently Asked Questions

Dari kewajiban keuangan hingga syarat mahasiswa internasional, kamu bisa menemukan pertanyaan-pertanyaan yang sering diajukan di bawah ini.

Baca LEbih Lanjut
Facebook Instagram Youtube Tiktok
Alamat

Jl. Siwalankerto No.121-131, Siwalankerto, Kec. Wonocolo, Kota SBY, Jawa Timur 60236

Kontak

T: +62 31 8494830,
+62 31 8494831,
+62 31 8439040,
+62 31 2983000

F: +62 31 8436418
E: [email protected]

Tautan Penting
  • Petra e-Journal
  • Pusat Karir
  • Perpustakaan Digital
  • Katalog Orang Tua Mahasiswa Baru
  • Petra e-Journal
  • Pusat Karir
  • Perpustakaan Digital
  • Katalog Orang Tua Mahasiswa Baru

Copyright Β© 2023 Petra Christian University. All rights reserved.