• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA"

Copied!
178
0
0

Teks penuh

(1)

48 3.1 Analisis

Berikut ini adalah proses analisis untuk mendapatkan informasi-infomasi yang dibutuhkan terkait perancangan basis data PT. Mulia Multi Mandiri.

3.1.1 Sejarah Organisasi

PT. Mulia Multi Mandiri didirikan pada tanggal 14 Mei 1980, berdasarkan Akta Notaris nomor 26. Dibuat oleh Notaris Ny. Budiarti Karnadi di Jakarta dengan nama PT. Mulia Marketing. Di penghujung tahun 1981 namanya berubah menjadi PT. Mulia Multi Mandiri.

Pada tahun 1995, Bintang Sidoraya Group mengakuisisi kepemilikan saham PT. Mulia Multi Mandiri hingga mencapai 91%. Berlokasi di Kawasan Industri Pulo Gadung, PT. Mulia Multi Mandiri merupakan distributor PT. Mulia Multi Bintang Indonesia Tbk dengan produk Bir Bintang dan Green Sand Shandy untuk area Jakarta dan Jawa Barat.

Seiring dengan semakin berkembangnya usaha, PT. Mulia Multi Mandiri mulai melebarkan sayap usahanya. Dari awalnya hanya mendistribusikan Bir Bintang dan Green Sand, PT. Mulia Multi Mandiri mulai mendistribusikan berbagai produk Aqua, seperti Aqua galon dan Aqua botol. Sejalan dengan perkembangan usahanya dan kondisi ekonomi serta meningkatnya permintaan

(2)

konsumen, membuat usaha pendistribusian produk Aqua menjadi usaha utama dari PT. M ulia M ulti M andiri.

Untuk menunjang pendistribusian produk, PT. M ulia M ulti M andiri memiliki beberapa cabang yang tersebar di DKI Jakarta dan Jawa Barat.

3.1.2 Visi dan Misi

Visi dari PT. M ulia M ulti M andiri yaitu :

• M endorong tumbuh kembangnya kegiatan usaha perdagangan berbasis distribusi

• M emelihara hubungan yang kuat dengan principal dan pelanggan sebagai mitra usaha

• M embangun kesinambungan jaringan usaha distribusi sesuai perkembangan gaya hidup, peraturan perdagangan serta manfaat kemajuan teknologi.

M isi dari PT. Mulia M ulti M andiri yaitu :

• M emadukan strategi keunggulan usaha dengan sumber dana sesuai dengan tingkat kebutuhan karakteristik usaha distribusi melalui penerapan strategi pemasaran dan kontribusi pengembangannya berdasarkan analisa pasar, pengamatan area serta meningkatkan sumber daya manusia

• M engupayakan terbaik dan dapat memberikan informasi yang mendukung nilai tambah usaha dalam upaya meningkatkan jumlah pelanggan dengan azas yang saling menguntungkan

(3)

• M embuat lingkungan kerja yang kondusif dan menciptakan remunerasi yang kompetitif serta meningkatkan pelatihan, pendidikan informal dalam upaya meningkatkan produktifitas kerja

3.1.3 S truktur Organisasi PT. Mulia Multi Mandiri

Gambar 3.1a S truktur Organisasi PT. Mulia Multi Mandiri

Gambar 3.1b S truktur Organisasi di Tiap Cabang Presiden Direktur

Dir. Keuangan

Dir. Operasional Personalia & Umum Internal Audit

Sales M anager

Corporate Sales Admin

Supervisor Supervisor Supervisor Supervisor

Supervisor

Sales Supervisor

Sales Admin

Salesman Salesman Salesman Salesman Salesman Admin Gudang

Helper Helper Helper Helper Helper Helper Gudang

Office Boy

(4)

3.1.4 Wewenang dan Tanggung Jawab

Adapun uraian pembagian wewenang dan tanggung jawab dari masing-masing bagian adalah sebagai berikut :

1. Direktur Utama

• M erencanakan sasaran dan tujuan perusahaan, baik jangka pendek maupun jangka panjang.

• M enerapkan berbagai kebijakan perusahaan.

• M engawasi seluruh aktivitas direktur operasional dan jajarannya. • M emimpin dan mengendalikan perusahaan.

2. Direktur Operasional

• Bertanggung jawab atas seluruh kegiatan operasional perusahaan.

• M enyusun strategi yang terkait dengan kelangsungan operasional perusahaan.

• Bertanggung jawab untuk mengembangkan wilayah perusahaan. 3. Direktur Keuangan

• Bertanggung jawab dalam menangani pembayaran pembelian dan penggajian karyawan.

4. Personalia dan Umum

• M enyeleksi, merekrut dan melatih karyawan yang akan diterima. • M encatat data absensi, lembur dan cuti karyawan.

• M enerapkan sistem penggajian dan tunjangan sosial karyawan. 5. Internal Audit

(5)

6. Sales Manager

• M embawahi Supervisor dan mencatat setiap pemesanan pembelian dari masing-masing Supervisor.

7. Corporate Sales Admin

• M embantu atasan dalam menyiapakan laporan dan melakukan administrasi penjualan.

• M elakukan komunikasi dengan setiap gudang untuk kelengkapan data terkait atau menyampaikan informasi yang dikeluarkan sales manager sehubungan dengan kepentingan penjualan.

8. Supervisor

• M embantu sales manager dengan memimpin sales team secara efektif dan efisien dalam pencapaian sales target.

• M embuat budget biaya operasional yang dibutuhkan di areanya.

• M elakukan perencanaan, tindakan, koordinasi dan kontrol terhadap aktivitas sales team guna kelancaran distribusi produk perusahaan.

9. Sales Supervisor

• M embuat rencana kerja mingguan.

• M emimpin beberapa sales dan sales helper.

• Bertanggung jawab terhadap laporan administrasi depo.

10. Sales Admin

• M embantu sales supervisor dalam membuat laporan administrasi.

• M elakukan komunikasi dengan setiap sales untuk kelengkapan data dan persediaan barang.

(6)

11. Salesman

• M embantu sales supervisor dalam pencapaian target sales, call dan efektif call, pengembangan outlet, pelayanan pelanggan.

12. Admin Gudang

• Bertanggung jawab dalam mengawasi persediaan barang di gudang. • Bertanggung jawab dalam mengawasi keluar masuk barang di gudang.

13. Helper Salesman

• M embantu salesman bongkar muat barang baik dari gudang ke outlet/ pelanggan.

14. Helper Gudang

• M embantu admin gudang bongkar muat barang ke gudang dan pengecekan stok.

15. Office Boy

• Bertanggung jawab terhadap kebersihan di gudang. 16. Satpam

• Bertanggung jawab terhadap keamanan gudang.

3.1.5 Sistem yang Sedang Berjalan 3.1.5.1 Proses Bisnis

3.1.5.1.1 Prosedur Pembelian Barang

Bagian gudang mengecek persediaan barang di gudang berdasarkan data stok barang apabila stok mencukupi maka bagian gudang tidak melakukan apa-apa, tetapi jika tidak mencukupi bagian gudang membuat surat ke bagian logistik

(7)

yang memberitahukan ke bagian logistik bahwa persediaan barang di gudang sudah mencapai batas minimum. Bagian logistik membuat CRO (Customer

Replacement Order) rangkap 3:

• Rangkap 1 disimpan kepada logistik • Rangkap 2 diberikan di bagian supplier • Rangkap 3 diberikan ke bagian inventory

CRO tersebut yang akan dikirimkan ke supplier. Supplier akan mengecek CRO yang dibuat, apakah kapasitas produksi di supplier mencukupi atau tidak. Jika mencukupi, supplier akan membuat CO (Collection Order) rangkap 3 : • Rangkap 1 disimpan di supplier

• Rangkap 2 dikirim ke bagian finance • Rangkap 3 dikirim ke bagian inventory

Jika tidak mencukupi, supplier akan membuat konfirmasi bahwa kapasitas produksi tidak mencukupi dan supplier akan membuat dokumen konfirmasi kapasitas produksi rangkap 2 untuk supplier dan logisitik.

• Rangkap 1 disimpan di supplier • Rangkap 2 dikirim ke bagian logistik

Setelah dokumen konfirmasi dikirim bagian logistik, bagian logistik akan membuat CRO baru, CRO baru dikirim ke supplier, setelah itu supplier akan

(8)

3.1.5.1.2 Prosedur Persediaan Barang

Setelah CO dibuat, supplier membuat surat jalan, dan mengirim barang beserta dengan surat jalan (rangkap 2) ke bagian gudang.

Setelah barang dikirim dan masuk ke dalam gudang, bagian gudang memeriksa barang yang diterima ada yang cacat atau tidak. Jika cacat maka bagian inventory akan membuat CN (Credit Nota) dan membuat dokumen rangkap 2:

