Top Banner
1 BAB I NORMALISASI DATABASE Capaian Pembelajaran: Setelah membaca dan mengkaji bab ini, pembaca akan mampu: Menyebutkan tujuan dan macam-macam bentuk normalisasi sesuai dengan konsep normalisasi Edgar F. Codd Menjelaskan tahapan normalisasi database sesuai dengan konsep normalisasi Edgar F. Codd Memisahkan database ke dalam beberapa tabel dengan benar berdasarkan konsep normalisasi Edgar F. Codd Menunjukkan kolom pada tabel yang dijadikan sebagai primary key dengan benar berdasarkan konsep normalisasi Edgar F. Codd 1.1 PENGERTIAN NORMALISASI Database adalah serangkaian kolom dan baris yang berisi informasi. Masing-masing kolom berisi judul yang menggambarkan informasi di dalamnya, sedangkan setiap baris berisi informasi itu sendiri. Dalam istilah database, kolom disebut dengan field (judul kolom disebut field name) dan baris disebut record. Untuk memperjelas gambaran tentang struktur database perhatikan gambar 1.1 berikut ini.
15

BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

May 19, 2018

Download

Documents

lykiet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

1

BAB I

NORMALISASI

DATABASE

Capaian Pembelajaran:

Setelah membaca dan mengkaji bab ini, pembaca akan mampu:

Menyebutkan tujuan dan macam-macam bentuk normalisasi sesuai dengan

konsep normalisasi Edgar F. Codd

Menjelaskan tahapan normalisasi database sesuai dengan konsep normalisasi

Edgar F. Codd

Memisahkan database ke dalam beberapa tabel dengan benar berdasarkan

konsep normalisasi Edgar F. Codd

Menunjukkan kolom pada tabel yang dijadikan sebagai primary key dengan

benar berdasarkan konsep normalisasi Edgar F. Codd

1.1 PENGERTIAN NORMALISASI

Database adalah serangkaian kolom dan baris yang berisi informasi.

Masing-masing kolom berisi judul yang menggambarkan informasi di

dalamnya, sedangkan setiap baris berisi informasi itu sendiri. Dalam istilah

database, kolom disebut dengan field (judul kolom disebut field name) dan

baris disebut record. Untuk memperjelas gambaran tentang struktur database

perhatikan gambar 1.1 berikut ini.

Page 2: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

2

Salah satu langkah yang paling penting dalam merancang database

adalah harus dipastikan bahwa data terdistribusikan di antara tabel-tabel

dengan benar. Di dalam tabel tersebut harus ditentukan struktur database

dengan benar dan tepat. Dengan struktur database yang benar dan tepat,

obyek lainnya dalam database (query, form, report, coding) akan dapat

disederhanakan. Cara mendesain tabel dengan struktur data yang benar dan

tepat disebut normalisasi database.

Menurut Microsoft, normalisasi adalah proses pengorganisasian data

dalam database. Proses pengorganisasian ini menurut Wikipedia meliputi

pengorganisasian Field dan Table dari suatu relational database. Istilah

Field juga sering disebut dengan Attribute. Sedangkan istilah Table disebut

dengan Entitas. Normalisasi biasanya dilakukan dengan cara membagi tabel

besar menjadi tabel-tabel yang lebih kecil, membuat hubungan di antara

tabel-tabel kecil tersebut, dan membuat tabel tambahan. Tujuan pembagian

ini adalah untuk mengisolasi data agar penambahan, penghapusan, dan

modifikasi data dapat dilakukan hanya dalam satu table. Kemudian hasil

isolasi data tersebut disebarkan ke dalam database melalui hubungan yang

dibuat. Sedangkan tujuan dari isolasi data adalah terutama untuk

menghindari adanya redudansi dan ketergantungan data yang tidak konsisten.

Jika redudansi dan ketidak konsistenan ketergantungan data tidak

dihilangkan, maka akan menimbulkan beberapa masalah. Masalah pertama

adalah menyebabkan besarnya kapasitas tempat penyimpanan (harddisk)

yang digunakan, kedua akan menimbulkan masalah dalam pemeliharaannya,

dan ketiga akan menimbulkan ketidak efisienan dalam penyuntingan data.

Sebagai contoh, jika ada perubahan alamat pelanggan, perubahan tersebut

akan jauh lebih mudah dilakukan apabila data tersebut hanya tersimpan di

tabel Pelanggan. Apalagi jika data alamat tersebut terhubung dengan data

lain, seperti data Penjualan dan data Keuangan. Hubungan ini disebut

dengan ketergantungan data.

Edgar F. Codd, penemu model database relasional, memperkenalkan

beberapa konsep normalisasi. Konsep tersebut diberi nama “Bentuk

