Anda di halaman 1dari 23

MODUL MATA KULIAH

PERANCANGAN
BASIS DATA
KP130 - 3 SKS

FAKULTAS TEKNOLOGI INFORMASI


U N I V E R S I T A S BUDI LUHUR TIM PENYUSUN
JAKARTA
N
GANDUNG TRIYONO
RUSDAH
SAFRINA AMINI
VERSI 1.0
Kata Pengantar

Puji syukur dan hormat, kami haturkan ke hadirat Allah SWT, karena atas
perkenan-Nya, sehingga kami dapat menyelesaikan Modul matakuliah Perancangan
Basis Data ini.
Penghargaan tertinggi dan ucapan terima kasih yang sebesar besarnya kepada
seluruh sivitas akademika Fakultas Teknologi Informasi Universitas Budi Luhur, yang
telah memberikan bantuan serta dukungan dalam menyusun Modul matakuliah ini.
Tim penyusun telah menyusun Modul Matakuliah ini semaksimal mungkin, namun
kami menyadari bahwa penyusun tentunya tidak lepas dari salah dan khilaf semata. Tim
penyusun sangat terbuka untuk berbagai masukan, ide dan saran dari berbagai pihak
agar modul matakuliah ini bisa lebih baik lagi.
Besar harapan kami Modul matakuliah ini dapat bermanfaat sebagai bahan Ajar
bagi mahasiswa di Fakultas Teknologi Informasi Universitas Budi Luhur.

Jakarta, Januari 2020

Tim Penyusun
Daftar Isi

1.1. Tujuan Normalisasi ................................................................................................................................................................................... 8


1.2. Functional Dependency .......................................................................................................................................................................... 11
1.3. Contoh Ketergantungan Fungsional ....................................................................................................................................................... 12
1.4. Full Functional Dependency ................................................................................................................................................................... 13
1.5. Partial Functional Dependency ............................................................................................................................................................... 14
1.6. Transitive Functional Dependency.......................................................................................................................................................... 15
1.7. Multivalued Dependencies ...................................................................................................................................................................... 16
1.8. Langkah dalam Normalisasi ................................................................................................................................................................... 17
1.8.1. Unnormalized Form .................................................................................................................................................................... 18
1.8.2. First Normal Form .......................................................................................................................................................................... 19
1.8.3. Second Normal Form ..................................................................................................................................................................... 20
1.8.4. Third Normal Form ......................................................................................................................................................................... 20
1.8.5. Normalisasi Lanjutan...................................................................................................................................................................... 20
1.9. Rangkuman ............................................................................................................................................................................................ 20
1.10. Latihan .................................................................................................................................................................................................... 21
Daftar Gambar

Gambar 1. Normalisasi dapat digunakan untuk mendukung perancangan basis data (Connolly dan Begg, 2015) ........ 8
Gambar 2. Kerangkapan Data Mahasiswa ............................................................................................................................................ 10
Gambar 3. Functional Dependency ......................................................................................................................................................... 11
Gambar 4. Jurusan secara fungsional tergantung dengan NIM dan NIM tidak secara fungsional tergantung –
Jurusan .............................................................................................................................................................................................................. 13
Daftar Tabel

Tabel 1. Karyawan ......................................................................................................................................................................................... 14


Tabel 2. Nilai Mahasiswa ............................................................................................................................................................................. 15
Tabel 3. Data Jadwal .................................................................................................................................................................................... 17
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI

MODUL PERKULIAHAN #10


PENORMALAN RELASI
Capaian : Mahasiswa mampu memahami
Pembelajaran konsep relasi belum normal dan
normal
Sub Pokok : 1.1. Struktur relasi yang bagus
Bahasan 1.2. Permasalahan relasi yang
belum normal
1.3. Permasalahan relasi yang
normal
1.4. Functional Dependencies
1.5. Multivalued Dependencies
1.6. Langkah dalam normalisasi
Daftar Pustaka : [1] G. Triyono, Perancangan Basis
Data Relasional, Pertama.
Jakarta: Budi Luhur, 2019.
[2] R. Elmasri dan S. B. Navathe,
Fundamentals of Database
Systems, Sixth. New York:
Addison-Wesley, 2010.
[3] T. Connolly dan C. Begg,
Database Systems, Sixth.
England: Pearson, 2015.
[4] A. Silberschatz, H. F. Korth,
dan S. Sudarshan, Database
System Concepts, vol. 27, no.
16. 2005.
PENORMALAN RELASI