• Rangkap 1 disimpan di bagian inventory • Rangkap 2 dikirim ke supplier

Supplier menerima CN dari bagian inventory lalu supplier akan mengirim

barang sesuai CN dalam waktu maksimal 1 minggu ke bagian inventory dan bagian inventory melakukan tukar barang dan dicatat di proses penerimaan barang.

Jika tidak cacat bagian inventory akan tanda tangan surat jalan, yang asli akan dikirimkan ke supplier dan copynya disimpan di bagian inventory sebagai arsip, setelah menandatangani surat jalan bagian inventory akan melakukan proses mencatat penerimaan barang, setelah itu bagian inventory membuat laporan penerimaan barang dan membuat dokumennya lalu membuat laporan stok barang beserta arsip rangkap 2:

• Rangkap 1 disimpan di inventory • Rangkap 2 dikirim ke bagian logistik

Setelah surat jalan yang asli dikirim ke supplier, supplier membuat surat tagihan dan dokumen surat tagihan rangkap 2:

(9)

• Rangkap 1 disimpan di supplier • Rangkap 2 dikirim ke bagian finance

Setelah surat tagihan diterima oleh bagian finance, bagian finance melakukan proses pembayaran, supplier menerima pembayaran dari bagian

finance. Setelah menerima pembayaran supplier membuat bukti pembayaran dan

dokumennya rangkap 2:

• Rangkap 1 disimpan di supplier • Rangkap 2 dikirim ke bagian finance

3.1.5.1.3 Prosedur Penjualan Barang

Bagian penjualan membuat loading slip (bukti muat barang) ke bagian gudang, bagian gudang cek barang. Jika barang tidak cukup maka, bagian penjualan meminta kebijaksanaan customer, kalau cukup bagian gudang membuat loading slip (bukti keluar barang) ke bagian penjualan, lalu bagian penjualan membuat surat jalan. Surat jalan rangkap ke-3 dikirim ke bagian

finance, lalu bagian finance membuat bukti pembayaran. Bukti pembayaran

beserta surat jalan rangkap ke-2 dikirin ke customer, dan surat jalan rangkap ke-1 dikirim ke bagian transportir, lalu bagian transportir mengirim barang ke

customer. Customer menerima barang dan menandatangani surat jalan.

Kemudian cus tomer membayar sesuai dengan harga kepada bagian transpotir. Setelah menerima pembayaran dari customer, transportir melakukan penyetoran pembayaran ke bagian finance.

(10)

3.1.5.2 Diagram Aliran Dokumen

3.1.5.2.1 Diagram Aliran Dokumen Pembelian Barang

INVENTORY LOGISTIK SUPPLIER FINANCE

M ulai Sto k m encukupi Membuat CO 3 3 ya Mem buat CRO 2 1 CRO 2 CRO Selesai ya 2 2 CO

Gambar 3.2a D AD Pembelian Barang

1 CRO

3 CRO

Data stok gudang

tidak Mengecek ke- cukupan kapa- sitas produksi 1 CO 3 CO tidak Konfirmasi kapasitas produksi 1 2 Kapasitas produksi 1 Kapasitas produksi Membuat CRO

(11)

3.1.5.2.2 Diagram Aliran Dokumen Persediaan Barang

INVENTORY LOGISTIK SUPPLIER FINANCE

Gambar 3.2b DAD Persediaan Barang

Mulai 2 1 2 2 Surat Tagihan 2 Surat jalan 1 Surat Tagihan Dikirim sesuai CO Laporan penerimaan barang Terima barang Cek barang cacat ya tidak Tanda tangan surat jalan Membuat CN Membuat surat jalan 2 Surat jalan

Mencatat pen eri maan barang 2 1 CN Membuat lapor an peneri maan barang Membuat lapor an stok barang 1 Arsip 2 Arsip 2 CN Mengirim barang sesuai CN 1 Surat j alan Membuat surat tagihan Menerima pembayaran Melakukan pembayaran Membuat bukti pembayaran 2 1 Bukti pem bay aran

2 Bukti pem bay aran

Selesai

Tukar barang

Dikirim sesuai CN

(12)

3.1.5.2.3 Diagram Aliran Dokumen Penjualan Barang

CUST OMER PENJUALAN GUDAN G T RANSPORT IR FINANCE

Gambar 3.2c DAD Penjualan Barang

Buat loading slip tidak Mulai Mem buat PO PO

Mem buat loading slip (bukt i m uat

barang) 2 1 Loading slip Loading slip 1 Sto k m encukupi N N Minta kebij aksanaan custom er y a Loading Slip (bukti m uat barang)

Mem buat surat j alan 3 2 1 Surat j alan 3 Surat j alan N

Mem buat bukti pem bay aran

2 1 Bukti pem bay aran 1

Bukti pem bay aran N

Terima barang Tanda tangan surat jalan Melakukan pembayaran 1 Surat j alan 2 Surat j alan N N Mengirim barang Menerima pembayaran Melakukan penyetoran pem bay aran

Menerima penyetoran pembayaran

2 1 Bukti peny etoran pem bay aran

N

1 Bukti peny etoran pem bay aran

(13)

3.1.5.3 Kebutuhan pengguna 3.1.5.3.1 Kebutuhan Informasi

Laporan yang dibutuhkan oleh PT. M ulia M ulti M andiri dalam aplikasi ini adalah:

1. Informasi tentang persediaan barang

Dibutuhkan informasi yang akurat mengenai persediaan, misalnya barang apa saja yang ada dan berapa jumlah barang yang masuk dan keluar. Informasi ini dibutuhkan oleh bagian penjualan setiap waktu dan bagian pembelian setiap minggu.

2. Informasi tentang pembelian

Dibutuhkan informasi mengenai transaksi-transaksi pembelian yang telah dilakukan, misalnya kapan transaksi pembelian dilakukan dan siapa pemasoknya. Dibutuhkan oleh bagian inventory untuk mengetahui jumlah barang yang dibeli setiap minggu, dan bagian finance untuk membayar tagihan setiap dua minggu. 3. Informasi tentang penjualan

Dibutuhkan informasi mengenai transaksi penjualan, misalnya kapan transaksi penjualan dilakukan dan siapa pelanggannya. Dibutuhkan oleh bagian inventory untuk mengetahui stok barang terakhir setiap waktu dan bagian finance untuk mengetahui jumlah barang dan jumlah pemasukan dari barang yang dijual setiap waktu.

4. Informasi tentang karyawan

Dibutuhkan informasi mengenai siapa saja karyawan dalam perusahaan, kapan mulai bekerja, dan jabatannya. Dibutuhkan oleh bagian personalia setiap bulan.

(14)

5. Informasi tentang pelanggan

Dibutuhkan informasi mengenai nama pelanggan, alamat dan nomor telepon. Dibutuhkan oleh bagian penjualan dan bagian transportir setiap waktu.

6. Informasi tentang pemasok

Dibutuhkan informasi mengenai nama pemasok, alamat, nomor telepon, dan nomor fax. Dibutuhkan oleh bagian pembelian setiap minggu.

7. Informasi tentang barang

Dibutuhkan informasi mengenai harga jual, harga beli, dan tanggal terakhir

update. Dibutuhkan oleh bagian inventory, penjualan, pembelian dan finance

setiap waktu.

3.1.5.3.2 Kebutuhan Keamanan Data

Keamanan data merupakan hal yang sangat penting yang diharapkan ada nantinya untuk keamanan rahasia perusahaan dan juga untuk menghindari terjadinya kehilangan data dari berbagai hal yang tidak diinginkan. Selain itu masalah kewenangan dalam mengakses suatu data juga sangat penting dan diharapkan ada suatu sistem yang dapat menangani masalah otoritas ini sehingga hanya orang yang berkepentingan saja yang dapat mengakses data tersebut. 3.1.5.3.3 Kebutuhan Integrasi Data

Perusahaan membutuhkan suatu aplikasi dengan database yang terintegrasi yang dapat memenuhi kebutuhan data yang sebelumnya tersebar di berbagai sistem informasi konvensional yang belum terkoordinasi dan terintegrasi dengan baik, sehingga mempemudah dalam mendapatkan data dan informasi yang dibutuhkan.

(15)

Integrasi data juga merupakan hal yang penting untuk menghasilkan dokumen-dokumen yang dibutuhkan perusahaan seperti faktur penjualan, PO, laporan penjualan, laporan pembelian, dan laporan persediaan barang.

3.1.5.3.4 Kebutuhan Kecepatan Akses Data

Semua bagian pada PT. M ulti M ulia M andiri memerlukan informasi dan data yang dapat diakses secara cepat dan akurat. Bagian-bagian tersebut juga diharapkan untuk dapat membuat suatu arsip data dalam bentuk ringkas dan mudah dicari sehingga tidak perlu bergelut dengan tumpukan kertas yang ada. 3.1.5.3.5 Kebutuhan Transaksi

