48
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
49
konsumen, membuat usaha pendistribusian produk Aqua menjadi usaha utama
dari PT. Mulia Multi Mandiri.
Untuk menunjang pendistribusian produk, PT. Mulia Multi Mandiri
memiliki beberapa cabang yang tersebar di DKI Jakarta dan Jawa Barat.
3.1.2 Visi dan Misi
Visi dari PT. Mulia Multi Mandiri yaitu :
• Mendorong tumbuh kembangnya kegiatan usaha perdagangan berbasis
distribusi
• Memelihara hubungan yang kuat dengan principal dan pelanggan sebagai
mitra usaha
• Membangun kesinambungan jaringan usaha distribusi sesuai perkembangan
gaya hidup, peraturan perdagangan serta manfaat kemajuan teknologi.
Misi dari PT. Mulia Multi Mandiri yaitu :
• Memadukan 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
• Mengupayakan terbaik dan dapat memberikan informasi yang mendukung
nilai tambah usaha dalam upaya meningkatkan jumlah pelanggan dengan
azas yang saling menguntungkan
50
• Membuat lingkungan kerja yang kondusif dan menciptakan remunerasi yang
kompetitif serta meningkatkan pelatihan, pendidikan informal dalam upaya
meningkatkan produktifitas kerja
3.1.3 Struktur Organisasi PT. Mulia Multi Mandiri
Gambar 3.1a Struktur Organisasi PT. Mulia Multi Mandiri
Gambar 3.1b Struktur Organisasi di Tiap Cabang
Presiden Direktur
Dir. Keuangan Dir. Operasional Personalia & Umum Internal Audit
Sales Manager
Corporate Sales Admin
Supervisor
Supervisor
Supervisor Supervisor
Supervisor
Sales Supervisor
Sales Admin
Salesman Salesman Salesman Salesman Salesman Admin Gudang
Helper Helper Helper Helper Helper Helper Gudang
Office Boy
Satpam
51
3.1.4 Wewenang dan Tanggung Jawab
Adapun uraian pembagian wewenang dan tanggung jawab dari masing-
masing bagian adalah sebagai berikut :
1. Direktur Utama
• Merencanakan sasaran dan tujuan perusahaan, baik jangka pendek
maupun jangka panjang.
• Menerapkan berbagai kebijakan perusahaan.
• Mengawasi seluruh aktivitas direktur operasional dan jajarannya.
• Memimpin dan mengendalikan perusahaan.
2. Direktur Operasional
• Bertanggung jawab atas seluruh kegiatan operasional perusahaan.
• Menyusun 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
• Menyeleksi, merekrut dan melatih karyawan yang akan diterima.
• Mencatat data absensi, lembur dan cuti karyawan.
• Menerapkan sistem penggajian dan tunjangan sosial karyawan.
5. Internal Audit
• Mengaudit keuangan dari perusahaan setiap bulan.
52
6. Sales Manager
• Membawahi Supervisor dan mencatat setiap pemesanan pembelian dari
masing-masing Supervisor.
7. Corporate Sales Admin
• Membantu atasan dalam menyiapakan laporan dan melakukan
administrasi penjualan.
• Melakukan komunikasi dengan setiap gudang untuk kelengkapan data
terkait atau menyampaikan informasi yang dikeluarkan sales manager
sehubungan dengan kepentingan penjualan.
8. Supervisor
• Membantu sales manager dengan memimpin sales team secara efektif
dan efisien dalam pencapaian sales target.
• Membuat budget biaya operasional yang dibutuhkan di areanya.
• Melakukan perencanaan, tindakan, koordinasi dan kontrol terhadap
aktivitas sales team guna kelancaran distribusi produk perusahaan.
9. Sales Supervisor
• Membuat rencana kerja mingguan.
• Memimpin beberapa sales dan sales helper.
• Bertanggung jawab terhadap laporan administrasi depo.
10. Sales Admin
• Membantu sales supervisor dalam membuat laporan administrasi.
• Melakukan komunikasi dengan setiap sales untuk kelengkapan data dan
persediaan barang.
53
11. Salesman
• Membantu 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
• Membantu salesman bongkar muat barang baik dari gudang ke outlet/
pelanggan.
14. Helper Gudang
• Membantu admin gudang bongkar muat barang ke gudang dan
pengecekan stok.
15. Office Boy
• Bertanggung jawab terhadap kebersihan di gudang.
16. Satpam
• Bertanggung jawab terhadap keamanan gudang.
3.1.5 Sistem yang Sedang Berjalan
3.1.5.1 Proses Bisnis
3.1.5.1.1 Prosedur Pembelian Barang
Bagian gudang mengecek persediaan barang di gudang berdasarkan data
stok barang apabila stok mencukupi maka bagian gudang tidak melakukan apa-
apa, tetapi jika tidak mencukupi bagian gudang membuat surat ke bagian logistik
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:
• Rangkap 1 disimpan di supplier
• Rangkap 2 dikirim ke bagian finance
3.1.5.1.3 Prosedur Penjualan Barang
Bagian penjualan membuat loading slip (bukti muat barang) ke bagian
gudang, bagian gudang cek barang. Jika barang tidak cukup maka, bagian
penjualan meminta kebijaksanaan customer, kalau cukup bagian gudang
membuat loading slip (bukti keluar barang) ke bagian penjualan, lalu bagian
penjualan membuat surat jalan. Surat jalan rangkap ke-3 dikirim ke bagian
finance, lalu bagian finance membuat bukti pembayaran. Bukti pembayaran
beserta surat jalan rangkap ke-2 dikirin ke customer, dan surat jalan rangkap ke-1
dikirim ke bagian transportir, lalu bagian transportir mengirim barang ke
customer. Customer menerima barang dan menandatangani surat jalan.
Kemudian cus tomer membayar sesuai dengan harga kepada bagian transpotir.
Setelah menerima pembayaran dari customer, transportir melakukan penyetoran
pembayaran ke bagian finance.
57
3.1.5.2 Diagram Aliran Dokumen
3.1.5.2.1 Diagram Aliran Dokumen Pembelian Barang
INVENTORY LOGISTIK SUPPLIER FINANCE
Mulai
Stok mencukupi
Membuat CO
3
3 ya
Membuat CRO
2
1 CRO
2 CRO
Selesai ya
2
2 CO
Gambar 3.2a DAD Pembelian Barang
1 CRO
3 CRO
Data stok gudang
tidak
Mengecek ke- cukupan kapa- sitas produksi
1 CO 3
CO
tidak
Konfirmasi kapasitas produksi
1 2
Kapasitas produksi
1 Kapasitas produksi
Membuat CRO
58
3.1.5.2.2 Diagram Aliran Dokumen Persediaan Barang
INVENTORY LOGISTIK SUPPLIER FINANCE
Gambar 3.2b DAD Persediaan Barang
Mulai
2
1
2
2 Surat Tagihan
2 Surat jalan
1 Surat Tagihan
Dikirim sesuai
CO
Laporan penerimaan barang
Terima barang
Cek barang cacat
ya
tidak
Tanda tangan
surat jalan
Membuat
CN
Membuat surat jalan
2 Surat jalan
Mencatat peneri maan barang
2 1
CN
Membuat lapor an peneri
maan barang
Membuat lapor an stok barang
1 Arsip
2 Arsip
2 CN
Mengirim barang sesuai CN
1 Surat jalan
Membuat surat tagihan
Menerima pembayaran
Melakukan pembayaran
Membuat bukti pembayaran
2 1
Bukti pembayaran
2 Bukti pembayaran
Selesai
Tukar barang
Dikirim sesuai
CN
59
3.1.5.2.3 Diagram Aliran Dokumen Penjualan Barang
CUSTOMER PENJUALAN GUDANG TRANSPORTIR FINANCE
Gambar 3.2c DAD Penjualan Barang
Buat loading slip
tidak
Mulai
Membuat PO
PO
Membuat loading slip (bukti muat
barang)
2 1
Loading slip
Loading slip 1
Stok mencukupi
N
N
Minta kebijaksanaan
customer
ya
Loading Slip (bukti muat
barang)
Membuat surat jalan
3
2
1
Surat jalan
3
Surat jalan
N
Membuat bukti
pembayaran
2 1
Bukti pembayaran
1 Bukti pembayaran N
Terima barang
Tanda tangan
surat jalan
Melakukan pembayaran
1 Surat jalan
2 Surat jalan
N
N
Mengirim
barang
Menerima
pembayaran
Melakukan penyetoran pembayaran
Menerima penyetoran pembayaran
2
1 Bukti penyetoran
pembayaran
N
1 Bukti penyetoran
pembayaran
Selesai
60
3.1.5.3 Kebutuhan pengguna
3.1.5.3.1 Kebutuhan Informasi
Laporan yang dibutuhkan oleh PT. Mulia Multi Mandiri 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. Multi Mulia Mandiri 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 Mulia Multi Mandiri, 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. Mulia Multi Mandiri dan terbagi dalam tiga tahap,
yaitu :
• Perancangan basis data konseptual
• Perancangan basis data logikal
• Perancangan basis data fisikal
3.2.1 Perancangan Basis Data Konseptual
Perancangan basis data konseptual merupakan suatu proses pembuatan
model dengan menggunakan informasi yang diperoleh dari perusahaan.
Perancangan basis data secara konseptual merupakan tahap pertama dari
perancangan sebuah sistem basis data. Langkah-langkah penting dalam
merancang sebuah basis data secara konseptual adalah :
1. Identifikasi tipe entitas
2. Identifikasi tipe relasional
3. Identifikasi dan asosiasi atribut suatu entitas
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 Deskripsi Entitas Alias Kejadian
Karyawan Merupakan entitas yang
berisi informasi
karyawan yang bekerja di
PT Mulia Multi Mandiri.
Staff Karyawan
melakukan
aktifitas kerja yang
di perusahaan
Divisi Menunjukkan divisi atau
bagian dari pegawai yang
ada
bagian Setiap bagian
memiliki satu atau
lebih pegawai
Status_Karyawan Menunjukkan status
posisi atau kedudukan
dari pegawai
Setiap pegawai
memiliki satu
posisi
Supplier Merupakan entitas yang
berisi informasi tentang
pemasok barang-barang
perusahaan
Pemasok Pemasok
melakukan kerja
yang berhubungan
dengan
pengiriman dan
penyediaan
barang-barang
66
Nama Entitas Deskripsi Entitas Alias Kejadian
Customer Merupakan entitas yang
berisi informasi tentang
pelanggan perusahaan.
Pelanggan Pelanggan
melakukan
pemesanan barang
pembelian
Produk Merupakan entitas yang
berisi informasi
mengenai barang.
Barang Setiap barang yang
dijual, dibeli dan
disimpan pada
perusahaan.
PO Merupakan entitas yang
berisi tentang informasi
tentang pemesanan
barang kepada supplier
Purchase_O
rder
Proses pemesanan
yang dilakukan
perusahaan ke
supplier, jika
persedian barang
mencapai batas
minimum.
PP Merupakan entitas yang
berisi informasi tentang
rincian pembayaran
kepada supplier
Purchase_P
ayment
Transaksi
pembayaran yang
dilakukan
perusahaan kepada
supplier
berdasarkan
67
Nama Entitas Deskripsi Entitas Alias Kejadian
tagihan yang
dikirimkan.
RO Entitas yang berisi
informasi barang yang
diterima dari supplier
Receiving_
Order
Barang yang dibeli
dari supplier
diterima oleh
bagian penerimaan
barang.
SO Merupakan entitas yang
berisi informasi tentang
pemesanan barang dari
pelanggan
Sales_Order Proses pemesanan
barang yang
dilakukan
pelanggan kepada
perusahaan.
SP Merupakan entitas yang
berisi informasi tentang
penerimaan pembayaran
dari pelanggan
Sales_Paym
ent
Transaksi
pembayaran yang
dilakukan
pelanggan kepada
perusahaan
berdasarkan
Nomor DO.
68
Nama Entitas Deskripsi Entitas Alias Kejadian
DO Merupakan entitas yang
berisi informasi tentang
pengiriman barang
pesanan pelanggan
Delivery_Or
der
Proses pengiriman
barang kepada
pelanggan.
CN Merupakan entitas yang
berisi informasi tentang
barang yang cacat
Credit_Nota Setiap ada barang
yang cacat akan
dibuat Credit Nota
3.2.1.2 Identifikasi Tipe Relationship
Tujuan dari tahap ini adalah untuk mengidentifikasikan relationship
penting yang ada diantara entity tipe yang telah diidentifikasi. Terdapat dua
langkah penting yang dilakukan yaitu :
a. Membuat Entity-Relationship Diagram
b. Menentukan 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 Melakukan SO 1..*
Karyawan 1..1 Melakukan PO 1..*
1..1 Melakukan CN 0..*
69
Entity Name Multiplicity Relationship Entity Name Multiplicity
1..1 Menangani RO 1..*
1..1 Melakukan PP 1..*
1..1 Menangani SO 1..*
1..1 Melakukan DO 1..*
1..1 Menerima SP 1..*
Supplier 1..1 Menangani PO 1..*
1..1 Menangani CN 0..*
Divisi 1..1 Memiliki Karyawan 1..*
Status_Karyawan 1..1 Memiliki Karyawan 1..*
PO 1..1 Memiliki RO 1..1
Produk 1..* Terhadap PO 1..*
1..* Terhadap SO 1..*
1..* Terhadap CN 0..*
RO 1..1 Melakukan CN 0..*
1..1 Memiliki PP 1..1
SO 1..1 Memiliki DO 1..1
DO 1..1 Memiliki SP 1..1
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. Atribut-atribut entity yang diidentifikasikan
adalah sebagai berikut :
71
Nama Entitas : Customer
Tabel 3.3 Entitas Customer
Attribute Description Data Types
and Length
Nulls Multi
Valued
Kd_Customer Mengidentifikasi setiap
pembeli secara unik
Char (6) No No
Nama_Customer Nama dari customer Varchar (30) No No
Alamat_Customer Alamat dari customer Varchar (50) No No
Telpcust Nomor telepon dari
customer
Varchar (15) No Yes
Nama Entitas : Supplier
Tabel 3.4 Entitas Supplier
Attribute Description Data Types
and Length
Nulls Multi
Valued
Kd_Supplier Mengidentifikasikan setiap
supplier secara unik
Char (5) No No
Nama_Supplier Nama dari supplier Varchar (30) No No
Alamat_Supplier Alamat dari supplier Varchar (50) No No
Telpsupp Nomor telepon supplier Varchar (15) No Yes
Faxsupp Nomor fax dari supplier Varchar (15) No Yes
72
Nama entitas : Produk
Tabel 3.5 Entitas Produk
Attribute Description Data Types
and Length
Nulls Multi
Valued
Kd_Produk Mengidentifikasikan setiap
produk secara unik
Char (5) No No
Nama_Produk Nama dari produk Varchar (20) No No
Qty Jumlah produk yang
tersedia
Integer No No
Harga_Beli Mengidentifikasikan harga
produk pada saat
pembelian
Float No No
Harga_Jual Mengidentifikasikan harga
produk pada saat dijual
Float No No
Tgl_Update Mengidentifikasikan
tanggal update dari harga
beli dan harga jual
Datetime No No
Nama entitas : Karyawan
Tabel 3.6 Entitas Karyawan
Attribute Description Data Types
and Length
Nulls Multi
Valued
Kd_Karyawan Mengidentifikasikan
karyawan yang bekerja
Char (5) 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
karyawan
Varchar (15) No Yes
Faxkary Nomor fax dari karyawan Varchar (15) No Yes
Nama_Divisi Nama dari divisi Varchar (30) No No
Nama_Status Nama dari Status Varchar (30) No No
Nama entitas : Status_Karyawan
Tabel 3.7 Entitas Jabatan
Attribute Description Data Types
and Length
Nulls Multi
Valued
Kd_Status Mengidentifikasikan
jabatan yang ada pada
perusahaan secara unik
Char (5) No No
Nama_Status Nama dari Status Varchar (30) No No
Nama entitas : Divisi
Tabel 3.8 Entitas Divisi
Attribute Description Data Types
and Length
Nulls Multi
Valued
Kd_Divisi Mengidentifikasikan divisi
yang ada di perusahaan
secara unik
Char (5) No No
74
Nama_Divisi Nama dari divisi Varchar (30) No No
Nama entitas : PO
Tabel 3.9 Entitas PO
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_PO Mengidentifikasikan
pemesanan pembelian
secara unik
Char (8) No No
Tgl_PO Tanggal pemesanan
pembelian
Datetime No No
Nama_Supplier Nama dari supplier Varchar (30) No No
Nama_Produk Nama dari produk Varchar (20) No No
Qty_Beli Jumlah produk yang dibeli Integer No No
Harga_Beli Mengidentifikasikan harga
dari produk
Float No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Nama Entitas : RO
Tabel 3.10 Entitas RO
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_RO Mengidentifikasikan
penerimaan barang
Char (8) No No
75
pembelian secara unik
Tgl_RO Tanggal penerimaan
barang pembelian
Datetime No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Nama Entitas : PP
Tabel 3.11 Entitas PP
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_PP Mengidentifikasikan
pembayaran pembelian
secara unik
Char (8) No No
Tgl_PP Tanggal pembayaran
pembelian
Datetime No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Nama Entitas : SO
Tabel 3.12 Entitas SO
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_SO Mengidentifikasikan
pemesanan penjualan
secara unik
Char (8) No No
Tgl_SO Tanggal pemesanan Datetime No No
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 Mengidentifikasikan harga
produk
Float No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Nama Entitas : DO
Tabel 3.13 Entitas DO
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_DO Mengidentifikasikan surat
jalan secara unik
Char (8) No No
Tgl_DO Tanggal surat jalan Datetime No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Nama Entitas : SP
Tabel 3.14 Entitas SP
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_SP Mengidentifikasikan
pembayaran penjualan
secara unik
Char (8) No No
77
Tgl_SP Tanggal pembayaran
penjualan
Datetime No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Nama Entitas : CN
Tabel 3.15 Entitas CN
Attribute Description Data Types
and Length
Nulls Multi
Valued
No_CN Mengidentifikasikan
credit nota secara unik
Char (8) No No
Tgl_CN Tanggal credit nota Datetime No No
Nama_Supplier Nama dari supplier Varchar (30) No No
Nama_Produk Nama dari produk Varchar (20) No No
Qty_CN Jumlah produk yang
ditukar
Integer No No
Nama_Karyawan Nama dari karyawan Varchar (30) No No
Dari kamus data relationship dapat ditemukan domain atribut seperti terlihat
pada tabel berikut :
Tabel 3.16 Domain Atribut
Tipe Data dan Panjang Data Keterangan
Kd_Customer Char(6) Digit 1 dan 2 diisi dengan KC dan digit
lainnya diisi dengan angka.
78
Tipe Data dan Panjang Data Keterangan
Kd_Supplier Char(5) Digit 1 dan 2 diisi dengan KS 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
Mengidentifikasi candidate key dan primary key dapat dilihat pada tabel sebagai berikut:
Tabel 3.17 Identifikasi Candidate dan Primary Key
Nama Entitas Candidate Key Primary Key
Customer Kd_Customer Kd_Customer
Supplier Kd_Supplier Kd_Supplier
Produk Kd_Produk
Nama_Produk
Kd_Produk
Karyawan Kd_Karyawan
Telpkary
Faxkary
Kd_Karyawan
Status_Karyawan Kd_Status
Nama_Status
Kd_Status
Divisi Kd_Divisi
Nama_Divisi
Kd_Divisi
PO No_PO No_PO
RO No_RO No_RO
PP No_PP No_PP
SO No_SO No_SO
Tipe Data dan Panjang Data Keterangan
lainnya diisi dengan angka.
No_CN Char(8) Digit 1 sampai 3 diisi dengan NCN digit
lainnya diisi dengan angka.
80
Nama Entitas Candidate Key Primary Key
DO No_DO No_DO
SP No_SP No_SP
CN No_CN No_CN
ER Diagram Konseptual dengan Penambahan Primary Key
melakukan
men
anga
ni
mel
akuk
anm
enan
gani
mel
akuk
an
men
erim
a
men
anga
ni
mem
iliki
mem
iliki
Gambar 3.4 ER Diagram dengan Penambahan Primary Key
81
3.2.1.4 Memvalidasi Model Konseptual Lokal dengan Transaksi Pengguna
melakukan
men
anga
ni
men
anga
ni
mela
kuka
n
men
erim
a
mem
iliki
mem
iliki
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 :
- Membuat Laporan Pembelian
- Membuat Laporan Penjualan
- Membuat Laporan Persediaan
- Membuat informasi mengenai Karyawan
- Membuat informasi mengenai Supplier
- Membuat informasi mengenai Pelanggan
- Membuat informasi mengenai Produk
3.2.2 Pemilihan DBMS (Database Management System)
Sesuai dengan permintaan pengguna, DBMS yang menjadi pertimbangan
adalah SQL Server 2000, Oracle 9i, dan MySQL.
Tabel 3.18 Perbandingan DBMS
Keterangan SQL Server 2000 Oracle 9i MySQL
Platform SQL Server 2000
hanya bisa
dijalankan dalam
platform yang
berbasis Windows-
based, seperti
Windows 9x,
Windows NT,
Windows 2000
Oracle 9i bisa bekerja
pada semua platform,
termasuk platform
yang berbasis
Windows-based,
Sistem berbasis AIX,
Compaq Tru 64
UNIX, HP9000
series HP-UX sistem,
MySQL bisa dijalankan
pada semua platform,
termasuk platform
berbasis Windows-
based, Sistem berbasis
AIX, Sistem HP-UX,
Linux Intel, Sun-Solaris
83
Keterangan SQL Server 2000 Oracle 9i MySQL
Linux Intel, Sun-
Solaris
Hardware - Processor
Pentium 1,66Mhz
atau lebih
- Memory
64MB RAM
- Hard disk
380MB Hard disk
space
- Processor
Pentium 1,66Mhz
atau lebih
- Memory
128MB RAM
- Hard disk
4,7GB Hard disk
Space ( untuk Oracle
Home Drive, FAT)
- Processor
Pentium 1,66Mhz atau
lebih
- Memory
32MB RAM
- Hard disk
80MB Hard disk space
Software Untuk Enteprise
Edition
membutuhkan
Windows 2000
Server, Windows
NT 4.0 service
pack 5
Untuk Platform
Berbasis Windows,
menggunakan
Windows 2000 /
Windows NT 4.0
service pack 5 /
Windows XP
Untuk Platform berbasis
Windows dapat
Menggunakan Windows
95/98/NT/2000/XP/2003
Fitur Mendukung T-
SQL, di mana T-
SQL tersebut
Mendukung PL SQL,
di mana PL SQL
meliputi fitur :
Mendukung MySQL
Dialect. Fiturnya :
Indexes : tidak
84
Keterangan SQL Server 2000 Oracle 9i MySQL
meliputi :
Indexes : B Tree
Indexes
Table : Relational
Table, Temporary
table
Trigger : AFTER
trigger,
INSTEAD OF
triggers
Procedure : T-SQL
Statement
Array : Tidak
Mendukung
Indexes : B Tree
Indexes, bitmap
indexes, partitioned
indexes, function
based indexes,
domain indexes
Table : Relational
Table, Object
table, temporary table
Trigger : BEFORE
triggers, AFTER
triggers, INSTEAD
OF
Procedures : PL/SQL
Statement, Java
methods, third
Generation
Language(3GL)
routines
Array : mendukung
mendukung
Triggers : tidak
mendukung
Trigger : tidak
mendukung
Array : Mendukung
85
Keterangan SQL Server 2000 Oracle 9i MySQL
Harga $4.999 - $19.999 $15.000 - $40.000 Open Source/ Free
Software, dibawah
persetujuan GNU (
General Public License)
Ketiga DBMS 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 DBMS 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. Menghilangkan fitur-fitur yang tidak sesuai dengan model data relational.
2. Membuat relasi tabel untuk model data logikal.
86
3. Memvalidasi relasi menggunakan teknik normalisasi.
4. Memvalidasi relasi terhadap transaksi user.
5. Mendefinisikan 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
- Status_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
- SP (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_Supplier (Telpsupp)
Primary Key belum ada (untuk saat ini)
- Fax_Supplier (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
Entity Relationship Diagram Setelah Normalisasi terhadap
terhadap
mem
iliki
mem
iliki
mela
kuka
nMen
anga
ni
mem
iliki
mel
akuk
an
me
lakukan
mem
iliki
Men
erim
a
me
lakukan
Menangani
terhadap
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) Membuat 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) Membuat 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) Masukan 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) Membuat 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) Membuat 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) Melakukan 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) Membuat 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:
- Membuat 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
- Membuat 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
- Membuat laporan persediaan
Ambil Tgl_Penerimaan_Barang, Kd_Produk dari Penerimaan_Barang
Ambil Nama_Produk, Qty dari Produk berdasarkan Kd_Produk
Tulis ke Laporan Persediaan
- Membuat 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
- Membuat 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
- Membuat informasi mengenai customer
Ambil Kd_Customer, Nama_Customer, Alamat_Customer dari Customer
Ambil Telpcust dari Telp_Customer berdasarkan Kd_Customer
Tulis ke View Customer
- Membuat 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_Supplier (Telpsupp, Kd_Supplier)
Primary Key Telpsupp
Foreign Key Kd_Supplier references Supplier (Kd_Supplier)
Fax_Supplier (Faxsupp, Kd_Supplier)
Primary Key Faxsupp
Foreign Key Kd_Supplier references Supplier (Kd_Supplier)
Karyawan (Kd_Karyawan, Nama_Karyawan, Alamat_Karyawan, Kd_Divisi,
Kd_Jabatan)
Primary Key Kd_Karyawan
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
Status_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)
SP (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 DBMS 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_Supplier
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_Supplier
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. Status_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. SP
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) (B) (C) (D)
I R U D I R U D I R U D I R U D
Customer
Supplier x x x x
123
Transaksi/Relasi (A) (B) (C) (D)
I R U D I R U D I R U D I R U D
Karyawan x x x x
Divisi x x x x
Status_Karyawan x x x x
Produk x x
PO_H x x x x x
PO_D x x x x x
RO x x x x x x
PP x x x x
SO_H
SO_D
DO
SP
CN_H x x x x
CN_D x x x x
I = Insert, R = Read, U = Update, D = Delete
Tabel 3.21 Cross-referencing transactions and relations (E) – (G)
Transaksi/Relasi (E) (F) (G)
I R U D I R U D I R U D
Customer x x x
Supplier
124
Transaksi/Relasi (E) (F) (G)
I R U D I R U D I R U D
Karyawan x x x
Divisi x x x
Status_Karyawan x x x
PO_H
PO_D
RO
PP
SO_H x x x x x
SO_D x x x x x
DO x x x x x
SP x x x X
CN
I = Insert, R = Read, U = Update, D = Delete
Keterangan :
A. Karyawan melakukan PO
B. Karyawan menangani RO
C. Karyawan melakukan CN
D. Karyawan melakukan PP
E. Karyawan membuat SO
F. Karyawan melakukan DO
G. Karyawan menerima SP
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 Supplier
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 SO_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 SO_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 SP
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)
- Memasukkan 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
- Menghapus data PP
CREATE PROCEDURE `delete_pp`
(
IN `kd` char(8)
)
BEGIN
DELETE FROM pp WHERE No_PP = kd;
END
131
- Mengubah data PP
CREATE PROCEDURE `update_pp`
(
IN `kd` char(8),
IN `no_ro` 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)
- Memasukkan 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
- Menghapus data CN_H
CREATE PROCEDURE `delete_cn_h`
(
IN `kd` char(8)
)
BEGIN
DELETE FROM cn_h WHERE No_CN = kd;
END
- Mengubah 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
- Memasukkan 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
- Menghapus 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
- Mengubah 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)
- Memasukkan data RO
CREATE PROCEDURE `insert_ro`
(
135
IN `no_po` char(8),
IN `kd_karyawan` char(5)
)
DETERMINISTIC
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
- Menghapus data RO
CREATE PROCEDURE `delete_ro`
(
IN `kd` char(8)
)
136
BEGIN
DELETE FROM ro WHERE No_RO = kd;
END
- Mengubah data RO
CREATE PROCEDURE `update_ro`
(
IN `kd` char(8),
IN `no_po` 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)
- Memasukkan data PO_H
CREATE PROCEDURE `insert_po_h`
(
IN `kd_supplier` char(5),
IN `kd_karyawan` char(5)
)
137
DETERMINISTIC
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
- Menghapus data PO_H
CREATE PROCEDURE `delete_po_h`
(
IN `kd` char(8)
)
BEGIN
DELETE FROM po_h WHERE No_PO = kd;
END
138
- Mengubah 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
- Memasukkan 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
- Menghapus 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
- Mengubah 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 SO (Sales Order)
- Memasukkan data SO_H
CREATE PROCEDURE `insert_so_h`
(
IN `kd_customer` char(5),
IN `kd_karyawan` char(5)
)
DETERMINISTIC
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
- Menghapus data SO_H
141
CREATE PROCEDURE `delete_so_h`
(
IN `kd` char(8)
)
BEGIN
DELETE FROM so_h WHERE No_SO = kd;
END
- Mengubah 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
- Memasukkan 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
- Menghapus 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
- Mengubah 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)
- Memasukkan data DO
CREATE PROCEDURE `insert_do`
(
IN `no_so` char(8),
IN `kd_karyawan` char(5)
)
DETERMINISTIC
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
- Menghapus data DO
CREATE PROCEDURE `delete_do`
(
IN `kd` char(8)
)
BEGIN
DELETE FROM do WHERE No_DO = kd;
END
- Mengubah data DO
CREATE PROCEDURE `update_do`
(
IN `kd` char(8),
IN `no_so` 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 SP (Sales Payment)
- Memasukkan data SP
CREATE PROCEDURE `insert_sp`
(
IN `no_do` char(8),
IN `kd_karyawan` char(5)
)
DETERMINISTIC
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
- Menghapus data SP
CREATE PROCEDURE `delete_sp`
(
IN `kd` char(8)
)
BEGIN
DELETE FROM sp WHERE No_SP = kd;
END
- Mengubah data SP
CREATE PROCEDURE `update_sp`
(
IN `kd` char(8),
IN `no_do` 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
- Memasukkan data Customer
CREATE PROCEDURE `insert_customer`
(
IN `nama` varchar(30),
IN `alamat` varchar(50)
)
DETERMINISTIC
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
- Menghapus data Customer
CREATE PROCEDURE `delete_customer`
(
IN `kd` char(6)
)
BEGIN
DELETE FROM customer WHERE Kd_Customer = kd;
END
- Mengubah 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
- Memasukkan data Telp_Customer
CREATE PROCEDURE `insert_telp_customer`
(
IN `kd` char(6),
IN `telp` varchar(15)
)
DETERMINISTIC
BEGIN
INSERT INTO telp_customer VALUES (telp,kd);
END
- Menghapus data Telp_Customer
CREATE PROCEDURE `delete_telp_customer`
(
IN `kd` char(6)
)
BEGIN
DELETE FROM telp_customer WHERE Kd_Customer = kd;
END
- Mengubah 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 Supplier
- Memasukkan data Supplier
CREATE PROCEDURE `insert_supplier`
(
IN `nama` varchar(30),
IN `alamat` varchar(50)
)
DETERMINISTIC
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
- Menghapus data Supplier
CREATE PROCEDURE `delete_supplier`
(
IN `kd` char(5)
)
BEGIN
DELETE FROM supplier WHERE Kd_Supplier = kd;
END
- Mengubah 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
- Memasukkan data Telp_Supplier
CREATE PROCEDURE `insert_telp_supplier`
(
IN `kd` char(5),
IN `telp` varchar(15)
)
DETERMINISTIC
BEGIN
INSERT INTO telp_supplier VALUES (telp,kd);
END
- Menghapus data Telp_Supplier
CREATE PROCEDURE `delete_telp_supplier`
(
IN `kd` char(5)
)
BEGIN
DELETE FROM telp_supplier WHERE Kd_Supplier = kd;
END
153
- Mengubah 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
- Memasukkan data Fax_Supplier
CREATE PROCEDURE `insert_fax_supplier`
(
IN `kd` char(5),
IN `fax̀ varchar(15)
)
DETERMINISTIC
BEGIN
INSERT INTO fax_supplier VALUES (kd,fax);
END
154
- Menghapus data Fax_Supplier
CREATE PROCEDURE `delete_fax_supplier`
(
IN `kd` char(5)
)
BEGIN
DELETE FROM fax_supplier WHERE Kd_Supplier = kd;
END
- Mengubah 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
- Memasukkan 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)
)
DETERMINISTIC
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
- Menghapus data Karyawan
CREATE PROCEDURE `delete_karyawan`
(
IN `kd` char(5)
)
156
BEGIN
DELETE FROM karyawan WHERE Kd_Karyawan = kd;
END
- Mengubah 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
- Memasukkan data Telp_Karyawan
CREATE PROCEDURE `insert_telp_karyawan`
(
157
IN `kd` char(5),
IN `telp` varchar(15)
)
DETERMINISTIC
BEGIN
INSERT INTO telp_karyawan VALUES (telp,kd);
END
- Menghapus data Telp_Karyawan
CREATE PROCEDURE `delete_telp_karyawan`
(
IN `kd` char(5)
)
BEGIN
DELETE FROM telp_karyawan WHERE Kd_Karyawan = kd;
END
- Mengubah 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
- Memasukkan data Fax_Karyawan
CREATE PROCEDURE `insert_fax_karyawan`
(
IN `kd` char(5),
IN `fax̀ varchar(15)
)
DETERMINISTIC
BEGIN
INSERT INTO fax_karyawan VALUES (kd,fax);
END
- Menghapus data Fax_Karyawan
CREATE PROCEDURE `delete_fax_karyawan`
(
IN `kd` char(6)
)
BEGIN
DELETE FROM fax_karyawan WHERE Kd_Karyawan = kd;
END
159
- Mengubah 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
- Memasukkan data Produk
CREATE PROCEDURE `insert_produk`
(
IN `nama` varchar(30),
IN `qty` int,
IN `beli` float,
IN `jual` float
)
DETERMINISTIC
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
- Menghapus data Produk
CREATE PROCEDURE `delete_produk`
(
IN `kd` char(5)
)
BEGIN
DELETE FROM produk WHERE Kd_Produk = kd;
END
- Mengubah 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 DBMS yang digunakan dalam sistem yang akan dibuat
adalah MySQL, maka organisasi file yang digunakan adalah MyISAM.
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
Kd_Produk
Non-Clustered
RO idxRO No_RO Clustered
PP idxPP No_PP Clustered
SO_H idxSO_H No_SO Clustered
SO_D idxSO_D No_SO
Kd_Produk
Non-Clustered
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
Kd_Produk
Non-Clustered
3.2.4.2.5 Estimasi Kebutuhan Media Penyimpanan
Tabel 3.23 Perkiraan Kebutuhan Disk Space pada Tabel Customer
Field Tipe Ukuran
Kd_Customer
Nama_Customer
Alamat_Customer
Char
Varchar
Varchar
6
30
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
Kd_Customer
Varchar
Char
15
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
Nama_Supplier
Alamat_Supplier
Char
Varchar
Varchar
5
30
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_Supplier
Field Tipe Ukuran
Telpsupp
Kd_Supplier
Varchar
Char
15
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_Supplier
Field Tipe Ukuran
Faxsupp
Kd_Supplier
Varchar
Char
15
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
Nama_Produk
Qty
Harga_Beli
Harga_Jual
Tgl_Update
Char
Varchar
Int
Float
Float
Datetime
5
20
8
8
8
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
Nama_Karyawan
Alamat_Karyawan
Kd_Divisi
Kd_Status
Char
Varchar
Varchar
Char
Char
5
30
50
5
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
Kd_Karyawan
Varchar
Char
15
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
Kd_Karyawan
Varchar
Char
15
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 Status_Karyawan
Field Tipe Ukuran
Kd_Status
Nama_Status
Char
Varchar
5
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
Field Tipe Ukuran
Kd_Divisi
Nama_Divisi
Char
Varchar
5
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
Kd_Supplier
Kd_Karyawan
Char
Datetime
Char
Char
8
8
5
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
Kd_ Produk
Harga_Beli
Qty_Beli
Char
Char
Float
Int
8
5
8
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
Field Tipe Ukuran
No_RO
Tgl_RO
No_PO
Kd_Karyawan
Char
Datetime
Char
Char
8
8
8
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
Tgl_PP
No_RO
Kd_Karyawan
Char
Datetime
Char
Char
8
8
8
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
Tgl_SO
Kd_Customer
Kd_Karyawan
Char
Datetime
Char
Char
8
8
6
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
Kd_Produk
Harga_Jual
Qty_Jual
Char
Char
Float
Int
8
5
8
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
Field Tipe Ukuran
No_DO
Tgl_DO
No_SO
Kd_Karyawan
Char
Datetime
Char
Char
8
8
8
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 SP
Field Tipe Ukuran
No_SP
Tgl_SP
No_DO
Kd_Karyawan
Char
Datetime
Char
Char
8
8
8
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
Field Tipe Ukuran
No_CN
Tgl_CN
No_RO
Kd_Supplier
Kd_Karyawan
Char
Datetime
Char
Char
Char
8
8
8
5
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
Kd_Produk
Qty_CN
Char
Char
Int
8
5
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
Telp_Customer
Supplier
Telp_Supplier
Fax_Supplier
Produk
Karyawan
Telp_Karyawan
Fax_Karyawan
Status_Karyawan
Divisi
PO_H
PO_D
RO
PP
SO_H
SO_D
DO
SP
2.015 Kbytes
0.492 Kbytes
0.332 Kbytes
0.078 Kbytes
0.078 Kbytes
0.111 Kbytes
1.113 Kbytes
0.234 Kbytes
0.234 Kbytes
0.034 Kbytes
0.034 Kbytes
12.187 Kbytes
16.992 Kbytes
13.593 Kbytes
13,593 Kbytes
82.27 Kbytes
441.80 Kbytes
88.36 Kbytes
88.36 Kbytes
174
CN_H
CN_D
3.187 Kbytes
15.750 Kbytes
Total space yang dibutuhkan dalam 1 tahun adalah 780.847. Kbytes atau
0.762. Mbytes
Total space yang dibutuhkan dalam 5 tahun, dengan pertumbuhan 10 %
adalah :
Tahun Pertama : 0.762 * 1.1 = 0.838 Mbytes
Tahun Kedua : 0.838 * 1.1 = 0.922 Mbytes
Tahun Ketiga : 0.992 * 1.1 = 1.014 Mbytes
Tahun Keempat : 1.014 * 1.1 = 1.116 Mbytes
Tahun Kelima : 1.116 * 1.1 = 1.228 Mbytes
3.2.4.3 Perancangan Mekanisme Pengamanan Data
Mekanisme 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/
Direktur
Sales Keuangan Personalia Admin
Gudang
Customer R IRUD R - R
Supplier R IRUD R - R
Karyawan R - R IRUD R
175
User
Tabel
Presiden/
Direktur
Sales Keuangan Personalia Admin
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 Struktur Menu
M en u Utam a
Cha ng e P asswo rd
Ma ste r
O r de r
Re ceiv i ng Or de r
Cre d it N ota
De live ry Or de r
P a ymen t
V ie w La p ora n
Custo me r
S up pl ier
P r od uk
K ar yawa n
P ur cha se O rd er
Sa le s O r de r
P ur cha se Pa yme nt
Sa le s Pa yme nt
Pe mb el ian
P en ju ala n
P er sed iaa n
Gambar 3.11 Struktur Menu Utama
179
3.2.5.2 STD (State Transition Diagram)
Layar Window
Klik “ http:// localhost/phpmyadmin/login.php/Display layar Login
Layar LoginMasukkan Username and PasswordJika validasi tidak sesuai, kembali ke Login
Masukkan Username and PasswordJika validasi sesuai, masuk ke layar “Menu Utama”
Menu Utama
Change Password
Master
Order
Receiving Order
Credit Nota
Delivery Order
Payment
Laporan
Klik “ Change Password”Tampilkan layar “ Change Passord”
Klik “ Master”Tampilkan layar “ Master”
Klik “ Order”Tampilkan layar “ Order”
Klik “ Receiving Order”Tampilkan layar “ Receiving Order”
Klik “ Credit Nota”Tampilkan layar “ Credit Nota”
Klik “ Delivery Order”Tampilkan layar “ Delivery Order”
Klik “ Payment”Tampilkan layar “ Payment”
Klik “ Laporan”Tampilkan layar “ 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”
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”
Klik “ Go to Menu Utama”Tampilkan layar “ Menu Utama”
Klik “ Go to Menu Utama”Tampilkan layar “ Menu Utama”
Gambar 3.12 STD Layar Window
180
Gambar 3.13 STD Change Password
Menu Utama
Master
Kl ik “ Master”Tampilkan layar “ Master”
CustomerKlik “ Delete”
Kembali ke layar “ Customer”Manipulasi Customer
Klik “Update”Tampilkan layar “Manipulasi Customer”
Klik “Insert”Tampilkan layar “Manipulasi Customer”
Supplier Manipulasi Supplier
Klik “Insert”Tampilkan layar “ Manipulasi Supplier”
Klik “ Delete”Kembal i ke layar “ Supplier”
Klik “Update”Tampilkan layar “ Manipulasi Supplier”
Produk Manipulasi Produk
Klik “Insert”Tampi lkan layar “ Manipulasi Produk”
Klik “Delete”Kembali ke layar “ Produk”
Klik “Update”Tampi lkan layar “ Manipulasi Produk”
Karyawan Manipulasi Karyawan
Klik “Insert”Tampilkan layar “ Manipulasi Karyawan”
Klik “ Delete”Kembali ke layar “ Karyawan”
Klik “Update”Tampilkan layar “ Manipulasi Karyawan”
Klik “ Customer”Tampilkan layar “ Customer”
Kl ik “ Supplier”Tampilkan layar “ Supplier”
Klik “Produk”Tampilkan layar “Produk”
Kl ik “ Karyawan”Tampilkan layar “ Karyawan”
Klik “ Go To Menu Utama”Tampi lkan layar “ Menu Utama”
Klik “ Go To Menu Utama”Tampi lkan layar “ Menu Utama”
Klik “ Go To Menu Utama”Tampi lkan layar “ Menu Utama”
Klik “ Go To Menu Utama”Tampi lkan layar “ Menu Utama”
Gambar 3.14 STD Master
181
Gambar 3.15 STD Order
Gambar 3.16 STD Receiving Order
182
Gambar 3.17 STD Credit Nota
Gambar 3.18 STD Delivery Order
183
Gambar 3.19 STD Payment
184
Gambar 3.20 STD 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 PerusahaanJam & Tanggal
Change Password
Master
Order
Receiving Order
Credit Nota
Delivery Order
Payment
Insert Data Customer
Telepon :
Alamat :
Nama :
Kode Supplier : KCXXX
X-30-X
X-50-X
X-15-X
CancelSave
LogoutHomeWelcome, X-15-X
Menu
Copyright
Gambar 3.25 Rancangan Layar Insert Data Customer
187
Logo PerusahaanWelcome, X-15-X Jam & Tanggal
Change Password
Master
Order
Receiving Order
Credit Nota
Delivery Order
Payment
Laporan
Copyright
LogoutHome
Menu Update Data Customer
Alamat :
Nama :
Kode Supplier : KCXXXX
X-30-X
X-50-X
CancelSave
Telepon
Tambah No Telepon X-15-X Simpan
# No Telepon Action
X-15-X Delete
Gambar 3.26 Rancangan Layar Update Data Customer
Gambar 3.27 Rancangan Layar Master Supplier
188
Gambar 3.28 Rancangan Layar Insert Data Supplier
Gambar 3.29 Rancangan Layar Update Data Supplier
189
Gambar 3.30 Rancangan Layar Master Produk
Logo PerusahaanJam & Tanggal
Insert Data Produk
Tgl Update :
Qty :
Harga_Jual ;
Harga Beli :
Nama :
Kode Produk : KPXXX
X-30-X
99999999
99999999
99999999
dd-mm-yyyy
CancelSave
Logout
Copyright
Welcome, X-15-X
Change Password
Master
Order
Receiving Order
Credit Nota
Delivery Order
Payment
Laporan
Menu
Home
Gambar 3.31 Rancangan Layar Insert Data Produk
190
Logo PerusahaanJam & Tanggal
Update Data Produk
Tgl Update :
Qty :
Harga_Jual ;
Harga Beli :
Nama :
Kode Produk : KPXXX
X-30-X
99999999
99999999
99999999
dd-mm-yyyy
CancelSave
Logout
Copyright
Welcome, X-15-X Home
Change Password
Master
Order
Receiving Order
Credit Nota
Delivery Order
Payment
Laporan
Menu
Gambar 3.32 Rancangan Layar Update Data Produk
Gambar 3.33 Rancangan Layar Master Karyawan
191
Logo PerusahaanJam & Tanggal
Change Password
Master
Order
Receiving Order
Credit Nota
Delivery Order
Payment
Insert Data Karyawan
Telepon :
Alamat :
Nama :
Kode Supplier : KKXXX
X-30-X
X-50-X
X-15-X
CancelSave
LogoutHomeWelcome, X-15-X
Menu
Copyright
Fax :
Jabatan :
Divisi :
X-15-X
<list jabatan>
<list divisi>
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 PerusahaanJ am & Tanggal Logout
Copyrig ht
Deta il Purchas e Order
Tanggal PO :
No P O :
Kode Supplier
DD- MM-Y YYY
NPOXX XXX
X -30-X
P rin t Halaman
X-30-X
HomeWelcome, X-15-X
K ode K ar yawan
Change P as sword
Master
Order
Receiving Order
Credit Nota
Del ivery Order
P aym ent
Lapor an
Menu
CancelResetS av e
P roduk
Kode Produk
Harga Beli
Qty Beli
KPX XX
99999999
99999999 Simpan
Kode Produk Nama Produk Qty Beli Harga Beli Harga
KP XXX 99999999 9999999999X -30-X 99999999
Tota l Har ga Beli : 9999999999
Ac tion
Delete
Gambar 3.38 Rancangan Layar Detail Purchase Order
Logo PerusahaanJam & Tanggal Logout
Copyrig ht
Sales Order
Tanggal No PO Har ga Beli Action
DD-M M-Y YYY
DD-M M-Y YYY
DD-M M-Y YYY
NSOXX XXX
NSOXX XXX
NSOXX XXX
99999999
99999999
99999999 View Detai l
View Detai l
View Detai l
Ins ert New Record
Hom eWelc om e, X-15-X
Change Password
M as ter
Or der
Receiving Order
Credi t Nota
Deliver y Order
Payment
Laporan
Menu
Gambar 3.39 Rancangan Layar Sales Order
194
Logo PerusahaanW elcome, X- 15-X J am & Tanggal Logout
Copyrig ht
Home
Insert Transaksi Sales Order
No SO : NSOXX XXX
Tanggal :
Kd Customer :
Kd K ary awan :
Kd P roduk :
Qty Jual :
Harga J ual :
Save Reset
DD-M M-Y YYY
<list Customer>
<list Karyawan>
<list produk >
99999999
99999999
Change P as sword
Master
Order
Receiv ing Order
Cr edit Nota
Del ivery Order
Paym ent
Laporan
M enu
Cancel
Gambar 3.40 Rancangan Layar Insert Transaksi Sales Order
Logo PerusahaanJ am & Tanggal Logout
Copyrig ht
Deta il S ales Or der
Tanggal SO :
No S O :
Customer
DD- MM-Y YYY
NSOXX XXX
X -30-X
P rin t Halaman
X-30-X
HomeWelcome, X-15-X
Karyawan :
Change P as sword
Master
Order
Receiving Order
Credit Nota
Del ivery Order
P aym ent
Lapor an
Menu
CancelResetS av e
P roduk
Kode Produk
Harga Beli
Qty Beli
KPX XX
99999999
99999999 Simpan
Kode Produk Nama Produk Qty Jual Harga Jual Harga
KP XXX 99999999 9999999999X -30-X 99999999
Tota l Har ga Jual : 9999999999
Ac tion
Delete
Gambar 3.41 Rancangan Layar Detail Sales Order
195
Logo PerusahaanJ am & Tanggal Logout
Copyrig ht
Receiving Order
Tanggal RO No RO Harga Bel i Ac tion
DD-M M-Y YYY
DD-M M-Y YYY
DD-M M-Y YYY
NROXX XXX
NROXX XXX
NROXX XXX
99999999
99999999
99999999 Deta il
Ins ert New Record
HomeWelc om e, X-15-X
Change Password
M as ter
Or der
Receiving Order
Credi t Nota
Deliver y Order
Payment
Laporan
Menu
Delete
Deta il Delete
Deta il Delete
Gambar 3.42 Rancangan Layar Receiving Order
Gambar 3.43 Rancangan Layar Insert Receiving Order
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 PerusahaanJ am & Tanggal Logout
Copyrig ht
Deta il Credit Nota
Tanggal CN :
No CN :
No RO :
DD-MM -YY YY
NCNX XXX X
NROXXX XX
P rin t Halaman
Suppl ier : KS XXX
HomeWelcome, X-15-X
Change Password
M as ter
Or der
Receiving Order
Credi t Nota
Deliver y Order
Payment
Laporan
Menu
K ar yawan : K KXX X
S av e Canc el
Produk
Kode Produk KPX XX
Qty CN 99999999
KP XXX
KP XXXKode Produk
X -20-X
X -20-X
99999999
99999999Nama Produk Q ty CN
delete
deleteA ction
Gambar 3.47 Rancangan Layar Detail Credit Nota
198
Logo PerusahaanJ am & Tanggal Logout
Copyrig ht
Del iv ery Or der
Tanggal DO No DO No SO Harga J ual Ac tion
DD-M M-Y YYY
DD-M M-Y YYY
DD-M M-Y YYY
NDOXX XXX
NDOXX XXX
NDOXX XXX
NS OXXX XX
NS OXXX XX
NS OXXX XX
99999999
99999999
99999999 Deta il
Ins ert New Record
HomeW elcom e, X- 15-X
Delete
Deta il Delete
Deta il Delete
Change Password
M as ter
Or der
Receiving Order
Credi t Nota
Deliver y Order
Payment
Laporan
Menu
Gambar 3.48 Rancangan Layar Delivery Order
Gambar 3.49 Rancangan Layar Insert Delivery Order
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 Sales Payment
Gambar 3.55 Rancangan Layar Insert Sales Payment
202
Gambar 3.56 Rancangan Layar Detail Sales 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 Tanggal No PO Nama
Supplier Nama
Karyawan Nama Produk
Qty Beli
Harga Beli
Harga
dd-mm-yyyy X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 Total Harga Beli 9-8-9 dd-mm-yyyy X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 Total Harga Beli 9-8-9 dd-mm-yyyy X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 Total Harga Beli 9-8-9
Grand Total Harga Beli 9-8-9
Diketahui oleh,
<Sales 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 Qty
Beli Qty Jual
Qty Harga Beli
Harga
X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9 X-5-X X-30-X 9-8-9 9-8-9 9-8-9 9-8-9 9-8-9
Total 9-8-9
Diketahui oleh,
<Sales 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 Customer
Nama Karyawan
Nama Produk
Qty Jual
Harga Jual
Harga
dd-mm-yyyy X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 Total Harga Jual 9-8-9
dd-mm-yyyy X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 Total Harga Jual 9-8-9
dd-mm-yyyy X-8-X X-30-X X-30-X
X-30-X 9-8-9 9-8-9
9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9
X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9 X-8-X X-30-X X-30-X X-30-X 9-8-9 9-8-9 9-8-9
Total Harga Jual 9-8-9 Grand Total Harga Jual 9-8-9
Diketahui Oleh,
<Corporate Sales Admin>
Gambar 3.61 Rancangan Laporan Penjualan
209
3.2.5.5 Spesifikasi Proses
Modul Login
Mulai
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 Menu 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
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_Karyawan”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Produk
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
Prosedur “Delete_Produk”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Customer
Mulai
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 MySQL 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 MySQL 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 MySQL yaitu
prosedur “Delete_Customer”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Supplier
Mulai
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 MySQL 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 MySQL 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 MySQL yaitu
prosedur “Delete_Supplier”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Purchase Order
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_PO”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
217
Modul Receiving Order
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_RO”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Purchase Payment
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_PP”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Sales Order
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_SO”
221
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Delivery Order
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_DO”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Modul Sales Payment
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_SP”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
224
Modul Credit Nota
Mulai
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 MySQL
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 MySQL
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 MySQL yaitu
prosedur “Delete_CN”
Akhir jika
Jika ingin keluar maka
Tutup koneksi
Top Related