BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA
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
48
49
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
50
•
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 Presiden Direktur
Dir. Operasional
Dir. Keuangan
Personalia & Umum
Internal Audit
Sales M anager Corporate Sales Admin
Supervisor
Supervisor
Supervisor
Supervisor
Gambar 3.1a S truktur Organisasi PT. Mulia Multi Mandiri Supervisor
Sales Supervisor Sales Admin
Salesman
Salesman
Salesman
Salesman
Salesman
Admin Gudang Office Boy
Helper
Helper
Helper
Helper
Helper
Helper Gudang
Gambar 3.1b S truktur Organisasi di Tiap Cabang
Satpam
51
3.1.4
Wewenang dan Tanggung Jawab Adapun uraian pembagian wewenang dan tanggung jawab dari masingmasing 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 •
M engaudit keuangan dari perusahaan setiap bulan.
52
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.
53
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 •
3.1.5
Bertanggung jawab terhadap keamanan gudang.
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 apaapa, tetapi jika tidak mencukupi bagian gudang membuat surat ke bagian logistik
54
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 mengapprove CRO dan membuat CO yang sesuai dengan CRO yang baru.
55
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:
56
•
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:
3.1.5.1.3
•
Rangkap 1 disimpan di supplier
•
Rangkap 2 dikirim ke bagian finance
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.
57
3.1.5.2 Diagram Aliran Dokumen 3.1.5.2.1 Diagram Aliran Dokumen Pembelian Barang INVENTORY
LOGISTIK
SUPPLIER
FINANCE
M ulai Data stok gudang
2 Sto k mencukupi
tidak
CRO Membuat CRO
ya 2
Selesai
3
Mengecek kecukupan kapasitas produksi
1
3 CRO
tidak
ya
CRO
1
Membuat CO
CRO
2
3
CO
2 1
3
CO
CO
1 Kapasitas produksi
Konfirmasi kapasitas produksi
1 Membuat CRO
2 Kapasitas produksi
Gambar 3.2a D AD Pembelian Barang
58
3.1.5.2.2 Diagram Aliran Dokumen Persediaan Barang INVENTORY Terima barang
LOGISTIK Dikirim sesuai
SUPPLIER
FINANCE
Mulai
CO
tidak
Membuat surat jalan
Tukar barang
Cek barang cacat
ya Tanda tangan surat jalan
1
2 Surat jalan
Membuat
CN
2
CN 2 Surat jalan
Dikirim sesuai Mengirim barang sesuai CN
CN
1
Mencatat peneri maan barang
2 Surat Tagihan
Surat jalan
Membuat surat tagihan
2 1
CN Membuat lapor an peneri maan barang
Melakukan pembayaran
2 1 Surat Tagihan
Laporan penerimaan barang
Menerima pembayaran
Membuat lapor an stok barang
Membuat bukti pembayaran 2 1 Arsip
2
2 Bukti pembay aran
Arsip 1 Bukti pembay aran
Gambar 3.2b DAD Persediaan Barang
2
Selesai
59
3.1.5.2.3 Diagram Aliran Dokumen Penjualan Barang CUST OMER
PENJUALAN
Mulai
PO
Membuat PO
GUDANG
T RANSPORT IR
Loading slip 1
N Membuat loading slip (bukti muat barang)
Sto k mencukupi ya
tidak
2 1 Loading slip
Minta kebijaksanaan customer
3 Surat jalan
N Loading Slip (bukti muat barang)
2 Surat jalan
FINANCE
Buat loading slip N
Membuat surat jalan
Membuat bukti pembay aran
N 3 1 Surat jalan
2
2 1 Bukti pembay aran
1 Bukti pembay aran
N
1 Surat jalan
Terima barang
N
Mengirim barang Tanda tangan surat jalan
Melakukan pembayaran
Menerima penyetoran pembayaran
2
Menerima pembayaran
Melakukan penyetoran pembay aran 1 Bukti peny etoran pembay aran
Selesai
Gambar 3.2c DAD Penjualan Barang
1 Bukti peny etoran pembay aran
N
60
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.
61
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.
62
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.
63
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
64
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 :
3.2.1
•
Perancangan basis data konseptual
•
Perancangan basis data logikal
•
Perancangan basis data fisikal
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 4. Identifikasi candidate dan primary key setiap entitas
65
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 Karyawan
Divisi
Status_Karyawan
Deskripsi Entitas M erupakan entitas yang
Staff
Kejadian Karyawan
berisi informasi
melakukan
karyawan yang bekerja di
aktifitas kerja yang
PT M ulia M ulti M andiri.
di perusahaan
M enunjukkan divisi atau bagian
Setiap
bagian dari pegawai yang
memiliki satu atau
ada
lebih pegawai
M enunjukkan posisi atau
Supplier
Alias
status kedudukan
Setiap
bagian
pegawai
memiliki
satu
dari pegawai
posisi
M erupakan entitas yang Pemasok
Pemasok
berisi informasi tentang
melakukan
pemasok
yang berhubungan
perusahaan
barang-barang
kerja
dengan pengiriman penyediaan barang-barang
dan
66
Nama Entitas Customer
Deskripsi Entitas
Alias
Kejadian
M erupakan entitas yang Pelanggan
Pelanggan
berisi informasi tentang
melakukan
pelanggan perusahaan.
pemesanan barang pembelian
Produk
M erupakan entitas yang Barang
Setiap barang yang
berisi
dijual, dibeli dan
informasi
mengenai barang.
disimpan
pada
perusahaan. PO
M erupakan entitas yang Purchase_O
Proses pemesanan
berisi tentang informasi rder
yang
tentang
perusahaan
pemesanan
barang kepada supplier
dilakukan
supplier,
ke jika
persedian
barang
mencapai
batas
minimum. PP
M erupakan entitas yang Purchase_P
Transaksi
berisi informasi tentang ayment
pembayaran yang
rincian
dilakukan
pembayaran
kepada supplier
perusahaan kepada supplier berdasarkan
67
Nama Entitas
Deskripsi Entitas
Alias
Kejadian tagihan yang dikirimkan.
RO
Entitas
yang
berisi Receiving_
informasi barang yang
Order
diterima dari supplier
Barang yang dibeli dari supplier diterima oleh bagian penerimaan barang.
SO
M erupakan entitas yang Sales_Order Proses pemesanan berisi informasi tentang
barang
yang
pemesanan barang dari
dilakukan
pelanggan
pelanggan kepada perusahaan.
SP
M erupakan entitas yang Sales_Paym
Transaksi
berisi informasi tentang ent
pembayaran yang
penerimaan pembayaran
dilakukan
dari pelanggan
pelanggan kepada perusahaan berdasarkan Nomor DO.
68
Nama Entitas DO
Deskripsi Entitas
Alias
Kejadian
M erupakan entitas yang
Delivery_Or Proses pengiriman
berisi informasi tentang
der
barang kepada
pengiriman barang
pelanggan.
pesanan pelanggan CN
M erupakan entitas yang
Credit_Nota
Setiap ada barang
berisi informasi tentang
yang cacat akan
barang yang cacat
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..*
1..1
M elakukan
CN
0..*
69
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..*
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..*
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
Supplier
RO
70
Entity-Relationship Diagram
Gambar 3.3 ER Diagram Konseptual
3.2.1.3 Mengidentifikasi 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. adalah sebagai berikut :
Atribut-atribut entity yang diidentifikasikan
71
Nama Entitas : Customer Tabel 3.3 Entitas Customer Attribute
Description
Data Types
Nulls
and Length Kd_Customer
M engidentifikasi setiap
Multi Valued
Char (6)
No
No
pembeli secara unik Nama_Customer
Nama dari customer
Varchar (30)
No
No
Alamat_Customer
Alamat dari customer
Varchar (50)
No
No
Telpcust
Nomor telepon dari
Varchar (15)
No
Yes
customer
Nama Entitas : S upplier Tabel 3.4 Entitas Supplier Attribute
Description
Data Types
Nulls
and Length Kd_Supplier
M engidentifikasikan setiap
Multi Valued
Char (5)
No
No
supplier secara unik 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
72
Nama entitas : Produk Tabel 3.5 Entitas Produk Attribute
Description
Data Types
Nulls
and Length Kd_Produk
M engidentifikasikan setiap
Multi Valued
Char (5)
No
No
produk secara unik Nama_Produk
Nama dari produk
Varchar (20)
No
No
Qty
Jumlah produk yang
Integer
No
No
Float
No
No
Float
No
No
Datetime
No
No
tersedia Harga_Beli
M engidentifikasikan harga produk pada saat pembelian
Harga_Jual
M engidentifikasikan harga produk pada saat dijual
Tgl_Update
M engidentifikasikan tanggal update dari harga beli dan harga jual
Nama entitas : Karyawan Tabel 3.6 Entitas Karyawan Attribute
Description
Data Types
Nulls
and Length Kd_Karyawan
M engidentifikasikan karyawan yang bekerja
Char (5)
Multi Valued
No
No
73
Nama_Karyawan
Nama dari karyawan
Varchar (30)
No
No
Alamat_Karyawan
Alamat dari karyawan
Varchar (50)
No
No
Telpkary
Nomor telepon dari
Varchar (15)
No
Yes
karyawan 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
Nulls
and Length Kd_Status
M engidentifikasikan
Multi Valued
Char (5)
No
No
Varchar (30)
No
No
jabatan yang ada pada perusahaan secara unik Nama_Status
Nama dari Status
Nama entitas : Divisi Tabel 3.8 Entitas Divisi Attribute
Description
Data Types
Nulls
and Length Kd_Divisi
M engidentifikasikan divisi yang ada di perusahaan secara unik
Char (5)
Multi Valued
No
No
74
Nama_Divisi
Nama dari divisi
Varchar (30)
No
No
Nama entitas : PO Tabel 3.9 Entitas PO Attribute
Description
Data Types
Nulls
and Length No_PO
M engidentifikasikan
Multi Valued
Char (8)
No
No
Datetime
No
No
pemesanan pembelian secara unik Tgl_PO
Tanggal pemesanan pembelian
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
Float
No
No
Varchar (30)
No
No
dari produk Nama_Karyawan
Nama dari karyawan
Nama Entitas : RO Tabel 3.10 Entitas RO Attribute
Description
Data Types
Nulls
and Length No_RO
M engidentifikasikan penerimaan barang
Char (8)
Multi Valued
No
No
75
pembelian secara unik Tgl_RO
Tanggal penerimaan
Datetime
No
No
Varchar (30)
No
No
barang pembelian Nama_Karyawan
Nama dari karyawan
Nama Entitas : PP Tabel 3.11 Entitas PP Attribute
Description
Data Types
Nulls
and Length No_PP
M engidentifikasikan
Multi Valued
Char (8)
No
No
Datetime
No
No
Varchar (30)
No
No
pembayaran pembelian secara unik Tgl_PP
Tanggal pembayaran pembelian
Nama_Karyawan
Nama dari karyawan
Nama Entitas : SO Tabel 3.12 Entitas SO Attribute
Description
Data Types
Nulls
and Length No_SO
M engidentifikasikan
Multi Valued
Char (8)
No
No
Datetime
No
No
pemesanan penjualan secara unik Tgl_SO
Tanggal pemesanan
76
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
Float
No
No
Varchar (30)
No
No
produk Nama_Karyawan
Nama dari karyawan
Nama Entitas : DO Tabel 3.13 Entitas DO Attribute
Description
Data Types
Nulls
and Length No_DO
M engidentifikasikan surat
Multi Valued
Char (8)
No
No
jalan secara unik 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
Nulls
and Length No_SP
M engidentifikasikan pembayaran penjualan secara unik
Char (8)
Multi Valued
No
No
77
Tgl_SP
Tanggal pembayaran
Datetime
No
No
Varchar (30)
No
No
penjualan Nama_Karyawan
Nama dari karyawan
Nama Entitas : CN Tabel 3.15 Entitas CN Attribute
Description
Data Types
Nulls
and Length No_CN
M engidentifikasikan
Multi Valued
Char (8)
No
No
credit nota secara unik 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
Integer
No
No
Varchar (30)
No
No
ditukar Nama_Karyawan
Nama dari karyawan
Dari kamus data relationship dapat ditemukan domain atribut seperti terlihat pada tabel berikut : Tabel 3.16 Domain Atribut Tipe Data dan Panjang Data Kd_Customer Char(6)
Keterangan Digit 1 dan 2 diisi dengan KC dan digit lainnya diisi dengan angka.
78
Tipe Data dan Panjang Data Kd_Supplier Char(5)
Keterangan 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.
No_SP Char(8)
Digit 1 sampai 3 diisi dengan NSP digit
79
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.
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
Kd_Produk
Nama_Produk Karyawan
Kd_Karyawan
Kd_Karyawan
Telpkary Faxkary Status_Karyawan
Kd_Status
Kd_Status
Nama_Status Divisi
Kd_Divisi
Kd_Divisi
Nama_Divisi PO
No_PO
No_PO
RO
No_RO
No_RO
PP
No_PP
No_PP
SO
No_SO
No_SO
80
Nama Entitas
Candidate Key
Primary Key
DO
No_DO
No_DO
SP
No_SP
No_SP
CN
No_CN
No_CN
melakukan
m enangani
memiliki
menangani
ER Diagram Konseptual dengan Penambahan Primary Key
menerima
menangani mem iliki
melakukan
melakukan
Gambar 3.4 ER Diagram dengan Penambahan Primary Key
81
menangani
memiliki
3.2.1.4 Memvalidasi Model Konseptual Lokal dengan Transaksi Pengguna
menerima
menangani memili ki
m elakukan
melakukan
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
82
Query yang dibutuhkan :
3.2.2
-
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
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 Platform
SQL Server 2000
Oracle 9i
MySQL
SQL Server 2000
Oracle 9i bisa bekerja MySQL bisa dijalankan
hanya bisa
pada semua platform, pada semua platform,
dijalankan dalam
termasuk platform
termasuk platform
platform yang
yang berbasis
berbasis Windows-
berbasis Windows-
Windows-based,
based, Sistem berbasis
based, seperti
Sistem berbasis AIX,
AIX, Sistem HP-UX,
Windows 9x,
Compaq Tru 64
Linux Intel, Sun-Solaris
Windows NT,
UNIX, HP9000
Windows 2000
series HP-UX sistem,
83
Keterangan
SQL Server 2000
Oracle 9i
MySQL
Linux Intel, SunSolaris Hardware
- Processor
- Processor
- Processor
Pentium 1,66M hz
Pentium 1,66M hz
Pentium 1,66M hz atau
atau lebih
atau lebih
lebih
- M emory
- M emory
- M emory
64M B RAM
128M B RAM
32M B RAM
- Hard disk
- Hard disk
- Hard disk
380M B Hard disk
4,7GB Hard disk
80M B Hard disk space
space
Space ( untuk Oracle Home Drive, FAT)
Software
Fitur
Untuk Enteprise
Untuk Platform
Untuk Platform berbasis
Edition
Berbasis Windows,
Windows dapat
membutuhkan
menggunakan
M enggunakan Windows
Windows 2000
Windows 2000 /
95/98/NT/2000/XP/2003
Server, Windows
Windows NT 4.0
NT 4.0 service
service pack 5 /
pack 5
Windows XP
M endukung T-
M endukung PL SQL,
M endukung MySQL
SQL, di mana T-
di mana PL SQL
Dialect. Fiturnya :
SQL tersebut
meliputi fitur :
Indexes : tidak
84
Keterangan
SQL Server 2000
Oracle 9i
MySQL
meliputi :
Indexes : B Tree
mendukung
Indexes : B Tree
Indexes, bitmap
Triggers : tidak
Indexes
indexes, partitioned
mendukung
Table : Relational
indexes, function
Trigger : tidak
Table, Temporary
based indexes,
mendukung
table
domain indexes
Array : M endukung
Trigger : AFTER
Table : Relational
trigger,
Table, Object
INSTEAD OF
table, temporary table
triggers
Trigger : BEFORE
Procedure : T-SQL
triggers, AFTER
Statement
triggers, INSTEAD
Array : Tidak
OF
M endukung
Procedures : PL/SQL Statement, Java methods, third Generation Language(3GL) routines Array : mendukung
85
Keterangan Harga
SQL Server 2000 $4.999 - $19.999
Oracle 9i $15.000 - $40.000
MySQL 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.
86
3. M emvalidasi relasi menggunakan teknik normalisasi. 4. M emvalidasi relasi terhadap transaksi user. 5. M endefinisikan batasan integritas (integrity constraint).
3.2.3.1 Menghilangkan 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 :
Gambar 3.6b Menghilangkan tipe relasi binary many-to-many (*:*)
87
•
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.
88
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.2 Membuat 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) Primary Key Kd_Karyawan
89
-
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
90
-
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) Primary Key belum ada (untuk saat ini)
91
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
Gambar 3.8c Relasi Binary one-to-many (1:*)
92
-
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
Gambar 3.8f Relasi Binary one-to-many (1:*)
93
-
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
Gambar 3.8i Relasi Binary one-to-many (1:*)
94
-
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
Gambar 3.8m Relasi Binary one-to-many (1:*)
95
-
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
Gambar 3.8q Relasi Binary one-to-many (1:*)
96
-
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
97
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
Gambar 3.8x Relasi Binary one-to-many (1:*)
98
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
Gambar 3.9c Relasi Binary one-to-many (1:1)
99
-
Hubungan DO dengan SP
Gambar 3.9d Relasi Binary one-to-many (1:*)
3.2.3.3 Memvalidasi 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.
100
Menangani
memiliki
Menangani
melakukan
Entity Relationship Diagram Setelah Normalisasi
m elakuk an
t erhadap
memiliki
terhadap
Menerima
memiliki
memiliki
terhadap
me lakuka n
me lakuka n
Gambar 3.10 ER Diagram Setelah Normalisasi
101
3.2.3.4 Memvalidasi 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
102
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
103
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 Ambil Kd_Customer dari SO_H berdasarkan No_SO
104
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: -
M embuat laporan pembelian
105
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
-
M embuat informasi mengenai supplier
106
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.5 Mendefinisikan 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 domain atribut untuk model data.
107
•
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,
Kd_Jabatan) Primary Key Kd_Karyawan
Nama_Karyawan,
Alamat_Karyawan,
Kd_Divisi,
108
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) Foreign Key Kd_Produk references Produk (Kd_Produk)
109
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) Primary Key No_SP
110
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.1 Penerjemahan 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
111
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,
112
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
113
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);
114
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,
Primary Key (Kd_Status) );
115
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,
Tgl_PO
Tanggal PO
NOT NULL,
116
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);
117
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,
Tgl_PP
Tanggal PP
NOT NULL,
118
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);
119
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,
No_SO
Nomor SO
NOT NULL,
120
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);
121
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 ( No_CN
Nomor CN
NOT NULL,
122
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) I
R
U
(B) D
I
R
U
(C) D I R U D I
(D) R U D
Customer Supplier
x
x
x
x
123
Transaksi/Relasi
(A) I
R
U
(B) D
I
R
U
(C)
(D)
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
x
x
PO_H
x
x
x
x
x
PO_D
x
x
x
x
x
RO
x
x
x
x
PP
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) I
Customer Supplier
(F)
(G)
R U D I
R U D I
R U D
x
x
x
x
x
124
Transaksi/Relasi
(E) I
(F)
(G)
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
SP 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
x
x
x x x
x
X
125
3.2.4.2.2
Penerapan View dan Procedure
a. VIEW Karyawan Create View VKaryawan as select a.Kd_Karyawan, a.Nama_Karyawan, a.Alamat_Karyawan, b.Telpkary, c.Faxkary, d.Nama_Divisi, e.Nama_Status from Karyawan a, Telp_Karyawan b, Fax_Karyawan c, Divisi d, Status_Karyawan e where a.Kd_Karyawan=b.Kd_Karyawan and a.Kd_Karyawan=c.Kd_Karyawan and a.Kd_Divisi=d.Kd_Divisi and a.Kd_Status=e.Kd_Status
b. VIEW Customer Create View VCustomer as select a.Kd_Customer, a.Nama_Customer, a. Alamat_Customer, b.Telpcust from Customer a, Telp_Customer b where a.Kd_Customer=b.Kd_Customer
c. VIEW S upplier Create View VSupplier as select a.Kd_Supplier, a.Nama_Supplier, a.Alamat_Supplier, b.Telpsupp, c.Faxsupp from Supplier a, Telp_Supplier b, Fax_Supplier c where a.Kd_Supplier=b.Kd_Supplier and a.Kd_Supplier=c.Kd_Supplier
126
d. VIEW Produk Create View VProduk as select Nama_Produk, Qty, Harga_Jual, Harga_Beli, Tgl_Update from Produk
e. VIEW PO_H Create View VPO_H as select a.No_PO, a.Tgl_PO, b.Nama_Supplier, c.Nama_Karyawan from PO_H a, Supplier b, Karyawan c where a.Kd_Supplier=b.Kd_Supplier and a.Kd_Karyawan=c.Kd_Karyawan
f. VIEW PO_D Create View VPO_D as select a.No_PO, b.Nama_Produk, b.Harga_Beli, a.Qty_Beli from PO_D a, Produk b where a.Kd_Produk=b.Kd_Produk
g. VIEW RO Create View VRO as select a.No_RO, a.Tgl_RO, b.No_Po, c.Nama_Karyawan from RO a, PO_H b, Karyawan c where a.No_PO=b.No_PO and a.Kd_Karyawan=c.Kd_Karyawan
127
h. VIEW_PP Create View VPP as select a.No_PP, a.Tgl_PP, b.No_RO, c.Nama_Karyawan from PP a, RO b, Karyawan c where a.No_RO=b.No_RO and a.Kd_Karyawan=c.Kd_Karyawan
i. VIEW S O_H Create View VSO_H as select a.No_SO, a.Tgl_SO, b.Nama_Karyawan, c.Nama_Customer from SO_H a, Karyawan b, Customer c where a.Kd_Karyawan=b.Kd_Karyawan and a.Kd_Customer=c.Kd_Customer
j. VIEW S O_D Create View VSO_D as select a.No_SO, b.Nama_Produk, b.Harga_Jual, a.Qty_Jual from SO_D a, Produk b where a.Kd_Produk=b.Kd_Produk
k. VIEW DO Create View VDO as select a.No_DO, a.Tgl_DO, b.No_SO, c.Nama_Karyawan from DO a, SO_H b, Karyawan c where a.No_SO=b.No_SO and a.Kd_Karyawan=c.Kd_Karyawan
128
l. VIEW S P Create View VSP as select a.No_SP, a.Tgl_SP, b.No_DO, c.Nama_Karyawan from SP a, DO b, Karyawan c where a.No_DO=b.No_DO and a.Kd_Karyawan=b.Kd_Karyawan
m. VIEW CN_H Create View VCN_H as select a.No_CN, a.Tgl_CN, b.No_RO, c.Nama_Supplier, d.Nama_Karyawan from CN_H a, RO b, Supplier c, Karyawan d where a.No_RO=b.No_RO and a.Kd_Supplier=c.Kd_Supplier and a.Kd_Karyawan=d.Kd_Karyawan
n. VIEW CN_D Create View VCN_D as select a.No_CN, b.Nama_Produk, a.Qty_CN from CN_D a, Produk b where a.Kd_Produk=b.Kd_Produk
o. VIEW Laporan Pembelian Create View VLapPembelian as select a.No_PO, a.Tgl_PO, b.Nama_Supplier, c.Nama_Karyawan, d.Nama_Produk, e.Qty_Beli, e.Harga_Beli from PO_H a, Supplier b, Karyawan c, Produk d, PO_D e
129
where a.No_PO=e.No_PO and a.Kd_Supplier=b.Kd_Supplier and a.Kd_Karyawan=c.Kd_Karyawan and e.Kd_Produk=d.Kd_Produk
p. VIEW Laporan Persediaan Create View VLapPersediaan as select a.Kd_Produk, a.Nama_Produk, b.Qty_Beli, c.Qty_Jual from Produk a, PO_D b, SO_D c where a.Kd_PRoduk=b.Kd_Produk and a.Kd_Produk=c.Kd_Produk
q. VIEW Laporan Penjualan Create View VLapPenjualan as select a.Tgl_SO, a.No_SO, b.Nama_Customer, c.Nama_Karyawan, d.Qty_Jual, d.Harga_Jual from SO_H a, SO_D d, Customer b, Karyawan c where a.No_SO=d.NO_SO and a.Kd_Customer=b.Kd_Customer and a.Kd_Karyawan=c.Kd_Karyawan
r. Laporan PP (Purchase Payment) -
M emasukkan data PP CREATE PROCEDURE `insert_pp` ( IN `no_ro`
char(8),
IN `kd_karyawan` char(5) )
130
BEGIN DECLARE a char(8); DECLARE b int; select cast(RIGHT(No_PP,5)as UNSIGNED) from PP order by No_PP DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NPP','0000',b+1); ELSEIF b<99 THEN SET a = CONCAT('NPP','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NPP','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NPP','0',b+1); ELSE SET a='NPP00001'; END IF; INSERT INTO PP VALUES (a,NOW(),no_ro,kd_karyawan); END
-
M enghapus data PP CREATE PROCEDURE `delete_pp` ( IN `kd` char(8) ) BEGIN DELETE FROM pp WHERE No_PP = kd; END
131
-
M engubah data PP CREATE PROCEDURE `update_pp` ( IN `kd` IN `no_ro`
char(8), char(8),
IN `kd_karyawan` char(5) ) BEGIN UPDATE pp SET `Tgl_PP` = NOW(),`No_RO` no_ro,`Kd_Karyawan` = kd_karyawan WHERE No_PP = Kd; END s. Laporan CN (Credit Nota) -
M emasukkan data CN_H CREATE PROCEDURE `insert_cn_h` ( IN `no_ro`
char(8),
IN `kd_supplier` char(5), IN `kd_karyawan` char(5) ) BEGIN DECLARE a char(8); DECLARE b int;
132
select cast(RIGHT(No_CN,5)as UNSIGNED) from CN_H order by No_CN DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NCN','0000',b+1); ELSEIF b<99 THEN SET a = CONCAT('NCN','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NCN','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NCN','0',b+1); ELSE SET a='NCN00001'; END IF; INSERT INTO CN_H VALUES (a,NOW(),no_ro,kd_supplier,kd_karyawan); END
-
M enghapus data CN_H CREATE PROCEDURE `delete_cn_h` ( IN `kd` char(8) ) BEGIN DELETE FROM cn_h WHERE No_CN = kd; END
-
M engubah data CN_H CREATE PROCEDURE `update_cn_h` (
133
IN `kd`
char(8),
IN `no_ro`
char(8),
IN `kd_supplier` char(5), IN `kd_karyawan` char(5) ) BEGIN UPDATE cn_h SET `Tgl_CN` = NOW(),`No_RO` = no_ro,`Kd_Supplier`=kd_supplier,`Kd_Karyawan`=kd_karyawan WHERE No_CN = Kd; END -
M emasukkan data CN_D CREATE PROCEDURE `insert_cn_d` ( IN `no_cn` char(8), IN `produk` char(5), IN `qty`
int
) BEGIN INSERT INTO CN_D VALUES (`no_cn`,produk,qty); END
-
M enghapus data CN_D CREATE PROCEDURE `delete_cn_d`
134
( IN `kd` char(8), IN `kdp` char(5) ) BEGIN DELETE FROM cn_d WHERE No_CN = kd and Kd_Produk = kdp; END
-
M engubah data CN_D CREATE PROCEDURE `update_cn_d` ( IN `kd`
char(8),
IN `kd_produk` char(5), IN `qty`
int
) BEGIN UPDATE cn_d SET `Qty_CN`=qty WHERE No_CN = Kd and Kd_Produk = kd_produk; END
t. Laporan RO (Receiving Order) -
M emasukkan data RO CREATE PROCEDURE `insert_ro` (
135
IN `no_po`
char(8),
IN `kd_karyawan` char(5) ) DETERM INISTIC BEGIN DECLARE a char(8); DECLARE b int; select cast(RIGHT(No_RO,5)as UNSIGNED) from RO order by No_RO DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NRO','0000',b+1); ELSEIF b<99 THEN SET a = CONCAT('NRO','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NRO','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NRO','0',b+1); ELSE SET a='NRO00001'; END IF; INSERT INTO RO VALUES (a,NOW(),no_po,kd_karyawan); END
-
M enghapus data RO CREATE PROCEDURE `delete_ro` ( IN `kd` char(8) )
136
BEGIN DELETE FROM ro WHERE No_RO = kd; END
-
M engubah data RO CREATE PROCEDURE `update_ro` ( IN `kd` IN `no_po`
char(8), char(8),
IN `kd_karyawan` char(5) ) BEGIN UPDATE ro SET `Tgl_RO` = NOW(), `No_PO` = no_po, `Kd_Karyawan` = kd_karyawan WHERE No_RO = Kd; END
u. Laporan PO (Purchase Order) -
M emasukkan data PO_H CREATE PROCEDURE `insert_po_h` ( IN `kd_supplier` char(5), IN `kd_karyawan` char(5) )
137
DETERM INISTIC BEGIN DECLARE a char(8); DECLARE b int; select cast(RIGHT(No_PO,5)as UNSIGNED) from PO_H order by No_PO DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NPO','0000',b+1); ELSEIF b<99 THEN SET a = CONCAT('NPO','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NPO','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NPO','0',b+1); ELSE SET a='NPO00001'; END IF; INSERT INTO PO_H VALUES (a,NOW(),kd_supplier,kd_karyawan); END
-
M enghapus data PO_H CREATE PROCEDURE `delete_po_h` ( IN `kd` char(8) ) BEGIN DELETE FROM po_h WHERE No_PO = kd; END
138
-
M engubah data PO_H CREATE PROCEDURE `update_po_h` ( IN `kd`
char(8),
IN `kd_supplier` char(5), IN `kd_karyawan` char(5) ) BEGIN UPDATE po_h SET `Tgl_PO` = NOW(),`Kd_Supplier` = kd_supplier,`Kd_Karyawan` = kd_karyawan WHERE No_PO = Kd; END
-
M emasukkan data PO_D CREATE PROCEDURE `insert_po_d` ( IN `no_po` char (8), IN `produk` char(5), IN `harga` float, IN `qty`
int
) BEGIN INSERT INTO PO_D VALUES (no_po,produk,harga,qty);
139
END
-
M enghapus data PO_D CREATE PROCEDURE `delete_po_d` ( IN `kd` char(8), IN `kdp` char(5) ) BEGIN DELETE FROM po_d WHERE No_PO = kd and Kd_Produk=kdp; END
-
M engubah data PO_D CREATE PROCEDURE `update_po_d` ( IN `kd`
char(8),
IN `kd_produk` char(5), IN `harga_beli` float, IN `qty_beli`
int
) BEGIN UPDATE po_d SET `Harga_Beli` = harga_beli,`Qty_Beli` = qty_beli WHERE No_PO = Kd and Kd_Produk = kd_produk; END
140
v. Laporan S O (Sales Order) -
M emasukkan data SO_H CREATE PROCEDURE `insert_so_h` ( IN `kd_customer` char(5), IN `kd_karyawan` char(5) ) DETERM INISTIC BEGIN DECLARE a char(8); DECLARE b int; select cast(RIGHT(No_SO,5)as UNSIGNED) from SO_H order by No_SO DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NSO','0000',b+1); ELSEIF b<99 THEN SET a = CONCAT('NSO','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NSO','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NSO','0',b+1); ELSE SET a='NSO00001'; END IF; INSERT INTO SO_H VALUES (a,NOW(),kd_customer,kd_karyawan); END
-
M enghapus data SO_H
141
CREATE PROCEDURE `delete_so_h` ( IN `kd` char(8) ) BEGIN DELETE FROM so_h WHERE No_SO = kd; END -
M engubah data SO_H CREATE PROCEDURE `update_so_h` ( IN `kd`
char(8),
IN `kd_customer` char(6), IN `kd_karyawan` char(5) ) BEGIN UPDATE so_h SET `Tgl_SO` = NOW(), `Kd_Customer` = kd_customer, `Kd_Karyawan` = kd_karyawan WHERE No_SO = Kd; END
-
M emasukkan data SO_D CREATE PROCEDURE `insert_so_d`
142
( IN `no_so` char(8), IN `produk` char(5), IN `harga` float, IN `qty`
int
) BEGIN INSERT INTO SO_D VALUES (no_ro,produk,harga,qty); END
-
M enghapus data SO_D CREATE PROCEDURE `delete_so_d` ( IN `kd` char(8), IN `kdp` char(5) ) BEGIN DELETE FROM so_d WHERE No_SO = kd and Kd_Produk=kdp ; END
-
M engubah data SO_D CREATE PROCEDURE `update_so_d` ( IN `kd`
char(8),
143
IN `kd_produk` char(5), IN `harga_jual` float, IN `qty_jual`
int
) BEGIN UPDATE so_d SET `Harga_Jual` = harga_jual, `Qty_Jual` = qty_jual WHERE No_SO = Kd and Kd_Produk = kd_produk; END
w. Laporan DO (Delivery Order) -
M emasukkan data DO CREATE PROCEDURE `insert_do` ( IN `no_so`
char(8),
IN `kd_karyawan` char(5) ) DETERM INISTIC BEGIN DECLARE a char(8); DECLARE b int; select cast(RIGHT(No_DO,5)as UNSIGNED) from DO order by No_DO DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NDO','0000',b+1);
144
ELSEIF b<99 THEN SET a = CONCAT('NDO','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NDO','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NDO','0',b+1); ELSE SET a='NDO00001'; END IF; INSERT INTO DO VALUES (a,NOW(),no_so,kd_karyawan); END
-
M enghapus data DO CREATE PROCEDURE `delete_do` ( IN `kd` char(8) ) BEGIN DELETE FROM do WHERE No_DO = kd; END
-
M engubah data DO CREATE PROCEDURE `update_do` ( IN `kd` IN `no_so`
char(8), char(8),
IN `kd_karyawan` char(5) )
145
BEGIN UPDATE do SET `Tgl_DO` = NOW(),`No_SO` = no_so,`Kd_Karyawan`=kd_karyawan WHERE No_DO = Kd; END
x. Laporan S P (Sales Payment) -
M emasukkan data SP CREATE PROCEDURE `insert_sp` ( IN `no_do`
char(8),
IN `kd_karyawan` char(5) ) DETERM INISTIC BEGIN DECLARE a char(8); DECLARE b int; select cast(RIGHT(No_SP,5)as UNSIGNED) from SP order by No_SP DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('NSP','0000',b+1); ELSEIF b<99 THEN SET a = CONCAT('NSP','000',b+1); ELSEIF b<999 THEN SET a = CONCAT('NSP','00',b+1); ELSEIF b<9999 THEN SET a = CONCAT('NSP','0',b+1);
146
ELSE SET a='NSP00001'; END IF; INSERT INTO SP VALUES (a,NOW(),no_do,kd_karyawan); END
-
M enghapus data SP CREATE PROCEDURE `delete_sp` ( IN `kd` char(8) ) BEGIN DELETE FROM sp WHERE No_SP = kd; END
-
M engubah data SP CREATE PROCEDURE `update_sp` ( IN `kd` IN `no_do`
char(8), char(8),
IN `kd_karyawan` char(5) ) BEGIN UPDATE sp SET `Tgl_SP` = NOW(), `No_DO` = no_do, `Kd_Karyawan` = kd_karyawan
147
WHERE No_SP = Kd; END
y. Data Customer -
M emasukkan data Customer CREATE PROCEDURE `insert_customer` ( IN `nama`
varchar(30),
IN `alamat` varchar(50) ) DETERM INISTIC BEGIN DECLARE a char(6); DECLARE b int; select cast(RIGHT(Kd_Customer,4)as UNSIGNED) from customer order by Kd_Customer DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('KC','000',b+1); ELSEIF b<99 THEN SET a = CONCAT('KC','00',b+1); ELSEIF b<999 THEN SET a = CONCAT('KC','0',b+1); ELSE SET a='KC0001'; END IF; INSERT INTO customer VALUES (a,nama,alamat); END
148
-
M enghapus data Customer CREATE PROCEDURE `delete_customer` ( IN `kd` char(6) ) BEGIN DELETE FROM customer WHERE Kd_Customer = kd; END
-
M engubah data Customer CREATE PROCEDURE `update_customer` ( IN `kd`
char(6),
IN `nama_customer`
varchar(30),
IN `alamat_customer` varchar(50) ) BEGIN UPDATE customer SET `Nama_Customer` = nama_customer,`Alamat_Customer`=alamat_customer WHERE Kd_Customer = Kd; END
149
z. Data Telp_Customer -
M emasukkan data Telp_Customer CREATE PROCEDURE `insert_telp_customer` ( IN `kd` char(6), IN `telp` varchar(15) ) DETERM INISTIC BEGIN INSERT INTO telp_customer VALUES (telp,kd); END
-
M enghapus data Telp_Customer CREATE PROCEDURE `delete_telp_customer` ( IN `kd` char(6) ) BEGIN DELETE FROM telp_customer WHERE Kd_Customer = kd; END
-
M engubah data Telp_Customer CREATE PROCEDURE `update_telp_customer` (
150
IN `kd`
char(5),
IN `telpcust` varchar(15) ) BEGIN UPDATE telp_customer SET `Telpcust`=telpcust WHERE Kd_Customer = Kd; END
aa. Data S upplier -
M emasukkan data Supplier CREATE PROCEDURE `insert_supplier` ( IN `nama`
varchar(30),
IN `alamat` varchar(50) ) DETERM INISTIC BEGIN DECLARE a char(5); DECLARE b int; select cast(RIGHT(Kd_Supplier,3)as UNSIGNED) from supplier order by Kd_Supplier DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('KS','00',b+1); ELSEIF b<99 THEN SET a = CONCAT('KS','0',b+1);
151
ELSE SET a='KS001'; END IF; INSERT INTO supplier VALUES (a,nama,alamat); END
-
M enghapus data Supplier CREATE PROCEDURE `delete_supplier` ( IN `kd` char(5) ) BEGIN DELETE FROM supplier WHERE Kd_Supplier = kd; END
-
M engubah data Supplier CREATE PROCEDURE `update_supplier` ( IN `kd`
char(5),
IN `nama_supplier`
varchar(30),
IN `alamat_supplier` varchar(50) ) BEGIN UPDATE supplier SET `Nama_Supplier` = nama_supplier, `Alamat_Supplier` = alamat_supplier
152
WHERE Kd_Supplier = Kd; END
bb. Data Telp_Supplier -
M emasukkan data Telp_Supplier CREATE PROCEDURE `insert_telp_supplier` ( IN `kd`
char(5),
IN `telp` varchar(15) ) DETERM INISTIC BEGIN INSERT INTO telp_supplier VALUES (telp,kd); END
-
M enghapus data Telp_Supplier CREATE PROCEDURE `delete_telp_supplier` ( IN `kd` char(5) ) BEGIN DELETE FROM telp_supplier WHERE Kd_Supplier = kd; END
153
-
M engubah data Telp_Supplier CREATE PROCEDURE `update_telp_supplier` ( IN `kd`
char(5),
IN `telpsupp` varchar(15) ) BEGIN UPDATE telp_supplier SET `Telpsupp`=telpsupp WHERE Kd_Supplier = Kd; END
cc. Data Fax_Supplier -
M emasukkan data Fax_Supplier CREATE PROCEDURE `insert_fax_supplier` ( IN `kd` char(5), IN `fax` varchar(15) ) DETERM INISTIC BEGIN INSERT INTO fax_supplier VALUES (kd,fax); END
154
-
M enghapus data Fax_Supplier CREATE PROCEDURE `delete_fax_supplier` ( IN `kd` char(5) ) BEGIN DELETE FROM fax_supplier WHERE Kd_Supplier = kd; END
-
M engubah data Fax_Supplier CREATE PROCEDURE `update_fax_supplier` ( IN `kd`
char(5),
IN `faxsupp` varchar(15) ) BEGIN UPDATE fax_supplier SET `Faxsupp`=faxsupp WHERE Kd_Supplier = Kd; END
dd. Data Karyawan -
M emasukkan data Karyawan CREATE PROCEDURE `insert_karyawan` (
155
IN `nama`
varchar(30),
IN `alamat`
varchar(50),
IN `kd_divisi` char(5), IN `kd_status` char(5) ) DETERM INISTIC BEGIN DECLARE a char(5); DECLARE b int; select cast(RIGHT(Kd_Karyawan,3)as UNSIGNED) from karyawan order by Kd_Karyawan DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('KK','00',b+1); ELSEIF b<99 THEN SET a = CONCAT('KK','0',b+1); ELSE SET a='KK001'; END IF; INSERT INTO karyawan VALUES (a,nama,alamat,kd_divisi,kd_status); END
-
M enghapus data Karyawan CREATE PROCEDURE `delete_karyawan` ( IN `kd` char(5) )
156
BEGIN DELETE FROM karyawan WHERE Kd_Karyawan = kd; END
-
M engubah data Karyawan CREATE PROCEDURE `update_karyawan` ( IN `kd`
char(5),
IN `nama_karyawan`
varchar(30),
IN `alamat_karyawan` varchar(50), IN `kd_divisi`
char(5),
IN `kd_status`
char(5)
) BEGIN UPDATE karyawan SET `Nama_Karyawan` = nama_karyawan,`Alamat_Karyawan` = alamat_karyawan, `Kd_Divisi` = kd_divisi,`Kd_Status` = kd_status WHERE Kd_Karyawan = Kd; END
ee. Data Telp_Karyawan -
M emasukkan data Telp_Karyawan CREATE PROCEDURE `insert_telp_karyawan` (
157
IN `kd`
char(5),
IN `telp` varchar(15) ) DETERM INISTIC BEGIN INSERT INTO telp_karyawan VALUES (telp,kd); END
-
M enghapus data Telp_Karyawan CREATE PROCEDURE `delete_telp_karyawan` ( IN `kd` char(5) ) BEGIN DELETE FROM telp_karyawan WHERE Kd_Karyawan = kd; END
-
M engubah data Telp_Karyawan CREATE PROCEDURE `update_telp_karyawan` ( IN `kd`
char(5),
IN `telpkary` varchar(15) ) BEGIN
158
UPDATE telp_karyawan SET `Telpkary`=telpkary WHERE Kd_Karyawan = Kd; END
ff. Data Fax_Karyawan -
M emasukkan data Fax_Karyawan CREATE PROCEDURE `insert_fax_karyawan` ( IN `kd` char(5), IN `fax` varchar(15) ) DETERM INISTIC BEGIN INSERT INTO fax_karyawan VALUES (kd,fax); END
-
M enghapus data Fax_Karyawan CREATE PROCEDURE `delete_fax_karyawan` ( IN `kd` char(6) ) BEGIN DELETE FROM fax_karyawan WHERE Kd_Karyawan = kd; END
159
-
M engubah data Fax_Karyawan CREATE PROCEDURE `update_fax_karyawan` ( IN `kd`
char(5),
IN `faxkary` varchar(15) ) BEGIN UPDATE fax_karyawan SET `Faxkary`=faxkary WHERE Kd_Karyawan = Kd; END
gg. Data Produk -
M emasukkan data Produk CREATE PROCEDURE `insert_produk` ( IN `nama` varchar(30), IN `qty` int, IN `beli` float, IN `jual` float ) DETERM INISTIC BEGIN DECLARE a char(5);
160
DECLARE b int; select cast(RIGHT(Kd_Produk,3)as UNSIGNED) from produk order by Kd_Produk DESC limit 1 into b; IF b<9 THEN SET a = CONCAT('KP','00',b+1); ELSEIF b<99 THEN SET a = CONCAT('KP','0',b+1); ELSE SET a='KP001'; END IF; INSERT INTO produk VALUES(a,nama,qty,beli,jual,NOW()); END
-
M enghapus data Produk CREATE PROCEDURE `delete_produk` ( IN `kd` char(5) ) BEGIN DELETE FROM produk WHERE Kd_Produk = kd; END
-
M engubah data Produk CREATE PROCEDURE `update_produk` ( IN `kd`
char(5),
IN `nama_produk` varchar(20),
161
IN `qty`
int,
IN `harga_beli` float, IN `harga_jual` float ) BEGIN UPDATE produk SET `Nama_Produk` = nama_produk, `Qty` = qty, `Harga_Beli`= harga_beli, `Harga_Jual` = harga_jual, `Tgl_Update` = NOW() WHERE Kd_Produk = Kd; END
3.2.4.2.3
Pemilihan Organisasi File Karena DBM S yang digunakan dalam sistem yang akan dibuat adalah M ySQL, maka organisasi file yang digunakan adalah M yISAM . MyISAM menggunakan logika B-tree, yang hampir sama dengan B +tree. B+-tree membantu pendapatan kembali berdasarkan kunci yang cocok, pencocokkan pola, jarak nilai, dan spesifikasi bagian kunci.
3.2.4.2.4
Pemilihan Index Tujuan dari langkah ini adalah menentukan apakah penambahan index akan meningkatkan performa dari sistem. Berikut adalah index yang digunakan :
162
Tabel 3.22 Index Entitas
Nama Index
Index
Jenis Index
Customer
idxCustomer
Kd_Customer
Clustered
Telp_Customer
idxTelp_Customer
Telpcust
Clustered
Supplier
idxSupplier
Kd_Supplier
Clustered
Telp_Supplier
idxTelp_Supplier
Telpsupp
Clustered
Fax_Supplier
idxFax_Supplier
Faxsupp
Clustered
Karyawan
idxKaryawan
Kd_Karyawan
Clustered
Telp_Karyawan
idxTelp_Karyawan
Telpkary
Clustered
Fax_Karyawan
IdxFax_Karyawan
Faxkary
Clustered
Produk
idxProduk
Kd_Produk
Clustered
Divisi
idxDivisi
Kd_Divisi
Clustered
Status_Karyawan
idxStatus_Karyawan Kd_Status
Clustered
PO_H
idxPO_H
No_PO
Clustered
PO_D
idxPO_D
No_PO
Non-Clustered
Kd_Produk RO
idxRO
No_RO
Clustered
PP
idxPP
No_PP
Clustered
SO_H
idxSO_H
No_SO
Clustered
SO_D
idxSO_D
No_SO
Non-Clustered
Kd_Produk DO
idxDO
No_DO
Clustered
SP
idxSP
No_SP
Clustered
163
Entitas
Nama Index
Index
Jenis Index
CN_H
idxCN_H
No_CN
Clustered
CN_D
idxCN_D
No_CN
Non-Clustered
Kd_Produk
3.2.4.2.5
Estimasi Kebutuhan Media Penyimpanan
Tabel 3.23 Perkiraan Kebutuhan Disk Space pada Tabel Customer Field
Tipe
Ukuran
Kd_Customer
Char
6
Nama_Customer
Varchar
30
Alamat_Customer
Varchar
50
Kapasitas dari tabel Customer adalah 86 bytes Diperkirakan dalam satu bulan terjadi 2 penambahan Customer baru Dalam satu tahun pertumbuhan dari tabel ini adalah 2*12*86 = 2064 bytes atau 2.015 Kbytes
Tabel 3.24 Perkiraan Kebutuhan Disk Space pada Tabel Telp_Customer Field
Tipe
Ukuran
Telpcust
Varchar
15
Kd_Customer
Char
6
Kapasitas dari tabel Telp_Customer adalah 21 bytes Diperkirakan dalam satu bulan terjadi 2 penambahan Customer baru dan 1 nomor telepon baru
164
Dalam satu tahun pertumbuhan dari tabel ini adalah 1*2*12*21 = 504 bytes atau 0.492 Kbytes
Tabel 3.25 Perkiraan Kebutuhan Disk Space pada Tabel Supplier Field
Tipe
Ukuran
Kd_Supplier
Char
5
Nama_Supplier
Varchar
30
Alamat_Supplier
Varchar
50
Kapasitas dari tabel Supplier adalah 85 bytes Diperkirakan dalam satu tahun terjadi 2 penambahan Supplier baru Dalam satu tahun pertumbuhan dari tabel ini adalah 2*85 = 170 bytes atau 0.332 Kbytes
Tabel 3.26 Perkiraan Kebutuhan Disk Space pada Tabel Telp_S upplier Field
Tipe
Ukuran
Telpsupp
Varchar
15
Kd_Supplier
Char
5
Kapasitas dari tabel Telp_Supplier adalah 20 bytes Diperkirakan dalam satu tahun terjadi 2 penambahan Supplier baru dan 2 nomor telepon baru Dalam satu tahun pertumbuhan dari tabel ini adalah 2*2*20 = 80 bytes atau 0.078 Kbytes
165
Tabel 3.27 Perkiraan Kebutuhan Disk Space pada Tabel Fax_S upplier Field
Tipe
Ukuran
Faxsupp
Varchar
15
Kd_Supplier
Char
5
Kapasitas dari tabel Fax_Supplier adalah 20 bytes Diperkirakan dalam satu tahun terjadi 2 penambahan Supplier baru dan 2 nomor fax baru Dalam satu tahun pertumbuhan dari tabel ini adalah 2*2*20= 80 bytes atau 0.078 Kbytes
Tabel 3.28 Perkiraan Kebutuhan Disk Space pada Tabel Produk Field
Tipe
Ukuran
Kd_Produk
Char
5
Nama_Produk
Varchar
20
Qty
Int
8
Harga_Beli
Float
8
Harga_Jual
Float
8
Tgl_Update
Datetime
8
Kapasitas dari tabel Produk adalah 57 bytes Diperkirakan dalam satu tahun terjadi 2 penambahan Produk baru Dalam satu tahun pertumbuhan dari tabel ini adalah 2*57 = 114 bytes atau 0.111 Kbytes
166
Tabel 3.29 Perkiraan Kebutuhan Disk Space pada Tabel Karyawan Field
Tipe
Ukuran
Kd_Karyawan
Char
5
Nama_Karyawan
Varchar
30
Alamat_Karyawan
Varchar
50
Kd_Divisi
Char
5
Kd_Status
Char
5
Kapasitas dari tabel Karyawan adalah 95 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan Karyawan baru Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*95 = 1140 bytes atau 1.113 Kbytes
Tabel 3.30 Perkiraan Kebutuhan Disk Space pada Tabel Telp_Karyawan Field
Tipe
Ukuran
Telpkary
Varchar
15
Kd_Karyawan
Char
5
Kapasitas dari tabel Telp_Karyawan adalah 20 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan Karyawan baru dan 1 nomor telepon baru Dalam satu tahun pertumbuhan dari tabel ini adalah 1*1*12*20 = 240 bytes atau 0.234 Kbytes
167
Tabel 3.31 Perkiraan Kebutuhan Disk Space pada Tabel Fax_Karyawan Field
Tipe
Ukuran
Faxkary
Varchar
15
Kd_Karyawan
Char
5
Kapasitas dari tabel Fax_Karyawan adalah 20 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan Karyawan baru dan 1 nomor fax baru Dalam satu tahun pertumbuhan dari tabel ini adalah 1*1*12*20 = 240 bytes atau 0.234 Kbytes
Tabel 3.32 Perkiraan Kebutuhan Disk Space pada Tabel S tatus_Karyawan Field
Tipe
Ukuran
Kd_Status
Char
5
Nama_Status
Varchar
30
Kapasitas dari tabel Jabatan adalah 35 bytes Diperkirakan dalam satu tahun terjadi 1 penambahan Status_Karyawan baru Dalam satu tahun pertumbuhan dari tabel ini adalah 1*35 = 35 bytes atau 0.034 Kbytes
Tabel 3.33 Perkiraan Kebutuhan Disk Space pada Tabel Divisi Tipe
Field
Ukuran
Kd_Divisi
Char
5
Nama_Divisi
Varchar
30
168
Kapasitas dari tabel Divisi adalah 35 bytes Diperkirakan dalam satu tahun terjadi 1 penambahan Divisi baru Dalam satu tahun pertumbuhan dari tabel ini adalah 1*35 = 35 bytes atau 0.034 Kbytes
Tabel 3.34 Perkiraan Kebutuhan Disk Space pada Tabel PO_H Field
Tipe
Ukuran
No_PO Tgl_PO
Char
8
Kd_Supplier
Datetime
8
Kd_Karyawan
Char
5
Char
5
Kapasitas dari tabel PO_H adalah 26 bytes Diperkirakan dalam satu minggu terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 10*4*12*26 = 12480 bytes atau 12.187 Kbytes
Tabel 3.35 Perkiraan Kebutuhan Disk Space pada Tabel PO_D Field
Tipe
Ukuran
No_PO
Char
8
Kd_ Produk
Char
5
Harga_Beli
Float
8
Qty_Beli
Int
8
Kapasitas dari tabel PO_D adalah 29 bytes Diperkirakan dalam satu minggu terjadi 10 transaksi
169
Setiap transaksi PO_H ada 5 jenis produk Dalam satu tahun pertumbuhan dari tabel ini adalah 5*10*12*29 = 17400 bytes atau 16.992 Kbytes
Tabel 3.36 Perkiraan Kebutuhan Disk Space pada Tabel RO Tipe
Field
Ukuran
No_RO
Char
8
Tgl_RO
Datetime
8
No_PO
Char
8
Kd_Karyawan
Char
5
Kapasitas dari tabel RO adalah 29 bytes Diperkirakan dalam satu minggu terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 10*4*12*29 = 13920 bytes atau 13.593 Kbytes
Tabel 3.37 Perkiraan Kebutuhan Disk Space pada Tabel PP Field
Tipe
Ukuran
No_PP
Char
8
Tgl_PP
Datetime
8
No_RO
Char
8
Kd_Karyawan
Char
5
Kapasitas dari tabel PP adalah 29 bytes Diperkirakan dalam satu minggu terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 10*4*12*29 = 13920
170
bytes atau 13.593 Kbytes Tabel 3.38 Perkiraan Kebutuhan Disk Space pada Tabel SO_H Field
Tipe
Ukuran
No_SO
Char
8
Tgl_SO
Datetime
8
Kd_Customer
Char
6
Kd_Karyawan
Char
5
Kapasitas dari tabel SO_H adalah 27 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 10*26*12*27 = 84240 bytes atau 82.27 Kbytes
Tabel 3.39 Perkiraan Kebutuhan Disk Space pada Tabel SO_D Field
Tipe
Ukuran
No_SO
Char
8
Kd_Produk
Char
5
Harga_Jual
Float
8
Qty_Jual
Int
8
Kapasitas dari tabel SO_D adalah 29 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Setiap transaksi SO_H ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5*10*26*12*29 = 452400 bytes atau 441.80 Kbytes
171
Tabel 3.40 Perkiraan Kebutuhan Disk Space pada Tabel DO Tipe
Field
Ukuran
No_DO
Char
8
Tgl_DO
Datetime
8
No_SO
Char
8
Kd_Karyawan
Char
5
Kapasitas dari tabel DO adalah 29 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 10*26*12*29 = 90480 bytes atau 88.36 Kbytes
Tabel 3.41 Perkiraan Kebutuhan Disk Space pada Tabel S P Field
Tipe
Ukuran
No_SP
Char
8
Tgl_SP
Datetime
8
No_DO
Char
8
Kd_Karyawan
Char
5
Kapasitas dari tabel SP adalah 29 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 10*26*12*29 = 90480 bytes atau 88.36 Kbytes
172
Tabel 3.42 Perkiraan Kebutuhan Disk Space pada Tabel CN_H Tipe
Field
Ukuran
No_CN
Char
8
Tgl_CN
Datetime
8
No_RO
Char
8
Kd_Supplier
Char
5
Kd_Karyawan
Char
5
Kapasitas dari tabel CN_H adalah 34 bytes Diperkirakan dalam satu minggu terjadi 2 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 2*4*12*34 = 3264 bytes atau 3.187 Kbytes
Tabel 3.43 Perkiraan Kebutuhan Disk Space pada Tabel CN_D Field
Tipe
Ukuran
No_CN
Char
8
Kd_Produk
Char
5
Qty_CN
Int
8
Kapasitas dari tabel CN_D adalah 21 bytes Diperkirakan dalam satu minggu terjadi 2 transaksi Setiap transaksi CN_D ada 2 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 2*2*4*12*21 = 16128 bytes atau 15.750 Kbytes
173
Tabel 3.44 Estimasi Disk Space Nama Tabel
Kapasitas yang dibutuhkan dalam 1 tahun
Customer
2.015 Kbytes
Telp_Customer
0.492 Kbytes
Supplier
0.332 Kbytes
Telp_Supplier
0.078 Kbytes
Fax_Supplier
0.078 Kbytes
Produk
0.111 Kbytes
Karyawan
1.113 Kbytes
Telp_Karyawan
0.234 Kbytes
Fax_Karyawan
0.234 Kbytes
Status_Karyawan
0.034 Kbytes
Divisi
0.034 Kbytes
PO_H
12.187 Kbytes
PO_D
16.992 Kbytes
RO
13.593 Kbytes
PP
13,593 Kbytes
SO_H
82.27 Kbytes
SO_D
441.80 Kbytes
DO
88.36 Kbytes
SP
88.36 Kbytes
174
CN_H
3.187 Kbytes
CN_D
15.750 Kbytes
Total space yang dibutuhkan dalam 1 tahun adalah 780.847. Kbytes atau 0.762. M bytes Total space yang dibutuhkan dalam 5 tahun, dengan pertumbuhan 10 % adalah : Tahun Pertama : 0.762 * 1.1 = 0.838 M bytes Tahun Kedua : 0.838 * 1.1 = 0.922 M bytes Tahun Ketiga : 0.992 * 1.1 = 1.014 M bytes Tahun Keempat : 1.014 * 1.1 = 1.116 M bytes Tahun Kelima : 1.116 * 1.1 = 1.228 M bytes
3.2.4.3 Perancangan Mekanisme Pengamanan Data M ekanisme keamanan yang dirancang meliputi keamanan sistem yang diterapkan dengan menggunakan otorisasi user, yaitu dengan memberikan kontrol akses ke berbagai tingkatan user.
Tabel 3.45 Mekanisme Keamanan Data User Tabel
Presiden/
S ales
Keuangan
Personalia
Direktur
Admin Gudang
Customer
R
IRUD
R
-
R
Supplier
R
IRUD
R
-
R
Karyawan
R
-
R
IRUD
R
175
User Tabel
Presiden/
S ales
Keuangan
Personalia
Admin
Direktur
Gudang
Divisi
R
-
R
IRUD
R
Jabatan
R
-
R
IRUD
R
Produk
R
R
-
-
R
PO_H
R
IRUD
R
-
IRUD
PO_D
R
IRUD
R
-
IRUD
RO
R
R
-
-
IRUD
PP
R
-
IRUD
-
-
SO_H
R
IRUD
R
-
IRUD
SO_D
R
IRUD
R
-
IRUD
DO
R
R
R
-
IRUD
SP
R
-
IRUD
-
-
CN_H
R
-
-
-
IRUD
CN_D
R
-
-
-
IRUD
Hak akses yang diberikan antara lain : a. Untuk Admin diberikan hak akses dengan GRANT ALL PRIVILEGES ON *.* TO Admin b. Untuk AdminGudang diberikan hak-hak sebagai berikut : GRANT SELECT ON Customer TO AdminGudang GRANT SELECT ON Supplier TO AdminGudang GRANT SELECT ON Karyawan TO AdminGudang
176
GRANT SELECT ON Divisi TO AdminGudang GRANT SELECT ON Jabatan TO AdminGudang GRANT SELECT ON Produk TO AdminGudang GRANT ALL PRIVILEGES ON PO_H TO AdminGudang GRANT ALL PRIVILEGES ON PO_D TO AdminGudang GRANT ALL PRIVILEGES ON RO TO AdminGudang GRANT ALL PRIVILEGES ON SO_H TO AdminGudang GRANT ALL PRIVILEGES ON SO_D TO AdminGudang GRANT ALL PRIVILEGES ON DO TO AdminGudang GRANT ALL PRIVILEGES ON CN_H TO AdminGudang GRANT ALL PRIVILEGES ON CN_D TO AdminGudang c. Untuk Personalia diberikan hak-hak sebagai berikut : GRANT ALL PRIVILEGES ON Karyawan TO Personalia GRANT ALL PRIVILEGES ON Divisi TO Personalia GRANT ALL PRIVILEGES ON Jabatan TO Personalia d. Untuk Keuangan diberikan hak-hak sebagai berikut : GRANT SELECT ON Customer TO Keuangan GRANT SELECT ON Supplier TO Keuangan GRANT SELECT ON Karyawan TO Keuangan GRANT SELECT ON Divisi TO Keuangan GRANT SELECT ON Jabatan TO Keuangan GRANT SELECT ON PO_H TO Keuangan GRANT SELECT ON PO_D TO Keuangan
177
GRANT SELECT ON SO_H TO Keuangan GRANT SELECT ON SO_D TO Keuangan GRANT SELECT ON DO TO Keuangan GRANT ALL PRIVILEGES ON PP TO Keuangan GRANT ALL PRIVILEGES ON SP TO Keuangan e. Untuk Sales diberikan hak-hak sebagai berikut : GRANT SELECT ON Produk TO Sales GRANT SELECT ON RO TO Sales GRANT SELECT ON DO TO Sales GRANT ALL PRIVILEGES ON Customer TO Sales GRANT ALL PRIVILEGES ON Supplier TO Sales GRANT ALL PRIVILEGES ON PO_H TO Sales GRANT ALL PRIVILEGES ON PO_D TO Sales GRANT ALL PRIVILEGES ON SO_H TO Sales GRANT ALL PRIVILEGES ON SO_D TO Sales f. Untuk PresidenDirektur diberikan hak akses GRANT SELECT ke semua tabel. g. Untuk Direktur diberikan hak akses GRANT SELECT ke semua tabel.
178
3.2.5
Perancangan Program Aplikasi
3.2.5.1 S truktur Menu C ha ng e P as s w o rd
C us to m e r S up pl ier
M a s te r P r od uk K ar y aw a n P ur c ha s e O rd er O r de r Sa le s O r de r
M en u U tam a
R e c eiv i ng Or de r
C re d it N ota
D e liv e ry Or de r
P a y m en t
P ur c ha s e Pa y m e nt Sa le s Pa y m e nt Pe m b el ian
V ie w La p ora n
P en ju ala n P er s ed iaa n
Gambar 3.11 S truktur Menu Utama
179
3.2.5.2 S TD (State Transition Diagram)
Layar Window Klik “ http://localhost/phpmyadmin/login.php/ Display layar Login Masukkan Username and Password Jika validasi tidak sesuai, kembali ke Login
Layar Login Masukkan Username and Password Jika validasi sesuai, masuk ke layar “Menu Utama” Menu Utama
Klik “ Change Password” Tampilkan layar “ Change Passord”
Change Password
Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama”
Klik “ Master” Tampilkan layar “ Master”
Master
Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama”
Klik “ Order” Tampilkan layar “ Order”
Order
Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama”
Klik “ Receiving Order” Tampilkan layar “ Receiving Order”
Receiving Order
Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama”
Klik “ Credit Nota” Tampilkan layar “ Credit Nota”
Credit Nota
Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama”
Klik “ Delivery Order” Tampilkan layar “ Delivery Order”
Delivery Order
Klik “ Payment” Tampilkan layar “ Payment”
Payment
Klik “ Laporan” Tampilkan layar “ Laporan”
Laporan
Klik “Go to Menu Utama” Tampilkan layar “Menu Utama” Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama” Klik “ Go to Menu Utama” Tampilkan layar “ Menu Utama”
Gambar 3.12 S TD Layar Window
180
Gambar 3.13 S TD Change Password Menu Uta ma Kl ik “ Master” Tampilkan layar “ Ma ster” Master
Klik “ Custo mer” Tampilkan layar “ Customer”
Custo mer
Klik “Insert” Ta mpil kan layar “Manipul asi Customer” Klik “ Del ete” Kemb ali ke layar “ Customer”
Man ipulasi Customer
Klik “ Go To Menu Utama” Tampi lkan l ayar “ Menu Uta ma”
Man ipulasi Supplier
Klik “ Go To Menu Utama” Tampi lkan l ayar “ Menu Uta ma”
Man ipulasi Produk
Klik “ Go To Menu Utama” Tampi lkan l ayar “ Menu Uta ma”
Klik “Upda te” Ta mpil kan layar “Manipul asi Customer”
Kl ik “ Supplier” Tampilkan layar “ Supplier”
Supplier
Klik “Insert” Tampil kan layar “ Manipul asi Suppli er” Klik “ Del ete” Kembal i ke layar “ Supplier” Klik “Upda te” Tampilkan layar “ Manipula si Supplie r” Klik “Insert” Tampi lkan l ayar “ Mani pulasi Produk”
Klik “Produk” Tampil ka n layar “Produk”
Produk
Klik “Del ete” Kembali ke la yar “ Produk” Klik “Upd ate” Tampi lkan l ayar “ Mani pulasi Produk” Klik “Insert” Tampilkan layar “ Manipula si Karyawa n”
Kl ik “ Ka ryawan” Tampilkan layar “ Karyawan”
Ka ryawan
Klik “ Del ete” Ke mbali ke layar “ Karyawan”
Man ipulasi Karyawan
Klik “Upd ate” Tampilkan layar “ Manipula si Karyawa n”
Gambar 3.14 S TD Master
Klik “ Go To Menu Utama” Tampi lkan l ayar “ Menu Uta ma”
181
Gambar 3.15 S TD Order
Gambar 3.16 S TD Receiving Order
182
Gambar 3.17 S TD Credit Nota
Gambar 3.18 S TD Delivery Order
183
Gambar 3.19 S TD Payment
184
Gambar 3.20 S TD Laporan
3.2.5.3 Perancangan Layar
Gambar 3.21 Rancangan Layar Login
185
Gambar 3.22 Rancangan Layar Menu Utama
Gambar 3.23 Rancangan Layar Change Password
186
Gambar 3.24 Rancangan Layar Master Customer
Logo Perusahaan Welcome, X-15-X
Jam & Tanggal
Menu
Home
Logout
Insert Data Customer
Change Password Master Order Receiving Order
Kode Supplier
:
KCXXX
Nama
:
X-30-X
Alamat
:
X-50-X
Telepon
:
X-15-X
Save
Cancel
Credit Nota Delivery Order Payment
Copyright
Gambar 3.25 Rancangan Layar Insert Data Customer
187
Logo Perusahaan Welcome, X-15-X
Jam & Tanggal
Menu
Home
Update Data Customer Kode Supplier
:
KCXXXX
Nama
:
X-30-X
Alamat
:
X-50-X
Change Password Master Order
Save
Cancel
Receiving Order
Telepon
Credit Nota
Tambah No Telepon
Delivery Order
#
X-15-X
No Telepon
Action
X-15-X
Delete
Simpan
Payment Laporan
Copyright
Gambar 3.26 Rancangan Layar Update Data Customer
Gambar 3.27 Rancangan Layar Master S upplier
Logout
188
Gambar 3.28 Rancangan Layar Insert Data Supplier
Gambar 3.29 Rancangan Layar Update Data S upplier
189
Gambar 3.30 Rancangan Layar Master Produk
Logo Perusahaan Welcome, X-15-X
Jam & Tanggal
Home
Insert Data Produk
Menu
Kode Produk
:
KPXXX
Change Password
Nama
:
X-30-X
Master
Harga Beli
:
99999999
Order
Harga_Jual
;
99999999
Qty
:
99999999
Tgl Update
:
Receiving Order Credit Nota
Save
dd-mm-yyyy Cancel
Delivery Order Payment Laporan
Copyright
Gambar 3.31 Rancangan Layar Insert Data Produk
Logout
190
Logo Perusahaan Welcome, X-15-X
Jam & Tanggal
Home
Logout
Update Data Produk
Menu
Kode Produk
:
KPXXX
Nama
:
X-30-X
Master
Harga Beli
:
99999999
Order
Harga_Jual
;
99999999
Qty
:
99999999
Tgl Update
:
Change Password
Receiving Order Credit Nota
Save
dd-mm-yyyy Cancel
Delivery Order Payment Laporan
Copyright
Gambar 3.32 Rancangan Layar Update Data Produk
Gambar 3.33 Rancangan Layar Master Karyawan
191
Logo Perusahaan Welcome, X-15-X
Jam & Tanggal
Menu
Home
Logout
Insert Data Karyawan
Change Password Master Order
Kode Supplier
:
KKXXX
Nama
:
X-30-X
Alamat
:
X-50-X
Telepon
:
X-15-X
Receiving Order
Fax
:
X-15-X
Credit Nota
Jabatan
:
<list jabatan>
Divisi
:
<list divisi>
Delivery Order Payment
Save
Cancel
Copyright
Gambar 3.34 Rancangan Layar Insert Data Karyawan
Gambar 3.35 Rancangan Layar Update Data Karyawan
192
Gambar 3.36 Rancangan Layar Purchase Order
Gambar 3.37 Rancangan Layar Insert Transaksi Purchase Order
193
Logo Perusahaan We lco me , X-1 5-X
J am & Ta n gg a l
Ho me
L og ou t
D e ta il Pu rch as e Ord er
Me nu
Ta n gg a l PO :
D D- MM-Y YYY
C ha ng e P as sw ord No P O Ma ste r Ord er
N POXX XXX
:
Ko de Su pp li er
X -30 -X
K od e K ar yaw a n
X-3 0 -X
R ece i vin g Ord e r
S av e
R e set
C red it N ota
C an ce l
P rod u k
D el ive ry Ord e r P aym en t L ap or an
Ko de Pro du k
KPX XX
H a rga Be li
9 99 9 99 99
Qty Be li
9 99 99 9 99
Ko d e Pro d uk KP XXX
Si mp an
Na ma Pro d uk X -3 0-X
Qty Be li
Ha rg a Be li
Ha rg a
Ac ti on
9 999999 9
999 99999
999999 9999
De le te
To ta l H ar ga Be li :
999 999999 9
P rin t Ha la ma n
C opyrig ht
Gambar 3.38 Rancangan Layar Detail Purchase Order
Logo Perusahaan We lc om e, X-1 5 -X
Ja m & Ta ng ga l
H om e
Me n u
Sa le s Ord e r
C h an g e Pa ssw o rd M as te r
Ta ng ga l
N o PO
H ar ga Be li
Acti on
D D-M M-Y YYY
N SOXX XXX
999999 99
Vie w D e tai l
Or de r
D D-M M-Y YYY
N SOXX XXX
999999 99
Vie w D e tai l
R e ce ivi ng Ord er
D D-M M-Y YYY
N SOXX XXX
999999 99
Vie w D e tai l
C re di t N o ta D e li ver y Orde r
Ins ert N ew Re co rd
Pa yme nt L a po ra n
C opyrig ht
Gambar 3.39 Rancangan Layar S ales Order
L og ou t
194
Logo Perusahaan W el co me , X- 15 -X
Ho me
J am & Tan gg a l
L og ou t
Inse rt Tra nsa ksi Sa le s Ord er
M en u Ch a ng e P as swo rd
N o SO
:
N SOXX XXX
Tan g ga l
:
D D-M M-Y YYY
Ma ster Kd C usto me r :
Kd K ary aw a n :
Kd P rod u k
:
Cr ed it N ota
Qty Ju al
:
De l ive ry Ord er
H arg a J ua l
:
Ord er Re ce iv in g Ord e r
Pa ym en t Sa ve
Re se t
99 999999 99 999999 Ca n cel
La p ora n
C opyrig ht
Gambar 3.40 Rancangan Layar Insert Transaksi Sales Order
Logo Perusahaan We lco me , X-1 5-X
J am & Ta n gg a l
Ho me D eta il S al es Or de r
Me nu
Ta n gg a l SO :
D D- MM-Y YYY
C ha ng e P as sw ord No S O Ma ste r
N SOXX XXX
:
Cu sto me r
Ord er
X -30 -X
Ka rya w an :
R ece i vin g Ord e r
S av e
X-3 0 -X R e set
C red it N ota D el ive ry Ord e r P aym en t L ap or an
L og ou t
C an ce l
P rod u k Ko de Pro du k
KPX XX
H a rga Be li
9 99 9 99 99
Qty Be li
9 99 99 9 99
Ko d e Pro d uk KP XXX
Na ma Pro d uk X -3 0-X
Si mp an Qty Ju a l
H arg a Jua l
Ha rg a
Ac ti on
9 999999 9
999 99999
999999 9999
De le te
Tota l H ar ga Jua l :
999 999999 9
P rin t Ha la ma n
C opyrig ht
Gambar 3.41 Rancangan Layar Detail S ales Order
195
Logo Perusahaan We lc om e, X-1 5 -X
J am & Tan gg a l
H o me
Me n u
Re ce ivi ng Ord er
C h an g e Pa ssw o rd Ta ng g al RO M as te r Or de r R e ce ivi ng Ord er
No RO
Ha rg a Be l i
D D-M M-Y YYY
N R OXX XXX
999 99999
D e ta il
D e le te
D D-M M-Y YYY
N R OXX XXX
999 99999
D e ta il
D e le te
N R OXX XXX
999 99999
D e ta il
D e le te
D D-M M-Y YYY
Ac ti on
C re di t N o ta D e li ver y Orde r
Ins ert N ew Re co rd
Pa yme nt L a po ra n
C opyrig ht
Gambar 3.42 Rancangan Layar Receiving Order
Gambar 3.43 Rancangan Layar Insert Receiving Order
L og ou t
196
Gambar 3.44 Rancangan Layar Detail Receiving Order
Gambar 3.45 Rancangan Layar Credit Nota
197
Gambar 3.46 Rancangan Layar Insert Credit Nota
Logo Perusahaan We lco me , X-1 5-X
J am & Tan gg a l
H o me D eta il C re d it No ta
Me n u
Tan g ga l C N :
D D -MM -YY YY
C h an g e Pa ssw o rd No CN M as te r
N C NX XXX X
:
N R OXXX XX
Su p pl ie r
:
KS XXX
K ar yaw a n :
K KXX X
Or de r R e ce ivi ng Ord er
:
No RO
C re di t N o ta S av e
C a nc el
D e li ver y Orde r Pa yme nt L a po ra n
Pro du k Ko de Pro du k Qty C N
KPX XX 9 9 99 99 9 9
Ko d e Pro d uk KP XXX
Na ma Pro d uk X -2 0-X
Q ty C N 99 99 9 99 9
A ctio n d e le te
KP XXX
X -2 0-X
99 99 9 99 9
d e le te
P rin t Ha la ma n
C opyrig ht
Gambar 3.47 Rancangan Layar Detail Credit Nota
L og ou t
198
Logo Perusahaan W el com e, X- 15 -X
J am & Tan gg a l
H o me
Me n u
D el iv ery Or de r
C h an g e Pa ssw o rd M as te r
Ta ng g al DO
No DO
No SO
H arg a J ua l
Ac tio n
D D-M M-Y YYY
ND OXX XXX
NS OXXX XX
9 99 9 99 99
De ta il
D e le te
Or de r
D D-M M-Y YYY
ND OXX XXX
NS OXXX XX
9 99 9 99 99
De ta il
D e le te
R e ce ivi ng Ord er
D D-M M-Y YYY
ND OXX XXX
NS OXXX XX
9 99 9 99 99
De ta il
D e le te
C re di t N o ta D e li ver y Orde r
Ins ert N ew Re co rd
Pa yme nt L a po ra n
C opyrig ht
Gambar 3.48 Rancangan Layar Delivery Order
Gambar 3.49 Rancangan Layar Insert Delivery Order
L og ou t
199
Gambar 3.50 Rancangan Layar Detail Delivery Order
Gambar 3.51 Rancangan Layar Purchase Payment
200
Gambar 3.52 Rancangan Layar Insert Purchase Payment
Gambar 3.53 Rancangan Layar Detail Purchase Payment
201
Gambar 3.54 Rancangan Layar S ales Payment
Gambar 3.55 Rancangan Layar Insert S ales Payment
202
Gambar 3.56 Rancangan Layar Detail S ales Payment
203
Gambar 3.57 Rancangan Layar Laporan Pembelian
204
Gambar 3.58 Rancangan Layar Laporan Persediaan
205
Gambar 3.59 Rancangan Layar Laporan Penjualan
206
3.2.5.4 Perancangan Laporan
Tanggal Cetak : dd-mm-yyyy Waktu : hh.mm Halaman : 99 Laporan Pembelian Bulan : X-12-X Tahun: YYYY
X-8-X X-8-X X-8-X X-8-X
Nama Supplier X-30-X X-30-X X-30-X X-30-X
Nama Karyawan X-30-X X-30-X X-30-X X-30-X
Nama Produk X-30-X X-30-X X-30-X X-30-X
Qty Harga Beli Beli 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total Harga Beli
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
dd-mm-yyyy
X-8-X X-8-X X-8-X
X-30-X X-30-X X-30-X
X-30-X X-30-X X-30-X
X-30-X X-30-X X-30-X
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total Harga Beli
9-8-9 9-8-9 9-8-9 9-8-9
dd-mm-yyyy
X-8-X X-8-X X-8-X X-8-X
X-30-X X-30-X X-30-X X-30-X
X-30-X X-30-X X-30-X X-30-X
X-30-X X-30-X X-30-X X-30-X
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total Harga Beli
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Tanggal
No PO
dd-mm-yyyy
Grand Total Harga Beli
Harga
9-8-9
Diketahui oleh,
<S ales Manager> Gambar 3.60 Rancangan Laporan Pembelian
207
Tanggal Cetak : dd-mm-yyyy Waktu : hh.mm Halaman : 99 Laporan Persediaan Bulan : X-12-X Tahun : YYYY Kd Produk
Nama Produk
X-5-X X-5-X X-5-X X-5-X X-5-X X-5-X X-5-X X-5-X X-5-X
X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X
Qty Beli 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Qty Jual 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Qty 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Harga Beli 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total
Harga 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Diketahui oleh,
<S ales Admin> Gambar 3.61 Rancangan Laporan Persediaan
208
Tanggal Cetak : dd-mm-yyyy Waktu : hh.mm Halaman : 99 Laporan Penjualan Bulan : X-12-X Tahun : YYYY Tanggal
No SO
Nama Nama Customer Karyawan X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X X-30-X
dd-mm-yyyy
X-8-X X-8-X X-8-X X-8-X
dd-mm-yyyy
X-8-X X-8-X X-8-X X-8-X
X-30-X X-30-X X-30-X X-30-X
dd-mm-yyyy
X-8-X X-8-X X-8-X X-8-X
X-30-X X-30-X X-30-X X-30-X
Nama Produk X-30-X X-30-X X-30-X X-30-X
Qty Harga Jual Jual 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total Harga Jual
Harga
X-30-X X-30-X X-30-X X-30-X
X-30-X X-30-X X-30-X X-30-X
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total Harga Jual
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
X-30-X X-30-X X-30-X X-30-X
X-30-X X-30-X X-30-X X-30-X
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 Total Harga Jual
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Grand Total Harga Jual
Diketahui Oleh,
Gambar 3.61 Rancangan Laporan Penjualan
9-8-9
209
3.2.5.5 S pesifikasi Proses Modul Login M ulai Tampilkan form Login Lakukan Jika tombol Login ditekan maka Jika input Username atau Password kosong maka Tampilkan pesan “Input kosong” Selain itu Buka koneksi ke database MMM Cek Username dan Password Jika Username dan Password cocok maka Buka Form M enu utama Validasi user untuk mengatur hak akses Selain itu Tampilkan pesan “Username atau Password anda salah!” Akhir Jika Akhir Jika Selain itu Keluar dari program aplikasi Akhir Jika Akhir Lakukan
210
Selesai
Modul Karyawan M ulai Tampilkan form Karyawan Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_Karyawan” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_Karyawan Akhir jika
211
Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_Karyawan” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul Produk M ulai Tampilkan form Produk Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_Produk” Akhir jika Selain itu
212
Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_Produk” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin meng hapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu Prosedur “Delete_Produk” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul Customer M ulai Tampilkan form Customer
213
Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_Customer” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_Customer” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka
214
Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_Customer” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul Supplier M ulai Tampilkan form supplier Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_Supplier” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field
215
Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_Supplier” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_Supplier” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul Purchase Order M ulai Tampilkan form PO Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi
216
Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_PO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_PO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_PO” Akhir jika Jika ingin keluar maka Tutup koneksi
217
Modul Receiving Order M ulai Tampilkan form RO Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_RO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_RO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi”
218
Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_RO” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul Purchase Payment M ulai Tampilkan form PP Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_PP” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika
219
Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_PP” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_PP” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul S ales Order M ulai Tampilkan form SO Buka koneksi ke database MMM Lakukan
220
Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_SO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_SO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_SO”
221
Akhir jika Jika ingin keluar maka Tutup koneksi
Modul Delivery Order M ulai Tampilkan form DO Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_DO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi
222
Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_DO” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_DO” Akhir jika Jika ingin keluar maka Tutup koneksi
Modul S ales Payment M ulai Tampilkan form SP Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi
223
Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_SP” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_SP” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_SP” Akhir jika Jika ingin keluar maka Tutup koneksi
224
Modul Credit Nota M ulai Tampilkan form CN Buka koneksi ke database MMM Lakukan Jika ingin membuat data baru maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Insert_CN” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi” Akhir jika Akhir jika Jika ingin mengubah data maka Cek semua field Jika semua terisi Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Update_CN” Akhir jika Selain itu Tampilkan pesan “Semua field harus diisi”
225
Akhir jika Akhir jika Jika ingin menghapus data maka Gunakan perintah Stored Procedure yang ada di M ySQL yaitu prosedur “Delete_CN” Akhir jika Jika ingin keluar maka Tutup koneksi