Perusahaan membutuhkan suatu aplikasi basis data yang dapat mendukung transaksi untuk memasukkan, mengubah, menghapus, memperoleh data dan informasi dengan praktis dan efisien, dan menyajikan kebutuhan informasi untuk mendukung kegiatan operasional perusahaan.

3.1.6 Permasalahan yang Dihadapi

Setelah melakukan analisis melalui wawancara kepada kepala bagian logistik PT M ulia M ulti M andiri, Bapak Herman, penulis menemukan beberapa permasalahan yang dihadapi oleh perusahaan tersebut dalam menjalankan bisnisnya. Permasalahan yang dihadapi diantaranya:

1. Sering terjadi ketidaksesuaian antara jumlah barang yang ada di gudang dengan jumlah barang pada data persediaan.

(16)

2. Pencetakan dan pencatatan laporan pembelian, persediaan dan penjualan masih dilakukan secara manual, sehingga membutuhkan waktu lama dan kurang akurat.

3. Kesulitan dalam penyimpanan berkas karena transaksi yang terjadi cukup banyak.

4. Belum adanya sistem keamanan data, sehingga data perusahaan dapat dilihat dan diambil oleh siapa saja.

5. Kemungkinan terjadinya kehilangan data.

3.1.7 Usulan Pemecahan Masalah

Berdasarkan hasil analisis terhadap permasalahan yang dihadapi perusahaan tersebut, maka diusulkan untuk menerapkan logikal basis data sebagai pengganti logikal manual dalam menjalankan bisnisnya. Sistem basis data disini dimaksudkan adalah logikal basis data yang mendukung pembelian, persediaan dan penjualan.

Di samping itu, akan dikembangkan sebuah aplikasi program yang dapat mengakses logikal basis data tersebut dan dapat digunakan oleh beberapa bagian perusahaan terutama di bagian yang berhubungan dengan pembelian, persediaan dan penjualan. Perancangan aplikasi ini dimaksudkan agar memperoleh informasi yang cepat dan akurat oleh beberapa divisi yang membutuhkannya. Di dalam program aplikasi ini akan meng-update stok barang secara otomatis sesuai

(17)

dengan transaksi yang terjadi. Dengan demikian, perancangan basis data ini dapat membantu kinerja perusahaan.

3.2 Perancangan Basis Data

Perancangan basis data dilakukan berdasarkan kebutuhan informasi yang telah diidentifikasi pada PT. M ulia M ulti M andiri dan terbagi dalam tiga tahap, yaitu :

• Perancangan basis data konseptual • Perancangan basis data logikal • Perancangan basis data fisikal

3.2.1 Perancangan Basis Data Konseptual

Perancangan basis data konseptual merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan. Perancangan basis data secara konseptual merupakan tahap pertama dari perancangan sebuah sistem basis data. Langkah-langkah penting dalam merancang sebuah basis data secara konseptual adalah :

1. Identifikasi tipe entitas 2. Identifikasi tipe relasional

3. Identifikasi dan asosiasi atribut suatu entitas

(18)

3.2.1.1 Identifikasi Tipe Entitas

Tujuan dari mengidentifikasi tipe entitas adalah untuk menentukan entitas utama yang dibutuhkan.

Tabel 3.1 Identifikasi Tipe Entitas

Nama Entitas Deskripsi Entitas Alias Kejadian Karyawan M erupakan entitas yang

berisi informasi

karyawan yang bekerja di PT M ulia M ulti M andiri.

Staff Karyawan

melakukan aktifitas kerja yang di perusahaan  

Divisi M enunjukkan divisi atau bagian dari pegawai yang

ada

bagian Setiap bagian

memiliki satu atau lebih pegawai Status_Karyawan M enunjukkan status

posisi atau kedudukan dari pegawai

Setiap pegawai memiliki satu posisi

Supplier M erupakan entitas yang berisi informasi tentang pemasok barang-barang perusahaan Pemasok Pemasok melakukan kerja yang berhubungan dengan pengiriman dan penyediaan barang-barang

(19)

Nama Entitas Deskripsi Entitas Alias Kejadian Customer M erupakan entitas yang

berisi informasi tentang pelanggan perusahaan.

Pelanggan Pelanggan

melakukan

pemesanan barang pembelian

Produk M erupakan entitas yang

berisi informasi mengenai barang.

Barang Setiap barang yang

dijual, dibeli dan disimpan pada perusahaan.

PO M erupakan entitas yang berisi tentang informasi tentang pemesanan barang kepada supplier

Purchase_O rder Proses pemesanan yang dilakukan perusahaan ke supplier, jika persedian barang mencapai batas minimum.

PP M erupakan entitas yang berisi informasi tentang rincian pembayaran kepada supplier Purchase_P ayment Transaksi pembayaran yang dilakukan perusahaan kepada supplier berdasarkan

(20)

Nama Entitas Deskripsi Entitas Alias Kejadian tagihan yang

dikirimkan. 

RO Entitas yang berisi

informasi barang yang diterima dari supplier 

Receiving_ Order

Barang yang dibeli dari supplier

diterima oleh bagian penerimaan barang.

SO M erupakan entitas yang berisi informasi tentang pemesanan barang dari pelanggan

Sales_Order Proses pemesanan

barang yang dilakukan

pelanggan kepada perusahaan.

SP M erupakan entitas yang berisi informasi tentang penerimaan pembayaran dari pelanggan Sales_Paym ent Transaksi pembayaran yang dilakukan pelanggan kepada perusahaan berdasarkan Nomor DO.  

(21)

Nama Entitas Deskripsi Entitas Alias Kejadian

DO M erupakan entitas yang

berisi informasi tentang pengiriman barang pesanan pelanggan Delivery_Or der Proses pengiriman barang kepada pelanggan.

CN M erupakan entitas yang

berisi informasi tentang barang yang cacat

Credit_Nota Setiap ada barang

yang cacat akan dibuat Credit Nota

3.2.1.2 Identifikasi Tipe Relationship

Tujuan dari tahap ini adalah untuk mengidentifikasikan relationship penting yang ada diantara entity tipe yang telah diidentifikasi. Terdapat dua langkah penting yang dilakukan yaitu :

a. M embuat Entity-Relationship Diagram

b. M enentukan batasan multiplicity dari relationship type

Membuat Batasan Multiplicity dari Relationship Type Tabel 3.2 Batasan Multiplicity dan Relationship

Entity Name Multiplicity Relationship Entity Name Multiplicity

Customer 1..1 M elakukan SO 1..*

Karyawan 1..1 M elakukan PO 1..*

(22)

Entity Name Multiplicity Relationship Entity Name Multiplicity 1..1 M enangani RO 1..* 1..1 M elakukan PP 1..* 1..1 M enangani SO 1..* 1..1 M elakukan DO 1..* 1..1 M enerima SP 1..* Supplier 1..1 M enangani PO 1..* 1..1 M enangani CN 0..*

Divisi 1..1 M emiliki Karyawan 1..*

Status_Karyawan 1..1 M emiliki Karyawan 1..*

PO 1..1 M emiliki RO 1..1 Produk 1..* Terhadap PO 1..* 1..* Terhadap SO 1..* 1..* Terhadap CN 0..* RO 1..1 M elakukan CN 0..* 1..1 M emiliki PP 1..1 SO 1..1 M emiliki DO 1..1 DO 1..1 M emiliki SP 1..1

(23)

Entity-Relationship Diagram

Gambar 3.3 ER Diagram Konseptual

3.2.1.3Mengidentifikasi dan Mengasosiasikan Atribut dan Domain Atribut dengan

Entity atau Relationship Type

Tahap ini bertujuan untuk mengasosiasikan atribut dengan Entity atau

Relationship Type yang cocok dan juga menentukan domain bagi atribut-atribut

dalam model data konseptual. Atribut-atribut entity yang diidentifikasikan adalah sebagai berikut :

(24)

Nama Entitas : Customer Tabel 3.3 Entitas Customer

Attribute Description Data Types

and Length

Nulls Multi Valued

Kd_Customer M engidentifikasi setiap pembeli secara unik

Char (6) No No

Nama_Customer Nama dari customer Varchar (30) No No Alamat_Customer Alamat dari customer Varchar (50) No No Telpcust Nomor telepon dari

customer

Varchar (15) No Yes

Nama Entitas : S upplier Tabel 3.4 Entitas Supplier

Attribute Description Data Types

and Length

Nulls Multi Valued

Kd_Supplier M engidentifikasikan setiap

supplier secara unik

Char (5) No No

Nama_Supplier Nama dari supplier Varchar (30) No No Alamat_Supplier Alamat dari supplier Varchar (50) No No Telpsupp Nomor telepon supplier Varchar (15) No Yes Faxsupp Nomor fax dari supplier Varchar (15) No Yes

