Anda di halaman 1dari 28

BAB I

PENDAHULUAN

A. LATAR BELAKANG
Basis data dapat diumpamakan sama dengan lemari arsip data. Dengan
adanya basis data kita jadi lebih gampang untuk menyampaikan informasi yang
tersimpan dalam lemari arsip data.
Penyampaian informasi melalui basis data selalu dibuat sesimpel dan seringkas
mungkin serta tidak menghilangkan informasi yang ingin disampaikan.
Bentuk penyampai informasi seperti ini biasanya dilakukan pada sebuah
bentuk tabel yang disebut tabel Universal. Tabel universal menyampaikan
semua informasi yang ada seringkas mungkin dan tanpa menhilangkan
satupun informasi. Tetapi kita sering tidak melihat data atau informasi yang
tertera pada tabel Universal.
Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang
kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam
pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.
Dalam merancang basis data, kita dapat melakukannya dengan :
1. Menerapkan normalisasi terhadap struktur tabel yang telah diketahui.
2. Langsung membuat model EntityRelationship.
Normalisasi adalah teknik perancangan yang banyak digunakan sebagai
pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi
adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan
menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi
dari table relasional
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi
basis data. Selaindipakai sebagai metodologi tersendiri untuk menciptakan
struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi

kemubaziran data) , normalisasi terkadang hanya diipakai sebagai perangkat


verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya ER). Normalisasi memberikan panduan yang sangat membantu bagi pengembang
untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi
keflekxibelan. Kroenke mendefinisikan normalisasi sbagai proses untuk
mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi
atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej
kroenke ini sering disebut dengan istilah anomali. ( Pada beberapa literatur, istilah
relasi yang digunakan pada bab ini terkadang digantikan dengan tabel. Istilah
relasi digunakan pada bab ini dikarenakan definisi tentang normalisasi memang
menggunakan istilah relasi).
B. RUMUSAN MASALAH
a. Apa yang di maksud dengan normalisasi data?
b. Bagaimana Proses normalisasi akan menghasilkan relasi yang optimal?
c. Apa defenisi Definisi Normalisasi?
d. Bagaimana bentuk Ketergantungan Fungsional (Fungsional Dependency)
e. Bagaimana bentuk Atribut Tabel dan lainnya?
f. Bagaimana bentukbentuk normalisasi data?
C. TUJUAN
Adapun tujuan dari dilakukannya normalisasi data adalah sebagai berikut :
Tujuan Instruksional Umum

Mahasiswa dapat mengerti Normalisasi Data.


Tujuan Instruksional Khusus
Mahasiswa dapat mengerti definisi normalisasi.
Mahasiswa dapat mengerti atribut tabel.
Mahasiswa dapat mengerti domain dan tipe data.

Mahasiswa dapat mengerti ketergantungan fungsional.


Mahasiswa dapat mengerti bentukbentuk normalisasi.

BAB II
PEMBAHASAN
Perancangan basis data diperlukan, agar kita bisa memiliki basis data yang
kompak dan efisien dalam penggunaan ruang penyimpanan, cepat dalam
pengaksesan dan mudah dalam pemanipulasian (tambah, ubah, hapus) data.
Dalam merancang basis data, kita dapat melakukannya dengan :
3. Menerapkan normalisasi terhadap struktur tabel yang telah diketahui.
4. Langsung membuat model EntityRelationship.
Normalisasi adalah teknik perancangan yang banyak digunakan sebagai
pemandu dalam merancang basis data relasional. Pada dasarnya, normalisasi
adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan
menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi
dari table relasional
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi
basis data. Selaindipakai sebagai metodologi tersendiri untuk menciptakan
struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi
kemubaziran data) , normalisasi terkadang hanya diipakai sebagai perangkat
verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya ER). Normalisasi memberikan panduan yang sangat membantu bagi pengembang
untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi
keflekxibelan. Kroenke mendefinisikan normalisasi sbagai proses untuk
mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua buah relasi
atau lebih yang tida memiliki masalah tersebut. Masalah yang dimaksud olej
kroenke ini sering disebut dengan istilah anomali. ( Pada beberapa literatur, istilah
relasi yang digunakan pada bab ini terkadang digantikan dengan tabel. Istilah
relasi digunakan pada bab ini dikarenakan definisi tentang normalisasi memang
menggunakan istilah relasi).
Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah table
relasional dikatakan berada pada bentuk normal tertentu jiak table memenuhi
himpunan batasan tertentu. Ada lima bentuk normal yang telah ditemukan.

