NORMALISASI PERPUSTAKAAN

 

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!

 

Analisis Tabel Dependensi :

1.      Tabel Pinjam

Id_pinjam

Nm_peminjam

PJ001

Boediyono

PJ002

Mulyadi

PJ003

Burhan

PJ004

Alex

PJ005

Suparman

 

2.      Tabel Buku

Id_buku

Nm_buku

Penerbit

Thn_terbit

Bk001

Matematika

Erlangga

2010

Bk002

Basis data

Tinta emas

2009

Bk003

Visual basic

Gramedia

2012

Bk004

Jaringan

Penebar swadaya

2008

Bk005

Struktur data

Smart book

2011

3.      Tabel Biaya

Jm_Hr_pj

Biaya_Pinjam

1

Rp.2000

2

Rp.4000

3

Rp.6000

5

Rp.9000

4.      Tabel Hari Lama Meminjam

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

  • Ø  UnNormlamized
  •  

    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

     

    Ø  Normal Satu 1NF

    Suatu relasi disebut sebagai bentuk normal pertama jika :

    -          dalam relasi tersebut tidak mengandung atribut yang bernilai ganda (multi valued attribute).

    -          Buang atribut berganda.

    Caranya: Atur setiap kolom berisi satu nilai (tunggal) hingga menjadi n baris.

    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

     

    Ø  Normal Dua 2NF

    Suatu relasi memenuhi bentuk normal kedua jika:

    -          Relasi telah berada dalam bentuk normal pertama (1NF)

    -          Tidak ada dependensi parsial.

    o   setiap atribut non kunci-primer memiliki dependensi sepenuhnya terhadap kunci-primer).

    o   Sehingga harus di cari atribut mana saja yang menjadi kunci-primer, dan atribut mana saja yang bukan kunci primer.



    Berdasarkan diagram dependensi fungsional diatas, dapat dikompresi menjadi 3 tabel relasi yaitu :

     

    1.      Id_pinjam à Nm_pinjam

    Tabel Peminjam

     

    Id_pinjam

    Nm_peminjam

    PJ001

    Boediyono

    PJ002

    Mulyadi

    PJ003

    Burhan

    PJ001

    Boediyono

    PJ004

    Alex

    PJ003

    Burhan

    PJ005

    Suparman

     

    1.      Id_buku à {Nm_buku, Penerbit, Thn_terbit}

     

    Tabel Buku

     

    Id_pinjam

    Nm_peminjam

    Id_pinjam

    Nm_peminjam

    PJ001

    Boediyono

    pj001

    Boediyono

    PJ002

    Mulyadi

    pj002

    Mulyadi

    PJ003

    Burhan

    pj003

    Burhan

    PJ001

    Boediyono

    pj001

    Boediyono

    PJ004

    Alex

    pj004

    Alex

    PJ003

    Burhan

    pj003

    Burhan

    PJ005

    Suparman

    pj005

    Suparman

     

    2.      {Id_pinjam, Id_buku} à {Jm_hr_pj, Biaya_pinjam}

     

    Tabel Biaya

     

    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

     

    Ø  Normal Tiga 3NF

    Suatu relasi berada dalam bentuk normal ketiga jika:

    -          Memenuhi bentuk normal kedua (2NF)

    -          Tidak ada dependensi transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci lainnya)

    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

    Berdasarkan tabel diatas, dapat dikompresi menjadi 2 tabel relasi.

    1.      Id_pinjam à {Id_buku, Jm_hr_pj} 

    Tabel jumlah hari peminjaman

    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

    Ø  Lampiran


     

     

     

    "TERIMA KASIH"

Komentar

Postingan populer dari blog ini

Membuat tabel dan struktur tabel dalam Database MYSQL

PHPMYADMIN