(25)

Nama entitas : Produk Tabel 3.5 Entitas Produk

Attribute Description Data Types

and Length

Nulls Multi Valued

Kd_Produk M engidentifikasikan setiap produk secara unik

Char (5) No No

Nama_Produk Nama dari produk Varchar (20) No No Qty Jumlah produk yang

tersedia

Integer No No

Harga_Beli M engidentifikasikan harga produk pada saat

pembelian

Float No No

Harga_Jual M engidentifikasikan harga produk pada saat dijual

Float No No

Tgl_Update M engidentifikasikan tanggal update dari harga beli dan harga jual

Datetime No No

Nama entitas : Karyawan Tabel 3.6 Entitas Karyawan

Attribute Description Data Types

and Length

Nulls Multi Valued

Kd_Karyawan M engidentifikasikan karyawan yang bekerja

(26)

Nama_Karyawan Nama dari karyawan Varchar (30) No No Alamat_Karyawan Alamat dari karyawan Varchar (50) No No Telpkary Nomor telepon dari

karyawan

Varchar (15) No Yes

Faxkary Nomor fax dari karyawan Varchar (15) No Yes Nama_Divisi Nama dari divisi Varchar (30) No No Nama_Status Nama dari Status Varchar (30) No No

Nama entitas : Status_Karyawan Tabel 3.7 Entitas Jabatan

Attribute Description Data Types

and Length

Nulls Multi Valued

Kd_Status M engidentifikasikan jabatan yang ada pada

perusahaan secara unik

Char (5) No No

Nama_Status Nama dari Status Varchar (30) No No

Nama entitas : Divisi Tabel 3.8 Entitas Divisi

Attribute Description Data Types

and Length

Nulls Multi Valued

Kd_Divisi M engidentifikasikan divisi yang ada di perusahaan

secara unik

(27)

Nama_Divisi Nama dari divisi Varchar (30) No No

Nama entitas : PO Tabel 3.9 Entitas PO

Attribute Description Data Types

and Length Nulls Multi Valued No_PO M engidentifikasikan pemesanan pembelian secara unik Char (8) No No

Tgl_PO Tanggal pemesanan

pembelian

Datetime No No

Nama_Supplier Nama dari supplier Varchar (30) No No Nama_Produk Nama dari produk Varchar (20) No No Qty_Beli Jumlah produk yang dibeli Integer No No

Harga_Beli M engidentifikasikan harga dari produk

Float No No

Nama_Karyawan Nama dari karyawan Varchar (30) No No

Nama Entitas : RO Tabel 3.10 Entitas RO

Attribute Description Data Types

and Length Nulls Multi Valued No_RO M engidentifikasikan penerimaan barang Char (8) No No

(28)

pembelian secara unik

Tgl_RO Tanggal penerimaan

barang pembelian

Datetime No No

Nama_Karyawan Nama dari karyawan Varchar (30) No No

Nama Entitas : PP Tabel 3.11 Entitas PP

Attribute Description Data Types

and Length Nulls Multi Valued No_PP M engidentifikasikan pembayaran pembelian secara unik Char (8) No No Tgl_PP Tanggal pembayaran pembelian Datetime No No

Nama_Karyawan Nama dari karyawan Varchar (30) No No

Nama Entitas : SO Tabel 3.12 Entitas SO

Attribute Description Data Types

and Length Nulls Multi Valued No_SO M engidentifikasikan pemesanan penjualan secara unik Char (8) No No

(29)

penjualan

Nama_Customer Nama dari customer Varchar (30) No No Nama_Produk Nama dari produk Varchar (30) No No Qty_Jual Jumlah produk yang dijual Integer No No

Harga_Jual M engidentifikasikan harga produk

Float No No

Nama_Karyawan Nama dari karyawan Varchar (30) No No

Nama Entitas : DO Tabel 3.13 Entitas DO

Attribute Description Data Types

and Length

Nulls Multi Valued

No_DO M engidentifikasikan surat jalan secara unik

Char (8) No No

Tgl_DO Tanggal surat jalan Datetime No No Nama_Karyawan Nama dari karyawan Varchar (30) No No

Nama Entitas : S P Tabel 3.14 Entitas S P

Attribute Description Data Types

and Length Nulls Multi Valued No_SP M engidentifikasikan pembayaran penjualan secara unik Char (8) No No

(30)

Tgl_SP Tanggal pembayaran penjualan

Datetime No No

Nama_Karyawan Nama dari karyawan Varchar (30) No No

Nama Entitas : CN Tabel 3.15 Entitas CN

Attribute Description Data Types

and Length

Nulls Multi Valued

No_CN M engidentifikasikan credit nota secara unik

Char (8) No No

Tgl_CN Tanggal credit nota Datetime No No Nama_Supplier Nama dari supplier Varchar (30) No No Nama_Produk Nama dari produk Varchar (20) No No Qty_CN Jumlah produk yang

ditukar

Integer No No

Nama_Karyawan Nama dari karyawan Varchar (30) No No

Dari kamus data relationship dapat ditemukan domain atribut seperti terlihat pada tabel berikut :

Tabel 3.16 Domain Atribut

Tipe Data dan Panjang Data Keterangan

Kd_Customer Char(6) Digit 1 dan 2 diisi dengan KC dan digit lainnya diisi dengan angka.

(31)

Tipe Data dan Panjang Data Keterangan

Kd_Supplier Char(5) Digit 1 dan 2 diisi dengan K S dan digit lainnya diisi dengan angka.

Kd_Produk Char (5) Digit 1 dan 2 diisi dengan KP dan digit lainnya diisi dengan angka.

Kd_Karyawan Char(5) Digit 1 dan 2 diisi dengan KK dan digit lainnya diisi dengan angka.

Kd_Divisi Char(5) Digit 1 dan 2 diisi dengan KD dan digit lainnya diisi dengan angka.

Kd_Status Char(5) Digit 1 dan 2 diisi dengan KJ dan digit lainnya diisi dengan angka.

No_PO Char(8) Digit 1 sampai 3 diisi dengan NPO digit lainnya diisi dengan angka.

No_RO Char(8) Digit 1 sampai 3 diisi dengan NRO digit lainnya diisi dengan angka.

No_PP Char(8) Digit 1 sampai 3 diisi dengan NPP digit lainnya diisi dengan angka.

No_SO Char(8) Digit 1 sampai 3 diisi dengan NSO digit lainnya diisi dengan angka.

No_DO Char(8) Digit 1 sampai 3 diisi dengan NDO digit lainnya diisi dengan angka.

(32)

M engidentifikasi candidate key dan primary key dapat dilihat pada tabel sebagai berikut: Tabel 3.17 Identifikasi Candidate dan Primary Key

Nama Entitas Candidate Key Primary Key

Customer Kd_Customer Kd_Customer Supplier Kd_Supplier Kd_Supplier Produk Kd_Produk Nama_Produk Kd_Produk Karyawan Kd_Karyawan Telpkary Faxkary Kd_Karyawan Status_Karyawan Kd_Status Nama_Status Kd_Status Divisi Kd_Divisi Nama_Divisi Kd_Divisi PO No_PO No_PO RO No_RO No_RO PP No_PP No_PP SO No_SO No_SO Tipe Data dan Panjang Data Keterangan

lainnya diisi dengan angka.

No_CN Char(8) Digit 1 sampai 3 diisi dengan NCN digit lainnya diisi dengan angka.

(33)

Nama Entitas Candidate Key Primary Key

DO No_DO No_DO

SP No_SP No_SP CN No_CN No_CN

ER Diagram Konseptual dengan Penambahan Primary Key

m e la ku ka n m enang a ni me la k u ka n m enang a ni m e la ku ka n me n er ima m e na ngan i m e m ilik i m em ilik i

(34)

3.2.1.4 Memvalidasi Model Konseptual Lokal dengan Transaksi Pengguna me la ku k a n m e na ngan i m e na ngan i m el a ku ka n me ne ri ma m e m ilik i me mi li ki

Gambar 3.5 ER Diagram Konseptual dengan Penambahan Transaksi Keterangan : A. Karyawan melakukan PO B. Karyawan menangani RO C. Karyawan melakukan CN D. Karyawan melakukan PP E. Karyawan membuat SO F. Karyawan melakukan DO G. Karyawan menerima SP

(35)

Query yang dibutuhkan :

- M embuat Laporan Pembelian - M embuat Laporan Penjualan - M embuat Laporan Persediaan

- M embuat informasi mengenai Karyawan - M embuat informasi mengenai Supplier - M embuat informasi mengenai Pelanggan - M embuat informasi mengenai Produk

3.2.2 Pemilihan DBMS (Database Management System)