KONSEP DASAR
Normalisasi adalah bagian perancangan basisdata. Tanpa normalisasi,
system basisdata menjadi tidak akurat, lambat, tidak efisien, serta tidak
memberikan data yang diharapkan Pada waktu normalisasi basisdata, ada empat
tujuan utama yang harus dicapai, yaitu :
1. Mengatur data dalam kelompok-kelompok sehingga masing-masing
kelompok hanya menangani bagian kecil system.
2. Meminimalkan jumlah data berulang dalam basisdata
3. Membuat basisdata yang datanya diakses dan dimanipulasi secara
cepat dan efisien tanpa melupakan integritas data
4. Mengatur data sedemikian rupa sehingga ketika memodifikasi data,
anda hanya mengubah pada satu tempat.
Perancang basisdata terkadang menyebut keempat tujuan dengan istilah
integritas data, integritas referensial, dan pengaksesan data.
Tujuan normalisasi adalah membuat kumpulan table ralasional yang bebas
dari data berulang dan dapat dimodifikasi secara benar dan konsisten. Ini berarti
bahwa semua table pada basisdata relasional harus berada pada bentuk normal
ketiga (3NF). Sebuah table relasional berada pada 3NF jika dan hanya jika semua
kolom bukan kunci adalah (a) saling independen dan (b) sepenuhnya tergantung
pada kunci utama. Saling independen berarti bahwa tidak ada kolom bukan kunci
yang tergantung pada sembarang kombinasi kolom lainnya. Dua bentuk normal
pertama adalah langkah antara untuk mencapai tujuan, yaitu mempunyai semua
table dalam 3NF (Stephen and Plew, 2000).
ATURAN NORMALISASI
Berikut adalah aturan-aturan normalisasi :
1. Hilangkan kelompok berulang-buat table terpisah untuk setiap himpunan
atribut yang berhubungan dan tentukan kunci utama pada masing-masing
table.
2. Hilangkan data berulang- jika sebuah atribut hanya tergantung pada
sebagian kunci utama gabungan, pindahkan atribut ke table lain.
3. Hilangkan kolom yang tidak tergantung pada kunci- jika atribut tidak
tergantung pada kunci, pindahkan atribut ke table lain.

4. Pisahkan relasi majemuk-tidak ada table yang bisa mengandung data atau
lebih relasi 1:n atau n:m yang tidak berhubungan langsung.
5. Pisahkan relasi majemuk yang berhubungan secara semantic-ada batasan
pada informasi yang memperbolehkan pemisahan relasi many to many
yang berhungan secara logis.
6. Bentuk normal optimal-sebuah model hanya diabtasi oleh fakta sederhana
7. Bentuk normal domain-key-sebuah model harus terbebas dari semua
anomaly
4.1

Definisi Normalisasi
Normalisasi diartikan sebagai suatu teknik yang menstrukturkan/
mendekomposisi/ memecah data dalam caracara tertentu untuk mencegah
timbulnya permasalahan pengolahan data dalam basis data. Permasalahan
yang dimaksud adalah berkaitan dengan penyimpanganpenyimpangan
(anomalies) yang terjadi akibat adanya kerangkapan data dalam relasi dan
inefisiensi pengolahan.
Proses normalisasi akan menghasilkan relasi yang optimal, yaitu :
1. Memiliki struktur record yang mudah untuk dimengerti.
2. Memiliki struktur record yang sederhana dalam pemeliharaan.
3. Memiliki struktur record yang mudah untuk ditampilkan kembali untuk
memenuhi kebutuhan pemakai.
4. Minimalisasi kerangkapan data guna meningkatkan kinerja sistem.
Dalam pendekatan normalisasi, perancangan basis data bertitik tolak
dari situasi nyata. Ia telah memiliki itemitem data yang siap ditempatkan
dalam baris dan kolom pada tabeltabel relasional. Demikian juga dengan
sejumlah aturan tentang keterhubungan antara itemitem data tersebut.
Sementara pendekatan model data ER lebih tepat dilakukan jika yang
diketahui baru prinsip sistem secara keseluruhan.
Cukup sering pendekatan ini dilakukan bersamasama, berganti
ganti. Dari fakta yang telah kita miliki, kita lakukan normalisasi. Untuk
kepentingan evaluasi dan dokumentasi, hasil normalisasi itu kita wujudkan

dalam sebuah model data. Model data yang sudah jadi tersebut bisa saja
dimodifikasi dengan pertimbangan tertentu. Hasil modifikasinya kemudian
kita implementasikan dalam bentuk sejumlah struktur tabel dalam sebuah
basis data. Struktur ini dapat kita uji kembali dengan menerapkan aturan
aturan normalisasi, hingga akhirnya kita peroleh sebuah struktur basis data
yang benarbenar efektif dan efisien. Begitulah kedua pendekatan dapat
saling memperkuat satu sama lain.
4.2

Atribut Tabel
Atribut yang sebenarnya identik dengan pemakaian istilah kolom data.
Istilah atribut ini lebih umum digunakan dalam perancangan basis data,
karena istilah itu lebih impresif dalam menunjukkan fungsinya sebagai
pembentuk karakteristik (sifatsifat) yang melekat pada sebuah table.
1. Atribut Sederhana (Simple Attribute) dan Atribut Komposit (Composite
Attribute)
Atribut sederhana adalah atribut atonik yang tidak dapat dipilah lagi.
Sementara atribut komposit merupakan atribut yang masih dapat
diuraikan lagi menjadi subsub atribut yang masingmasing memiliki
makna.
Contoh pada tabel mahasiswa, atribut nama_mhs merupakan atribut
sederhana. Sedangkan alamat_mhs merupakan atribut komposit, karena
dapat diuraikan menjadi beberapa sub atribut seperti alamat, nama_kota
dan kode_pos yang masingmasing memiliki makna.

Nim
.

nama_mhs
Andika Budi

alamat_mhs
tgl_lahir
Jl. Mangga IV No. 80 Semarang ..

.
.

Silvana Putri
.

50173
Jl. Belimbing No. 21 Semarang 50175
.

..
..

Dapat diuraikan menjadi


