Tampilan
Pertemuan 14: Bentuk Normal 3
Tujuan pembelajaran
Setelah pertemuan ini, Anda mampu:
- menjelaskan ketergantungan fungsional (A → B);
- mengenali kolom yang tidak bergantung pada key;
- membawa tabel 2NF ke 3NF.
Peta materi
1. Ketergantungan fungsional
Jika nilai atribut A menentukan nilai atribut B secara pasti, kita katakan B bergantung pada A, ditulis A → B.
| Contoh | Benar? | Alasan |
|---|---|---|
| nim → nama | Ya | Satu NIM pasti satu nama |
| sku → nama_produk, harga | Ya | Satu SKU pasti satu produk |
| nama → nim | Tidak | Dua mahasiswa bisa bernama sama |
Biasanya A adalah attribute key dan B adalah atribut non-key. Pada 3NF kita memeriksa: apakah setiap atribut non-key benar-benar bergantung pada key tabelnya?
2. Aturan Bentuk Normal Ketiga (3NF)
3NF
- Tabel sudah dalam bentuk 2NF.
- Pindahkan kolom yang tidak bergantung pada key ke tabel lain.
Alasannya: jika kolom tersebut berubah, kita takut harus mengubah banyak baris.
3. Menemukan masalahnya pada tabel order
Dari Pertemuan 13, tabel order kita:
| kode_order PK | tanggal | pembeli | alamat_pengiriman | penjual |
|---|---|---|---|---|
| O001 | 2024-01-10 | Joko | Jl. Mawar 1 | Galeri Olahraga |
| O002 | 2024-01-12 | Joko | Jl. Mawar 1 | Galeri Olahraga |
| O003 | 2024-01-15 | Joko | Jl. Mawar 1 | Toko Botol |
Hanya tanggal yang benar-benar ditentukan oleh kode_order. Kolom pembeli, alamat, dan penjual adalah data milik pembeli, alamat, dan penjual, bukan milik order itu.
Apa risikonya?
Joko pindah rumah. Alamat lama tertulis di tiga baris (dan bisa ratusan pada toko sungguhan).
- Jika semua diubah: pekerjaan berat.
- Jika ada yang terlewat: Joko punya dua alamat berbeda di data. Data tidak konsisten. Masalah ini disebut update anomaly.
4. Memindahkan ke tabel sendiri
| Kolom yang tidak bergantung pada key | Pindah ke tabel |
|---|---|
| Pembeli | pembeli |
| Alamat pengiriman | alamat |
| Penjual | penjual |
Hasil 3NF untuk kasus laporan order:
Enam tabel: pembeli, alamat, penjual, produk, order, detail_order. Sekarang setiap kolom non-key hanya bergantung pada key tabelnya. Joko pindah rumah? Ubah satu baris di tabel alamat.
Diagram lengkap versi PlantUML
Materi asli menyertakan tautan PlantUML dan diagram ERD final di slide 129. Bandingkan dengan diagram di atas.
Catatan pendalaman untuk dosen
Secara formal, 3NF melarang ketergantungan transitif, yaitu key → kolom X → kolom Y, di mana Y bergantung pada X dan bukan langsung pada key. Pada contoh ini, kolom alamat bergantung pada pembeli, bukan pada kode_order.
Latihan
- Tentukan ketergantungan fungsional pada tabel
mahasiswa (nim, nama, kode_prodi, nama_prodi). Mengapanama_prodiperlu dipindah? - Normalisasi tabel
pesanan (kode_pesanan, kode_pelanggan, nama_pelanggan, kota_pelanggan, tanggal)sampai 3NF. - Tulis satu contoh update anomaly dari kasus yang Anda pilih sendiri.
Contoh jawaban
- nim → nama, kode_prodi; kode_prodi → nama_prodi.
nama_prodibergantung padakode_prodi, bukan langsung padanim. Jika nama prodi berganti, kita harus mengubah semua baris mahasiswa prodi itu. Pindahkan ke tabelprodi (kode_prodi PK, nama_prodi). pelanggan (kode_pelanggan PK, nama_pelanggan, kota_pelanggan)danpesanan (kode_pesanan PK, kode_pelanggan FK, tanggal).- Contoh: nama dosen pembimbing tertulis di 40 baris mahasiswa. Dosen berganti nama, hanya 38 baris yang diubah. Dua baris sisanya memakai nama lama.
Kuis cepat
1. Jika nim menentukan nama secara pasti, ditulis...
2. Aturan inti 3NF adalah...
3. Mengapa pembeli, penjual, dan alamat sebaiknya dipisah dari tabel order?
4. Masalah ketika data yang sama tersebar di banyak baris lalu hanya sebagian yang diubah disebut...
Terjawab 0 dari 4 soal
Rangkuman
Yang harus diingat
- A → B: nilai A menentukan nilai B.
- 3NF: setiap kolom non-key harus bergantung pada key tabelnya; yang tidak, dipindah ke tabel lain.
- Tujuannya: perubahan data cukup dilakukan di satu tempat.
- Praktiknya, 3NF sudah cukup baik untuk kebanyakan sistem.
| Istilah | Arti |
|---|---|
| Ketergantungan fungsional | A menentukan B secara pasti (A → B) |
| Update anomaly | Data tidak konsisten karena perubahan tidak merata |
| 3NF | Bentuk normal ketiga |
Tugas mandiri
Ambil nota atau formulir dari tugas Pertemuan 12-13. Normalisasikan sampai 3NF, tuliskan ketergantungan fungsionalnya, dan gambar ERD akhirnya. Tulis satu update anomaly yang terhindar berkat 3NF.
Progres tersimpan di browser Anda dan tampil di halaman beranda.