Tujuan Normalisasi
Tujuan utama dalam perancangan basis data adalah untuk membuat
representasi yang tepat dari data, hubungan antara data, dan batasan-batasan pada
data yang sesuai dengan kebutuhan user. Dalam perancangan struktur basis data,
kita dapat menggunakan beberapa teknik. Salah satu teknik yang telah dipelajari
sebelumnya adalah dengan pemodelan ER. Pada Bab ini akan dijelaskan teknik
perancangan basis data lain, yaitu menggunakan teknik normalisasi.
Normalisasi adalah teknik formal yang dapat digunakan pada setiap tahap
perancangan basis data. Namun, pada bagian ini dijelaskan dua pendekatan utama
untuk menggunakan normalisasi, seperti yang diilustrasikan pada Gambar 1.

Menggunakan pendekatan
Sumber data Top-Down
dengan ER-Model

Model ER dipetakan
User ke kumpulan relasi

Spesifikasi kebutuhan
user Pendekatan 2 Normalisasi digunakan
Well-Structured sebagai teknik validasi untuk
mengecek struktur relasi

Dokumen: Form/Report
yang digunakan
Pendekatan 1

Deskripsi sumber
kebutuhan perusahaan
seperti Kamus data dan
model data

Normalisasi digunakan sebagai


teknik Bottom-Up untuk
membentuk struktur relasi

Gambar 1. Normalisasi dapat digunakan untuk mendukung perancangan basis data


(Connolly dan Begg, 2015)

Gambar 1 diperlihatkan bahwa normalisasi dapat berfungsi sbagai:


a. Pendekatan 1, normalisasi dapat digunakan sebagai teknik perancangan basis
data secara bottom-up.
b. Pendekatan 2, normalisasi dapat digunakan sebagai teknik validasi untuk
memeriksa struktur relasi, yang mungkin telah dibuat menggunakan pendekatan
top-down dengan model ER.

Gambar 1 diperlihatkan juga bahwa sumber data dari user seperti formulir,
laporan dan dokumen lainnya (pada saat perancangan dengan ERD) dapat
digunakan untuk membentuk struktur data dengan pendekatan Normalisasi.
Meskipun pendekatan ini prinsipnya dapat digunakan, namun dalam prakteknya
kurang maksimal jika menemukan kasus yang komplek atau terlalu luas. Dengan
Pendekatan 1, normalisasi akan sulit untuk dilakukan. Namun demikian,
normalisasi sangat baik digunakan sebagai teknik validasi (pendekatan 2), tidak
peduli apa ukuran atau kompleksitas dari basis data.
Pada materi ini akan dijelaskan normalisasi sebagai teknik validasi
untuk mengecek struktur relasi.
Normalisasi adalah teknik perancangan basis data yang dimulai dengan
memeriksa hubungan (disebut dependensi fungsional) antara atribut. Atribut
menggambarkan beberapa properti dari entitas. Normalisasi menggunakan
serangkaian pengujian untuk mengidentifikasi ketergantungan fungsional yang
optimal.
Satu konsep paling penting dalam teori merancang struktur relasional adalah
ketergantungan secara fungsional. Sebelum melakukan normalisasi, kita harus
memahami ketergantungan secara fungsional atau sering disebut Functional
Dependency (FD).

Menurut Elmasri dan Navathe (2010), tujuan dari penormalan relasi adalah:
a. Menghindari duplikasi data, duplikasi yang dimaksud adalah setiap relasi sudah
tidak memiliki kerangkapan data (record atau baris), jadi setiap primary key
pada setiap record bernilai unik.
b. Merupakan proses mendekomposisikan sebuah relasi yang masih memiliki
beberapa anomaly atau ketidakwajaran untuk menghasilkan relasi yang lebih
sederhana dan well-structured.

Beberapa anomaly yang dimaksud adalah:


a. Insertion Anomaly: suatu kondisi di mana jika user menambahkan record baru
maka mengakibatkan duplikasi data.
b. Deletion Anomaly: suatu kondisi di mana jika user menghapus record mungkin
menyebabkan hilangnya data yang akan dibutuhkan pada record lain.
c. Modification Anomaly: suatu kondisi di mana jika user mengubah data pada
sebuah record mempengaruhi perubahan pada record lain karena adanya
duplikasi.

Relasi sederhana artinya bahwa relasi sudah tidak rumit atau struktur yang
sesuai dengan kondisi kebutuhan. Relasi well-structured (struktur yang bagus)
adalah sebuah relasi yang memiliki data redundancy yang minimal dan
memungkinkan user untuk melakukan insert, delete, dan update baris (record)
tanpa menyebabkan inkonsistensi data. Target yang dicapai bukan menghilangkan
redundancy akan tetapi mendapatkan redundancy yang minimal, karena pada
kenyataannya pada saat diimplementasikan harus memperhatikan kecepatan dan
keamanan.
Secara umum, tujuan normalisasi adalah untuk mendapatkan struktur relasi
yang sempurna, yaitu struktur yang sederhana dan bagus.
Perhatikan Gambar 2 di bawah ini:

Gambar 2. Kerangkapan Data Mahasiswa

Pada Gambar 2, diperlihatkan adanya anomali pada relasi Mahasiswa, yaitu:


a. Insertion: user tidak dapat memasukan data mahasiswa baru yang belum
memiliki nilai,
b. Deletion: jika mahasiwa dengan NIM 18002 dihapus, kita akan kehilangan
informasi tentang keberadaan kelas Marketing.
c. Modification: menaikan gaji pegawai 100 mengharuskan kita untuk meng-
update beberapa records.

Mengapa beberapa anomali ini muncul, karena kita telah menyatukan 2


entitas dalam satu relasi. Hal ini menyebabkan adanya duplikasi, dan
ketergantungan antar entitas

Functional Dependency
Functional Dependency (FD) atau ketergantungan fungsional merupakan
sebuah konsep penting jika dihubungkan dengan normalisasi, yang menggambarkan
hubungan antara atribut. Pemahaman sederhananya untuk ketergantungan
fungsional, asumsikan bahwa skema relasional memiliki atribut (A, B, C,..., Z) dan
basis data dijelaskan oleh satu hubungan universal yang disebut R=(A, B, C,..., Z).
Pada asumsi ini berarti setiap atribut dalam basis data memiliki nama yang unik.
B Secara fungsional
tergantung sama A
A B

Gambar 3. Functional Dependency

Ketergantungan fungsional menggambarkan hubungan antara atribut dalam


suatu relasi. Untuk Contoh, jika A dan B adalah atribut dari relasi R, B secara
fungsional tergantung pada A (dilambangkan A ® B), jika setiap nilai A dikaitkan
dengan tepat satu nilai B.
Ketergantungan fungsional adalah properti dari makna atau semantik dari
atribut dalam suatu relasi. Semantik menunjukkan bagaimana atribut berhubungan
satu sama lain, dan menentukan ketergantungan fungsional antar atribut. Ketika ada
ketergantungan fungsional, ketergantungan ditentukan sebagai kendala antara
atribut.
Pertimbangkan hubungan antara atribut A dan B, di mana atribut B berfungsi
tergantung pada atribut A (Gambar 3). Jika kita tahu nilai A dan kita memeriksa
hubungannya yang memegang ketergantungan ini, kita hanya menemukan satu nilai
B di semua tupel yang memiliki nilai A, kapan saja pada waktunya. Jadi, ketika dua
tupel memiliki nilai A yang sama, mereka juga memiliki nilai B yang sama. Namun,
untuk nilai B yang diberikan, mungkin ada beberapa nilai yang berbeda dari A.
Ketergantungan antara atribut A dan B dapat direpresentasikan secara diagram,
seperti yang ditunjukkan Gambar 3. Cara alternatif untuk menggambarkan
hubungan antara atribut A dan B adalah mengatakan bahwa "A secara fungsional
menentukan B." Beberapa pembaca mungkin lebih suka deskripsi ini, karena lebih
alami mengikuti arah panah ketergantungan fungsional antara atribut.
Determinant mengacu pada atribut, atau kelompok atribut, di sisi kiri panah
ketergantungan fungsional. Ketika ada ketergantungan fungsional, atribut atau
kelompok atribut di sisi kiri panah disebut determinant. Misalnya, pada Gambar 3,
A adalah penentu B. Identifikasi ketergantungan fungsional dijelaskan dan
diperlihatkan dalam Modul berikutnya.