Sesuai dengan permintaan pengguna, DBM S yang menjadi pertimbangan adalah SQL Server 2000, Oracle 9i, dan M ySQL.

Tabel 3.18 Perbandingan DBMS

Keterangan SQL Server 2000 Oracle 9i MySQL Platform SQL Server 2000 hanya bisa dijalankan dalam platform yang berbasis Windows- based, seperti Windows 9x, Windows NT, Windows 2000

Oracle 9i bisa bekerja pada semua platform, termasuk platform yang berbasis Windows-based, Sistem berbasis AIX, Compaq Tru 64 UNIX, HP9000 series HP-UX sistem,

MySQL bisa dijalankan pada semua platform, termasuk platform berbasis Windows- based, Sistem berbasis AIX, Sistem HP-UX, Linux Intel, Sun-Solaris

(36)

Keterangan SQL Server 2000 Oracle 9i MySQL Linux Intel,

Sun-Solaris Hardware - Processor Pentium 1,66M hz atau lebih - M emory 64M B RAM - Hard disk 380M B Hard disk space - Processor Pentium 1,66M hz atau lebih - M emory 128M B RAM - Hard disk 4,7GB Hard disk Space ( untuk Oracle Home Drive, FAT)

- Processor Pentium 1,66M hz atau lebih - M emory 32M B RAM - Hard disk

80M B Hard disk space

Software Untuk Enteprise Edition membutuhkan Windows 2000 Server, Windows NT 4.0 service pack 5 Untuk Platform Berbasis Windows, menggunakan Windows 2000 / Windows NT 4.0 service pack 5 / Windows XP

Untuk Platform berbasis Windows dapat M enggunakan Windows 95/98/NT/2000/XP/2003 Fitur M endukung SQL, di mana T-SQL tersebut M endukung PL SQL, di mana PL SQL meliputi fitur : M endukung MySQL Dialect. Fiturnya : Indexes : tidak

(37)

Keterangan SQL Server 2000 Oracle 9i MySQL meliputi : Indexes : B Tree Indexes Table : Relational Table, Temporary table Trigger : AFTER trigger, INSTEAD OF triggers Procedure : T-SQL Statement Array : Tidak M endukung Indexes : B Tree Indexes, bitmap indexes, partitioned indexes, function based indexes, domain indexes Table : Relational Table, Object

table, temporary table Trigger : BEFORE triggers, AFTER triggers, INSTEAD OF Procedures : PL/SQL Statement, Java methods, third Generation Language(3GL) routines Array : mendukung mendukung Triggers : tidak mendukung Trigger : tidak mendukung Array : M endukung

(38)

Keterangan SQL Server 2000 Oracle 9i MySQL Harga $4.999 - $19.999 $15.000 - $40.000 Open Source/ Free

Software, dibawah persetujuan GNU (

General Public License)

Ketiga DBM S di atas memiliki kelebihan dan kekurangan masing-masing. Dan dapat digunakan untuk membangun sistem yang efisien. Penulis memilih menggunakan MySQL, karena kemudahan dalam proses install dan penggunaannya, serta merupakan Free Software.

3.2.3 Perancangan Basis Data Logikal

Perancangan basis data logikal adalah proses membangun suatu model informasi yang digunakan dalam suatu perusahaan berdasarkan suatu model khusus, tapi tidak tergantung kepada suatu DBM S tertentu dengan pertimbangan fisik lain. Tahapan utama fase ini adalah membangun suatu model data logikal dari sebuah model data konseptual lokal yang merepresentasikan view tertentu dari perusahaan dan kemudian memvalidasikan model ini untuk meyakinkan bahwa model tersebut secara struktural benar dan model tersebut mendukung semua transaksi yang dibutuhkan.

Langkah-langkah dalam merancang basis data logikal yaitu:

1. M enghilangkan fitur-fitur yang tidak sesuai dengan model data relational. 2. M embuat relasi tabel untuk model data logikal.

(39)

3. M emvalidasi relasi menggunakan teknik normalisasi. 4. M emvalidasi relasi terhadap transaksi user.

5. M endefinisikan batasan integritas (integrity constraint).

3.2.3.1Menghilangkan fitur-fitur yang tidak sesuai dengan model data relational. a. Menghilangkan many-to-many ( *:* ) Binary Relationship

Di bawah ini terdiri dari beberapa tabel yang perlu untuk menghilangkan tipe relasi many-to-many diantaranya sebagai berikut :

• Relasi biner many-to-many antara entitas PO dan Produk

Setelah dihilangkan menjadi :

Gambar 3.6a Menghilangkan tipe relasi binary many-to-many (*:*) • Relasi biner many-to-many antara entitas SO dan Produk

Setelah dihilangkan menjadi :

(40)

• Relasi biner many-to-many antara entitas CN dan Produk

Setelah dihilangkan menjadi :

Gambar 3.6c Menghilangkan tipe relasi binary many-to-many (*:*) b. Menghilangkan Multi-Valued Atribut

Atribut-atribut yang multi-valued dapat dihilangkan dengan cara memisahkannya menjadi entitas tersendiri, contoh : Telpcust, Telpsupp, Telpkary.

• Atribut Telpcust pada entity Customer dapat dipisahkan menjadi sebuah entitas baru yaitu entitas Telpcust yang mempunyai relasi dengan Customer.

Gambar 3.7a Menghilangkan Multi-Valued Atribut

• Atribut Telpsupp dan Faxsupp pada entitas Supplier dapat dipisahkan menjadi sebuah entitas baru yaitu entitas Telp_Supplier dan Fax_Supplier yang mempunyai relasi dengan Supplier.

(41)

Gambar 3.7b Menghilangkan Multi-Valued Atribut

• Atribut Telpkary dan Faxkary pada entitas Karyawan dapat dipisahkan menjadi sebuah entitas baru yaitu entitas Telp_Karyawan dan Fax_Karyawan yang mempunyai relasi dengan Karyawan.

Gambar 3.7c Menghilangkan Multi-Valued Atribut

3.2.3.2Membuat Relasi untuk Model Data Logikal

a. Tipe strong entity

- Customer (Kd_Customer, Nama_Customer, Alamat_Customer) Primary Key Kd_Customer

- Supplier (Kd_Supplier, Nama_Supplier, Alamat_Supplier) Primary Key Kd_Supplier

- Karyawan (Kd_Karyawan, Nama_Karyawan, Alamat_Karyawan, Nama_Divisi, Nama_Jabatan)

(42)

- S tatus_Karyawan (Kd_Status, Nama_Status) Primary Key Kd_Status

- Divisi (Kd_Divisi, Nama_Divisi) Primary Key Kd_Divisi

- Produk (Kd_Produk, Nama_Produk, Qty, Harga_Beli, Harga_Jual, T gl_Update) Primary Key Kd_Produk

- PO_H (No_PO, Tgl_PO, Nama_Supplier, Nama_Karyawan) Primary Key No_PO

- RO (No_RO, Tgl_RO, Nama_Karyawan) Primary Key No_RO

- PP (No_PP, Tgl_PP, Nama_Karyawan) Primary Key No_PP

- SO_H (No_SO, Tgl_SO, Nama_Customer, Nama_Karyawan) Primary Key No_SO

- DO (No_DO, Tgl_DO, Nama_Karyawan) Primary Key No_DO

- S P (No_SP, Tgl_SP, Nama_Karyawan) Primary Key No_SP

(43)

- CN_H (No_CN, Tgl_CN, Nama_Supplier, Nama_Karyawan) Primary Key No_CN

b. Tipe Weak Entity

- Telp_Customer (Telpcust)

Primary Key belum ada (untuk saat ini)

- Telp_S upplier (Telpsupp)

Primary Key belum ada (untuk saat ini)

- Fax_S upplier (Faxsupp)

Primary Key belum ada (untuk saat ini)

- Telp_Karyawan (Telpkary)

Primary Key belum ada (untuk saat ini)

- Fax_Karyawan (Faxkary)

Primary Key belum ada (untuk saat ini)

- PO_D (Qty_Beli, Harga_Beli)

Primary Key belum ada (untuk saat ini) - SO_D (Qty_Jual, Harga_Jual)

Primary Key belum ada (untuk saat ini)

- CN_D (Qty_CN)

(44)

c. Tipe relasi binary one-to-many (1:*)

- Hubungan Divisi dengan Karyawan

Gambar 3.8a Relasi Binary one-to-many (1:*)

- Hubungan Jabatan dengan Karyawan

Gambar 3.8b Relasi Binary one-to-many (1:*)

- Hubungan Supplier dengan PO_H

(45)

- Hubungan Karyawan dengan PO_H

Gambar 3.8d Relasi Binary one-to-many (1:*)

- Hubungan PO_H dengan PO_D

