Senin, 25 Februari 2008

tugas basisdata Nama Agung Ginanjar Santika NPM 0606028

Perancangan Database

Sistem Informasi Inventaris



A. Permasalahan:

Suatu perusahaan software diminta membuatkan basis data yang akan menangani data-data inventaris sebuah toko kecil. Karena tokonya kecil, maka ada beberapa gudang yang khusus untuk menyimpan stock produk. Data-data yang akan ditanganinya adalah: data produk yang ditawarkan toko, data pemasok produk, data transaksi pembelian produk dari pemasok (nota pembelian), dan data gudang tempat penyimpanan produk. Satu produk yang sama bisa disimpan di beberapa gudang yang berbeda, dan tentu saja tiap gudang menyimpan berbagai macam produk. Di database harus ada data mengenai sisa stock yang ada di masing-masing gudang untuk semua produk.



B. 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



C. 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 mata kuliah (integer) PK

  • tanggal: tanggal transaksi dilakukan (date)

  • gudang:

  • kode_gudang: kode untuk ruang kelas (string) PK

  • alamat_gudang: alamat lengkap untuk gudang (string)


D. 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)



E. Tahap 4: Pembuatan ERD

EER (Enhanced Entity Relationship) Diagram:

F. Tahap 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 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),

PRIMARY 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),

PRIMARY KEY(kode_produk, kode_gudang)

);




Looking for last minute shopping deals? Find them fast with Yahoo! Search.