Contoh Ketergantungan Fungsional


Pertimbangkan atribut "NIM" dan "Jurusan" dari Relasi mahasiswa pada
Gambar 4. Misalnya dengan "NIM" 1812501010, kita dapat menentukan "Jurusan"
dengan tepat yaitu “Sistem Informasi”. Dengan kata lain, "NIM" secara fungsional
menentukan "Jurusan", seperti yang ditunjukkan pada Gambar 4-a. Namun, Gambar
4-b mengilustrasikan bahwa sebaliknya, karena “Jurusan” TIDAK secara fungsional
menentukan "NIM". Seorang mahasiswa mempunyai satu "jurusan". Namun,
kemungkinan ada beberapa mahasiswa yang mempunyai "jurusan" yang sama.
Hubungan antara "NIM" dan "Jurusan" adalah One-to-One (1:1), untuk setiap NIM
hanya mempunyai satu "Jurusan". Di sisi lain, hubungan antara "Jurusan" dan "NIM"
adalah One-to-Many (1:M), yaitu satu Jurusan dapat dimiliki (dikaitkan) dengan satu
"NIM". Dalam contoh ini, "NIM" adalah penentu ketergantungan fungsional.
Ketika mengidentifikasi ketergantungan fungsional antar atribut dalam suatu
relasi, penting untuk membedakan secara jelas antara nilai-nilai yang dipegang oleh
atribut pada titik waktu tertentu dan himpunan semua nilai yang mungkin yang
dapat dimiliki suatu atribut pada waktu yang berbeda. Dengan kata lain,
ketergantungan fungsional adalah properti dari skema relasional. Pada kasus ini
diilustrasikan dalam contoh berikut ini:

Jurusan Secara fungsional


tergantung sama NIM
NIM Jurusan

a) NIM 1812501010 Sistem Informasi

NIM TIDAK Secara fungsional


tergantung sama Jurusan

Jurusan NIM

NIM 1812501010

b) Sistem Informasi

NIM 1812501015

Gambar 4. Jurusan secara fungsional tergantung dengan NIM dan NIM tidak secara
fungsional tergantung – Jurusan

Full Functional Dependency


Full functional dependency atau ketergantungan fungsional penuh
menunjukkan jika A dan B adalah atribut dari suatu relasi, B sepenuhnya secara
fungsional tergantung pada A, tetapi tidak pada subset A (bagian dari A).
Ketergantungan fungsional A ® B dikatakan ketergantungan fungsional penuh
jika dilakukan penghapusan terhadap atribut apa pun dari A maka mengakibatkan
ketergantungan tidak lagi ada. Secara sederhana ketergantungan penuh adalah jika
A dan B merupakan atribut dalam sebuah relasi, diama A menentukan B dan hanya
B sepenuhnya ditentukan oleh A.
Contoh bagaimana ketergantungan fungsional penuh berasal dari
ketergantungan secara parsial, disajikan dalam Tabel 1.
Tabel 1. Karyawan
NoKry NmKry Jabatan KdCabang AlmtCabang
K1 Agus Kepala Sekolah C1 Tangerang
K2 Budi Wali Kelas C1 Tangerang
K3 Cecep Kepala Sekolah C2 Jakarta
K4 Dedi Wakil Kepala Sekolah C2 Jakarta

Tabel 1, diperlihatkan adanya ketergantungan fungsional, yaitu:


NoKry, NmKry  KdCabang, adalah benar untuk mengatakan bahwa
setiap nilai dari (NoKry, NmKry) dihubungkan dengan satu nilai KdCabang. Namun,
itu bukan ketergantungan fungsional penuh, karena KdCabang juga secara
fungsional tergantung pada subset (NoKry, NmKry), yaitu NoKry. Dengan kata
lain, ketergantungan fungsional yang ditunjukkan pada contoh data Karyawan
adalah partial dependency atau ketergantungan secara parsial. Jenis
ketergantungan fungsional yang ingin kita identifikasi adalah ketergantungan
fungsional secara penuh seperti yang ditunjukkan pada hubungan antara NoKry
dan KdCabang:
NoKryKdCabang
Ketergantungan fungsional yang kita gunakan dalam normalisasi memiliki
karakteristik sebagai berikut:

 Ada hubungan satu-ke-satu antara atribut di sisi kiri (determinant) dan di sisi
kanan dari ketergantungan fungsional. (Perhatikan bahwa hubungan dalam arah
yang berlawanan — yaitu, dari atribut sisi kanan ke sisi kiri dapat berupa
hubungan satu-ke-satu atau satu-ke-banyak).
 Mereka bertahan untuk selamanya.
 Determinan memiliki jumlah minimal atribut yang diperlukan untuk
mempertahankan ketergantungan dengan atribut di sisi kanan. Dengan kata lain,
merupakan ketergantungan fungsional penuh antara atribut di sebelah kiri dan
sisi sebelah kanan.

Partial Functional Dependency


Ketergantungan fungsional A ® B dikatakan mempunyai ketergantungan
parsial (Partial Functional Dependency) jika ada beberapa atribut yang dapat
dihapus dari A dan ketergantungan masih berlaku. Sebuah relasi dapat mempunyai
ketergantungan secara parsial jika mempunyai primary key composite. Ketergantuan
secara parsial merupakan kondisi di mana setiap atribut yang bukan primary key
sepenuhnya tergantung pada primary key. Setiap atribut yang bukan key harus
didefinisikan oleh semua key (bukan oleh bagian dari key).
Tabel 2. Nilai Mahasiswa
NIM NmMahasiswa KdMatakuliah NmMatakuliah Nilai
M1 Agus K1 Algoritma A
M1 Agus K2 Basis Data A-
M2 Budi K1 Algoritma B
M3 Cecep K1 Algoritma B+
M3 Cecep K2 Basis Data A

Pada Tabel 2, merupakan sebuah tabel yang berisi nilai mahasiswa. Tabel
tersebit mempunyai primary kry yang berbentuk composite, yaitu NIM dan
KdMatakuliah. Pada relasi tersebut memiliki partial dependency. Hal tersebut
dapat terjadi, karena terdapat atribut yang mempunyai ketergantungan terhadap
bagian dari Key (bagian dari primary key). Dari Tabel 2 dapat diperlihatkan
functional dependency dibawah ini:

 NIM+KdMatakuliah Nilai, artinya bahwa NIM dan KdMatakuliah


menentukan atribut Nilai atau atribut nilai tergantung sepenuhnya dengan
atribut NIM dan KdMatakuliah.
 NIM  NmMahasiswa, artinya bahwa NmMahasiswa tergantung pada
atribut NIM, di mana atribut NIM merupakan bagian dari primary key. Pada
kasus ini NmMahasiswa tergantung pada atribut NIM secara parsial.
 KdMatakuliah  NmMatakuliah, artinya bahwa NmMatakuliah tergantung
pada atribut KdMatakuliah, di mana atribut KdMatakuliah merupakan bagian
dari primary key. Pada kasus ini NmMatakuliah tergantung pada atribut
KdMatakuliah secara parsial.

Transitive Functional Dependency


Salah satu cara untuk menormalkan tabel adalah dengan menghilangkan
transitive functional dependency atau ketergantungan transitif. Ketergantungan
transitif adalah suatu kondisi di mana A, B, dan C adalah atribut dari relasi dimana
jika A ® B dan B ® C, maka C bergantung secara transitif pada A melalui B (dengan
ketentuan bahwa A tidak bergantung secara fungsional pada B atau C).
Pertimbangkan dependensi fungsional berikut dalam hubungan Karyawan dan
Cabang yang ditunjukkan pada Tabel 1:

 NoKryNmKry, Jabatan, Pendapatan, KdCabang, AlmtCabang


 KdCabangAlmtCabang

Ketergantungan transitif "KdCabang" ® "AlmtCabang" ada pada "NoKry"


