Tim Dosen
Semester Genap 2020/2021
Kerangka Bahasan
• Program Learning Outcome (PLO)
• Course Learning Outcome (CLO)
• Review Materi Pertemuan #2
• Materi Pertemuan #3
• Konsep ketergantungan fungsional dan key
• Penerapan ketergantungan fungsional dan key, disertai contoh
• Kesimpulan
• Tugas
• Referensi
PLO – CLO
• PLO-04
• Mampu melakukan kegiatan pengumpulan, menganalisis, dan
mensintesis data untuk menyelesaikan permasalahan yang kompleks.
• CLO-01
• Mahasiswa mampu menjelaskan konsep basis data relasional dan
non-relasional dan perbedaan keduanya, serta menerapkan operasi
aljabar relasional menggunakan relasi sederhana
Review Materi #2
Review Materi #2
Contoh Skema Basis data relasional
• Relasi DOSEN
NIP Nama_dosen Jenis_kelamin Alamat Kota
002001 Mawar Pria Jl. Delima Kota Bandung
002002 Melati Wanita Jl. Apel Kab. Bandung
002003 Lily Wanita Jl. Semangka Cimahi
002004 Daisy Pria Jl. Anggur Kota Bandung
¡ Bagian sebelah kiri panah disebut penentu (determinan) dan sebelah kanan panah
disebut yang tergantung (dependen).
¡ Tanda { } biasa digunakan kalau ada lebih dari satu atribut, baik pada penentu maupun
yang tergantung.
Contoh Ketergantungan Fungsional
• Relasi NILAI
Nama MK NIM Nama Mahasiswa Nilai
Basis Data Lanjut 001 Delima A
Analisis Jejaring Sosial 002 Kenang AB
Pemodelan Basis Data 003 Mawar B
Data Mining 004 Melati A
Ketergantungan fungsional:
NIM → Nama Mahasiswa
{Nama MK, NIM} à Nilai
• Ketergantungan fungsional ??
Ketergantungan fungsional Penuh
• Suatu atribut Y mempunyai ketergantungan fungsional penuh terhadap
atribut X, jika
• Y mempunyai ketergantungan funsional terhadap X
• Y tidak memiliki ketergantungan terhadap bagian dari X
• Notasi : X à Y
Contoh 1
• Contoh:
Pelanggan ( KODE_PELANGGAN, NAMA, KOTA, NOMOR_FAX )
• Pada relasi ini:
1. {KODE_PELANGGAN, KOTA} ÚNOMOR_FAX
2. KODE_PELANGGAN ÚNOMOR_FAX
• KET:
Pada (1) Nomor_Fax bergantung pada {KODE_PELANGGAN, KOTA} dan
bergantung pada KODE_PELANGGAN (pada 2) yang tidak lain adalah
bagian dari {KODE_PELANGGAN, KOTA}, maka Nomor_Fax hanya
mempunyai dependensi fungsional sepenuhnya terhadap
KODE_PELANGGAN
Contoh 2
Pembeli → Kota
{Pembeli, Barang} → Kota
Jadi:
(1) merupakan kebergantungan fungsional penuh
(2) bukan kebergantungan fungsional penuh
Ketergantungan Transitif
• Atribut Z mempunyai dependensi transitif terhadap X bila apabila Y
tergantung pada X dan Z tergantung pada Y
• X→Y→Z
Ketergantungan Transitif
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X, jika atribut Y
tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y
pada relasi R. ( X àY, Y àZ, maka X àZ )
Contoh :
Ketergantungan transitif :
No-pem à Kode-kota
Kode-kota à Kota , maka
No-pem à Kota
Ketergantungan Transitif
• Gol_gaji fungsional dependency pada NIP dan Gaji_pokok Fungsional Dependency pada
Gol_gaji.
• NIP sebagai X, Gol_gaji sebagai Y, dan Gaji_pokok sebagai Z
• Jadi nilai-nilai rinci data pada atribut Gaji_pokok (Z) bergantung transitif terhadap NIP
• XàYàZ
NIP à Gol_gaji àGaji_pokok
Ketergantungan Transitif
• Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut
bernilai banyak (multivalued attribute), atribut composite atau
kombinasinya dalam domain data yang sama.
• Data dibentuk dalam satu record demi record dan nilai field adalah atomic
value.
• Tidak ada set atribut yang berulang / bernilai ganda)
• Suatu relasi berada dalam bentuk normal pertama jika relasi tidak
mengandung atribut yang bernilai ganda
Contoh
Atribut bernilai ganda
Kelemahan ???
Solusi – Memenuhi 1NF
No_Pemesanan Tgl_Pemesanan Kode_Item Total
A101 1/01/2021 K1 50.000
A101 1/01/2021 K2 50.000
A101 1/01/2021 K3 50.000
A101 1/01/2021 K5 50.000
A102 2/02/2021 K2 90.000 Kelemahan ???
A102 2/02/2021 K6 90.000
A102 2/02/2021 K2 90.000
B101 3/01/2021 K3 20.000
B101 3/01/2021 K4 20.000
B202 4/02/2021 K4 40.000
B202 4/02/2021 K7 40.000
BENTUK NORMAL KEDUA
(Second Normal Form - 2NF)
• Bentuk normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF.
• Normalisasi 2NF: setiap atribut bukan kunci bergantung penuh pada kunci primer
(primary key). Sehingga tidak ada atribut bukan kunci yang bergantung pada sebagian
(parsial) kunci primer (primary key)
• Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka
atribut tersebut harus dipindah atau dihilangkan.
Syarat 2NF
No Nama Pelatihan
A101 Mawar Cisco
A101 Mawar Oracle
A101 Mawar Python
A102 Melati Oracle
A102 Melati AI
B101 Bunga Python
B202 Lavender AI
Contoh
• Jika No dan Kursus dijadikan composite primary key, maka nama tidak
tergantung fungsional penuh terhadap PK, perlu dipisahkan dari tabel.
No Pelatihan
A101 Cisco No Nama
A101 Oracle A101 Mawar
A101 Python A102 Melati
A102 Oracle B101 Bunga
A102 AI B202 Lavender
B101 Python
B202 AI
Contoh
2NF ???
Solusi
PEMASOK-1 PEMASOK-2
Contoh INF
No_Pemesanan Tgl_Pemesanan Total
A101 1/01/2021 50.000
No_Pemesanan Tgl_Pemesanan Kode Total A102 2/02/2021 90.000
_Item B101 3/01/2021 20.000
A101 1/01/2021 K1 50.000 B202 4/02/2021 40.000
A101 1/01/2021 K2 50.000
No_Pemesanan Kode_Item
A101 1/01/2021 K3 50.000
A101 K1
A101 1/01/2021 K5 50.000 A101 K2
A102 2/02/2021 K2 90.000 A101 K3
• Karena masih terdapat atribut non primary key (yakni Kota dan Provinsi)
yang memiliki ketergantungan terhadap atribut non primary key yang lain
(yakni KodePos) :
KodePos à {Kota, Provinsi}
3NF
• Sehingga tabel tersebut perlu didekomposisi menjadi :
• Mahasiswa (NIM, NamaMhs, Jalan, KodePos)
• KodePos (KodePos, Provinsi, Kota)
Mahasiswa
NIM NAMAMHS JALAN KODEPOS
KodePos
• Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional
dependency terhadap setiap atribut atau gabungan atribut dalam bentuk:
X à Y maka X adalah super key.
• Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum
tentu termasuk BCNF . Perbedaannya, untuk functional dependency X
à A, BCNF tidak membolehkan A sebagai bagian dari primary key.
BentukNormal Tahap Keempat
(4th Normal Form /4NF)
• Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi
bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari
sebuah multivalued atribute.
• Untuk setiap multivalued dependencies (MVD) juga harus merupakan
functional dependencies.
Contoh
Mawar 1 Program
Melati 2 Desain
Lavender NULL Analisis
• Setiap employee dapat bekerja di lebih dari 1 project dan dapat memiliki
lebih dari 1 skill.
• Untuk kasus ini, tabel tersebut harus didekomposisi menjadi:
• Tabel 1 (Employee, Project)
• Tabel 2 (Employee, Skill)
Bentuk Normal Tahap Keempat
(5th Normal Form /5NF)
• Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah loss less
decomposition menjadi tabel-tabel yg lebih kecil.
• Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional
dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni
apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil,
harus bisa digabungkan lagi (join) untuk membentuk tabel semula
Contoh Kasus 1
Unnormalisasi
• Langkah pertama dalam melakukan normalisasi data adalah
dengan membentuk contoh data tersebut diatas dengan
membentuk unnormalisasi data.
Normal Pertama (1 NF)
Relasi Faktur
No_Faktur Kode_Brg Kode_Supp Tanggal Jatuh Tempo Qty
779 R01 S02 02/02/2001 09/03/2001 10
998 A01 G01 07/02/2001 09/03/2001 10
998 A02 G01 07/02/2001 09/03/2001 10
Normal Kedua (2 NF)
Pada bentuk normal kedua tersebut masih terjadi permasalahan
yaitu pada relasi Faktur, yaitu :
1. Atribut Qty pada relasi Faktur, tidak tergantung pada kunci
utama, atribut tersebut bergantung fungsi pada Kode Brg dan
no_faktur, hal ini dinamakan ketergatungan transitif dan
haruslah dipilah menjadi dua relasi.
2. Masih terdapat pengulangan, yaitu setiap kali satu faktur yang
terdiri dari 3 macam barang maka 3 kali juga dituliskan
no_faktur, tanggal, dan jatuh_tempo. Hal ini harus dipisahkan
bila terjadi penggandaan tulisan berulang-ulang.
Bentuk Normal Ketiga (3 NF)
• Bentuk normal ketiga mempunyai syarat, setiap relasi tidak
mempunyai atribut yang bergantung transitif, harus bergantung
penuh pada kunci utama dan harus memenuhi bentuk normal
kedua (2 NF).
• Untuk memenuhi bentuk normal ketiga (3 NF), maka pada relasi
faktur harus didekomposisi (dipecah) lagi menjadi dua relasi yaitu
relasi faktur dan relasi transaksi barang, sehingga hasilnya adalah
sebagai berikut ini:
Relasi Supplier Relasi Barang
Kode_Supp Nama_Supp Kode_Brg Nama_Brg Harga
S02 Waras Sejati R01 Mixagripi 5000
G01 Medika jaya A01 Sanaflux 5000
A02 Bodrexno 6000
Relasi Faktur
No_Faktur Tanggal Jatuh Tempo Kode_Supp
779 02/02/2001 09/03/2001 S02
998 07/02/2001 09/03/2001 G01
Relasi Transaksi
No_Faktur Kode_Brg Qty
779 R01 10
998 A01 10
998 A02 10
Contoh Kasus 2
1 NF
Ketergantungan Fungsional
2NF
Sudah memenuhi 1 NF tetapi belum memenuhi 2 NF karena atribut
Bukan kunci belum sepenuhnya tergantung pada primary key
Tabel 1 Tabel 2
• No-pem à Kode-Kota
• No-pem à Kota
• No-pem, No-bar à Jumlah • Kode-Kota à Kota
3 NF
Ada ketergantungan transitif di tabel3, maka perlu di pisah menjadi tabel lebih kecil
Tabel 3
Tabel4