Normal” (Normal Form/NF). Bentuk Normal Pertama (1NF)

Page 3: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

3

diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk

memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal

Ketiga (3NF) pada tahun 1971. Pada tahun 1974, Codd bersama Raymond

F. Boyce memperkenalkan Formulir Normal Boyce-Codd (BCNF). Pada

umumnya, tabel database relasional disebut "normal" jika table tersebut

sudah memenuhi Bentuk Normal Ketiga, karena sebagian besar tabel

database dalam bentuk 3NF sudah bebas dari anomali (ketidak normalan)

dalam proses penyisipan, update, dan penghapusan.

Jika salah satu dari tiga aturan pertama bentuk normalisasi tidak

dipenuhi, harus dipastikan bahwa pengorganisasian database dapat

mengantisipasi masalah yang akan terjadi. Masalah yang sering terjadi

adalah kelebihan data karena adanya redudansi dan adanya ketergantungan

yang tidak konsisten.

Berikut penjelasan dari masing-masing bentuk proses normalisasi:

1. Bentuk Normal Pertama (1NF)

Tahapan yang harus dilakukan pada 1NF adalah:

a. Hilangkan pengulangan kelompok data dalam suatu tabel.

b. Buatkan tabel tersendiri untuk setiap set data terkait.

c. Identifikasikan setiap set data yang akan dijadikan sebagai primary

key.

Pada tahap ini, jangan menggunakan beberapa field dalam satu

tabel untuk menyimpan data yang sama. Misalnya, untuk menulusuri

item persediaan yang berasal dari dua sumber penjual, bisa jadi data

item persediaan tersebut tersimpan di kolom Kode Penjual 1 dan Kode

Penjual 2. Jika misalnya ada penambahan penjual ketiga, maka tidak

dianjurkan untuk menambahkan field Kode Penjual 3. Sebagai

gantinya, letakkan semua informasi penjual dalam satu tabel terpisah

yang disebut table Penjual, kemudian hubungkan table Penjual dengan

table Persediaan berdasarkan Kode Penjual (sebagai primary key-nya).

Page 4: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

4

2. Bentuk Normal Kedua (2NF)

Tahapan yang harus dilakukan pada 2NF adalah:

a. Buat tabel terpisah untuk sekumpulan nilai yang berlaku pada

beberapa data.

b. Hubungkan tabel tersebut melalui foreign key.

Data yang saling berkaitan harus tergantung pada primary key.

Sebagai contoh adalah Alamat Pelanggan dalam sebuah Sistem

Akuntansi. Alamat Pelanggan tidak hanya dibutuhkan oleh tabel

Pelanggan itu sendiri, tetapi juga oleh tabel Pesanan, Pengiriman,

Faktur, Piutang, dan Pembayaran. Agar tabel Pesanan, Pengiriman,

Faktur, Piutang, dan Pembayaran dapat menggunakan data Alamat

Pelanggan di table Pelanggan, maka di masing-masing table tersebut

perlu ditambahkan field Kode Pelanggan sebagai foreign key-nya.

3. Bentuk Normal Ketiga (3NF)

Tahapan yang harus dilakukan pada 3NF adalah menghilangkan

data pada field yang tidak tergantung pada primary key.

Sebagai contoh pada Sistem Akuntansi di 2NF di atas. Jika pada

tabel Pesanan, Pengiriman, Faktur, Piutang, dan Pembayaran

terdapat data Nama, Alamat, Kota, Kode Pos, Nomor Telepon, dan

Nomor Fax Pelanggan; padahal data Nama, Alamat, Kota, Kode Pos,

Nomor Telepon, dan Nomor Fax Pelanggan sudah ada di table

Pelanggan; maka data-data tersebut harus dihilangkan dari table

Pesanan, Pengiriman, Faktur, Piutang, dan Pembayaran.

4. Normalisasi Bentuk Lainnya

Meskipun sudah ada Bentuk Normal Keempat (4NF) yang juga

disebut Boyce Codd Normal Form (BCNF), Bentuk Normal Kelima

(5NF), dan Bentuk Normal Kenam (6NF); tapi bentuk-bentuk normal

ini jarang digunakan sebagai bahan pertimbangan dalam praktek

Page 5: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

5

mendesain suatu database. Kecuali jika database yang didesain

sangatlah kompleks.

1.2 TAHAPAN NORMALISASI DATABASE

Perhatikan database Mahasiswa berikut. Database di bawah ini dalam

bentuk tabel yang belum dinormalisasi.

Student# Advisor Adv-Room Class1 Class2 Class3 ------------------------------------------------------- 1022 Jones 412 101-07 143-01 159-02 4123 Smith 216 201-01 211-02 214-01

Langkah-langkah Normalisasinya:

1. Bentuk 1NF (Tidak boleh ada pengulangan kelompok data)

