Thursday, October 11, 2012

BAB VII

STUDI KASUS ERD DAN NORMALISASI
Studi Kasus normalisasi:



STUDI KASUS TOKO ABC
No. Faktur :
Tanggal : Kepada :
No.
Nama
Jumlah
Harga
Total






Total Bayar


Diskon


Jumlah Bayar

Petugas : …………………………..
TAHAP-TAHAP NORMALISASI DATA
A. BASIS DATA BELUM TERNORMALISASI
Berdasarkan faktur di atas, maka gambaran database yang belum ternormalisasi adalah sebagai berikut :
1. Tabel yang memiliki field dengan banyak data / tidak tunggal
Tanggal
Nama_pelanggan
Daftar_Belanja
05070101
29/05/07
Pitoyo
Bedak, Beras, Minyak Tanah, Buku
05070102
29/05/07
Bowo
Baby Oil, Garam, Gula, Pensil
05070103
30/05/07
Erlina
Sikat gigi, Sabun, Odol, Sampo
06070001
01/06/07
Dayat
Beras


2, Tabel dengan field yang mengalami repeating groups
No_Faktur
Tanggal
Pelanggan
Belanja 1
Harga1
Belanja2
Harga2
Belanja3
Harga3
Belanja4
Harga4
05070101
29/05/07
Pitoyo
Bedak
1500
Beras
10000
Minyak Tanah
3500
Buku
2000
05070102
29/05/07
Bowo
Baby Oil
5600
Garam
2500
Gula
4000
Pensil
1500
05070103
30/05/07
Erlina
Sikat gigi
12000
Sabun
2500
Odol
13000
Sampo
16000
06070001
01/06/07
Dayat
Beras
25000






Walaupun susunan tabel data di atas belum menampilkan keseluruhan atribut dari bentuk faktur yang tertera pada masalahini, tetapi ia telah dapat menggambarkan bentuk basis data yang belum ternormalisasi, karena suatu relasi memenuhi 1-NF jika dan hanya jika setiap atribut hanya memiliki nilai tunggal dalam satu baris / record dan tidak mengalami repeating groups.

ERD
  • Permasalahan
Toko X adalah sebuah toko dimana gudang untuk menyimpan barang-barangnya lebih dari satu. Data yang dicatatnya adalah supplier yang memasok barang, barang atau produk yang ada dalam toko, nota pembelian yang didapat dari proses pembelian,dan  stok yang ada pada masing-masing gudang. Permasalah yang muncul adalah sulitnya untuk mengecek stok barang pada masing-masing gudang karena jarak sehingga mengakibatkan proses penyimpanan menjadi terhambat.
  • Tahap 1: Penentuan Entities
produk : menyimpan semua informasi mengenai semua produk yang ditawarkan.
pemasok
: menyimpan semua informasi mengenai semua pemasok.
nota_pembelian
: menyimpan semua informasi mengenai semua transaksi pembelian produk dari pemasok.
gudang
: menyimpan semua informasi mengenai gudang untuk penyimpanan produk
  • Tahap 2 : Penentuan Attributes
produk :
-  kode_produk: kode unik untuk tiap macam produk (string) PK.
-  nama_produk: nama lengkap untuk produk (string).
-  harga_jual: harga jual produk di toko (integer)
pemasok:
-  kode_pemasok: kode unik untuk tiap pemasok (string) PK.
-  nama_pemasok: nama lengkap untuk pemasok (string).
-  alamat_pemasok: alamat lengkap untuk pemasok (string)
nota_pembelian:
-  no_nota: kode untuk nota pembelian (integer) PK.
-  tanggal: tanggal transaksi dilakukan (date)
gudang:
-  kode_gudang: kode untuk ruang kelas (string) PK.
-  alamat_gudang: alamat lengkap untuk gudang (string)
  • Tahap 3: Penentuan Relationships

Hubungan:
  • produk disimpan di gudang:
  • Tabel utama: produk, gudang
  • Tabel kedua: stok_produk
  • Relationship: Many-to-many (m:n)
  • Attribute penghubung: kode_produk, kode_gudang (FK kode_produk, kode_gudang di stok_produk)
  • produk tercatat di nota_pembelian:
  • Tabel utama: produk, nota_pembelian
  • Tabel kedua: rincian_nota_pembelian
  • Relationship: Many-to-many (m:n)
  • Attribute penghubung:  kode_produk, no_nota (FK kode_produk, no_nota di rincian_nota_pembelian)
  • pemasok tercatat di nota_pembelian:
  • Tabel utama: pemasok
  • Tabel kedua: nota_pembelian
  • Relationship: One-to-many (1:n).
  • Attribute penghubung:  kode_pemasok (FK kode_pemasok di nota_pembelian)
  • Tahap 4: Pembuatan ERD
  • Implementasi
CREATE TABLE produk (
kode_produk varchar(20) PRIMARY KEY,
nama_produk varchar(45) UNIQUE,
harga_jual integer
);
CREATE TABLE pemasok (
kode_pemasok varchar(20) PRIMARY KEY,
nama_pemasok varchar(20) NOT NULL,
alamat_pemasok varchar(45) NOT NULL,
CHECK(nama_pemasok!=” AND alamat_pemasok!=”)
);
CREATE TABLE gudang (
kode_gudang varchar(20) PRIMARY KEY,
alamat_gudang varchar(45)
);
CREATE TABLE pembelian (
no_nota serial PRIMARY KEY,
kode_pemasok varchar(20) REFERENCES pemasok(kode_pemasok),
tanggal date DEFAULT current_date
);
CREATE TABLE nota_pembelian (
no_nota serial PRIMARY KEY,
kode_pemasok varchar(20) REFERENCES pemasok(kode_pemasok),
tanggal date DEFAULT current_date
);
CREATE TABLE rincian_nota_pembelian (
kode_produk varchar(20) REFERENCES produk(kode_produk),
no_nota integer REFERENCES nota_pembelian(no_nota),
harga_satuan integer,
jumlah integer NOT NULL,
CHECK(jumlah>=20),
FOREIGN KEY(kode_produk, no_nota)
);
CREATE TABLE stok_produk (
kode_produk varchar(20) REFERENCES produk(kode_produk),
kode_gudang varchar(20) REFERENCES gudang(kode_gudang),
jumlah_stok integer NOT NULL,
CHECK(jumlah_stok<=200),
FOREIGN KEY (kode_produk, kode_gudang)
);


sumber: 
www.stafsite.gunadarma.ac.id
materi sidang comprehensi Wisnu Ajie Supardi S.Kom
http://itsum.wordpress.com/2010/09/16/pembuatan-entity-relationship-diagram-erd-studi-kasus-database-inventori-toko-x/

www.gunadarma.ac.id 

No comments:

Post a Comment