ke3

Sabtu, 24 November 2018

Perancangan Sistem Basis Data


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.



Tidak ada komentar:

Posting Komentar

Metode Perancangan Basis Data

 Metode perancangan basis data secara umum dikelompokkan kedalam: 1. Preliminary Design 2. Scratching Methode 1. Preliminary Design, Cirinya...