NORMALISASI
TABEL
“RENTAL
MOBIL”
Nama : Ahmad Nasrulloh
Kelas :
MIP 12.1
NIM :
610421290015
Mata kuliah : Pemrograman SQL
SEKOLAH TINGGI ELEKTRONIKA DAN KOMPUTER
(STEKOM)
NORMALISAI
TABEL RENTAL MOBIL
Normalisasi merupakan sebuah teknik
dalam logical desain sebuah basis data, teknik pengelompokkan atribut dari
suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi).
Normalisasi memiliki beberapa tahapan, antara lain :
- Bentuk Normal Pertama (1NF) memiliki beberapa aturan,yaitu mendefinisikan atribut kunci, tidak adanya group berulang, dan semua atribut bukan kunci tergantung pada atribut kunci
- Bentuk Normal Kedua (2NF) memiliki beberapa aturan, antara lain harus sudah memenuhi dalam bentuk normal kesatu, sudah tidak ada ketergantungan parsial, dan seluruh field hanya tergantung pada sebagian field kunci.
- Bentuk Normal Ketiga (3NF) memiliki beberapa aturan, yaitu harus sudah berada dalam bentuk normal kedua, sudah tidak adanya ketergantungan transitif (dimana field bukan kunci tergantung pada field bukan kunci lainnya), dan bentuk Normal seharusnya berada dalam bentuk normal tertinggi dan bergerak dari bentuk normal satu dan seterusnya untuk setiap kali membatasi hanya satu jenis redudansi. Keseluruhannya cuma ada lima bentuk normal. Tiga bentuk normal pertama menekankan redudansi yang muncul dari Function Dependencies sedangkan bentuk keempat dan kelima menekankan redudansi yang muncul dari kasus Multi Valued Dependencies.
Disini saya akan menampilkan salah
satu contoh database yang akan dinormalisasi yaitu database rental mobil dan
dapat dilihat dibawah ini :
Tabel rental mobil
Id_penyewa
|
Nama
penyewa
|
Nama
mobil
|
Merk
mobil
|
Id
merk
|
Tingkatan
harga
|
Harga/hari
|
00011
|
Rahmat
|
New avansa
|
Toyota
|
T01
|
C
|
Rp. 500.000
|
00012
|
Retno
|
CRV
|
Honda
|
H01
|
B
|
Rp. 1.000.000
|
00013
|
Seno
|
Range rover
Xenia
|
Mitsibishi
Daihatsu
|
M01
D01
|
A
C
|
Rp. 1.500.000
Rp. 500.000
|
00014
|
John
|
Freed
|
Honda
|
H01
|
B
|
Rp. 1.000.000
|
00015
|
Yudi
|
Yaris
|
Toyota
|
T01
|
C
|
Rp. 500.000
|
00016
|
Stiven
|
SX4
Avansa
|
Suzuki
Toyota
|
S01
T01
|
C
C |
Rp. 500.000
Rp. 500.000
|
Tabel tersebut akan dinormalisasi
dengan tiga bentuk seperti yang sudah dijelaskan diatas :
1. Normalisasi pertama
Solusi dalam tabel ini adalah dengan menghilangkan duplikasi dan menjadikan field-field menjadi tergantung pada satu atau beberapa field, tetapi bukan seluruhnya. Disini field yang akan dijadikan primary key antara lain Id Penyewa dan Id Merk yang ditandai dengan model huruf italic
1. Normalisasi pertama
Solusi dalam tabel ini adalah dengan menghilangkan duplikasi dan menjadikan field-field menjadi tergantung pada satu atau beberapa field, tetapi bukan seluruhnya. Disini field yang akan dijadikan primary key antara lain Id Penyewa dan Id Merk yang ditandai dengan model huruf italic
Id_penyewa
|
Nama
penyewa
|
Nama
mobil
|
Merk
mobil
|
Id
merk
|
Tingkatan
harga
|
Harga/hari
|
00011
|
Rahmat
|
New avansa
|
Toyota
|
T01
|
C
|
Rp. 500.000
|
00012
|
Retno
|
CRV
|
Honda
|
H01
|
B
|
Rp. 1.000.000
|
00013
|
Seno
|
Range rover
|
Mitsibishi
|
M01
|
A
|
Rp. 1.500.000
|
00013
|
seno
|
Xenia
|
Daihatsu
|
D01
|
C
|
Rp. 500.000
|
00014
|
John
|
Freed
|
Honda
|
H01
|
B
|
Rp. 1.000.000
|
00015
|
Yudi
|
Yaris
|
Toyota
|
T01
|
C
|
Rp. 500.000
|
00016
|
Stiven
|
SX4
|
Suzuki
|
S01
|
C
|
Rp. 500.000
|
00016
|
stiven
|
Avansa
|
Toyota
|
T01
|
C
|
Rp. 500.000
|
Dan kita dapat dari tabel diatas
adalah adanya bebarapa kesalahan pada kolom merk mobil yang disewa karena
memungkinkan adanya redudansi (pengulangan data)
2. Normalisasi kedua
Field -
field yang tergantung pada satu field haruslah dipisah dengan tepat dan harus
berelasi, misalnya Id Penyewa menjelaskan Nama penyewa, Id
merk, tingkatan harga, dan Harga Sewa per Hari. Lalu Id
Merk menjelaskan Merk Mobil yang disewa dan Merk Mobil yang
disewa menjelaskan Nama Mobil yang disewa dan Tingkatan
harga.
tabel rental mobil
id penyewa
|
Nama penyewa
|
Id merk
|
Tingkatan harga
|
Harga
|
000111
|
Rahmat
|
T01
|
C
|
Rp. 500.000
|
00012
|
Retno
|
H01
|
B
|
Rp. 1.000.000
|
00013
|
Seno
|
M01
|
A
|
Rp. 1.500.000
|
00014
|
John
|
H01
|
B
|
Rp. 1.000.000
|
00015
|
Yudi
|
T01
|
C
|
Rp. 500.000
|
00016
|
Stiven
|
S01
|
C
|
Rp. 500.000
|
Tabel id merk
Nama mobil
|
Id merk
|
Toyota
|
T01
|
Honda
|
H01
|
Mitsibishi
|
M01
|
Honda
|
H01
|
Toyota
|
T01
|
Suzuki
|
S01
|
Tabel nama mobil
Nama mobil
|
Merk mobil
|
Tingkatan harga
|
New avansa
|
Toyota
|
C
|
CRV
|
Honda
|
B
|
Range rover
|
Mitsibishi
|
A
|
Freed
|
Honda
|
B
|
Yaris
|
Toyota
|
C
|
SX4
|
Suzuki
|
C
|
Dan Kita dapat bahwa tabel tersebut masih belum sempurna
dikarenakan masih ada anomali data
3. Normalisasi Ketiga
Pada normalisasi
ini kita mencari solusi dengan cara mencari hubungan transitif dimana tabel
non-key harus berhungan dengan tabel non-key lainnya. maka didapat :
Tabel rental mobil
Id
penyewa
|
Nama
penyewa
|
Id
merk
|
Tngkatan
harga
|
000111
|
Rahmat
|
T01
|
C
|
00012
|
Retno
|
H01
|
B
|
00013
|
Seno
|
M01
|
A
|
00014
|
John
|
H01
|
B
|
00015
|
Yudi
|
T01
|
C
|
00016
|
Stiven
|
S01
|
C
|
Tabel tingkatan harga
Tingkatan
harga
|
Harga/hari
|
A
|
Rp. 500.000
|
B
|
Rp. 1.000.000
|
C
|
Rp. 1.500.000
|
Tabel id merk
Nama mobil
|
Id merk
|
Toyota
|
T01
|
Honda
|
H01
|
Daihatsu
|
D01
|
Mitsubishi
|
M01
|
Suzuki
|
S01
|
Tabel rental mobil
Nama mobil
|
Merk mobil
|
Tingkatan harga
|
New avansa
|
Toyota
|
C
|
CRV
|
Honda
|
B
|
Range rover
|
Mitsibishi
|
A
|
Freed
|
Honda
|
B
|
Yaris
|
Toyota
|
C
|
SX4
|
Suzuki
|
C
|
Dan kita dapat bahwa tabel ini sudah
dapat digunakan dan diimplementasikan karena semua tabel sudah tersusun dan
terelasi dengan baik.
Ini adalah
salah satu contoh normalisasi dengan tiga tahap, Sebenarnya masih ada lagi
bentuk normalisasi yang lain, yi Normalisasi Boyce-Codd dan normalisasi
keempat, hanya sj sangat jarang dipakai. Pada kebanyakan kasus, normalisasi
hanya sampai ketiga.
bentuk databaseny blom di bentuk ya kak
ReplyDeleteaku cape ingin nikah aja.
ReplyDeleteinfo loker donk please
ReplyDelete