3 atribut

Alamat
Jl. Mangga IV No. 80
Jl. Belimbing No. 21
..

Kota
Semarang
Semarang
..

kode_pos
50173
50175
.

2. Atribut BernilaiTunggal (Single Valued Attribute) dan Atribut Bernilai


Banyak (Multi Valued Atrtribute)
Atribut bernilai tunggal ditujukan pada atributatribut yang memiliki
paling banyak satu nilai untuk setiap basis data. Pada data mahasiswa,
semua atribut (nim, nama_mhs, alamat_mhs dan tgl_lahir) merupakan
atribut bernilai tunggal, karena atributatribut tersebut hanya dapat
berisi 1 (satu) nilai. Jika seorang mahasiswa yang memiliki 2 (dua)
tempat tinggal, maka hanya salah satu saja yang boleh diisikan ke dalam
atribut alamat_mhs.
Atribut bernilai banyak ditujukan pada atributatribut yang dapat kita isi
dengan lebih dari 1 (satu) nilai, tetapi jenisnya sama. Kita dapat
menambahkan atribut hobi, pada data mahasiswa tersebut. Seorang
mahasiswa ada yang mempunyai 1 hobi saja, ada juga yang mempunyai
hobi banyak dan bahkan ada mahasiswa yang tidak memiliki hobi.
Atribut semacam ini tergolong atribut bernilai banyak.
Nim
040001

nama_mhs
..

alamat_mhs
..

tgl_lahir
..

hobi
Membaca
Berenang
Menari

040002

..

..

..

040003
040004

..
..

..
..

..
..

Musik
Sepak Bola

040005

..

..

..

Basket
Menyanyi

Atribut Bernilai Tunggal

Atribut Bernilai Banyak

3. Atribut Harus Bernilai (Mandatory Attribute) dan Nilai Null


Ada sejumlah atribut pada sebuah tabel yang kita tetapkan harus berisi
data. Jadi nilainya tidak boleh kosong. Atribut semacam ini disebut
Mandatory Attribute. Pada tabel mahasiswa, misalnya atribut nim dan
nama_mhs dapat kita golongkan sebagai Mandatory Attribute, karena
setiap mahasiswa yang datanya ingin disimpan ke tabel tersebut, paling
tidak harus diketahui dengan pasti nim dan namanya. Sebaliknya pula
atributatribut lain suatu tabel yang nilainya boleh dikosongkan (Non
Mandatory Attribute). Nilai Null digunakan untuk menyatakan/ mengisi
atributatribut demikian yang nilainya memang belum siap atau tidak
ada.
Nim
..
..
..
..

nama_mhs
..
..
..
..

alamat_mhs
..
..
..
..

Mandatory Attribute

tgl_lahir
..
..
..
..

hobi
..
..
..
..

Non Mandatory Attribute

4. Atribut Turunan
Atribut turunan adalah atribut yang nilainilainya diperbolehkan dari
pengolahan atau dapat diturunkan dari atribut atau tabel lain yang
berhubungan. Atribut demikian sebetulnya dapat ditiadakan dari sebuah
tabel, karena nilainilainya bergantung pada nilai yang ada di atribut
lainnya.
Penambahan atribut angkatan dan IP (Indeks Prestasi) pada tabel
mahasiswa berikut merupakan contoh atribut turunan
nim
040001
040002
..
050001
050002
..

nama_mhs
..
..
..
..
..
..

alamat_mhs
..
..
..
..
..
..

tgl_lahir
..
..
..
..
..
..

angkatan
2004
2004
..
2005
2005
..

ip
3,25
2,85
..
2,95
3,10
..

Atribut Turunan

4.3

Domain dan Tipe Data

Penetapan tipe data pada setiap atribut (kolom) untuk keperluan


penentuan struktur setiap tabel. Penetapan tipe data ini akan
berimplikasi

pada

adanya

batasbatas

nilai

yang

mungkin

disimpan/diisikan kesetiap atribut tersebut. Jika kita menetapkan bahwa


tipe data untuk sebuah atribut adalah integer, maka kita hanya mungkin
untuk menyimpan data angka yang bulat diantara 32.768 hingga
32.768. Kita tidak mungkin untuk memasukkan data diluar batas nilai
tersebut, data pecahan apalagi data berupa string/text.

Domain memiliki banyak kesamaan pengertian dengan fungsi tipe data


tersebut. Akan tetapi, tipe data merujuk pada kemampuan penyimpanan
data yang mungkin bagi suatu atribut secara fisik, tanpa melihat layak
tidaknya data tersebut bila dilihat dari kenyataannya pemakaiannya.
Sementara domain nilai lebih ditetapkan pada batasbatas nilai yang
diperbolehkan bagi suatu atribut, dilihat dari kenyataanya yang ada.

10

Contoh : pada tabel kuliah, ditetapkan tipe data untuk atribut sks adalah

integer. Dengan begitu secara fisik kita dapat menyimpan nilai 1, 0 atau
100 untuk atribut sks. Tetapi kita mengetahui dengan pasti, bahwa nilai
nilai tersebut tidak pantas (invalid) untuk menjadi data pada atribut sks.
Lalu nilainilai yang boleh (valid) untuk atribut sks adalah 1, 2, 3, 4 dan
6, maka dapat dikatakan, domain nilai untuk atribut sks adalah 1, 2, 3, 4
dan 6.
4.4

