STUDY KASUS PEMBELIAN PADA TOKO SANTOSA JAYA MENGGUNAKAN MODEL ER-DIAGRAM
1.
PENDAHULUAN
Toko Santosa
Jaya sebuah toko
yang bergerak dalam bidang penjualan maupun pembelian alat tulis sekolah dan
kantor seperti kertas, pulpen, penggaris, dan lain – lain dalam jumlah yang
cukup banyak. Toko Santosa jaya berdiri
sejak tahun 2010 yang terletak di jalan Letkol Tit Sudono 32A Kudus.
Gambar 1. Nota Pembelian
Pembelian dan penjualan merupakan
kegiatan yang mempengaruhi jumlah persediaan barang. Pembelian akan menambah jumlah
persediaan barang, sedangkan penjualan akan mengurangi persediaan barang.
Ketiga hal tersebut saling berkaitan dan merupakan inti kegiatan suatu usaha.
Informasi yang dihasilkan akan membantu pihak manajerial dalam memutuskan jumlah persediaan yang akan
dibeli, maupun jumlah yang tersedia untuk dijual, serta mengontrol dan
mengawasi persediaan barang di gudang.
Saat ini, pencatatan atas transaksi
pembelian sudah menggunakan basis data tapi dirasa masih kurang baik untuk
perancangan basis datanya, karena masih terdapat beberapa kekurangan seperti
tidak adanya kode supplier dan alamat dari supplier tersebut..
Sudah saatnya toko santosa
jaya mengganti
transaksi pembelian dengan menggunakan perancangan basis data yang lebih baik
lagi yaitu dengan menggunakan model
ER-Diagram. ER-Diagram dibuat untuk menggambarkan atau membuat model suatu
basis data dengan diagram yang sederhana sehingga memudahkan dalam membuat
sebuah basis data yang kompleks maupun yang sederhana.
2. ER-DIAGRAM
2.1. Menentukan Entitas
1. Barang: entitas ini diperlukan untuk mengethui
detail barang seperti kode barang, nama barang, harga, satuan dan jumlah.
2. Supplier: entitas ini diperlukan untuk menyimpan
semua informasi mengenai supplier atau orang yang memasok barang misalnya
alamat, nama supplier.
3. Pembelian: entitas ini diperlukan untuk menyimpan
semuainformasi mengenai semua transaksi pembelian barang dari supplier.
4. Gudang: entitas ini diperlukan untuk menyimpan
semua informasi mengenai gudang untuk penyimpanan barang.
Gambar 2. Himpunan Entitas
Barang, Supplier, Pembelian dan Gudang
2.2. Menentukan Primary Key
a.
Entitas
Barang mempunyai primary key kode_barang
b.
Entitas
Supplier mempunyai primary key id_supplier
c.
Entitas
Pembelian mempunyai primary key no_notapembelian
d.
Entitas
Gudang mempunyai primary key id_gudang
Gambar 3.
Himpunan Entitas Barang, Supplier, Pembelian, Gudang dan Primary keynya
2.3. Menentukan Relationship
a.
Supplier
memasok barang
b.
Pembelian
melibatkan barang
c.
Barang
disimpan di Gudang
d.
Supplier
memberikan nota pembelian
Gambar 4. Penentuan relasi yang terjadi
2.4.
Menentukan Cardinality
Setelah menentukan nama
relasi maka selanjutnya menentukan derajat kardinalitas dari setiap relasi yang
terjadi.
1. Pembelian
dengan supplier mempunyai derajat kardinalitas one to many (m:1)
2. Barang
dengan pembelian mempunyai derajat kardinalitas many to many (m:m)
3. Gudang
dengan barang mempunyai derajat kardinalitas one to many (1:m)
4. Barang
dengan supplier mempunyai derajat kardinalitas one to many (m:1)
Gambar 5. Derajat relasional
2.5. Melengkapi Atribut
Setelah menentukan derahjat kardinalitas maka
selanjutnya yang perlu dilakukan adalah melengkapi atribut pada setiap entitas
yang ada, dan juga pada relasi nantinya akan membentuk tabel baru.
1.
Barang
memiliki atribut : Kode_Barang, Nama_Barang, Harga_Jual, jumlah, satuan
2.
Supplier
memiliki atribut: Id_Suplier, Nama_Supplier, No_Telp, Alamat, Kota
3.
Pembelian
memiliki atribut: No_Notapembelian, Tanggal, Total
4.
Gudang
memiliki atribut: Id_Gudang, Nama, Stok
5.
Melibatkan
(detail_beli) memiliki atribut: Jumlah_Beli, Sub_Total, Satuan, Harga_Beli
Gambar
6. ER-Diagram lengkap
3.
TRANSFORMASI
ER-DIAGRAM
Memetakan
hasil ER-Diagram kedalam bentuk skema relasional dengan cara menguraikan setiap
relasional yang ada sehingga lebih mudah dalam menganalisa transformasi.
Barang=(Kode_Barang,Nama_Barang,Harga_Jual,Satuan,Jumlah,Id_Gudang)
Gudang=(Id_Gudang,Nama,Stok)
Gambar 7. Transformasi relasional dari
Barang dan Gudang
Pembelian=(No_Notapembelian,Tanggal,Total,Id_Supplier)
Supplier=(Id_Supplier,Nama_Supplier,No_Telp,Alamat,Kota)
Gambar 8. Transformasi relasional dari
Pembelian dan Supplier
Barang=(Kode_Barang,Nama_Barang,Harga_Jual,Satuan,Jumlah,Id_Gudang)
Pembelian=(No_Notapembelian,Tanggal,Total,Id_Supplier)
Melibatkan(detail_beli)=(Kode_Barang,No_Notapembelian,Jumlah_Beli,Satuan,Sub_Total,Harga_beli)
Gambar 9. Transformasi relasional dari
Barang dan Pembelian
4. DDL
DAN DML
Berikut adalah sintaks DDL dari
ERD yang sudah dibuat diatas.
MariaDB [(none)]> create database
db_sbdpemesan;
Query OK, 1 row affected
(0.05 sec)
MariaDB [(none)]> use
db_sbdpemesan;
Database changed
MariaDB [db_sbdpemesan]>
create table tb_Supplier (
-> Id_Supplier varchar(15) not null,
Nama_Supplier varchar(20),
-> No_Telp varchar(15), Alamat text,
Kota varchar(20),
-> primary key (Id_Supplier));
Query OK, 0 rows affected
(0.33 sec)
MariaDB [db_sbdpemesan]>
create table tb_Pembelian (
-> No_Notapembelian varchar(10) not
null, Tanggal date,
-> Total int, Id_Supplier varchar(15),
-> primary key (No_notapembelian),
-> foreign key (Id_Supplier) references
tb_Supplier (Id_Supplier));
Query OK, 0 rows affected
(0.51 sec)
MariaDB [db_sbdpemesan]>
create table tb_Gudang (
-> Id_Gudang varchar(10) not null, Stok
int,
-> primary key (Id_Gudang));
Query OK, 0 rows affected
(2.11 sec)
MariaDB [db_sbdpemesan]>
alter table tb_Gudang add column Nama_Barang varchar(20);
Query OK, 0 rows affected
(1.41 sec)
Records: 0 Duplicates: 0
Warnings: 0
MariaDB [db_sbdpemesan]>
create table tb_Barang (
-> Kode_Barang varchar(15) not null,
Nama_Barang varchar(20),
-> Harga_Jual int, Jumlah int, Satuan
varchar(10),
-> primary key (Kode_Barang));
Query OK, 0 rows affected
(0.47 sec)
MariaDB [db_sbdpemesan]>
alter table tb_Barang add column Id_Gudang varchar(10);
Query OK, 0 rows affected
(1.85 sec)
Records: 0 Duplicates: 0
Warnings: 0
MariaDB [db_sbdpemesan]>
create table detail_beli (
-> No_Notapembelian varchar(10) not null,
Kode_Barang varchar(15) not null,
-> Jumlah_Beli int, Satuan varchar(10),
Harga_Beli int, Sub_Total int,
-> foreign key (No_Notapembelian)
references tb_Pembelian (No_Notapembelian),
-> foreign key (Kode_Barang) references
tb_Barang (Kode_Barang));
Query OK, 0 rows affected
(1.10 sec)
Berikut adalah sintaks
DML dari ERD yang sudah dibuat diatas
MariaDB
[db_sbdpemesan]> insert into tb_Supplier values
-> ('SP001','INDO
RAYA','082856385999','Jl. Pattimura no.9','Kudus'),
-> ('SP002','CIPTA
ABADI','082836489001','Jl. Ahmad Yani no.17','Semarang'),
-> ('SP003','KARYA
MANDIRI','085118394625','Jl. Majapahit no.1','Pati'),
->
('SP004','GRAMEDIA','081745835592','Jl. Jendral Sudirman no.54','Pati'),
-> ('SP005','INDAH JAYA','082563991753','Jl.
Muria Raya no.11','Kudus');
Query OK, 5 rows
affected (0.05 sec)
Records: 5 Duplicates: 0
Warnings: 0
MariaDB
[db_sbdpemesan]> select *from tb_Supplier;
+-------------+---------------+--------------+----------------------------+----------+
| Id_Supplier |
Nama_Supplier | No_Telp |
Alamat | Kota |
+-------------+---------------+--------------+----------------------------+----------+
| SP001 | INDO RAYA | 082856385999 | Jl. Pattimura no.9 | Kudus
|
| SP002 | CIPTA ABADI | 082836489001 | Jl. Ahmad Yani no.17 | Semarang |
| SP003 | KARYA MANDIRI | 085118394625 | Jl.
Majapahit no.1 | Pati |
| SP004 | GRAMEDIA | 081745835592 | Jl. Jendral Sudirman
no.54 | Pati |
| SP005 | INDAH JAYA | 082563991753 | Jl. Muria Raya no.11 | Kudus |
+-------------+---------------+--------------+----------------------------+----------+
5 rows in set (0.00
sec)
MariaDB
[db_sbdpemesan]> insert into tb_Gudang values
-> ('G001','65','Bolpoint Standart'),
-> ('G002','25','Tipe X'),
-> ('G003','15','Buku Sidu'),
-> ('G004','40','Pensil 2B'),
-> ('G005','20','Buku Gambar');
Query OK, 5 rows
affected (5.10 sec)
Records: 5 Duplicates: 0
Warnings: 0
MariaDB
[db_sbdpemesan]> select *from tb_Gudang;
+-----------+------+-------------------+
| Id_Gudang | Stok |
Nama_Barang |
+-----------+------+-------------------+
| G001 |
65 | Bolpoint Standart |
| G002 | 25 | Tipe X |
| G003 |
15 | Buku Sidu |
| G004 |
40 | Pensil 2B |
| G005 |
20 | Buku Gambar |
+-----------+------+-------------------+
5 rows in set (0.14
sec)
MariaDB
[db_sbdpemesan]> insert into tb_Pembelian values
->
('NP001','2015/11/26','1250000','SP003'),
->
('NP002','2015/11/26','650000','SP005'),
->
('NP003','2015/11/26','1050000','SP002'),
->
('NP004','2015/11/26','870000','SP001'),
->
('NP005','2015/11/26','925000','SP004');
Query OK, 5 rows
affected (0.31 sec)
Records: 5 Duplicates: 0
Warnings: 0
MariaDB
[db_sbdpemesan]> select *from tb_Pembelian;
+------------------+------------+---------+-------------+
| No_Notapembelian |
Tanggal | Total | Id_Supplier |
+------------------+------------+---------+-------------+
| NP001 | 2015-11-26 | 1250000 | SP003 |
| NP002 | 2015-11-26 | 650000 | SP005 |
| NP003 | 2015-11-26 | 1050000 | SP002 |
| NP004 | 2015-11-26 | 870000 | SP001 |
| NP005 | 2015-11-26 | 925000 | SP004 |
+------------------+------------+---------+-------------+
5 rows in set (0.03
sec)
MariaDB
[db_sbdpemesan]> insert into tb_Barang values
-> ('BS001','Buku Sidu','Pack','25000','G002','20'),
-> ('TX106','Tipe
X','Pcs','4500','G001','15'),
-> ('BG345','Buku
Gambar','Pcs','6000','G004','25'),
-> ('PS002','Pensi
2B','Pcs','6000','G005','30'),
-> ('BLS12','Bolpoint
Standart','Pcs','2000','G003','40');
Query OK, 5 rows
affected (0.14 sec)
Records: 5 Duplicates: 0
Warnings: 0
MariaDB
[db_sbdpemesan]> select *from tb_Barang;
+-------------+---------------------+--------+------------+-----------+--------+
| Kode_Barang |
Nama_Barang | Satuan | Harga_Jual
| Id_Gudang | Jumlah |
+-------------+---------------------+--------+------------+-----------+--------+
| BG345 | Buku Gambar | Pcs |
6000 | G004 | 25 |
| BLS12 | Bolpoint Standart | Pcs
| 2000 | G003 |
40 |
| BS001 | Buku Sidu | Pack |
25000 | G002 | 20 |
| PS002 | Pensi 2B | Pcs |
6000 | G005 | 30 |
| TX106 | Tipe X | Pcs |
4500 | G001 | 15 |
+-------------+---------------------+--------+------------+-----------+--------+
25 rows in set (0.00
sec)
MariaDB
[db_sbdpemesan]> insert into detail_beli values
->
('NP001','BS001','20','Pack','25000','500000'),
-> ('NP001','TX106','15','Pcs','4500','67500'),
->
('NP001','BG345','25','Pcs','6000','150000'),
->
('NP001','PS002','35','Pcs','6000','210000'),
->
('NP001','BLS12','40','Pcs','2000','80000');
Query OK, 5 rows
affected (0.13 sec)
Records: 5 Duplicates: 0
Warnings: 0
MariaDB
[db_sbdpemesan]> select *from detail_beli;
+------------------+-------------+-------------+--------+------------+-----------+
| No_Notapembelian |
Kode_Barang | Jumlah_Beli | Satuan | Harga_Beli | Sub_Total |
+------------------+-------------+-------------+--------+------------+-----------+
| NP001 | BS001 | 20 | Pack |
25000 | 500000 |
| NP001 | TX106 | 15 | Pcs |
4500 | 67500 |
| NP001 | BG345 |
25 | Pcs |
6000 | 150000 |
| NP001 | PS002 | 35 | Pcs |
6000 | 210000 |
| NP001 | BLS12 | 40 | Pcs |
2000 | 80000 |
+------------------+-------------+-------------+--------+------------+-----------+
5 rows in set (0.00
sec)
5.
ANALISA DAN PEMBAHASAN
Setiap anggota
menganalisa nota atau kasus yang berbeda
seperti nota pemesanan, laba rugi, retur dan pengendalian stok, jadi
perbedaannya terlihat dari entitas-entitas yang terlibat dalam setiap kasus
yang telah dipilih/diangkat.
Hasil perancangan
basis data pembelian ini mempunyai peranan dengan retur/pengembalian barang ke
pihak Supplier, Selain itu juga berperan dalam perhitungan laba dan rugi karena
dalam basis data pembelian ini terdapat harga beli dari supplier dan harga jual
oleh pihak toko ke customer/pelanggan, dan juga berperan pada penambahan stok
barang di gudang, karena pembelian adalah untuk menambah stok barang di gudang.
Jika semua kasus
dalam kelompok saya digabungkan semua, akan meberikan dampak yang cukup baik
pada toko Santosa Jaya karena perancangan basis data yang kami buat sudah baik daripada
basis data yang saat ini digunakan di toko Santosa Jaya.
6.
KESIMPULAN
Dengan dibuatnya
basis data yang menggunakan model ER-Diagram ini dapat membantu memperbaiki
sistem yang selama ini berjalan pada toko Santosa Jaya dimana dalam penggunaan
basis datanya masih kurang maksimal. ER-Diagram dibuat untuk menggambarkan atau
membuat model suatu basis data dengan diagram yang sederhana sehingga
memudahkan dalam membuat sebuah basis data yang kompleks maupun yang sederhana.