melalui "KdCabang". Dengan kata lain, atribut "NoKry" secara fungsional
menentukan "AlmtCabang" melalui atribut "KdCabang" dan baik "KdCabang"
maupun "AlmtCabang" secara fungsional menentukan "NoKry".
Penjelasan sederhananya, ketergantungan transitif adalah jika ada atribut
yang bukan key (AlmtCabang) sudah tergantung secara fungsional pada key
(NoKry), akan tetapi atribut tersebut (AlmtCabang) juga tergantung pada atribut
yang bukan key (KdCabang).

Multivalued Dependencies
Multivalued dependencies terjadi dalam situasi di mana ada beberapa atribut
multivalued independen dalam satu tabel. Multivalued dependencies adalah batasan
lengkap antara dua set atribut dalam suatu relasi. Hal ini mengharuskan tupel
tertentu hadir dalam suatu hubungan.
Multivalued dependecies ada ketika untuk setiap nilai dari atribut A, ada satu
set nilai hingga atribut B dan atribut C yang terkait dengannya. Namun, atribut B
dan C tidak tergantung satu sama lain. Dalam contoh yang telah kita gunakan,
hanya ada ketergantungan seperti itu. Pertama, untuk setiap judul film, ada
sekelompok aktor (bintang-bintang) yang terkait dengan film. Untuk setiap judul,
ada juga sekelompok produsen yang terkait dengannya. Namun, para aktor dan
produser tidak tergantung satu sama lain.
Sebuah tabel dikatan memiliki multivalued dependencies, jika memiliki kondisi
sbb:
1. Untuk ketergantungan A  B, jika untuk nilai tunggal A terdapat beberapa
nilai B, maka tabel tersebut mungkin memiliki multivalued dependencies.
2. Sebuah tabel harus memiliki setidaknya 3 (tida) kolom/field agar memiliki
multivalued dependencies.
3. Untuk relasi R(A, B, C), jika ada multivalued dependencies antara, A dan B,
maka B dan C harus independen satu sama lain.

Jika semua kondisi ini benar untuk setiap relasi (tabel), dikatakan memiliki
multivalued dependencies. Contoh sebuah relasi yang memiliki multivalued
dependecies dapat dilihat pada Tabel 2.
Tabel 3. Data Jadwal
Matakuliah Buku Dosen
PSBD Manajemen Database Gandung Triyono
PSBD Perancangan Basis Data Safrina Amini
PSBD Konsep Dasar Basis Data Rusdah
ALGO1 Algoritma Dan Struktur Data Achmad Solichin
ALGO1 Algoritma 1 Painem

Karena dosen yang dicantumkan pada matakuliah dan buku-buku yang


dilampirkan pada matakuliah yang independen satu sama lain, desain relasi/tabel ini
memiliki multivalued dependenciei. Kondisi tersebut mengakibatkan kondisi: jika
ditambahkan buku baru ke kursus ALGO1, maka harus menambahkan nama dosen
pada matakuliah tersebut, dan sebaliknya.

Langkah dalam Normalisasi


Dalam melakukan normalisasi perlu dilakukan secara terstruktur, untuk
mendapatkan struktur yang sempurna (normal) maka diperlukan tahapan
penormalan relasi. Pada Gambar 5 diperlihatkan ada 6 tahapan penormalisasi untuk
mendapatkan sebuah relasi dalam kondisi normal tingkat kelima(5NF).
Unnormalized Form
(UNF)
Remove Repeating
Groups

First Normal Form


(1NF)
Remove Partial
Dependencies

Second Normal Form


(2NF)
Remove Transitive
Dependencies

Third Normal Form


(3NF)
Remove Remaining
Dependencies

Boyce-Codd Normal Form


(BCNF)

Fourth Normal Form


(4NF)

Fifth Normal Form


(5NF)

Gambar 5 Tahapan normalisasi dari UNF sampai 5NF.

Pada Gambar 5 diperlihatkan bahwa langkah-langlah penormalan dari Relasi


belum normal dilakukan penormalan tingkat pertama, kemudian tingkat kedua dan
tingkat ketiga. Setiap langkah penormalan dijelaskan di bawah ini:

1.8.1. Unnormalized Form