Ketergantungan Fungsional (Fungsional Dependency)


Diberikan sebuah tabel T berisi paling sedikit 2 buah atribut, yaitu A dan B.
Kita dapat menyatakan notasi berikut ini :
AB
Yang berarti A secara fungsional menentukan B atau B secara fungsional
tergantung pada A, jika dan hanya jika setiap kumpulan baris (row) yang ada
di tabel T, pasti ada 2 baris data (row) di tabel dengan nilai A yang sama,
maka nilai B pasti juga sama. Definisi yang paling formal untuk itu adalah :
Diberikan 2 row r1 dan r2 dalam tabel T dimana A B.
jika r1(A) = r2(A) maka r1(B) = r2(B)
nama_kul

nim

nama_mhs

indeks_nila

row 1

Sistem Basis Data

040001

Santi Purnamasari

i
A

row 2

Sistem Basis Data

040002

Budi Setyawan

row 3
row 4

Struktur Data
Struktur Data

040001
040002

Santi Purnamasari
Budi Setyawan

row 5
row 6

Struktur Data
Komunikasi Data

040003
040001

Kartika Sari
Santi Purnamasari

row 7

Riset Operasi

040002

Budi Setyawan

Dengan melihat data di atas dan dengan pertimbangan intuisi kita, maka
ketergantungan fungsional yang dapat kita ajukan adalah :
nim nama_mhs

11

yang berarti bahwa atribut nama_mhs hanya tergantung pada atribut


nim. Hal ini dibuktikan dari fakta : untuk setiap nilai nim yang sama
maka pasti nilai nama_mhsnya juga sama.
nama_kul, nim indeks_nilai
yang berarti bahwa atribut indeks_nilai tergantung pada atribut
nama_kul dan nim secara bersamasama, memang kita tidak dapat
menunjukkan fakta, bahwa untuk setiap nilai nama_kul dan nim yang
sama, maka nilai indeks_nilainya juga sama, karena nama_kul, nim
merupakan key (sehingga bersifat unik) untuk tabel tersebut. Tetapi,
ketergantungan fungsional tersebut sesuai dengan pengertian bahwa
setiap indeks_nilai diperuntukkan pada mahasiswa tertentu untuk mata
kuliah tertentu yang diambilnya.
Tanpa memperhatikan pengertian ketergantungan secara alamiah terhadap
tabel tersebut, kita juga dapat mengajukan sejumlah ketidaktergantungan
(non KF) dengan hanya melihat fakta yang ada,yaitu :
nama_kul

nim

yang artinya atribut nim tidak tergantung pada atribut nama_kul.


Buktinya terlihat pada row 1 dan row 2 : dengan nilai nama_kul yang
sama, tapi nilai nimnya berbeda.
nim

nideks_nilai

yang artinya atribut indeks_nilai tidak bergantung pada atribut nim.


Buktinya terlihat pada row 1 dan row 3 : dengan nilai nim yang sama,
tapi nilai indeks_nilai berbeda.
4.5

Normalisasi dan KetergantunganFungsional


Dalam perspektif normalisasi, sebuah basis data dapat dikatakan baik, jika
setiap tabel yang menjadi unsur pembentuk basis data tersebut juga telah
berada dalam keadaan baik atau normal. Selanjutnya, sebuah tabel dapat
dikategorikan baik (efisien) atau normal, jika telah memenuhi 3 (tiga)
kriteria berikut :

12

1. Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus


dijamin aman (LosslessJoin Decomposition).
2. Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
3. Tidak melanggar BoyceCode Normal Form (BCNF)
LosslessJoin Decomposition
Dekomposisi memang merupakan upaya untuk mendapatkan tabel yang
baik. Tetapi jika tidak hatihati, upaya ini justru dapat menghasilkan
kesalahan. Dekomposisi yang benar terjadi jika tabeltabel hasil
dekomposisi kita gabungkan kembali dapat menghasilkan tabel awal
sebelum didekomposisi. Dekomposisi yang benar semacam ini disebut
LosslessJoin Decomposition atau Lossless Decomposition (dekomposisi
aman).
Di bawah ini contoh abstrak yang menghasilkan dekomposisi tidak aman
(LossyJoin Decomposition) :
Diasumsikan ada table XYZ yang didefinisikan dua buah ketergantungan
fungsional X Y dan Y Z. Kedua ketergantungan fungsional tersebut
diperoleh dari pengamatan terhadap data yang kurang memadai atau karena
asumsi yang kurang tepat.
Katakan isi tabel XYZ tersebut adalah sebagai berikut :
row 1
row 2
row 3
row 4

X
x1
x2
x3
x4

Y
10
20
30
20

Z
z1
z2
z3
z4

Memang dengan isi seperti itu, pernyataan ketergantungan fungsional yang


kedua

Y Z tidak sepenuhnya tepat, karena pada row 2 dan row 4,

dengan nilai untuk atribut Znya berbeda. Tetapi yang ingin ditekankan di
sini adalah adanya dua buah ketergantunagn fungsional itu mendorong kita
untuk mendekomposisi tabel XYZ tersebut menjadi dua buah tabel yaitu
tabel XY dan YZ sebagai berikut :

13

X
x1
x2
x3
x4

Y
10
20
30
20

Y
10
20
30
20