Gambar 3.8e Relasi Binary one-to-many (1:*) - Hubungan Produk dengan PO_D

(46)

- Hubungan Karyawan dengan SO_H

Gambar 3.8g Relasi Binary one-to-many (1:*)

 

- Hubungan Customer dengan SO_H

Gambar 3.8h Relasi Binary one-to-many (1:*)

- Hubungan SO_H dengan SO_D

(47)

- Hubungan Produk dengan SO_D

Gambar 3.8j Relasi Binary one-to-many (1:*) - Hubungan Supplier dengan CN_H

Gambar 3.8k Relasi Binary one-to-many (1:*) 

- Hubungan Karyawan dengan CN_H

Gambar 3.8l Relasi Binary one-to-many (1:*) - Hubungan CN_H dengan CN_D

(48)

- Hubungan Produk dengan CN_D

Gambar 3.8n Relasi Binary one-to-many (1:*)

- Hubungan Karyawan dengan RO

Gambar 3.8o Relasi Binary one-to-many (1:*)

- Hubungan RO dengan CN_H

Gambar 3.8p Relasi Binary one-to-many (1:*)

- Hubungan Karyawan dengan PP

(49)

- Hubungan Karyawan dengan DO

Gambar 3.8r Relasi Binary one-to-many (1:*) - Hubungan Karyawan dengan SP

Gambar 3.8s Relasi Binary one-to-many (1:*)

- Hubungan Customer dengan Telp_Customer

Gambar 3.8t Relasi Binary one-to-many (1:*)

- Hubungan Karyawan dengan Telp_Karyawan

Gambar 3.8u Relasi Binary one-to-many (1:*) - Hubungan Karyawan dengan Fax_Karyawan

(50)

Gambar 3.8v Relasi Binary one-to-many (1:*)

- Hubungan Supplier dengan Telp_Supplier

Gambar 3.8w Relasi Binary one-to-many (1:*) - Hubungan Supplier dengan Fax_Supplier

(51)

d. Tipe relasi binary one-to-one (1:1)

- Hubungan RO dengan PP

Gambar 3.9a Relasi Binary one-to-many (1:1) - Hubungan PO_H dengan RO

Gambar 3.9b Relasi Binary one-to-many (1:1) - Hubungan SO_H dengan DO

(52)

- Hubungan DO dengan SP

Gambar 3.9d Relasi Binary one-to-many (1:*)

3.2.3.3Memvalidasi Relasi Menggunakan Teknik Normalisasi

1 NF :

Semua relasi telah memenuhi 1NF karena telah memiliki Primary Key dan tidak ditemukan repeating groups, sebab tiap baris dan kolom dalam sebuah relasi telah mengandung hanya satu nilai.

2 NF:

Semua relasi telah memenuhi 2 NF karena tidak ditemukan ketergantungan parsial karena setiap atribut non-Primary Key telah bersifat tergantung penuh dengan Primary Key.

3 NF:

Semua tabel telah memenuhi 3 NF karena tidak ditemukan ketergantungan transitive.

(53)

Entity Relationship Diagram Setelah Normalisasi te rh adap te rh ad ap m em ilik i m em ilik i m el a ku ka n M ena nga ni m em ilik i m e la ku k a n m e la ku ka n m e m ilik i Me ne rima m e la ku ka n M e na ng ani te rh ada p  

(54)

3.2.3.4Memvalidasi Relasi terhadap Transaksi User

Validasi relasi melalui transaksi pengguna dilakukan berdasarkan validasi relasi transaksi pengguna pada tahap konseptual dengan spesifikasi input dan

output sebagai berikut :

(a) M embuat PP

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

Ambil Kd_Supplier dari RO berdasarkan No_RO

Ambil Nama_Supplier dari Supplier berdasarkan Kd_Supplier Ambil Kd_Produk dari RO berdasarkan No_RO

Ambil Nama_Produk dari Produk berdasarkan Kd_Produk

Tulis No_PP, Tgl_PP, No_RO, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke PP

(b) M embuat CN

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

Ambil Kd_Supplier dari RO berdasarkan No_RO

Ambil Nama_Supplier, Alamat_Supplier dari Supplier berdasarkan Kd_Supplier

(55)

Ambil Kd_Produk dari RO berdasarkan No_RO

Ambil Nama_Produk dari Produk berdasarkan Kd_Produk Tulis No_CN, Tgl_CN, No_RO, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke CN

(c) M asukan data RO

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

Ambil Kd_Supplier dari PO_H berdasarkan No_PO

Ambil Nama_Supplier dari Supplier berdasarkan Kd_Supplier Ambil Kd_Produk dari PO_D berdasarkan No_PO

Ambil Nama_Produk dari Produk berdasarkan Kd_Produk Tulis No_RO, Tgl_RO, No_PO, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke RO

(d) M embuat PO

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

Ambil Nama_Supplier, Alamat_Supplier dari Supplier berdasarkan Kd_Supplier

(56)

Tulis No_PO, Tgl_PO, Kd_Supplier, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke PO_H

Ambil Nama_Produk, Harga_Beli dari Produk berdasarkan Kd_Produk

Tulis No_PO, Kd_Produk, Qty_Beli ke PO_D

(e) M embuat SO

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

Ambil Nama_Customer, Alamat_Customer dari Customer berdasarkan Kd_Customer

Tulis No_SO, Tgl_SO, Kd_Customer, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke SO_H

Ambil Nama_Produk, Harga_Jual dari Produk berdasarkan Kd_Produk

Tulis No_SO, Kd_Produk, Qty_Jual ke SO_D

(f) M elakukan DO

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

(57)

Ambil Nama_Customer, Alamat_Customer dari Customer berdasarkan Kd_Customer

Ambil Kd_Produk dari SO_D berdasarkan No_SO

Ambil Nama_Produk dari Produk berdasarkan Kd_Produk Tulis No_DO, Tgl_DO, No_SO, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke DO

(g) M embuat SP

Ambil Nama_Karyawan dari Karyawan berdasarkan Kd_Karyawan Ambil Nama_Status dari Status_Karyawan berdasarkan Kd_Status Ambil Nama_Divisi dari Divisi berdasarkan Kd_Divisi

Ambil Kd_Customer dari DO berdasarkan No_DO

Ambil Nama_Customer, Alamat_Customer dari Customer berdasarkan Kd_Customer

Ambil Kd_Produk dari DO berdasarkan No_DO

Ambil Nama_Produk dari Produk berdasarkan Kd_Produk Tulis No_SP, Tgl_SP, No_DO, Kd_Karyawan, Kd_Jabatan, Kd_Divisi ke SP

Query yang dibutuhkan:

(58)

Ambil No_PO, Kd_Produk, Qty_Beli, Harga_Beli, (jumlah dari Harga_Beli dikali Qty_Beli) dari PO digabungkan dengan TotalPembelian berdasarkan No_PO

Tulis ke Laporan Pembelian

- M embuat laporan penjualan

Ambil Tgl_SO, Kd_Produk, Qty_Jual, Harga_Jual, (jumlah dari Harga_Jual dikali Qty_Jual) dari SO digabungkan dengan TotalPenjualan berdasarkan No_SO

Tulis ke Laporan Penjualan

- M embuat laporan persediaan

Ambil Tgl_Penerimaan_Barang, Kd_Produk dari Penerimaan_Barang Ambil Nama_Produk, Qty dari Produk berdasarkan Kd_Produk Tulis ke Laporan Persediaan

- M embuat informasi mengenai karyawan

Ambil Kd_Karyawan, Nama_Karyawan, Alamat_Karyawan dari Karyawan Ambil Telpkary dari Telp_Karyawan berdasarkan Kd_Karyawan

Ambil Faxkary dari Fax_Karyawan berdasarkan Kd_Karyawan Tulis ke View Karyawan

(59)

Ambil Kd_Supplier, Nama_Supplier, Alamat_Supplier dari Supplier Ambil Telpsupp dari Telp_Supplier berdasarkan Kd_Supplier Ambil Faxsupp dari Fax_Supplier berdasarkan Kd_Supplier Tulis ke View Supplier

- M embuat informasi mengenai customer

Ambil Kd_Customer, Nama_Customer, Alamat_Customer dari Customer Ambil Telpcust dari Telp_Customer berdasarkan Kd_Customer

Tulis ke View Customer

- M embuat informasi mengenai produk

Ambil Kd_Produk, Nama_Produk, Harga_Beli, Harga_Jual, Qty dari Produk Tulis ke View Produk

3.2.3.5Mendefinisikan Integrity Constraint

Required data

Beberapa atribut harus selalu berisi data yang sah sehingga atribut tersebut tidak diperbolehkan menerima null. Batasan seperti ini telah diidentifikasikan dalam kamus data atribut.

Attribute domain constrains

