Nama : Intan Citra Adelia
Nim : 213100229
Prodi : Sistem Informasi
KASUS
PERPUSTAKAAN
Kasus :
Sebuah
perputakaan memiliki banyak buku yang dapat di pinjamkan ke pada anggota
perpustakaan dengan menggunakan kartu peminjaman. Setiap anggota kartu
peminjaman memiliki 1 kartu dan dapat meminjam beberapa buku. Data nya
terdiri dari id kartu peminjaman, nama peminjam, jumlah hari pinjam, biaya
peminjaman, id buku, nama buku, penerbit buku, tahun terbit buku.
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Ada beberapa anomali yang terjadi pada table berikut, yaitu:
ü Anomali Peremajaan
Contoh:
Jika terjadi perubahan nama peminjam dengan
id pinjam menjadi “Burhanudin”, maka perubahan harus dilakukan sebanyak 2x.
Kalau dilakukan hanya 1x, maka data menjadi tidak konsisten
(tidak sesuai)
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhanudin
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Id_pinjam
yang sama pj003 mempunyai nama yang berbeda, hal ini disebut anomali
peremajaan)
ü Anomali Penyisipan
Misalnya:
Jika terjadi penambahan buku baru,
misalnya: Bk006, Algoritma Pemrograman, Mizan Pustaka, 2012. Dengan penambahan buku baru mengakibatkan terjadi kekosongan
nilai pada atribut : Id_pinjam, Nm_peminjaman, Jm_hr_pl, dan biaya_punjam (
anomali penyisipan)
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
kosong
|
kosog
|
Kosong
|
kosong
|
Bk006
|
Algoritma
Pemrograman
|
Mizan Pustaka
|
2012
|
ü Anomali penghapusan
Jika Id pinjam
pj002 membatalkan peminjaman dengan nama buku Basis data
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Dengan penghapusan record tersebut
mengakibatkan hilangnya data jm_hr_pj terhadap Biaya pinjam
(Anomali penghapusan)
Berdasarkan beberapa anomali di atas, maka
tabel/relasi tersebut harus didekomposisi (dipisahkan) berdasarkan
dependensinya:
Table peminjaman
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Buatlah normalisasi tersebut!
Table UNF ( Un Normalized Form )
Merupakan suatu kondisi dimana sebuah table yang
memiliki rangkap atau data yang terduplikasi.
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
1
|
Rp.6000
Rp.2000
|
Bk001
BK003
|
Matematika
Visual basic
|
Erlangga
Gramedia
|
2010
2012
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
1
5
|
Rp.2000
Rp.9000
|
Bk005
Bk001
|
Struktur data
Matematika
|
Smart book
Erlangga
|
2011
2010
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bentuk Normalisasi Pertama (1NF)
Pada
table diatas Jm_hr_pj, Biaya_pinjam, Id_buku, Nm_buku, penerbit, dan tahun
menyatakan atribut yang berulang (misal boediyono meminjam 2 buku yang
berbeda). Bentuk seperti ini perlu diubah menjadi bentuk normal pertama.
Sesuai dengan konsep normal
pertama yaitu “suatu relasi dikatakan dalam bentuk normal pertama jika dan
hanya jika setiap atribut bernilai tunggal untuk setiap baris”.
Berikut
adalah table yang sudah di normalisasi pertama
Id_pinjam
|
Nm_peminjam
|
Jm_hr_pj
|
Biaya_pinjam
|
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
pj001
|
Boediyono
|
3
|
Rp.6000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj001
|
Boediyono
|
1
|
Rp.2000
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
pj002
|
Mulyadi
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
pj003
|
Burhan
|
5
|
Rp.9000
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
pj003
|
Burhan
|
1
|
Rp.2000
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
pj004
|
Alex
|
3
|
Rp.6000
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
pj005
|
Suparman
|
2
|
Rp.4000
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bentuk Normalisasi Kedua (2NF)
Ketentunan
bentuk normal ke dua yaitu " suatu realasi berada dalam bentuk normal kedua
jika dan hanya jika".
a. Berada
pada bentuk normal pertama
b. Semua
atribut bukan kunci memiliki depedensi sepenuhnya terhadap kunci
primer
Pada
table diatas dapat digambarkan diagram depedensi fungsional, seperti berikut ini
Diagram
depedensi fungsional diatas menjelaskan bahwa :
- Nm_pinjam
memiliki dependensi fungsional terhadap Id_pinjam.
- Nm_buku,
penerbit, Thn_terbit memiliki dependensi fungsional terhadap Id_buku.
- Biaya_pinjam
dan Jm_hr_pj mempunyai dependensi fungsional terhadap Id_pinjam dan Id_buku.
Berdasarkan
diagram dependensi fungsional tersebut, pendekomposisinya menghasilkan tiga
buah relasi, yaitu :
1. (Id_pinjam,
Nm_pinjam)
Table
peminjam
Id_pinjam
|
Nm_peminjam
|
pj001
|
Boediyono
|
pj002
|
Mulyadi
|
pj003
|
Burhan
|
pj001
|
Boediyono
|
pj004
|
Alex
|
pj003
|
Burhan
|
pj005
|
Suparman
|
2. (Id_buku,
Nm_buku, penerbit, Thn_terbit)
Table buku
Id_buku
|
Nm_buku
|
Penerbit
|
Thn_terbit
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
Bk001
|
Matematika
|
Erlangga
|
2010
|
Bk003
|
Visual basic
|
Gramedia
|
2012
|
Bk004
|
Jaringan
|
Penebar swadaya
|
2008
|
Bk005
|
Struktur data
|
Smart book
|
2011
|
Bk002
|
Basis data
|
Tinta emas
|
2009
|
3. (Id_pinjam,
Id_buku, Jm_hr_pj, Biaya_pinjam)
Table Jumlah dan biaya
peminjaman
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
Biaya_pinjam
|
pj001
|
Bk001
|
3
|
Rp.6000
|
pj002
|
Bk002
|
2
|
Rp.4000
|
pj003
|
Bk001
|
5
|
Rp.9000
|
pj001
|
Bk003
|
1
|
Rp.2000
|
pj004
|
Bk004
|
3
|
Rp.6000
|
pj003
|
Bk005
|
1
|
Rp.2000
|
pj005
|
Bk002
|
2
|
Rp.4000
|
Bentuk Normalisasi Ketiga (3NF)
Jm_hr_pj
mempunyai dependensi fungsional terhadap Id_pinjam dan Id_buku. Serta Biaya_pinjam
mempunyai dependensi fungsional terhadap Jm_hr_pinjam.
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
Biaya_pinjam
|
pj001
|
Bk001
|
3
|
Rp.6000
|
pj002
|
Bk002
|
2
|
Rp.4000
|
pj003
|
Bk001
|
5
|
Rp.9000
|
pj001
|
Bk003
|
1
|
Rp.2000
|
pj004
|
Bk004
|
3
|
Rp.6000
|
pj003
|
Bk005
|
1
|
Rp.2000
|
pj005
|
Bk002
|
2
|
Rp.4000
|
Dengan
menggunakan pendekatan dari bentuk normalisasi ketiga maka relasi pada bagian c
diatas dapat didekomposisi menjadi 2 relasi :
1. (Id_pinjam,
Id_buku, Jm_hr_pj)
Tabel jumlah
hari pinjam
Id_pinjam
|
Id_buku
|
Jm_hr_pj
|
pj001
|
Bk001
|
3
|
pj002
|
Bk002
|
2
|
pj003
|
Bk001
|
5
|
pj001
|
Bk003
|
1
|
pj004
|
Bk004
|
3
|
pj003
|
Bk005
|
1
|
pj005
|
Bk002
|
2
|
2. (Jm_hr_pj,
Biaya_pinjam)
Tabel
biaya
Jm_hr_pj
|
Biaya_pinjam
|
1
|
Rp.2000
|
2
|
Rp.4000
|
3
|
Rp.6000
|
5
|
Rp.9000
|
Sekian semoga membantu menjawab persoalan dari kasus perpustakaan di atas :)