Z
z1
z2
z3
z4

Jika kedua tabel diatas kita gabungkan kembali, maka hasilnya adalah :
X
x1
x2
x2
x3
x4
x4

Y
10
20
20
30
20
20

Z
z1
z2
z4
z3
z2
z4

Maka ini tentu saja berbeda dengan tabel awal (sebelum didekomposisi).
Maka dekomposisi semacam ini disebut LossyJoin Decomposition
(dekomposisi tidak aman), yaitu sebuah dekomposisi yang sedapat mungkin
kita hindari.
Akan tetapi jika data pada row 4 yang ada di tabel XYZ awal, kita ganti
dengan data berikut :
x4

20

z2

Sehingga tabel XYZ menjadi :

Row 1
Row 2
Row 3
Row 4

X
x1
x2
x3
x4

Y
10
20
30
20

Z
z1
z2
z3
z2

14

Dengan data ditabel XYZ demikian maka kedua ketergantungan fungsional


dapat dibenarkan. Tabel XYZ tersebut didekomposisikan menjadi tabel XY
dan YZ sebagai berikut :
X
x1
x2
x3
x4

Y
10
20
30
20

Y
10
20
30

Z
z1
z2
z3

Kalau kedua tabel diatas digabungkan kembali maka, tabel awal XYZnya
akan diperoleh kembali sehingga dekomposisi tersebut aman. Karena itulah
ketergantungan fungsional pada suatu tabel harus kita tetapkan berdasarkan
pengamatan yang teliti dan asumsi yang dapat dipertanggung jawabkan agar
kelak hasil dekomposisi dapat dibenarkan.
Dependency Preservation
Dependency

Preservation

(pemeliharaan ketergantungan)

merupakan

kriteria kedua yang harus dapat dicapai untuk mendapatkan tabel dan basis
data yang baik. Ketika kita melakukan perubahan data, maka harus bisa
dijamin agar perubahan tersebut tidak menghasilkan inkonsistensi data yang
mengakibatkan ketergantungan fungsional yang sudah benar menjadi tidak
terpenuhi. Akan tetapi, dalam upaya untuk memelihara ketergantungan
fungsional yang ada untuk tetap terpenuhi tersebut, prosesnya harus dapat
dilakukan dengan efisien.
Contoh :
Tabel mahasiswa : (nim, nama_mhs, alamat_mhs, tgl_lahir) dengan
ketergantungan fungsionalnya yaitu :
nim nama_mhs, alamat_mhs, tgl_lahir
Tabel

nilai

(nama_kul,

nim,

nama_mhs,

indeks_nilai)

dengan

ketergantungan fungsionalnya yaitu :


nama_kul, nim indeks_nilai dan
nim nama_mhs

15

Jika ada perubahan nama_mhs di tabel mahasiswa maka perubahan


tersebut harus juga dilakukan di tabel nilai dan juga berlaku sebaliknya yaitu
jika ada perubahan nama_mhs di tabel nilai maka perubahan tersebut harus
juga dilakukan di tabel mahasiswa.
Jika hal tersebut tidak dilakukan maka data menjadi tidak konsiste dan
ketergantunan fungsional menjadi tidak terpenuhi. Misalnya nilai yang nim
nya sama tetapi nama_mhs berbeda. Jika begitu, maka perubahan harus
dilakukan diseluruh basis data, tetapi masalahnya perubahan itu tidak efisien
dan seharusnya dihindari.
Karena itu sebaiknya agar kriteria dependency preservation dapat
terpenuhi dengan meniadakan/melepaskan atribut nama_mhs dari tabel nilai
(sehingga tabel nilai berisi 3 atribut, yaitu nama-kul, nim dan indeks_nilai)
Boyce Code Normal Form (BCNF)
Kriteria berikutnya untuk mendapatkan tabel yang baik adalah dengan
menerapkan BCNF. Sebuah tabel dikatakan memenuhi BCNF jika untuk
semua ketergantungan fungsional dengan notasi X Y, maka X harus
merupakan candidate key pada tabel tersebut. Jika tidak demikian, maka
tabel tersebut harus didekomposisi berdasarkan ketergantungan fungsional
yang ada, sedemikian hingga X menjadi candidat key dari tabeltabel hasil
dekomposisi.
Contoh tabel yang tidak memenuhi BCNF :
Ditentukan tabel A = (E, F, G, H, I) dan berlaku ketergantungan fungsional,
yaitu :
E, F G, H, I
F, G H, I
Disini tabel A tidak memenuhi BCNF karena ada X yang bukan candiday
key, yaitu F, G sehingga F, G H, I.
Sedangkan E, F adalah candidat key karena E, F G, H, I
Karena terdapat 2 ketergantungan fungsional maka agar tabel A tidak
memenuhi BCNF maka tabel tersebut harus didekomposisikan menjadi :
A1 = (E, F, G) dengan ketergantungan fungsional E, F G
16

A2 = (F, G, H, I) dengan ketergantungan fungsional F, G H, I


4.6

BentukBentuk Normalisasi
Normalisasi data adalah proses yang berkaitan dengan model data relasional
untuk

mengorganisasi

himpunan

data

dengan

ketergantungan

dan

