NORMALISASI
Adapun tinjauan pustaka dan referensi secara umum yang digunakan dalam
menyelesaikan modul praktikum basis data ini diantaranya adalah sebagai
berikut.
3.1 Tujuan Praktikum
Tujuan dalam penulisan
praktikum basis
data adalah sebagai berikut:
1.
Memahami proses pembuatan ER
diagram pada database.
2.
Mengetahui dan memahami proses
normalisasi dari tabel-tabel yang dibuat hingga level yang paling normal.
3.
Memahami proses pembuatan relasi
antar tabel (relationship) beserta primary key, foreign key dan tipe data dari masing-masing field dari tabel yang dibuat.
3.2 Tinjauan
Pustaka
Teori
yang mendasari materi yang dipaparkan pada modul pertama ialah teori-teori yang
didapat dari berbagai sumber dan pustaka yang dipakai pada pembuatan laporan
diantaranya adalah:
3.2.1 Entity Relationship Diagram
Entity
Relationship Diagram atau ERD merupakan suatu model perancangan yang menjelaskan tentang data dalam
basis data berdasarkan objek-objek data yang mempunyai hubungan antar relasi. Entity relationship diagram ini
berfungsi untuk memodelkan struktur data dan hubungan antar data dengan menggunakan gambar
perancangan berupa simbol.
3.2.1.1
Entitas
Entitas adalah individu yang mewakili sesuatu yang
nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain. Dapat berupa
suatu elemen dari suatu lingkungan, suatu sumber daya atau sebuah transaksi
yang memiliki arti penting bagi suatu model yang akan dibangun.
Gambar 3.1 Entitas
3.2.1.2 Atribut
Atribut
merupakan deskripsi dari entitas atau dengan kata lain bagian dari entitas atau
entity. Isi dari atribut mempunyai
sesuatu yang dapat mengidentifikasi isi elemen satu dengan yang lainnya. Simbol
atribut digambarkan dengan elips.
Gambar 3.2
Atribut
3.2.1.3 Relasi/Hubungan
Relasi / Hubungan
merupakan hubungan antara sejumlah entitas atau entity yang saling terkait satu sama lainnya. Relasi atau hubungan
sendiri disimbolkan seperti belah ketupat.
Gambar 3.3
Relasi/Hubungan
Adapun
bentuk relasi / Hubungan yaitu :
1. Satu
ke satu (One to one)
Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas
misalkan A berhubungan paling banyak dengan satu entitas pada himpunan entitas
misalkan B.
2. Satu
ke banyak (One to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak
entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat
berhubungan dengan satu entitas pada himpunan entitas A.
3. Banyak
ke banyak (Many to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak
entitas pada himpunan entitas B dan sebaliknya.
3.2.2 Normalisasi
Proses normalisasi adalah proses untuk memperoleh
properti-properti skema relasi yang bagus menjadi bentuk normal lebih tinggi
sehingga syarat-syarat dibawah ini terpenuhi:
1.
Mengoptimalisasi redudansi (pengulangan data yang tidak
perlu). Redudansi tidak bisa dihilangkan sama sekali karena berguna untuk
integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk jumlah data
yang tidak terlalu banyak mungkin tidak terlalu berpengaruh dalam hal
penggunaan harddisk. Tapi bayangkan jika ada ribuan, bahkan jutaan redudansi,
mungkin akan sangat berpengaruh pada penggunaan ruang.
2.
Menghilangkan anomali. Anomali pada dasarnya adalah
ketidak-konsistenan (inkonsistensi). Misalkan ada pergantian nama dari Bank
Perkasa menjadi Bank Perkasa Utama sebanyak 4 record. Jika pergantian nama
hanya dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan
yaitu satu nomor bank berrelasi dengan 2 nama bank yang berbeda.
Dekomposisi tabel dapat mengurangi redudansi yang ada dan
menghilangkan anomali. Perancangan melalui proses normalisasi mempunyai
keuntungan-keuntungan sebagai berikut :
1.
Meminimalkan ukuran penyimpanan yang diperlukan untuk
penyimpanan data.
2.
Meminimalkan resiko inkonsistensi data pada basis data.
3.
Meminimalkan kemungkinan anomali pembaruan.
4.
Memaksimalkan stabilitas struktur data.
3.2.2.1 Bentuk Normalisasi
Tujuan proses normalisasi adalah
mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam
tingkat bentuk normal, yaitu :
1.
Bentuk UnNormalisasi
2.
Bentuk Normal Pertama (1NF)
3.
Bentuk Normal Kedua (2NF)
4.
Bentuk Normal Ketiga (3NF)
3.2.2.2 Bentuk
Normal Pertama (1NF)
Bentuk normal pertama dikenakan
pada entity yang belum normal
(Unnormalisasi Form). Bentuk tidak normal merupakan kumpulan data yang akan di
rekam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak
lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan
kedatangannya. Bentuk normal pertama adalah ekivalen dengan definisi model
relasional. Relasi adalah bentuk normal pertama (1NF) jika semua nilai
atributnya adalah sederhana (bukan komposit).
Syarat :
1.
Tidak ada set atribut yang berulang atau
bernilai ganda.
2.
Telah ditentukannya primary key untuk tabel atau relasi.
3.
Tiap atribut hanya memiliki satu pengertian.
4.
Tiap atribut yang dapat memiiki banyak nilai
sebenarnya menggambarkan entitas atau relasi yang terpisah.
3.2.2.3 Bentuk Normal Kedua (2NF)
Relasi pada bentuk normal kedua
harus tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal
kedua menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali
yang secara praktis tidak dapat diterima.
Syarat :
1.
Bentuk data
telah memenuhi kriteria bentuk normal ke satu.
2.
Atribut bukan
kunci (non-key attribute) haruslah
memiliki ketergantungan fungsional sepenuhnya pada primary key
3.2.2.4 Bentuk Normal Ketiga (3NF)
Bentuk
normal ketiga menghilangkan kebergantungan transitif.
Syarat :
1.
Bentuk data telah memenuhi kriteria bentuk normal ke
dua.
2.
Atribut bukan kunci (non-key attribute) tidak boleh memiliki ketergantungan fungsional
terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu
relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
3.3 Pembahasan dan Analisa
Pembahasan dan analisa meliputi Entity Relasionship Diagram (ERD),
normalisasi tabel dan relasi antar tabel yang telah di normalisasi.
3.3.1 Entity
Relasionship Diagram Rental CD
Pada
diagram ini terdapat komponen-komponen seperti entity, atribut, dan relasi. Pada ERD Rental CD ini terdapat entity yaitu: tb_member, tb_staff,
tb_cd, tb_jenis_cd, tb_judul, tb_peminjaman, tb_detail_peminjaman. Setiap entity memiliki beberapa attribute
seperti :
1.
Pada entity
tb_member memiliki atribut yaitu : id_member, nama, jenis_kelamin, alamat, telp.
2.
Pada entity
tb_staff memiliki atribut yaitu : id_staff, nama_staff, jenis_kelamin, agama,
alamat, telp.
3.
Pada entity tb_cd
memiliki atribut yaitu : id_cd, id_jenis.
4.
Pada entity tb_jenis_cd
memiliki atribut yaitu : id_jenis, id_judul, judul.
5.
Pada entity
tb_peminjaman memiliki atribut yaitu : id_peminjaman, id_staff, id_cd, jumlah,
tgl_peminjaman.
6.
Pada entity tb_detail_peminjaman
memiliki atribut yaitu : id_detail, id_peminjaman, tgl_kembali, biaya.
Pada ERD Gambar 3.4 staff akan melayani member dan member akan meminjam CD. Setelah
itu akan dicatat pada tb_peminjaman dan akan diperjelas pada
tb_detail_peminjaman.
Gambar
3.4 Entity Relationship Diagram
Rental CD
3.3.2 Normalisasi
Tabel
Pada tabel dibawah ini merupakan tabel proses normalisasi database rental
Cd dari 1NF sampai 3NF.
Suatu relasi dikatakan sudah memenuhi bentuk normal kesatu (1NF) bila
setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai
satu nilai data. Pada Tabel 3. tidak terjadi perubahan tabel, namun hanya merubah
dan menghilangkan perulangan group.
Tabel 3.1 1NF
id_detail
|
id_member
|
id_staff
|
id_cd
|
jumlah
|
tgl_peminjaman
|
tgl_kembali
|
biaya
|
Suatu relasi dikatakan sudah memenuhi bentuk normal kedua bila relasi
tersebut sudah memenuhi bentuk normal kesatu, dan atribut yang bukan key sudah
tergantung penuh terhadap keynya. Pada Tabel 3.2 merupakan tabel dalam bentuk
2NF.
Tabel 3.2 2NF
id_member
|
id_staff
|
id_cd
|
jumlah
|
tgl_peminjaman
|
id_detail
|
tgl_kembali
|
biaya
|
Suatu relasi dikatakan sudah memenuhi bentuk normal ketiga bila relasi
tersebut sudah memenuhi bentuk normal kedua dan atribut yang bukan key tidak
tergantung transitif terhadap keynya. Pada Tabel 3.3 Sudah sudah terbentuk
masing – masing tabel dengan keynya.
Tabel 3.3 3NF
id_member
|
nama
|
jenis_kelamin
|
alamat
|
telp
|
id_staff
|
nama_staff
|
jenis_kelamin
|
agama
|
alamat
|
telp
|
id_cd
|
id_jenis
|
id_jenis
|
id_judul
|
judul
|
id_judul
|
judul
|
id_peminjaman
|
id_member
|
id_staff
|
id_cd
|
jumlah
|
tgl_peminjaman
|
id_detail
|
id_peminjaman
|
tgl_kembali
|
biaya
|
3.3.3 Relasi antar Tabel
Pada Gambar 3.5 menjelaskan relasi pada database
rental CD. Pada tabel tb_member, atribut id_member merupakan primary key (PK) yang direlasikan ke tabel tb_peminjaman
sehingga id_pegawai pada tabel tb_peminjaman akan menjadi foreign key (FK). Selanjutnya pada tabel tb_staff, atribut id_staff
merupakan primary key (PK) yang direlasikan
ke tabel tb_peminjaman sehingga atribut id_staff pada tabel tb_peminjaman akan
menjadi foreign key (FK). Pada tabel
tb_cd, atribut id_cd merupakan primary
key (PK) yang direlasikan ke tabel tb_peminjaman sehingga atribut id_cd
pada tabel tb_peminjaman akan menjadi foreign
key (FK). Pada tabel tb_jenis_cd, atribut id_jenis merupakan primary key (PK) yang direlasikan ke
tabel tb_cd sehingga atribut id_jenis pada tabel tb_cd akan menjadi foreign key (FK). Pada tabel tb_judul,
atribut id_judul merupakan primary key
(PK) yang direlasikan ke tabel tb_jenis_cd sehingga atribut id_judul pada tabel
tb_jenis_cd akan menjadi foreign key
(FK). Kemudian pada tabel tb_peminjaman, atribut id_peminjaman merupakan primary key (PK) yang direlasikan ke tabel
tb_detail_peminjaman sehingga atribut id_peminjaman pada tabel
tb_detail_peminjaman akan menjadi foreign
key (FK).
Gambar
3.5p Relasi antar Tabel
3.4 Simpulan
Kesimpulan yang
dapat diambil dari pembahasan mengenai Entity Relasionship Diagram (ERD), normalisasi tabel, dan relasi antar
tabel yaitu:
1.
Melakukan
perancangan Entity Relasionship Diagram
untuk menentukan hubungan antar relasi dan memodelkan struktur datadatabe serta menghubungankan antar data dengan
menggunakan gambar perancangan berupa symbol persegi panjang, belah ketupat,
oval, dan garis.
2.
Melakukan normalisasi untuk mengurangi redundansi (perulangan) data, meningkatkan
stabilitas database, dan juga
menyederhanakan data menjadi yang paling normal atau paling sederhana.
3.
Melakukan relasi
antar tabel untuk menghubungkan primary key dan foreign key dan juga
memberikan tipe dan panjang data.