Setiap atribut mempunyai domain yang merupakan sekumpulan nilai yang sah. Batasan ini telah diidentifiikasikan pada saat menentukan

(60)

Entity integrity

Primary key dari sebuah entity tidak dapat menerima null. Batasan

ini telah dipertimbangkan pada saat mengidentifikasi primary key pada kamus data entitas.

Referential integrity

Tabel 3.19 Referential Integrity

Customer (Kd_Customer, Nama_Customer, Alamat_Customer) Primary Key Kd_Customer

Telp_Customer (Telpcust, Kd_Customer) Primary Key Telp_Cust

Foreign Key Kd_Customer references Customer (Kd_Customer) Supplier (Kd_Supplier, Nama_Supplier, Alamat_Supplier) Primary Key Kd_Supplier

Telp_S upplier (Telpsupp, Kd_Supplier) Primary Key Telpsupp

Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Fax_S upplier (Faxsupp, Kd_Supplier)

Primary Key Faxsupp

Foreign Key Kd_Supplier references Supplier (Kd_Supplier)

Karyawan (Kd_Karyawan, Nama_Karyawan, Alamat_Karyawan, Kd_Divisi, Kd_Jabatan)

(61)

Foreign Key Kd_Divisi references Divisi (Kd_Divisi) Foreign Key Kd_Jabatan references Jabatan (Kd_Jabatan) Telp_Karyawan (Telpkary, Kd_Karyawan)

Primary Key Telpkary

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Fax_Karyawan (Faxkary, Kd_Karyawan)

Primary Key Faxkary

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Divisi (Kd_Divisi, Nama_Divisi)

Primary Key Kd_Divisi

S tatus_Karyawan (Kd_Status, Nama_Status) Primary Key Kd_Status

Produk (Kd_Produk, Nama_Produk, Qty, Harga_Beli, Harga_Jual, T gl_Update) Primary Key Kd_Produk

PO_H (No_PO, Tgl_PO, Kd_Supplier, Kd_Karyawan ) Primary Key No_PO

Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) PO_D (No_PO, Kd_Produk, Harga_Beli, Qty_Beli)

Primary Key No_PO, Kd_Produk

Foreign Key No_PO references PO_H (No_PO)

(62)

RO (No_RO, Tgl_RO, No_PO, Kd_Karyawan) Primary Key No_RO

Foreign Key No_PO references PO_H (No_PO)

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) PP (No_PP, Tgl_PP, No_RO, Kd_Karyawan)

Primary Key No_PP

Foreign Key No_RO references RO (No_RO)

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) SO_H (No_SO, Tgl_SO, Kd_Customer, Kd_Karyawan)

Primary Key No_SO

Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) SO_D (No_SO, Kd_Produk, Harga_Jual, Qty_Jual)

Primary Key No_SO, Kd_Produk

Foreign Key No_SO references SO_H (No_SO)

Foreign Key Kd_Produk references Produk (Kd_Produk) DO (No_DO, Tgl_DO, No_SO, Kd_Karyawan)

Primary Key No_DO

Foreign Key No_SO references SO_H (No_SO)

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) S P (No_SP, Tgl_SP, No_DO, Kd_Karyawan)

(63)

Foreign Key No_DO references DO (No_DO)

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) CN_H (No_CN, No_RO, Tgl_CN, Kd_Supplier, Kd_Karyawan) Primary Key No_CN

Foreign Key No_RO references RO (No_RO)

Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) CN_D (No_CN, Kd_Produk, Qty_CN)

Primary Key No_CN, Kd_Produk

Foreign Key No_CN references CN_H (No_CN)

Foreign Key Kd_Produk references Produk (Kd_Produk)

3.2.4 Perancangan Basis Data Fisikal

3.2.4.1Penerjemahan Model Data Logikal Sesuai DBMS

Tujuan dari tahap ini adalah untuk mengidentifikasikan basis data relasional dalam model data logikal global yang digunakan dalam DBM S dengan menggunakan DBDL (DataBase Design Language), DBDL yang digunakan adalah sebagai berikut:

3.2.4.1.1 Perancangan Relasi Dasar

1. Customer

Domain Kd_Customer variable length character string, length 6 Domain Nama_Customer variable length character string, length 30

(64)

Domain Alamat_Customer variable length character string, length 50

Customer (

Kd_Customer Kode Customer NOT NULL, Nama_Customer Nama Customer NOT NULL, Alamat_Customer Alamat Customer NOT NULL,

Primary Key (Kd_Customer) ); 2. Telp_Customer

Domain Telpcust variable length character string, length 15 Domain Kd_Customer variable length character string, length 6

Telp_Customer (

Telpcust Telepon Customer NOT NULL,

Kd_Customer Kode Customer NOT NULL,

Primary Key (Telpcust),

Foreign Key Kd_Customer references Customer (Kd_Customer) ON UPDATE CASCADE ON DELETE NO ACTION);

3. Supplier

Domain Kd_Supplier variable length character string, length 5 Domain Nama_Supplier variable length character string, length 30 Domain Alamat_Supplier variable length character string, length 50

Supplier (

Kd_Suppplier Kode Supplier NOT NULL, Nama_Supplier Nama Supplier NOT NULL, Alamat_Supplier Alamat Supplier NOT NULL,

(65)

Primary Key (Kd_Supplier) ); 4. Telp_S upplier

Domain Telpsupp variable length character string, length 15 Domain Kd_Supplier variable length character string, length 5 Telp_Supplier (

Telpsupp Telepon Supplier NOT NULL, Kd_Supplier Kode Supplier NOT NULL, Primary Key (Telpsupp),

Foreign Key Kd_Supplier references Supplier (Kd_Supplier) ON UPDATE CASCADE ON DELETE NO ACTION);

5. Fax_S upplier

Domain Faxsupp variable length character string, length 15 Domain Kd_Supplier variable length character string, length 5

Fax_Supplier (

Faxsupp Fax Supplier NOT NULL,

Kd_Supplier Kode Supplier NOT NULL, Primary Key (Faxsupp),

Foreign Key Kd_Supplier referencesSupplier (Kd_Suppplier) ON UPDATE CASCADE ON DELETE NO ACTION);

6. Karyawan

Domain Kd_Karyawan variable length character string, length 5 Domain Nama_Karyawan variable length character string, length 30 Domain Alamat_Karyawan variable length character string, length 50

(66)

Domain Kd_Divisi variable length character string, length 5 Domain Kd_Jabatan variable length character string, length 5

Karyawan (

Kd_Karyawan Kode Karyawan NOT NULL, Nama_Karyawan Nama Karyawan NOT NULL,

Alamat_Karyawan Alamat Karyawan NOT NULL, Kd_Divisi Kode Divisi NOT NULL, Kd_Jabatan Kode Jabatan NOT NULL,

Primary Key (Kd_Karyawan)

Foreign Key Kd_Divisi references Divisi (Kd_Divisi) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Jabatan references Jabatan (Kd_Jabatan) ON UPDATE CASCADE ON DELETE NO ACTION);

7. Telp_Karyawan

Domain Telpkary variable length character string, length 15 Domain Kd_Karyawan variable length character string, length 5