keterkaitan yang tinggi/ erat. Hasil dari proses normalisasi adalah tabel
tabel data dalam bentuk normal (normal form), yaitu tabeltabel data yang
terhindar dari :
Pengulangan informasi.
Potensi inkonsistensi data pada operasi pengubahan.
Bentuk Normal Tahap Pertama (1st Normal Form)
Suatu tabel memenuhi 1stNF jika dan hanya jika tabel tersebut tidak
memiliki atribut bernilai banyak atau lebih dari satu atribut dengan domain
nilai yang sama.
Contoh tabel yang tidak memenuhi 1stNF
Tabel mahasiswa = (nim, nama_mhs, alamat_mhs, hobi)
Nim

nama_mhs

alamat_mhs

Hobi

040001

Sintawati

Tlogosari

Menari, Membaca

040002

Andika

Peterongan

Berenang

040003

Setiawan

Ngaliyan

Basket, Sepak Bola

040004

Kartika Sari

Banyumanik

Menyanyi

040005

AstiAnanta

Kaliwiru

Membaca,Musik, Basket

Atribut hobi memiliki nilai banyak dalam satu baris.


Contoh tabel yang memenuhi 1stNF
nim
040001
040001
040002
040003
040003

nama_mhs
Sintawati
Sintawati
Andika
Setiawan
Setiawan

alamat_mhs
Tlogosari
Tlogosari
Peterongan
Ngaliyan
Ngaliyan

hobi
Menari
Membaca
Berenang
Basket
Sepak Bola

17

040004
040005
040005
040005

Kartika Sari
AstiAnanta
AstiAnanta
AstiAnanta

Banyumanik
Kaliwiru
Kaliwiru
Kaliwiru

Menyanyi
Membaca
Musik
Basket

Setiap atribut hanya memiliki nilai tunggal dalam satu baris.


Bentuk Normal Tahap Kedua (2nd Normal Form)
Suatu tabel memenuhi 2ndNF jika dan hanya jika :
1. Tabel tersebut memenuhi 1stNF
2. Setiap atribut yang bukan kunci utama (primary key) tergantung secara
fungsional terhadap semua atribut kunci utama dan bukan tergantung
secara fungsional hanya pada sebagian atribut kunci utama.
Contoh tabel yang tidak memenuhi 2ndNF
Jika diketahui tabel T = (A, B, C, D, E)
Dan berlaku ketergantungan fungsional
A, B C, D
BE
Disini atribut E hanya tergantung secara fungsional terhadap atribut B
saja, bukan terhadap A, B. Maka tabel tersebut tidak memenuhi 2ndNF.
Agar tabel tersebut dapat memenuhi 2ndNF, maka tabel tersebut
didekomposisikan menjadi dua relasi yaitu :
T1 = (A, B, C, D) dan T2 = (B, E)
Tabel T1 dan T2 secara keseluruhan memenuhi 2ndNF, karena semua
atribut bukan kunci utama tergantung secara fungsional terhadap semua
atribut kunci.
Contoh tabel yang memenuhi 2ndNF
Jika diketahui table T = (A, B, C, D, E)
A, B dalah kunci utama
C, D, E bukan kunci utama
Maka harus berlaku A,B C, D, E artinya

18

A, B C
A, B D
A, B E
Catatan :
Jika suatu tabel memenuhi 1sfNF dan tabel tersebut memiliki tepat satu
atribut yang membentuk kunci utama,

maka relasi tersebut memenuhi

2ndNF.
Bentuk Normal Tahap Ketiga (3rd Normal Form)
Suatu tabel memenuhi bentuk normal 3rdNF jika dan hanya jika :
1. Tabel tersebut memenuhi 2ndNF.
2. Tidak ada atribut bukan kunci tergantung secara transitive pada kunci
utama.
Contoh tabel yang tidak memenuhi 3rdNF :
Diketahui tabel T = (A, B, C, D, E) dan berlaku ketergantungan fungsional :
A, B C, D, E
C D, E
Dalam hal ini tabel tidak memenuhi 3rdNF karena atribut D dan E yang
bukan kunci tergantung secara fungsional kepada C yang juga bukan kunci
(atau dengan kata lain D dan E tergantung secara transitive kepada kunci
utama).
Agar tabel T diatas memenuhi 3rdNF maka harus didekomposisikan
menjadi :
T1= (A, B, C) dan T2 = ( C, D, E)
Karena masingmasing T1 dan T2 memenuhi 3rdNF maka keseluruhan relasi
diatas memenuhi 3rdNF.
Catatan :
Suatu tabel yang memenuhi 2ndNF dan hanya memiliki satu atribut bukan
kunci selalu memenuhi 3rdNF.
Bentuk Normal Tahap Keempat (4th Normal Form)
Suatu tabel memenuhi bentuk normal 4rdNF jika dan hanya jika :
19

1. Memenuhi kriteria BCNF


2. Setiap atribut di dalamnya tidak mengalami ketergantungan pada banyak
nilai atau dengan kalimat lain, bahwa semua atribut yang mengalami
ketergantungan pada banyak nilai adalah bergantung secara fungsional
(functionally dependency)
Bentuk Normal Tahap Kelima (5th Normal Form)
Suatu tabel memenuhi bentuk normal 5rdNF jika dan hanya jika :
Kerelasian antar data dalam relasi tersebut tidak dapat direkonstruksi dari
struktur relasi yang memuat atribut yang lebih sedikit.
4.7

Contoh Kasus Normalisasi