Unnormalized Form (UNF) merupakan bentuk sebuah tabel yang belum dalam
kondisi normal. Sebuah tabel dapat dihasilkan dari sebuah atau beberapa dokumen.
Pada contoh ini, tersebentuk sebuah tabel Penyewaan Kendaraan (Tabel 2) dari
dokumen pada Gambar 6.
Penyewaan Kendaraan
(RentalKendaraan
Penyewaan Form)
(Rental
Penyewaan Form)
Kendaraan
No. pelanggan P01
:............. B101OVE
No. Kendaraan :................
(Rental Form)
No.(id. customer) P01
pelanggan :............. No.(id. car) B101OVE
Kendaraan :................
Nomor sewa S01 Agus
:........................................... Kijang Inova
Nama
(id.
pelanggan
customer) :................ Jenis
(id. car)
jendaraan :................
(Nomor)
(Customer name) Agus Kijang Inova
Nama pelanggan :........................................... (type)
Jenis jendaraan :................
No. pelanggan
(Customer P01
name) :............. No. B101OVE
Kendaraan :................
(type)
12-Jan-2012
Tanggal sewa
(id. customer) : 10-Jan-2012
..................... s/d .....................
(id. car)
Agus 12-Jan-2012 Kijang Inova
Nama (Time
Tanggal sewa :...........................................
pelanggan
of rent) 10-Jan-2012
: ..................... s/d ..................... Kendaraan
Jenis :................
(Customer name) Rp. 1.500.000,-
Harga
(Time sewa
of rent) :............................. (type)
Rp. 1.500.000,- 12-Jan-2012
(Amount)
Tanggal
Harga sewa
sewa : 10-Jan-2012
..................... s/d .....................
:............................. 9 1 2012
Yogyakarta, ....../......./..........
(Time
(Amount)
of rent)
No. sopir S01
Rp.:................
1.500.000,- 9 1 2012
Harga(id. sewa
driver) :............................. Yogyakarta, ....../......./..........
No. sopir Gombreng
S01
:.......................................
Nama sopir
(Amount) :................ Gombreng
(id. driver) (...........................................)
9
(Driver name) Gombreng 1 2012
Yogyakarta, ....../......./..........
Nama sopir :.......................................
Gombreng Gombreng
Nama sopir :....................................... (...........................................)
(Driver name)
(Driver name)
Gombreng
(...........................................)

Gambar 6. Dokumen penyewaan kendaraan.

Dari Gambar 6 dilakukan transformasi dalam bentuk tabel seperti pada Tabel
2. Pada tabel tersebut didapatkan kolom NoSewa, NoSopir, NamaPel, NoKend,
JenisKend, TglAwal, TglAkhir, Harga dan NamaSopir. Tabel 2 merukan sebuah
contoh tabel yang dalam kondisi belum normal.

Tabel 2. FormPenyewaan

NoSewa NoSopir NamaPel NoKend JenisKend TglAwal TglAkhir Harga NamaSopir


S01 P01 Agus B101OVE Inova 10-1-2012 12-1-2012 1.500.000 Gombreng
BA50EXX Avanza 10-1-2012 11-1-2012 900.000 Growol
S02 P02 Budi BA50EXX Avanza 12-1-2012 12-1-2012 450.000 Growol
B2020YY Avanza 12-1-2012 12-1-2012 450.000 Sronggot
B2121YY Avanza 12-1-2012 12-1-2012 450.000 Bedul

1.8.2. First Normal Form


Pada tahap pertama adalah melakukan penormalan relasi tingkat pertama
yaitu membentuk sebuah relasi dalam kondisi First Normal Form (1NF). Relasi
dinyatakan sudah 1NF jika sebuah relasi sudah tidak memiliki pengulangan data
secara berkelompok dan tidak memiliki multivalued attributes. Selain itu, sebuah
relasi dinyatakan sudah 1NF jika setiap nilai dari atribut hanya mempunyai nilai
tunggal atau bernilai atomik.

1.8.3. Second Normal Form


Pada tahapan ini membentuk sebauh relasi dalam kondisi Second Normal
Form (2NF). Sebuah relasi dinyatakan sudah 2NF jika sudah dalam kondisi 1NF dan
sudah tidak memiliki Partial Functional Dependency (PFD). Pada tahap ini,
mengilangkan PFD pada sebuah relasi.

