KASUS BASIS DATA APOTEK


Studi Kasus : Pada sebuah Apotek Micro ingin merubah model pembukuangan dengan komputerisasi maka diperlukan sebuah program yang dapat menampung data penjualan tersebut. Berikut ini adalah alur proses transaksi dalam apotek tersebut :

Transaksi pembelian

Pembeli datang ke apotek dilayani oleh karyawan, karyawan mengecek stok obat dan apabila terdapat obat yang diinginkan maka stok obat berkurang dan karyawan mencatat no kuitansi, pembeli memperoleh obat dan kuitansi.

ERD APOTEK

 

ISI ENTITAS

PEMBELI  : no_nota(key), nama, kode_obat, nama obat, jenis obat, keluhan, jumlah, sub_total,total

KARYAWAN :nik(key), nama, alamat, bagian, username, password, no_nota, kode_obat, stok, harga

 Kardinalitas : many to one (banyak pembeli bisa di layani oleh 1 karyawan)

NORMALISASI

1NF tabel pembeli : Karena obat yang dibeli bisa lebih dari 1 maka harus di dekomposisikan menjadi  :

Tabel pembeli : no_nota, nama, total

Tabel banyak : no_nota, kode_obat, nama_obat, jenis_obat, keluhan, jumlah,sub_total

 1NF tabel karyawan :karena kode_obatnya dapat bermacam-macam maka harus di dekomposisi menjadi :

Tabel karyawan : nik(key), nama, alamat, bagian, username, password

Tabel stok : no_nota, kode_obat, stok, harga

2NF tabel pembeli :     no_nota → nama

no_nota → total

(maka terpenuhi)

2NF tabel banyak:

{no_nota, kode_obat} → nama_obat

{no_nota, kode_obat} → jenis_obat

{no_nota, kode_obat } →keluhan

{no_nota, kode_obat } →jumlah

Maka perlu di dekomposisi menjadi beberapa tabel

Kode_obat→{nama_obat,jenis,keluhan} (fd1)

{no_nota,kode_obat}→jumlah  (fd2)

 Tabel obat : kode_obat,nama_obat,jenis,keluhan

Tabel banyak : no_nota, kode_obat, jumlah

 2NF tabel karyawan

 {nik, username} → nama

{nik, username} → alamat

{nik, username} → bagian

{nik, username} → password

 Maka perlu di dekomposisi menjadi beberapa tabel

 nik→{nama,alamat,bagian} (fd1)

{nik,username}→password(fd2)

 Tabel karyawan:nik,nama,alamat,bagian

Tabel login : nik,username,password

2NF Tabel stok :         {no_nota,kode_obat} → stok

{no_nota,kode_obat} → harga

Karena no_nota tidak mempengaruhi stok maka no_nota harus di hilangkan sehingga menjadi .

Tabel stok : kode_obat, stok, harga

3 NF tabel pembeli, tabel obat, tabel banyak, tabel karyawan, tabel login, tabel stok semua terpenuhi di bentuk ini.

RANCANGAN TABEL

PERANCANGAN SQL

DDL(Data Difination Language)

Create database apotek;

Use apotek;

CREATE TABLE pembeli (

no_nota VARCHAR( 8 ) NOT NULL PRIMARY KEY,
nama VARCHAR( 25 ) NULL ,
total INT NOT NULL

);

CREATE TABLE obat (

kode_obat VARCHAR( 8 ) NOT NULL PRIMARY KEY,
nama VARCHAR( 25 ) NOT NULL ,
jenis VARCHAR( 8 ) NOT NULL ,
keluhan VARCHAR( 30 ) NOT NULL
);

CREATE TABLE karyawan (

nik VARCHAR( 8 ) NOT NULL PRIMARY KEY,
nama VARCHAR( 25 ) NOT NULL ,
alamat VARCHAR( 40 ) NOT NULL ,
bagian VARCHAR( 15 ) NOT NULL

);

CREATE TABLE banyak(

no_nota VARCHAR( 8 ) NOT NULL ,
kode_obat VARCHAR( 8 ) NOT NULL ,
banyak INT NOT NULL,

sub_total INT NOT NULL

);