Untuk membantu pemahaman tentang bentuk dan proses normalisasi akan
diberikan contoh relasi dalam bentuk tidak normal dan kemudian secara
bertahap diubah menjadi optimal dalam bentuk 2ndNF atau 3rdNF.
Contoh :
Terdapat sebuah tabel dengan komposisi sebagai berikut :

20

Tabel Relasi mahasiswa dalam bentuk UnNormalized/UNF


Nim
61521
61300
61425
61230

nama_mhs
Andika
Sari
Dewi
Rudi

kode_mk
SDT231, KDT220, SBD211
SBD211
RPL202, SDT231
SD231, RPL202

Catatan :
Tabel Mahasiswa di atas belum memenuhi kriteria 1stNF, sebab atribut
kode_mk

masih

memiliki

nilai

ganda

dalam

satu

baris.

Untuk

mengkonversikan tabel mahasiswa tersebut ke dalam bentuk 1stNF, maka


kita harus menyusun kembali barisbaris pada kode_mk, sehingga setiap
baris memiliki nilai tunggal, seperti tabel di bawah ini.
Tabel Relasi Mahasiswa dalam bentuk 1stNF
nim
nama_mhs
kode_mk
61521
Andika
SDT231
61521
Andika
KDT220
61521
Andika
SBD211
61300
Sari
SBD211
61425
Dewi
RPL202
61425
Dewi
SDT231
61230
Rudi
SDT231
61230
Rudi
RPL202
Tabel Mahasiswa diatas sudah memenuhi kriteria 1stNF, tetapi belum
memenuhi kriteria 2ndNF sebab atribut nim bergantung fungsional pada
nama_mhs dan atribut kode_mk juga bergantung fungsional pada
nama_mhs, sehingga tabel mahasiswa di atas perlu dipecah menjadi dua
tabel agar setiap atribut bukan primary key hanya tergantung sepenuhnya
terhadap atribut primary key saja, seperti tabel di bawah ini.
Tabel Relasi Mahasiwa dalam bentuk 2stNF
Tabel Mahasiswa_1 dan
Nim
61521
61521
61521

nama_mhs
Andika
Andika
Andika

Tabel Mahasiswa_2
nama_mhs
Andika
Andika
Andika

kode_mk
SDT231
KDT220
SBD211
21

61300
Sari
Sari
SBD211
61425
Dewi
Dewi
RPL202
61425
Dewi
Dewi
SDT231
61230
Rudi
Rudi
SDT231
61230
Rudi
Rudi
RPL202
Tabel Mahasiswa_C dibawah ini akan dilakukan uji normalisasi dari
bentuk normal satu 1sfNF sampai ke bentuk normal ketiga 3rdNF
Terdapat sebuah tabel yang sudah memenuhi kriteria 1stNF dengan
komposisi sebagai berikut :
Tabel Relasi Mahasiswa_C bentuk 1stNF
Nim

nama_

tgl_lahir

6152

mhs
Andika

12-05-85

1
6152

Andika

1
6152

Kuliah

kode_m

sks

nil

bo

Struktur Data

k
SDT231

ai
B

bot
3

12-05-85

Komunikasi Data

KDT220

Andika

12-05-85

Sistem Basis Data

SBD211

1
6130

Sari

14-06-86

Sistem Basis Data

SBD211

0
6142

Dewi

18-09-86

Rekayasa Perangkat Lunak RPL202

5
6142

Dewi

18-09-86

Struktur Data

SDT231

5
6123

Rudi

01-12-85

Struktur Data

SDT231

0
6123

Rudi

01-12-85

Rekayasa Perangkat Lunak RPL202

0
Dari tabel relasi Mahasiswa_C di atas terdapat beberapa ketergantungan
fungsional di antara atributatributnya sebagai berikut :
nim nama_mhs, tgl_lahir
kode_mk kuliah, sks

22

nim, kode_mk nilai


nilai bobot
Tabel Mahasiswa_C di atas belum memenuhi kriteria 2ndNF, selama terdapat
beberapa atribut seperti tgl_lahir, kuliah yang tidak memiliki ketergantungan
fungsional terhadap primary key (nim, kode_mk).
Untuk mengkonversi tabel tersebut menjadi 2ndNF, maka tabel Mahasiswa_C
perlu dipecah menjadi 3 tabel yaitu : tabel mahasiswa_C 1 = (nim,
nama_mhs, tgl_lahir), mahasiswa_C2 = (kode_mk, kuliah, sks) dan
mahasiswa_C3 = (nim, kode_mk, nilai, bobot) dengan komposisi tabel
sebagai berikut :
Tabel Relasi Mahasiswa_C1 bentuk 2ndNF
Nim
61521
61300
61425
61230

nama_mhs
Andika
Sari
Dewi
Rudi

tgl_lahir
12-05-85
14-06-86
18-09-86
01-12-85

23

Tabel Relasi Mahasiswa_C2 bentuk 2ndNF


kode_mk
Kuliah
sks
SDT231
Struktur Data
3
KDT220
Komunikasi Data
3
SBD211
Sistem Basis Data
2
RPL202
Rekayasa Perangkat Lunak 2
Tabel Relasi Mahasiswa_C3 bentuk 2ndNF
Nim
61521
61521
61521
61300
61425
61425
61230
61230