1.8.4. Third Normal Form


Pada tahap ini dilakukan penormalan relasi yang masih memiliki Transitive
Functional Dependency (TFD). Sebuah relasi dinyatakan dalam kondisi Third Normal
Form (3NF) jika relasi tersebut sudah dalam kondisi 2NF dan tidak ada Transitive
dependency. Transitive dependency adalah ketika ada atribut yang secara tidak
langsung tergantung pada primary key dan atribut tersebut juga tergantung pada
atribut lain yang bukan key.

1.8.5. Normalisasi Lanjutan


Normalisasi lanjutan merupakan tahapan normalisasi untuk menghilangkan
sisa anomali yang kemungkinan akan timbul. Pada prinsipnya tabel-tabel atau relasi-
relasi yang terbentuk pada saat perancangan basis data adalah cukup sampai pada
3NF. Relasi dalam kondisi 3NF merupakan relasi yang sudah ideal untuk
diimplementasikan. Akan tetapi, jika relasi yang dibentuk menginginkan
kesempurnaan yang tinggi maka relasi harus dilakukan identifikasi lebih lanjut, yaitu
normalisasi lanjutan. Pada normalisasi lanjutan ini dilakukan tiga tahapan yaitu
Boyce-Codd Normal Form (BCNF), Fourth Normal Form (4NF) dan Fifth Normal Form
(5NF).

Rangkuman
a. Normalisasi adalah proses mendekomposisikan sebuah relasi yang masih
memiliki beberapa anomaly atau ketidakwajaran untuk menghasilkan relasi yang
lebih sederhana dan well-structured.
b. Tujuan dari penormalan relasi adalah menghindari duplikasi data, duplikasi yang
dimaksud adalah setiap relasi sudah tidak memiliki kerangkapan data (record
atau baris), jadi setiap primary key pada setiap record bernilai unik.
c. Functional Dependency (FD) atau ketergantungan fungsional merupakan sebuah
konsep penting jika dihubungkan dengan normalisasi, yang menggambarkan
hubungan antara atribut.
d. Full functional dependency atau ketergantungan fungsional penuh menunjukkan
jika A dan B adalah atribut dari suatu relasi, B sepenuhnya secara fungsional
tergantung pada A, tetapi tidak pada subset A (bagian dari A).
e. Ketergantungan fungsional A ® B dikatakan mempunyai ketergantungan
parsial (Partial Functional Dependency) jika ada beberapa atribut yang dapat
dihapus dari A dan ketergantungan masih berlaku.
f. Sebuah relasi dapat mempunyai ketergantungan secara parsial jika mempunyai
primary key composite. Ketergantuan secara parsial merupakan kondisi di mana
setiap atribut yang bukan primary key sepenuhnya tergantung pada primary
key. Setiap atribut yang bukan key harus didefinisikan oleh semua key (bukan
oleh bagian dari key).
g. Ketergantungan transitif adalah suatu kondisi di mana A, B, dan C adalah atribut
dari relasi dimana jika A ® B dan B ® C, maka C bergantung secara transitif
pada A melalui B (dengan ketentuan bahwa A tidak bergantung secara
fungsional pada B atau C).
h. Multivalued dependencies terjadi dalam situasi di mana ada beberapa atribut
multivalued independen dalam satu tabel.
i. Multivalued dependencies adalah batasan lengkap antara dua set atribut dalam
suatu relasi.

Latihan
1. Jelaskan dengan kalimat sendiri, apa yang anda ketahui tentang penormalan
relasi!
2. Jelaskan dengan kalimat sendiri, apa tujuan dari penormalan relasi!
3. Jelaskan dengan kalimat sendiri, apa yang anda ketahui functional dependency!
4. Jelaskan dengan kalimat sendiri, apa yang anda ketahui tentang transitive
functional dependency?
5. Jelaskan dengan kalimat sendiri, apa yang anda ketahui tentang partial
functional dependency?
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BUDI LUHUR
Jl. Raya Ciledug, Petukangan Utara, Pesanggrahan
Jakarta Selatan, 12260
Telp: 021-5853753 Fax : 021-5853752
http://fti.budiluhur.ac.id

Anda mungkin juga menyukai