CREATE TABLE stok(

kode_obat VARCHAR( 8 ) NOT NULL PRIMARY KEY,
stok INT NOT NULL ,
harga INT NOT NULL

);

ALTER TABLE login ADD FOREIGN KEY ( nik ) REFERENCES karyawan( nik );

ALTER TABLE banyak ADD FOREIGN KEY ( no_nota ) REFERENCES pembeli(no_nota);

ALTER TABLE banyak ADD FOREIGN KEY ( kode_obat ) REFERENCES obat(kode_obat);

ALTER TABLE stok ADD FOREIGN KEY ( kode_obat ) REFERENCES obat( kode_obat );

 RELASI TABEL


DML (Data Manipulation Language)

 Menampilkan semua data obat 

select o.kode_obat,o.nama,o.jenis,o.keluhan,s.stok,s.harga from obat o, stok s where o.kode_obat=s.kode_obat;

 Menampilkan obat untuk keluhan pusing

select o.kode_obat,o.nama,o.jenis,o.keluhan,s.stok,s.harga from obat o, stok s where o.kode_obat=s.kode_obat and o.keluhan=”pusing”;

Obat yang telah dibeli

select p.no_nota,p.nama,o.nama,b.banyak,s.harga from stok s,obato, pembeli p, banyak b where o.kode_obat=b.kode_obat and p.no_nota=b.no_nota and

 s.kode_obat=b.kode_obat;

 Obat yang di beli oleh no nota 1122

select p.no_nota,p.nama,o.nama,b.banyak,s.harga,b.sub_total from stok s,obat o, pembeli p, banyak b where p.no_nota=’1122′ and o.kode_obat=b.kode_obat and p.no_nota=b.no_nota and s.kode_obat=b.kode_obat;

Yang harus di bayar oleh no nota 1122

select p.no_nota,p.nama, SUM(b.sub_total) as TOTAL from  pembeli p, banyak b where p.no_nota=’1122′ and p.no_nota=b.no_nota;

 

 

11 pemikiran pada “KASUS BASIS DATA APOTEK

  1. Thanks Bro .. sangat membantu. boleh minta YM nya untuk tanya-tanya seputar masalah SI apotik ini.. ini buat tugas final saya minggu ini
    tolong add YM saya adyrhs. thanks

  2. bahrie

    ditingkatkan lagi tentang relasi table. contoh table penjualan pembelian kasir itu harus terelasi. terus ada juga distributor.. semua saling terelasi.. kalo dilatih terus lama2 bakal ngerti..😀

    1. iya saudara hebron, pertanyaan anda bagamana kalau obatnya habis, nah dari penjelasan kasus di atas ada table obat dan stok nah dimana kita melihat bahwa kedua tabel ini memiliki relasi dimana tabel obat sebagai sumber dengan kode_obat sebagai primary key dan tabel stok sebagai tamu dan kode_obat sebagai foreign keynya.
      pada tabel stok ada atribut stok nah itu berguna untuk melihat stok obat dimana nilai stok akan berkurang bila terjadi transaksi dengan kode_obat tertentu.
      pada rancangan di atas masih sangat sederhana bila kita ingin ke lingkup yg lebih luas kita membutuhkan tabel produsen dengan atribut sebagai berikut :
      -kode_produsen
      -nama
      -alamat
      -no_telp
      dll
      dan berikan penambahan pada tabel obat yaitu atribut kode_produsen
      dengan demikian kita juga memerlukan perintah query untuk menampilkan nama obat, stok, nama produsennya sehingga kita dapat melakukan pengecekan stok obat yg masih tersedia dan mana yg habis, kita juga dapat melakukan peringatan pada koding program atau querynya dengan prosedure jika atribut stok pada tabel stok dengan kode obat yg di pilih bernilai 0 berikan peringatan stok habis..

  3. bisa bikin normalisasi yang laen gak gan..,,.,.tentang apa kek…pokok nya jrang orang yang bikinn normalisasi trsbut…wa searh d goggle ,normalisasi yang kluar bgini smua nya,..,,.bikinin wa normalisasi yang beda donk.,.,pls koment nya….bls atau chat fb
    wayne_rafles@yahoo.com
    tanks sblum nya gan…

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s