Telp_Karyawan (

Telpkary Telepon Karyawan NOT NULL, Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (Telpkary),

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

(67)

8. Fax_Karyawan

Domain Faxkary variable length character string, length 15 Domain Kd_Karyawan variable length character string, length 5

Fax_Karyawan (

Faxkary Fax Karyawan NOT NULL,

Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (Faxkary),

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

9. Divisi

Domain Kd_Divisi variable length character string, length 5 Domain Nama_Divisi variable length character string, length 30

Divisi (

Kd_Divisi Kode Divisi NOT NULL, Nama_Divisi Nama Divisi NOT NULL,

Primary Key (Kd_Divisi) ); 10. S tatus_Karyawan

Domain Kd_Status variable length character string, length 5 Domain Nama_Status variable length character string, length 30

Jabatan (

Kd_Status Kode Status NOT NULL, Nama_Status Nama Status NOT NULL,

(68)

11. Produk

Domain Kd_Produk variable length character string, length 5 Domain Nama_Produk variable length character string, length 20

Domain Qty int

Domain Harga_Beli float Domain Harga_Jual float

Domain Tgl_Update variable length character length datename

Produk (

Kd_Produk Kode Produk NOT NULL, Nama_Produk Nama Produk NOT NULL,

Qty Qty NOT NULL,

Harga_Beli Harga Beli NOT NULL,

Harga_Jual Harga Jual NOT NULL,

Tgl_Update Tanggal Update NOT NULL, Primary Key (Kd_Produk) );

12. PO_H

Domain No_PO variable length character string, length 8 Domain Tgl_PO variable length character datename Domain Kd_Supplier variable length character string, length 5 Domain Kd_Karyawan variable length character string, length 5

PO_H (

No_PO Nomor PO NOT NULL,

(69)

Kd_Supplier Kode Supplier NOT NULL, Kd_Karyawan Kode Karyawan NOT NULL,

Primary Key (No_PO),

Foreign Key Kd_Supplier references Supplier (Kd_Supplier) ON UPDATE CASCADE ON DELELTE NO ACTION,

Foreign Key Kd_Karyawan references Jabatan (Kd_Jabatan) ON UPDATE CASCADE ON DELELTE NO ACTION);

13. PO_D

Domain No_PO variable length character string, length 8 Domain Kd_Produk variable length character string, length 5 Domain Harga_Beli float

Domain Qty_Beli int

PO_D (

No_PO Nomor PO NOT NULL,

Kd_Produk Kode Produk NOT NULL,

Harga_Beli Harga Beli NOT NULL,

Qty_Beli Qty Beli NOT NULL,

Primary Key (No_PO, Kd_Produk);

Foreign Key No_PO references PO_H (No_PO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Produk references Produk (Kd_Produk) ON UPDATE CASCADE ON DELETE NO ACTION);

(70)

14. RO

Domain No_RO variable length character string, length 8 Domain Tgl_RO variable length character datename Domain No_PO variable length character string, length 8 Domain Kd_Karyawan variable length character string, length 5

RO (

No_RO Nomor RO NOT NULL,

Tgl_RO Tanggal RO NOT NULL,

No_PO Nomor PO NOT NULL,

Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (No_RO),

Foreign Key No_PO references PO_H (No_PO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

15. PP

Domain No_PP variable length character string, length 8 Domain Tgl_PP variable length character datename Domain No_RO variable length character string, length 8 Domain Kd_Karyawan variable length character string, length 5

PP (

No_PP Nomor PP NOT NULL,

(71)

No_RO Nomor RO NOT NULL, Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (No_PP),

Foreign Key No_RO references RO (No_RO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

16. SO_H

Domain No_SO variable length character string, length 8 Domain Tgl_SO variable length character datename Domain Kd_Customer variable length character string, length 6 Domain Kd_Karyawan variable length character string, length 5

SO_H (

No_SO Nomor SO NOT NULL,

Tgl_SO Tanggal SO NOT NULL,

Kd_Customer Kode Customer NOT NULL, Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (No_SO),

Foreign Key Kd_Customer references Customer (Kd_Customer) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

(72)

17. SO_D

Domain No_SO variable length character string, length 8 Domain Kd_Produk variable length character string, length 5 Domain Harga_Jual float

Domain Qty_Jual int

SO_D (

No_SO Nomor SO NOT NULL,

Kd_Produk Kode Produk NOT NULL, Harga_Jual Harga Jual NOT NULL, Qty_Jual Qty Jual NOT NULL,

Primary Key (No_SO, Kd_Produk),

Foreign Key No_SO references SO_H (No_SO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Produk references Produk (Kd_Produk) ON UPDATE CASCADE ON DELETE NO ACTION);

18. DO

Domain No_DO variable length character string, length 8 Domain No_SO variable length character string, length 8 Domain Tgl_DO variable length character datename Domain Kd_Karyawan variable length character string, length 5

DO (

No_DO Nomor DO NOT NULL,

(73)

Tgl_DO Tanggal DO NOT NULL, Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (No_DO),

Foreign Key No_SO references SO_H (No_SO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

19. S P

Domain No_SP variable length character string, length 8 Domain Tgl_SP variable length character datename Domain No_DO variable length character string, length 8 Domain Kd_Karyawan variable length character string, length 5

SP (

No_SP Nomor SP NOT NULL,

Tgl_SP Tanggal SP NOT NULL,

No_DO Nomor DO NOT NULL,

Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (No_SP),

Foreign Key No_DO references DO (No_DO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

(74)

20. CN_H

Domain No_CN variable length character string, length 8 Domain Tgl_CN variable length character datename Domain No_RO variable length character string, length 8 Domain Kd_Supplier variable length character string, length 5 Domain Kd_Karyawan variable length character string, length 5

CN (

No_CN Nomor CN NOT NULL,

Tgl_CN Tanggal CN NOT NULL,

No_RO Nomor RO NOT NULL,

Kd_Supplier Kode Supplier NOT NULL, Kd_Karyawan Kode Karyawan NOT NULL, Primary Key (No_CN),

Foreign Key No_RO references RO (No_RO) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) ON UPDATE CASCADE ON DELETE NO ACTION);

21. CN_D

Domain No_CN variable length character string, length 8 Domain Kd_Produk variable length character string, length 5

Domain Qty_CN int

CN_D (

(75)

Kd_Produk Kode Produk NOT NULL,

Qty_CN Qty CN NOT NULL,

Primary Key (No_CN, Kd_Produk),

Foreign Key No_CN references CN_H (No_CN) ON UPDATE CASCADE ON DELETE NO ACTION,

Foreign Key Kd_Produk references Produk (Kd_Produk) ON UPDATE CASCADE ON DELETE NO ACTION);

3.2.4.1.2 Perancangan Representasi dari Data yang Diturunkan

Setelah dilakukan analisa, tidak terdapat data yang diturunkan.

3.2.4.1.3 Perancangan Enteprise Constraint

Setelah dilakukan analisa, tidak terdapat enterprise constraint.

3.2.4.2 Perancangan Representasi Fisikal

3.2.4.2.1 Analisa Transaksi

Tabel 3.20 Cross-referencing transactions and relations (A) – (D)

Transaksi/Relasi (A) (B) (C) (D)

I R U D I R U D I R U D I R U D Customer

(76)

Transaksi/Relasi (A) (B) (C) (D) I R U D I R U D I R U D I R U D Karyawan x x x x Divisi x x x x Status_Karyawan x x x x Produk x x PO_H x x x x x PO_D x x x x x RO x x x x x x PP x x x x SO_H SO_D DO SP CN_H x x x x CN_D x x x x

I = Insert, R = Read, U = Update, D = Delete

Tabel 3.21 Cross-referencing transactions and relations (E) – (G)

Transaksi/Relasi (E) (F) (G)

I R U D I R U D I R U D

Customer x x x

(77)

Transaksi/Relasi (E) (F) (G) I R U D I R U D I R U D Karyawan x x x Divisi x x x Status_Karyawan x x x PO_H PO_D RO PP SO_H x x x x x SO_D x x x x x DO x x x x x SP x x x X CN

I = Insert, R = Read, U = Update, D = Delete Keterangan : A. Karyawan melakukan PO B. Karyawan menangani RO C. Karyawan melakukan CN D. Karyawan melakukan PP E. Karyawan membuat SO F. Karyawan melakukan DO G. Karyawan menerima SP

Gambar

Gambar 3.2a D AD Pembelian Barang
Gambar 3.2c DAD Penjualan Barang Buat loading       slip  tidak  Mulai Mem buat PO PO
Gambar 3.6a Menghilangkan tipe relasi binary many-to-many (*:*)  •  Relasi biner many-to-many antara entitas SO dan Produk
Gambar 3.6c Menghilangkan tipe relasi binary many-to-many (*:*)  b.  Menghilangkan Multi-Valued Atribut
+7

Referensi

Dokumen terkait

Mengukur aktivitas oksidasi metan dan fiksasi N 2 dari isolate bakteri metanotrof asal sawah dan menyeleksi bakteri metanotrof potensial yang memiliki aktivitas oksidasi metan

Tingkat pemanfaatan dihitung dengan mempersenkan jumlah hasil tangkapan pada tahun tertentu terhadap nilai MSY (Paully, 1983). Tingkat pengupayaan dihitung dengan mempersenkan

Pada langkah ini, siswa dianjurkan memahami masalah dengan kata- kata (pemikiran) mereka sendiri. Memahami soal merupakan langkah yang penting dalam menyelesaikan soal.

09220029, Etika Pelaku Usaha Periklanan Perspektif Fiqih Muamalah dan Undang-Undang Nomor 8 Tahun 1999 tentang Perlindungan Konsumen, Skripsi, Jurusan Hukum Bisnis

Skripsi ini diajukan sebagai syarat untuk memperoleh gelar Sarjana Teknologi Pertanian pada Jurusan Ilmu dan Teknologi Pangan, Fakultas

Pembangkit yang digunakan untuk merubah panas bumi menjadi tenaga listrik secara umum mempunyai komponen yang sama dengan power plant lain yang bukan berbasis panas bumi,

Saran dari penelitian ini bagi remaja yang orangtuanya bercerai adalah agar dapat memaafkan kedua orangtuanya dengan mengubah pola pikirnya tentang perceraian dan mengembangkan

Dari hasil penelitian diketahui bahwa usia, masa kerja dan sikap berhubungan dengan kepatuhan perawat dalam melakukan dokumentasi reassessment nyeri dengan p value =