Bentuk tabel tidak boleh tiga dimensi (seperti kebanyakan

ditemukan pada spreadsheet). Melainkan harus dua dimensi. Karena

masing-masing mahasiswa mengambil beberapa kelas, maka kelas-kelas

tersebut harus ditulis dalam tabel yang terpisah. Field Class1, Class2,

dan Class3 menunjukkan suatu desain database yang bisa menimbulkan

masalah. Permasalahan yang muncul adalah jika ada seorang mahasiswa

yang akan mengambil kelas lain lagi? Misalnya Class4, Class5, atau

Class6. Apakah pengambilan kelas baru tersebut harus dilakukan dengan

menambahkankan field baru lagi? Atau bagaimana jika sebaliknya? Agar

memenuhi syarat normalisasi database yang baik, di 1NF ubahlah tabel

database mahasiswa dengan cara menghilangkan pengulangan kelompok

menjadi sebagai berikut:

Student# Advisor Adv-Room Class# --------------------------------------- 1022 Jones 412 101-07 1022 Jones 412 143-01 1022 Jones 412 159-02 4123 Smith 216 201-01 4123 Smith 216 211-02 4123 Smith 216 214-01

Page 6: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

6

2. Bentuk 2NF (Menghilangkan redudansi data)

Perhatikan data Class# dan data Student# pada table hasil 1NF

tersebut. Data Class# secara fungsi tidak tergantung pada Student#

(sebagai primary key), dengan demikian hubungan data antara dua field

tersebut belum belum memenuhi bentuk 2NF. Untuk mengubahnya

menjadi 2NF, hilangkan redudansi data dan pisahkan menjadi beberapa

tabel berikut ini.

Tabel Students: Student# Advisor Adv-Room ------------------------------ 1022 Jones 412 4123 Smith 216

Tabel Registration: Student# Class# ------------------ 1022 101-07 1022 143-01 1022 159-02 4123 201-01 4123 211-02 4123 214-01