kode_mk
SDT231
KDT220
SBD211
SBD211
RPL202
SDT231
SDT231
RPL202

nilai
B
A
B
A
C
B
B
C

bobot
3
4
3
4
2
3
3
2

Tabel Mahasiswa_C1 dan Mahasiswa_C2 telah memenuhi kriteria 3rdNF,


namun tabel Mahasiswa_C3 belum memenuhi kriteria 3rdNF, selama atribut
nonkey/bukan kunci nilai dan bobot masih saling memiliki ketergantungan
fungsional.
Untuk mengkonversinya menjadi bentuk 3rdNF, maka tabel mahasiswa_C3
tersebut perlu dipecah menjadi 2 tabel yaitu :
Table mahasiswa_C3A = (nim, kode_mk, nilai) dan Mahasiswa_C3B = (nilai,
bobot) dengan komposisi tabel sebagai berikut :

24

Tabel Relasi Mahasiswa_C3A bentuk 3rdNF


nim
61521
61521
61521
61300
61425
61425
61230
61230

kode_mk
SDT231
KDT220
SBD211
SBD211
RPL202
SDT231
SDT231
RPL202

nilai
B
A
B
A
C
B
B
C

Tabel Relasi Mahasiswa_C3 bentuk 3rdNF


Nilai
A
B
C
D
E

bobot
4
3
2
1
0

25

BAB III
PENUTUP
A. KESIMPULAN
Normalisasi adalah proses dua langkah yang meletakkan data dalam
bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan
data yang terduplikasi dari table relasional
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi
basis data. Selaindipakai sebagai metodologi tersendiri untuk menciptakan
struktur tabel 9relasi) dalam basis data (dengan tujuan utnuk mengurangi
kemubaziran data) , normalisasi terkadang hanya diipakai sebagai perangkat
verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya ER).
Normalisasi diartikan sebagai suatu teknik yang menstrukturkan/
mendekomposisi/ memecah data dalam caracara tertentu untuk mencegah
timbulnya permasalahan pengolahan data dalam basis data. Permasalahan
yang dimaksud adalah berkaitan dengan penyimpanganpenyimpangan
(anomalies) yang terjadi akibat adanya kerangkapan data dalam relasi dan
inefisiensi pengolahan.
Proses normalisasi akan menghasilkan relasi yang optimal, yaitu :
5. Memiliki struktur record yang mudah untuk dimengerti.
6. Memiliki struktur record yang sederhana dalam pemeliharaan.
7. Memiliki struktur record yang mudah untuk ditampilkan kembali untuk
memenuhi kebutuhan pemakai.
8. Minimalisasi kerangkapan data guna meningkatkan kinerja sistem.
Aljabar relasional merupakan bahasa teoritis yang operasi-operasinya
bekerja pada satu atau lebih dari satu relasi untuk mendefinisikan relasi-relasi lain
tanpa mengubah relasi original. Hasil dari operasi aljabar relasional berupa relasi
juga yang dapat digunakan untuk operasi lain.

26

Atribut identik dengan istilah kolom data tetapi dapat menunjukkan


fungsinya sebagai pembentuk karakteristik (sifat-sifat) yang melekat dalam
sebuah tabel.Pada penerapan aturan normalisasi, bisa berdampak pada
penghilangan atau penambahan kolom tertentu, atau bahkan dapat memebentuk
suatu tabel baru. Macam macam atribut tabel :
1.atribut key dan atribut descriptif
2.atribut sederhana dan atribut komposit
3.atribut bernilai tunggal dan atribut bernilai banyak
4.atribut harus bernilai dan nilai null
5.atribut turunan
Domain memiliki banyak kesamaan dengan pengertian dengan tipe data
tersebut. Akan tetapi tipe data lebih merujuk pada kemampuan penyimpanan yang
mungkin pada suatu atribut secara fisik, tanpa melihat layak/tidaknya data tersebut
bila dilihat dari kenyataan pemakaiannya.
Pada saat pekerjaan merancang basis data tengah dilakukan yang perlu kita
lihat dan pertimbangkan hanyalah domain nilai data dari setiap atribut. Penetapan
tipe data bagi suatu atribut baru akan relevan dan penting untuk diperhitungkan
pada saat implementasi basis data
B. SARAN
Adapun pesan dan saran dari saya semoga dengan adanya tugas makalah ini
yang di berikan oleh dosen penggampu semoga dapat bertambah ilmu
pengetahuan teman-teman dan terutama diri saya sendiri yang membuat
makalah ini.
Agar kita selalu meningkatkan,mengali dan mengkaji lebih dalam lagi
tentang normalisasi data karena tentang pembahasan makalah normalisasi
data ini sangat banyak buku-buku panduan maupun yang ada di internet.

27

DAFTAR PUSTAKA

http://xzilin.blogspot.co.id/2012/11/jenis-atribut-tabel.html
http://evarahmawidia07.blogspot.co.id/2009/01/domain-dan-tipe-data.html
https://tuhfatussalisah.wordpress.com/2016/01/06/ketergantungan-fungsional/
http://sisunonline.blogspot.co.id/2010/10/normalisasi-denganketergantungan.html
http://chynteea.blogspot.co.id/2008/12/normalisasi-dengan-ketergantungan.html
https://tuhfatussalisah.wordpress.com/2016/01/06/ketergantungan-fungsional/

28

Anda mungkin juga menyukai