3. Bentuk 3NF (Hilangkan data yang tidak tergantung pada primary key #)

Perhatikan tabel Students hasil 2NF. Sebenarnya data nomor

ruangan pada field Adv-Room secara fungsional tergantung pada tabel

Advisor karena suatu saat bisa terjadi perubahan pada nomor ruangan

tersebut. Untuk mengantisipasinya, data Adv-Room dipindahkan ke

tabel Advisor sebagai berikut.

Tabel Students: Student# Advisor ------------------- 1022 Jones 4123 Smith Tabel Advisor: Name Room Dept -------------------- Jones 412 42 Smith 216 42

Page 7: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

7

1.3 LATIHAN NORMALISASI

Untuk memahami lebih jelas tentang tahapan dalam normalisasi

database, perhatikan tabel database Penjualan berikut:

Sumber: http://citozcome.blogspot.com/2009/03/contoh-studi-kasus-normalisasi.html

Berdasarkan tabel database di atas, buatlah normalisasinya (1NF, 2NF, dan

3NF).

Langkah-langkah Normalisasinya:

Sebelum dilakukan proses normalisasi, ubahlah tabel database Penjualan

menjadi sebagai berikut:

Berikut ini adalah tahapan normalisasi yang harus dilakukan:

1. Bentuk 1NF (Tidak boleh ada pengulangan kelompok data)

Pada tahapan ini, jadikan tabel database Penjualan menjadi sebagai berikut:

Page 8: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

8

No Faktur Tanggal Nama

Pelanggan Nama Barang Harga per Unit

5070101 29/05/2012 Pitoyo Beras 25000

5070101 29/05/2012 Pitoyo Minyak Tanah 3500

5070101 29/05/2012 Pitoyo Buku 2000

5070102 29/05/2012 Bowo Sabun 5600

5070102 29/05/2012 Bowo Gula 4000

5070103 30/05/2012 Erlina Sikat gigi 12000

5070103 30/05/2012 Erlina Sabun 5600

5070103 30/05/2012 Erlina Odol 13000

5070103 30/05/2012 Erlina Sampo 16000

6070001 01/06/2012 Dayat Beras 25000

6070001 01/06/2012 Dayat Gula 4000

6070001 01/06/2012 Dayat Bedak 1500

2. Bentuk 2NF (Tidak boleh ada pengulangan kelompok data)

Pada tahapan ini, jadikan tabel database Penjualan menjadi sebagai berikut:

Tabel Faktur:

No Faktur Tanggal Nama Pelanggan

5070101 29/05/2012 Pitoyo

5070102 29/05/2012 Bowo

5070103 30/05/2012 Erlina

6070001 01/06/2012 Dayat

Tabel Barang:

Nama Barang Harga per Unit

Beras 25000

Minyak Tanah 3500

Buku 2000

Sabun 5600

Gula 4000

Sikat gigi 12000

Odol 13000

Sampo 16000

Bedak 1500

Page 9: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

9

Page 10: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

10

3. Bentuk 3NF (Hilangkan data yang tidak tergantung pada primary key #)

Pada tahapan ini, jadikan tabel database Penjualan menjadi sebagai berikut:

Tabel Faktur:

NoFaktur# Tanggal Pelanggan

5070101 29/05/2012 1

5070102 29/05/2012 2

5070103 30/05/2012 3

6070001 01/06/2012 4

Tabel Pelanggan: (tambahkan field Pelanggan# sebagai primary key)

Pelanggan# Nama Pelanggan

1 Pitoyo

2 Bowo

3 Erlina

4 Dayat

Tabel Barang: (tambahkan field Barang# sebagai primary key)

Barang# Nama Barang Harga per Unit

1 Beras 25000

2 Minyak Tanah 3500

3 Buku 2000

4 Sabun 5600

5 Gula 4000

6 Sikat gigi 12000

7 Odol 13000

8 Sampo 16000

9 Bedak 1500

Setelah memisahkan database Penjualan ke beberapa tabel, buatlah 1

tabel lagi untuk menggabungkan ketiga tabel yang terpisah sebagai

berikut:

Page 11: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

11

Tabel RincianFaktur:

NoFaktur# Barang# Kuantitas

5070101 1 1

5070101 2 1

5070101 3 1

5070102 4 1

5070102 5 1

5070103 6 1

5070103 4 1

5070103 7 1

5070103 8 1

6070001 1 1

6070001 5 1

6070001 9 1

1.4 TUGAS NORMALISASI

Untuk lebih memahami tentang tahapan dalam normalisasi database,

kerjakan tugas-tugas berikut:

1. Tugas 1

Database berikut sudah dalam bentuk 1NF. Selanjutnya buatlah

bentuk 2NF dan 3NF. Tentukan juga nama tabel dan primary key-nya

(beri tanda # di akhir nama field sebagai petunjuk bahwa field tersebut

adalah primary key).

Page 12: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

12

2. Tugas 2

Database berikut sudah dalam bentuk 1NF. Selanjutnya buatlah

bentuk 2NF dan 3NF. Tentukan juga nama tabel dan primary key-nya

(beri tanda # di akhir nama field sebagai petunjuk bahwa field tersebut

adalah primary key).

3. Tugas 3

Database berikut sudah dalam bentuk 1NF. Selanjutnya buatlah

bentuk 2NF dan 3NF. Tentukan juga nama tabel dan primary key-nya

(beri tanda # di akhir nama field sebagai petunjuk bahwa field tersebut

adalah primary key).

Page 13: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

13

4. Tugas 4

Database berikut sudah dalam bentuk 1NF. Selanjutnya buatlah

bentuk 2NF dan 3NF. Tentukan juga nama tabel dan primary key-nya

(beri tanda # di akhir nama field sebagai petunjuk bahwa field tersebut

adalah primary key).

5. Tugas 5

Database berikut sudah dalam bentuk 1NF. Selanjutnya buatlah

bentuk 2NF dan 3NF. Tentukan juga nama tabel dan primary key-nya

(beri tanda # di akhir nama field sebagai petunjuk bahwa field tersebut

adalah primary key). Field baru bisa ditambahkan sebagai primary key

jika diperlukan.

6. Tugas 6

Berdasarkan 2 halaman dokumen laporan berikut, buatlah bentuk

1NF, 2NF, dan 3NF-nya. Tentukan nama tabel dan primary key-nya (beri

Page 14: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

14

tanda # di akhir nama field sebagai petunjuk bahwa field tersebut adalah

primary key).

7. Tugas 7

Berdasarkan 2 cetakan faktur pembeliuan berikut, buatlah bentuk

1NF, 2NF, dan 3NF-nya. Tentukan tabel-tabel dan nama tabel beserta

primary key-nya (beri tanda # di akhir nama field sebagai petunjuk bahwa

field tersebut adalah primary key).

Page 15: BAB I NORMALISASI DATABASE diperkenalkan pada tahun 1970. Codd kemudian melanjutkan untuk memperkenalkan Bentuk Normal Kedua (2NF) dan Bentuk Normal Ketiga (3NF) pada tahun 1971. Pada

15

8. Tugas 8

Berdasarkan database Laporan Riwayat Kesehatan berikut, buatlah

bentuk 1NF, 2NF, dan 3NF-nya. Tentukan tabel-tabel dan nama tabel

beserta primary key-nya (beri tanda # di akhir nama field sebagai petunjuk

bahwa field tersebut adalah primary key). Tambahkan field lainnya yang

diperlukan.