56
BAB 3 ANALISIS DAN PERANCANGAN
3.1
Analisis 3.1.1
Riwayat Perusahaan
Pada awal terbentuknya, PT. ABC Future Indonesia merupakan badan usaha joint venture antara ABC Holdings dan Future Enterprise Singapore, kemudian pada bulan M ay 2004 badan usaha tersebut berubah menjadi PT. ABC Future Indonesia. PT. ABC Future Indonesia terletak di M enara Imperium – Lantai 17, M etropolitan Kuningan Superblok Kav.1, Jl. Rasuna Said Jakarta 12980 Indonesia, dan gudang penyimpanan terdapat di daerah Priuk. PT. ABC Future Indonesia merupakan perusahaan yang bergerak dalam bidang distribusi produk coffee mix 3in1 dengan merek Real Express, yang sekarang dikenal dengan REX coffee mix 3 in 1. PT. ABC Future Indonesia beroperasi di Indonesia sebagai prinsipal yang bertugas memasarkan produk REX Cofee M ix 3 in 1. Produk perusahaan diproduksi di Singapore oleh pihak Joint Venture, sehingga PT. ABC Future Indonesia tidak memiliki departemen produksi. Perusahaan berfungsi sebagai marketing company. Pemasaran produknya menggunakan sistem distribusi tidak langsung artinya menggunakan jasa pihak lain dalam mendistribusikan produk perusahaan. Perusahaan menunjuk distributor tertentu sesuai kriteria yang diinginkan untuk menjual / mendistribusikan produknya di suatu wilayah yang telah ditentukan. Beberapa daerah distribusi produk perusahaan yaitu daerah Bandung, Palembang,
57 Bengkulu, Bogor, Sumatra Utara ( M edan dan sekitarnya ) dan Propinsi Riau ( Pekanbaru, Batam, dan Kepulauan Riau ). Perusahaan juga memasarkan REX coffee mix 3in1 secara lebih meluas melalui event Pekan Raya Jakarta ( PRJ ), dan hasilnya melebihi perkiraan target. Setelah sukses melalui event PRJ, REX coffee mix 3 in 1 mulai di pasarkan di beberapa gerai modern outlet seperti di Carefour, Hypermart, M atahari, Tip Top, Diamond supermarket, serta Alfamart (mini market). Dan sampai sekarang ini, REX masih melakukan penetrasi produk ke berbagai area dan jalur distribusi yang sesuai dengan target pasarnya, menengah ke atas. Visi perusahaan adalah menjadi salah satu perusahaan terkemuka yang menyediakan berbagai produk makanan atau minuman instant yang higienis dan berkualitas tinggi, khususnya untuk pasar di Indonesia. M isi perusahaan adalah menjadi perusahaan yang berorientasi pasar dan memegang teguh komitmen untuk memuaskan konsumen, para pemegang saham serta karyawan perusahaan; mengelola perusahaan dengan bertanggung jawab serta memperhatikan etika berusaha yang sehat di lingkungan dimana perusahaan menjalankan usahanya. BIS NIS PT. ABC FUTURE INDONESIA memasarkan produk minuman serbuk Instant Coffee mix 3in1 dalam kemasan satuan sachet yang dikemas kembali dalam berbagai ukuran kemasan, 50 sachet (heavy users), 20 (economical pack) dan 5 sachet (trial pack). Perusahaan masih akan mengembangkan usahanya ke jenis produk lain, seperti tea mix, cereal drinks, chocolate drink, dll.
58 3.1.2
S tuktur Organisasi
Gambar 3.1 Struktur Organisasi
3.1.3
Pembagian Tugas dan Tanggung Jawab
1. Board of Directors Tugas dan tanggung jawabnya adalah sebagai berikut : •
M emimpin perusahaan berdasarkan kebijaksanaan, memimpin dan mengkoordinasi semua kegiatan perusahaan.
•
Bertanggung jawab terhadap seluruh sistem yang telah ditempuh, baik individu pelaksananya maupun proses berjalannya sistem itu sendiri.
•
M erencanakan, memonitor dan mengevaluasi aktivitas yang terjadi di dalam perusahaan.
•
M emeriksa dan menyetujui anggaran yang diperlukan untuk kemajuan perusahaan.
59 •
M embuat keputusan–keputusan yang menyangkut kelancaran operasional perusahaan.
2. Operational Manager M empunyai tugas untuk memantau kegiatan PT. ABC Future Indonesia secara keseluruhan. Operational M anager bertanggung jawab secara langsung kepada pihak direktur. Tugas Operational manager secara lebih rinci adalah sebagai berikut: •
M elaksanakan seluruh kegiatan operasional perusahaan sehari–hari agar perusahaan dapat berjalan lancar dan memenuhi target sesuai dengan kebijaksanaan yang telah ditetapkan.
•
M emberikan laporan pertanggungjawaban atau sirkulasi keuangan perusahaan kepada direktur.
•
M enetapkan kebijaksanaan–kebijaksanaan untuk meningkatkan hasil penjualan.
•
M enyusun strategi penjualan yang efektif dan efisien untuk mencapai tujuan yang diinginkan serta penerapan harga untuk masing-masing produk.
•
M enganalisa dan mengawasi kinerja Karyawan.
3. Accounting & Finance Tugas dan tanggung jawabnya adalah sebagai berikut: •
M embuat Laporan Keuangan seperti Rugi/Laba dan Neraca.
•
M embuat Laporan Stock Opname (Persediaan).
•
M enerima setoran kas dan Laporan Kas Harian dari Kasir.
60 •
M engecek hasil kerja Warehouse.
•
M enerima Faktur Penjualan dan Laporan Penjualan dari Logistik
•
M embuat Laporan Penjualan Harian dan Bulanan
•
M engurus pembayaran tagihan kantor seperti listrik,telpon,dan keperluan lainnya.
•
Bertanggung jawab kepada Operational M anager.
4. Warehouse Tugas dan tanggung jawabnya adalah sebagai berikut: •
M enerima barang dari M anufaktur.
•
M engeluarkan barang dari gudang.
•
M engisi Kartu Persediaan untuk penerimaan barang dari M anufaktur dan pengeluaran barang kepada distributor.
•
M engecek barang yang diterima dengan surat pesanan serta surat jalan dan invoice dari pusat.
•
Bertanggung jawab kepada Accounting & Finance.
5. Purchasing / Logistic Tugas dan tanggung jawabnya adalah sebagai berikut: •
M embuat surat pesanan barang yang diserahkan kepada Operational manager.
•
M engecek pengeluaran barang penjualan sebelum diserahkan ke distributor.
•
M embuat Faktur Penjualan
•
Konfirmasi ke pihak distributor mengenai pemesanan penjualan barang
61 •
M engurus pengambilan barang distributor.
6. S ales & Marketing Tugas dan tanggung jawabnya adalah sebagai berikut : •
M engurus sistem pemasaran produk perusahaan dengan mengadakan promosi pada saat event – event tertentu agar dapat meningkatkan penjualan perusahaan.
•
M enentukan daerah / wilayah yang akan menjadi area distribusi produk.
•
M enunjuk distributor tertentu sesuai kriteria yang diinginkan untuk menjual / mendistribusikan produk perusahaan di suatu wilayah yang telah ditentukan.
7. S taff Finance & Accounting Tugas dan tanggung jawabnya adalah sebagai berikut: •
M enyusun dan mengecek Faktur penjualan
•
M engelola seluruh data yang masuk ke perusahaan.
•
M engawasi dan memeriksa faktur-faktur yang telah jatuh tempo.
•
M embuat dokumentasi yang rapi dan teratur dengan menyusun sistem pengarsipan yang baik atas bukti-bukti transaksi dan laporan-laporan tertulis mengenai jalannya pekerjaan.
•
Bertanggung jawab terhadap laporan rugi laba.
•
Bertanggung jawab kepada Finance & Accounting.
8. S taff Logistic Tugas dan tanggung jawabnya adalah sebagai berikut : •
M embuat laporan penjualan yang diserahkan ke Bagian Logistic.
62 •
M elayani pemesanan yang dilakukan oleh distributor.
•
M engatur dan bertanggung jawab dalam pengambilan barang distributor.
•
Bertanggung jawab kepada Bagian Logistic.
9. S taff Warehouse Tugas dan tanggung jawabnya adalah sebagai berikut : •
M encatat aktivitas barang yang keluar masuk di gudang persediaan.
•
M empersiapkan barang yang dipesan oleh distributor sesuai dengan Surat pengeluaran barang dari Operational M anager.
•
M enghitung barang yang masuk maupun yang keluar secara fisik yang berada digudang persediaan.
•
M embuat laporan persediaan barang secara fisik kepada Bagian Warehouse.
•
M eng-update jumlah barang–barang yang tersedia di buku persediaan.
•
Bertanggung jawab kepada bagian Warehouse..
10. S taff Promotion Tugas dan tanggung jawabnya adalah sebagai berikut : •
M engkoordinasi kegiatan pemasaran dan pendistribusian barang.
•
M enentukan tempat promosi produk perusahaan.
•
M empersiapkan segala sesuatu yang berhubungan dengan promosi barang pada saat pemasaran produk di suatu event tertentu.
•
M elakukan promosi produk yang dijual
•
M engatur acara yang dilakukan saat promosi pada suatu event tertentu
•
M engatur semua dekorasi pada saat promosi produk.
63 • 3.1.4
Bertanggung jawab pada Sales & M arketing Sistem yang Sedang Berjalan
3.1.4.1
Proses Bisnis dan Diagram Aliran Dokumen
3.1.4.1.1
Proses Bisnis / Prosedur yang berjalan
1. Prosedur Sistem Pembelian
Proses pemesanan barang
a. Bagian logistik mengecek catatan jumlah persediaan barang, kemudian memutuskan apakah perlu membeli barang. b. Jika sudah diputuskan akan membeli barang, Bagian Logistik akan membuat surat pembelian ( struk pembelian / SP ) tiga rangkap. c. Surat
pembelian
tersebut
harus
mendapat
persetujuan
dari
Operational Manager. d. Setelah SP disetujui maka bagian logistik akan memesan barang ke M anufaktur dan konfirmasi kapan barang akan dikirim dengan menyerahkan rangkap pertama SP, rangkap ke 2 diserahkan ke bagian finance & accounting, dan rangkap ke 3 diserahkan ke bagian warehouse untuk penerimaan barang.
Proses penerimaan barang a. M anufaktur akan mengirimkan barang yang telah dipesan oleh Perusahaan sesuai dengan waktu yang telah ditentukan. b. Pada saat menerima barang dari M anufaktur, Bagian warehouse akan menerima faktur sebanyak dua rangkap. Bagian warehouse akan melakukan pengecekan SP dengan barang yang diterima.
64 c. Jika barang yang diterima sesuai dengan SP maka bagian warehouse akan menyerahkan rangkap faktur pertama ( asli ) dari manufaktur kepada Accounting, rangkap kedua disimpan untuk arsip. d. Berdasarkan faktur tersebut Bagian warehouse akan mencatat pada Buku Persediaan Barang, Namun jika barang yang diterima tidak sesuai dengan SP maka akan dilakukan konfirmasi kepada pihak manufaktur.
Proses pembatalan pembelian a. Jika Surat Pembelian dari bagian Logistik tidak disetujui, Operational Manager melakukan pembatalan atas pembelian barang tersebut.
2. Prosedur Sistem Perhitungan Persediaan a. Perhitungan fisik persediaan barang di gudang dilakukan setiap awal bulan. b. barang harus dikelompokkan menurut jenis dan ukuran produk. c. Bagian Accounting memperoleh data penjualan dari bagian logistik dan menyesuaikan dengan data persediaan dari pencatatan terakhir. Dari penyesuaian persediaan yang didapat, data disimpan sebagai data awal stock opname fisik. d. Accounting memberikan perintah perhitungan persediaan atas persetujuan dari pihak manager e. Bagian warehouse memperoleh data persediaan gudang mengenai mutasi barang selama satu bulan
65 f. Kemudian mengelompokkan barang sesuai dengan jenis dan ukuran barang g. M elakukan perhitungan fisik persediaan barang di gudang h. Selama perhitungan persediaan berlangsung tidak ada kegiatan penerimaan dan pengeluaran barang. i. M encocokkan data persediaan gudang dengan hasil perhitungan fisik persediaan. j. Jika hasil yang didapat sudah sama maka warehouse akan membuat berita acara stock opname dengan 2 rangkap. Rangkap pertama ( asli ) diserahkan ke bagian Accounting dan rangkap ke 2 disimpan warehouse untuk membuat penyesuaian kartu persediaan dan membuat laporan persediaan barang gudang. k. Bagian
Accounting mencocokkan
berita stock
opname dari
warehouse dengan data awal stock opname fisik l. Jika data yang didapat sudah sama maka Accounting membuat laporan persediaan untuk diserahkan kepada pihak manager.
3. Prosedur Sistem Penjualan ke distributor
Proses penerimaan order a. Pihak logistik menerima order pembelian barang dari pihak distributor, kemudian bagian logistik membuat surat penjualan ( Struk Penjualan / SJ ) sebanyak 2 rangkap .
66 b. Surat Penjualan harus mendapat persetujuan dari Operational Manager. Kemudian SJ rangkap ke 1 diserahkan ke warehouse untuk proses pengeluaran barang dan rangkap ke 2 disimpan accounting sebagai arsip untuk proses penagihan / pembayaran piutang.
Proses pengeluaran dan pengambilan barang a. Bagian warehouse mempersiapkan barang sesuai dengan SJ dan membuat surat pengeluaran barang ( 3 rangkap ), rangkap ke 1 diserahkan ke Operational Manager, rangkap ke 2 diserahkan ke bagian logistik bersama dengan barang yang telah disiapkan, dan rangkap ke 3 digabungkan dengan Surat penjualan dari logistik digunakan untuk menyesuaikan kartu persediaan. b. Bagian logistik menerima surat pengeluaran barang beserta barang dari warehouse. Logistik mencocokan barang dari warehouse dengan DO dari pihak pembeli / distributor. Jika hasil pencocokan tidak sama maka bagian logistik akan konfirmasi ulang ke bagian warehouse. c. Bagian logistik memberi konfirmasi kepada pihak distributor bahwa barang yang dipesan sudah disiapkan sehingga pihak distributor dapat mengambil barang yang diinginkan di gudang. d. Jika Pihak distributor melakukan pengambilan barang, maka bagian logistik membuat surat pengambilan barang sebanyak dua rangkap. Rangkap pertama ( asli ) diserahkan untuk pihak distributor beserta barang yang diinginkan, rangkap ke 2 diserahkan ke bagian warehouse untuk referensi penyesuaian kartu persediaan.
67
Proses pembatalan penjualan a. Jika Surat Penjualan dari bagian Logistik tidak disetujui, Operational Manager melakukan pembatalan atas penjualan barang tersebut.
3.1.4.1.2
Diagram Aliran Dokumen
1. Sistem Pembelian
Gambar 3.2 Diagram aliran dokumen sistem pembelian
68 2.
Sistem Perhitungan Persediaan
Gambar 3.3 Diagram aliran dokumen sistem perhitungan persediaan
69
3.
Sistem Penjualan FLOW CHART SELLING GOODS
PEMBATALAN PEMBELIAN
PENERIMAAN ORDER PENJUALAN
Op era tion al M an ag er
PENGAMBILAN BARANG
PEMBUATAN INVOICE
WA REH OUSE
AC COU NTING
L OGISTIC S D EPT.
L OGIS TIC S DEP T. 7
PENGELUARAN BARANG
3
1
5
4
STA RT DO dari di st ributor 2 S urat Pengeluaran B arang
Melakukan Pembatalan Penjualan
Bersama dengan Barang yang t elah disiapkan
2
P ersiapkan Barang sesuai dengan SJ
Faktur Penjualan 2
Bu at Su ra t Pen juala n
Surat Pengambilan Barang
Mencocokan barang dari warehouse dengan DO dari pihak distribut or
Membuat S urat P engeluaran B arang
2
Veri fikasi
1 S urat Penjualan ( SJ )
Sama ?
tidak
K onf irm asi ul ang ke bagian warehouse SJ
2
Konfirmasi ambil barang kepada distribut or
Approval tidak
1 3
y a S urat Pengeluaran B arang
y a
7
Membuat Surat P engambilan Barang
2 1 Surat Penjualan ( SJ )
Bersama dengan Barang 1
S urat Pengambilan B arang
Operational Manager
2
3
4
Ke pihak Pembeli / Dist ribut or
5
Gambar 3.4 Diagram aliran dokumen sistem penjualan
Kartu Persediaan
Proses penagi han pem bayaran piutang
70
3.1.4.2
Kebutuhan Informasi
Dalam prosedur pembelian dan penjualan di perusahaan, pihak manager membutuhkan beberapa informasi dalam mengelola PT. ABC Future Indonesia. Informasi yang dibutuhkan adalah laporan pembelian dan penjualan produk dari bagian purchasing / logistik dan diketahui oleh bagian finance & accounting. Untuk prosedur persediaan perusahaan, pihak manager mendapatkan informasi kartu persediaan dari bagian warehouse dan laporan persediaan dari bagian warehouse dan finance & accounting. Bagian finance & accounting membutuhkan informasi penjualan dan pembelian dari bagian purchasing / logistik untuk menyusun laporan penjualan dan pembelian per periode waktu tertentu yang akan diserahkan kepada pihak manager. Selain itu bagian Finance & Accounting juga membutuhkan data persediaan barang dari bagian warehouse untuk melaporkan penyesuaian persediaan kepada pihak manager Bagian warehouse membutuhkan informasi mengenai penerimaan dan pengeluaran barang yang disebabkan oleh transaksi pembelian dan penjualan.
Informasi tersebut
digunakan
untuk
mengupdate kartu
persediaan Bagian purchasing / logistik membutuhkan informasi mengenai data distributor dan manufaktur untuk melakukan transaksi pembelian dan penjualan barang, serta membutuhkan laporan persediaan, agar bagian purchasing / logistik mengetahui kapan seharusnya melakukan transaksi pembelian barang kepada pihak manufaktur. Dalam prosedur pengambilan
71 barang yang disebabkan karena penjualan kepada pihak distributor, bagian purchasing / logistik membutuhkan laporan pengeluaran barang dari bagian warehouse untuk mengurus pengambilan barang. 3.1.5
Permasalahan yang dihadapi Berdasarkan hasil analisa yang dilakukan, ada beberapa masalah pada PT.
ABC Future Indonesia : 1. Bagian logistik mengalami kesulitan untuk mengetahui persediaan barang di gudang penyimpanan dan Operational M anager kesuliatan untuk mengetahui kebenaran persediaan barang tersebut. 2.
Kesulitan dalam membuat laporan setiap transaksi yang berjalan dalam
perusahaan sehingga laporan setiap transaksi terlambat diterima Operational M anager. 3. Keamanan data yang kurang terjamin. Data yang disimpan hanya ada di dalam buku-buku yang kemungkinan besar dapat dilihat oleh setiap pegawai. Seluruh data dapat dilihat dan diambil sewaktu-waktu ataupun diubah dengan kesempatan yang sangat besar, sehingga integrasi dan keamanan data yang kurang terjamin 4. Kesulitan pengadaan informasi mengenai Pembelian, persediaan dan penjualan. Sistem yang berjalan pada perusahaan masih manual, hal ini menyebabkan banyak perhitungan yang dilakukan secara manual sebagai contoh : masih banyak terdapat kesalahan manusia (human error) dalam perhitungan jumlah persediaan barang yang masuk dan keluar melalui proses pembelian dan penjualan
72 5. Data yang dicatat dalam arsip tidak mempunyai back-up, sehingga jika terjadi suatu kecelakaan yang dikarenakan kesalahan manusia ataupun bencana alam data yang ada pada perusahaan akan hilang dan tidak dapat ditelusuri. 3.1.6
Usulan Pemecahan Masalah M elihat berbagai masalah yang dihadapi perusahaan sekarang ini, maka
diusulkan pemecahan masalah : 1. M erancang sistem basis data untuk pengelolaan data persediaan barang langsung dapat saling berhubungan, sehingga bagian logistik dapat mengetahui kapan seharusnya perusahaan membeli barang dan Operational manager dapat mengecek kebenaran persediaan yang ada digudang penyimpanan. 2. M embuat aplikasi khusus dimana aplikasi tersebut dapat menghasilkan laporan akhir setiap periode tertentu, yang dapat menampilkan semua rincian dari order barang ke manufaktur, penerimaan barang yang dikirim oleh manufaktur, sampai dengan
pengeluaran
barang dari
gudang penyimpanan
untuk
didistribusikan ke distributor. 3. Sistem basis data yang dibuat dilengkapi dengan kemampuan pencarian atau pengambilan data Karyawan, data distributor, data barang, data order barang, data penerimaan barang, dan data persediaan barang. 4. Sistem basis data yang dirancang, dilengkapi dengan perhitungan otomatis yang memungkinkan tidak terjadinya kesalahan dalam perhitungan.
3.2
Perancangan
3.2.1
Perancangan Basis Data Konseptual 3.2.1.1
Mengidentifikasi Tipe-Tipe Entitas
73 Tabel 3.1 Tabel Identifikasi Entitas
Nama Entiti M anufaktur
Produk
Distributor
M arket
Pembelian
Persediaan
Karyawan
Supervisor
Penjualan
Pengambilan
Penerimaan
Pengeluaran
Deskripsi Kejadian Pemasok barang bagi PT. ABC PT. ABC FUTURE FUTURE INDONESIA INDONESIA memesan produk kepada M anufaktur Jenis – jenis produk yang Semua jenis produk yang dimiliki oleh perusahaan dijual oleh PT. ABC FUTURE INDONESIA Organisasi / Individu yang Distributor memesan produk membeli produk dari PT. ABC dari PT. ABC FUTURE FUTURE INDONESIA INDONESIA Daerah / wilayah pemasaran Distributor memasarkan distribusi produk ke market – market di beberapa wilayah. Semua detail yang menyangkut Karyawan memesan pembelian pemesanan pembelian kepada produk kepada pihak pihak M anufaktur manufaktur yang menambah jumlah persediaan. Semua detail yang menyangkut setiap pembelian menambah persediaan barang pada PT. persediaan di gudang, ABC FUTURE INDONESIA Sebaliknya setiap penjualan menyebabkan berkurangnya persediaan di gudang. Karyawan yang bekerja pada Setiap karyawan bekerja pada PT. ABC FUTURE PT. ABC FUTURE INDONESIA INDONESIA Supervisor ( manajer ) yang Setiap karyawan PT. ABC bertugas mengawasi karyawan FUTURE INDONESIA akan yang bekerja pada PT. ABC bertanggung jawab kepada FUTURE INDONESIA supervisor menurut divisinya masing – masing. Semua detail produk yang Penjualan kepada distributor dipesan oleh distributor yang mengurangi jumlah persediaan di gudang PT. ABC FUTURE INDONESIA Semua detail produk yang Distributor mengambil diambil oleh distributor dari pesanan produk dari gudang gudang persediaan persediaan perusahaan Semua detail yang menyangkut Perusahaan menerima pesanan penerimaan barang dari barang atas pembelian kepada M anufaktur pihak M anufaktur. Semua detail yang menyangkut Bagian warehouse melakukan pengeluaran barang untuk pengeluaran barang untuk distributor pesanan dari distributor
74 Nama Entiti Pembatalan
Deskripsi Kejadian Semua detail yang menyangkut Setiap barang pesanan pembatalan pemesanan barang distributor yang tidak diambil dari distributor dalam waktu tertentu akan dilakukan Pembatalan.
3.2.1.2 Mengidentifikasi Tipe-Tipe Relasi Manufaktur
1..1
0..*
1..* Penerimaan
Pembelian 1..*
Menerima
Menyebabkan 1..*
0..*
1..*
Melakukan Menambah
1..*
1..1
Produk
1..1 1..*
Memproses
1..*
1..1
Mengurus
Karyawan
1..1 1..1
1..1 1..1 1..* 1..1
Melakukan Melakukan
Mengawasi
0..*
0..* Pembatalan
Mengurus 1..*
Pengeluaran
0..*
1..*
1..* 0..* Penjualan
Persediaan
1..* Mengalami Menyebabkan 1..*
0..* 1..*
1..*
Menyebabkan
1..1 Tradisional_Market
1..*
1..*
0..*
Pengambilan
1..1 Distributor Distribusi 1..1
1..* Modern_Market
Gambar 3. 5 ER Diagram Konseptual bagian awal Tabel 3.2 Tabel Tipe Relasi
Entity Name M anufaktur Pembelian
Multiplicity 1..1 1..*
Relationship M enerima M enambah
Entity Name Pembelian Produk
Multiplicity 0..* 1..*
75 Entity Name Pembelian Karyawan Karyawan Karyawan Karyawan Karyawan Karyawan Karyawan Karyawan Persediaan Penjualan Penjualan Penjualan Penjualan Distributor Distributor Distributor 3.2.1.3
Multiplicity 1..* 1..1 1..1 1..1 1..1 1..1 1..1 1..1 1..1 1..* 1..* 1..* 1..* 1..* 1..1 1..1 1..1
Relationship M enyebabkan M emesan M engawasi M engurus M elakukan M engurus M elakukan M elakukan M emproses M engandung M engurangi M engalami M enyebabkan M enyebabkan M emesan Distribusi Distribusi
Entity Name Penerimaan Pembelian Karyawan Penerimaan Pengeluaran Pengambilan Pembatalan Penjualan Persediaan Produk Produk Pembatalan Pengambilan Pengeluaran Penjualan M odern_M arket Tradisional_M arket
Multiplicity 1..* 0..* 1..* 1..* 0..* 0..* 0..* 0..* 1..* 1..* 1..* 1..* 1..* 1..* 0..* 1..* 1..*
Mengidentifikasi dan Menghubungkan Atribut dengan Tipe-
Tipe Entitas, Domain Atribut, Primary Key dan Candidate Key Tabel 3.3 Tabel Atribut – atribut entitas
EntityName Manufaktur
Attribute KdM anufaktur
Secara unik mengidentifikasi M anufaktur NmM anufaktur Nama M anufaktur AlmM anufaktur Alamat M anufaktur Kota Kota M anufaktur KodePos Telp Fax
Produk
Description
KdProduk
NmProduk
Kode Pos Telepon M anufaktur Nomor telepon fax M anufaktur Secara unik mengidentifikasik an produk Nama produk
Data type and Length 5 karakter
40 variabel karakter 100 variabel karakter 20 variabel karakter 5 karakter 15 variabel karakter 15 variabel karakter 10 karakter
20 variabel
no
Multi valued no
no
no
no
no
no
no
no no
no yes
yes
yes
no
no
no
no
Nulls
76
EntityName
Attribute Ukuran
Ukuran Produk
HargaBeli
Harga Beli satuan produk Harga Jual satuan produk Secara unik mengidentifikasi Distributor Nama Distributor
HargaJual Distributor
KdDistributor
NmDistributor AlmtDistributor
Pembelian
Data type and Length karakter 10 variabel karakter M oney
Nulls
Multi valued
no
no
no
no
M oney
no
no
5 karakter
no
no
40 variabel karakter 100 variabel karakter 20 variabel karakter 5 karakter
no
no
no
no
no
no
no
no
no
yes
yes
yes
no no
no no
no
no
no
no
no
no
no
yes
no
no
no
no
no
no
Kota
Alamat Distributor Kota Distributor
KodePos
Kode Pos
Telp
KdM arket NmM arket
Telepon Distributor Nomor telepon fax Distributor Kode M arket Nama M arket
Alamat
Alamat M arket
Kota
Kota M arket
KodePos
KodePos
Telp
Telp
KdPembelian
Secara unik mengidentifikasik an kode pembelian produk Tanggal Date pembelian produk Tanggal jatuh Date tempo pembayaran pembelian
Fax Market
Description
TglPembelian TglJatuhTempo
15 variabel karakter 15 variabel karakter 5 karakter 40 variabel karakter 100 variabel karakter 20 variabel karakter 5 karakter 15 variabel karakter 20 karakter
77
EntityName
Attribute
Description
kdM anufaktur
Secara unik mengidentifikasik an M anufaktur NmM anufaktur Nama M anufaktur AlmM anufaktur Alamat M anufaktur Kota Kota M anufaktur KodePos Telp Fax KdKaryawan
Nmkaryawan
Secara unik mengidentifikasik an karyawan Nama karyawan
Jabatan
Jabatan karyawan
KdSupervisor
Kode Supervisor
NmSupervisor
Nama Supervisor
kdProduk NmProduk Ukuran HargaBeli Qty Status Keterangan
Persediaan
Kode Pos Telepon M anufaktur Fax M anufaktur
Diskon KdPersediaan TglUpdate KdKaryawan Nmkaryawan
Data type and Length 5 karakter
40 variabel karakter 100 variabel karakter 20 variabel karakter 5 karakter 15 variabel karakter 15 variabel karakter 5 karakter
40 variabel karakter 20 variabel karakter 5 karakter
40 variabel karakter Kode Produk 10 variabel karakter Nama produk 20 variabel karakter Ukuran 10 variabel Kemasan karakter Harga Produk M oney Kuantitas produk Int Status pembelian Int Keterangan status 20 variabel karakter Diskon pembelian Float Kode Persediaan 20 karakter Tanggal Update Date persediaan Kode Karyawan 5 karakter Nama karyawan 40 variabel karakter
no
Multi valued no
no
no
no
no
no
no
no no
no yes
no
yes
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no no No no
no no No no
no no no
no no no
no no
no no
Nulls
78
EntityName
Attribute Jabatan
Jabatan karyawan
KdSupervisor
Kode Supervisor
NmSupervisor
Nama Supervisor
KdProduk NmProduk
Kode Produk Nama Produk
Ukuran
Ukuran kemasan produk Harga beli dari manufaktur Harga jual ke distributor kuantitas produk menurut kemasan produk Kode Karyawan Nama Karyawan
HargaBeli HargaJual Qty
Karyawan
KdKaryawan NmKaryawan AlmKaryawan Kota KodePos Telp Jabatan Password KdSupervisor NmSupervisor
Penerimaan
Description
KdPenerimaan
TglPenerimaan
KdPembelian
Data type and Length 20 variabel karakter 5 karakter
no
Multi valued no
no
no
no
no
no no
no no
no
no
no
no
M oney
no
no
Int
no
no
no no
no no
no
no
no
no
no no
no yes
no
no
no
no
no no
no no
no
no
no
no
no
no
40 variabel karakter 10 karakter 40 variabel karakter 10 variabel karakter M oney
5 karakter 40 variabel karakter Alamat Karyawan 100 variabel karakter Kota 20 variabel karakter Kode Pos 5 karakter Telepon 15 variabel Karyawan karakter Jabatan karyawan 20 variabel karakter Password 6 karakter karyawan Kode Supervisor 5 karakter Nama Supervisor 40 variabel karakter Secara unik 20 karakter mengidentifikasik an penerimaan produk Tanggal Date penerimaan produk Kode Order 20 karakter Pembelian
Nulls
79
EntityName
Attribute TglPembelian
NmKaryawan
Tanggal Pembelian Secara unik mengidentifikasik an karyawan Nama Karyawan
Jabatan
Jabatan karyawan
KdSupervisor
Kode Supervisor
NmSupervisor
Nama Supervisor
KdPengeluaran
NmKaryawan
Secara unik mengidentifikasik an pengeluaran Tanggal pengeluaran produk Kode Order Penjualan Tanggal Penjualan Kode unik Karyawan Nama Karyawan
Jabatan
Jabatan karyawan
KdSupervisor
Kode Supervisor
NmSupervisor
Nama Supervisor
KdPenjualan TglPenjualan
Kode penjualan Tanggal penjualan Tanggal jatuh tempo Nomor faktur Secara unik mengidentifikasik an karyawan Nama Karyawan
KdKaryawan
Pengeluaran
TglPengeluaran
KdPenjualan TglPenjualan KdKaryawan
Penjualan
Description
TglJatuhTempo NoFaktur KdKaryawan
NmKaryawan
Data type and Length Date
no
Multi valued no
5 karakter
no
no
40 variabel karakter 20 variabel karakter 5 karakter
no
no
no
no
no
no
40 variabel karakter 20 karakter
no
no
no
no
Date
no
no
20 karakter
no
no
Date
no
no
5 karakter
no
no
40 variabel karakter 20 variabel karakter 5 karakter
no
no
no
no
no
no
40 variabel karakter 20 karakter Date
no
no
no no
no no
Date
no
no
5 karakter 5 karakter
no no
no no
40 variabel karakter
no
no
Nulls
80
EntityName
Attribute Jabatan
Jabatan karyawan
KdDistributor NmDistributor
Kode distributor Nama distributor
Alamat
Alamat
Kota
Kota
KodePos Telp
Kode pos Telp
Fax
Fax
KdProduk NmProduk
Kode produk Nama produk
Ukuran
Kode ukuran
HargaJual
Harga Jual ke distributor Jumlah penjualan menurut produk Status penjualan Keterangan status
Qty Status Keterangan Diskon Pengambilan
Description
KdKaryawan NmKaryawan
Besar potongan diskon penjualan Kode pengambilan Tanggal pengambilan Kode penjualan Tanggal Penjualan Kode Karyawan Nama Karyawan
Jabatan
Jabatan karyawan
KdDistributor
Kode distributor
NmDistributor
Nama distributor
KdPengambilan TglPengambilan KdPenjualan TglPenjualan
Data type and Length 20 variabel karakter 5 karakter 40 variabel karakter 100 variabel karakter 20 variabel karakter 5 karakter 15 variabel karakter 15 variabel karakter 10 karakter 20 variabel karakter 10 variabel karakter M oney
no
Multi valued no
no no
no no
no
no
no
no
no no
no yes
no
yes
no no
yes yes
no
yes
no
no
Int
no
no
Int 20 variabel karakter Float
No no
No no
no
no
20 karakter
no
no
Date
no
no
20 karakter Date
no no
no no
5 karakter 40 variabel karakter 20 variabel karakter 5 karakter
no no
no no
no
no
no
no
40 variabel karakter
no
no
Nulls
81
EntityName Pembatalan
Attribute
Description
KdPembatalan
Kode Pembatalan
TglPembatalan
KdKaryawan
Tanggal Pembatalan Kode penjualan Tanggal Penjualan Kode Karyawan
Jabatan
Jabatan karyawan
KdDistributor
Kode distributor
NmDistributor
Nama distributor
KdPenjualan TglPenjualan
Data type and Length 20 karakter
no
Multi valued no
Date
no
no
20 karakter Date
no no
yes no
5 karakter
no
no
20 variabel karakter 5 karakter
no
no
no
no
40 variabel karakter
no
no
Nulls
Atribute Domain Tabel 3.4 Tabel Atribut Domain
Field KdM anufaktur NmM anufaktur AlmtM anufaktur Telp Fax KdProduk NmProduk Ukuran HargaBeli HargaJual Qty Diskon Status Keterangan KdDistributor NmDistributor AlmtDistributor Kota KodePos KdPembelian
Attribute Domain Dua karakter pertama berupa huruf ‘M N’, tiga karakter berikutnya berupa angka. Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Hanya boleh diisi dengan karakter berupa angka Hanya boleh diisi dengan karakter berupa angka Empat karakter pertama berupa huruf, karakter berikutnya berupa angka. Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Hanya boleh diisi dengan karakter berupa angka Hanya boleh diisi dengan karakter berupa angka Hanya boleh diisi dengan karakter berupa angka Tidak ada atribut domain yang khusus Hanya boleh diisi dengan karakter angka [0,1,2,3,-1] Tidak ada atribut domain yang khusus Dua karakter pertama berupa huruf ‘DB’, dan tiga karakter berikutnya berupa angka. Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Hanya boleh diisi dengan karakter berupa angka Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘PP’ (Permintaan
82 Field
TglPembelian TglJatuhTempo KdKaryawan NmKaryawan AlmtKaryawan Jabatan Password KdSupervisor NmSupervisor KdPersediaan
TglUpdate KdPenerimaan
TglPenerimaan KdPengeluaran
TglPengeluaran NoFaktur KdPenjualan
Attribute Domain Pembelian), dua karakter berikutnya berupa angka yang menunjukkan bulan dimana transaksi pembelian dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung. ‘[0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/PP/11/2006 Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Dua karakter pertama berupa huruf, karakter berikutnya berupa angka. Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Dua karakter pertama berupa huruf, karakter berikutnya berupa angka. Tidak ada atribut domain yang khusus Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘PS’ (Prosedur Persediaan), dua karakter berikutnya berupa angka yang menunjukkan bulan dimana transaksi persediaan dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung. ‘[09][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/PS/11/2006 Tidak ada atribut domain yang khusus Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘TT’ (Transaksi Terima), dua karakter berikutnya berupa angka yang menunjukkan bulan dimana transaksi penerimaan dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung.‘[0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/ TT /11/2006 Tidak ada atribut domain yang khusus Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘TK’ (Transaksi Pengeluaran), dua karakter berikutnya berupa angka yang menunjukkan bulan dimana transaksi pengeluaran dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung.‘[0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/ TK /11/2006 Tidak ada atribut domain yang khusus Dua karakter pertama berupa huruf ‘FK’, karakter berikutnya berupa angka. Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘TJ’ (Transaksi Penjualan ), dua karakter berikutnya berupa angka yang menunjukkan bulan
83 Field
TglPenjualan TglJatuhTempo KdPengambilan
TglPengambilan KdPembatalan
TglPembatalan KdM arket NmM arket AlmtM arket
Attribute Domain dimana transaksi penjualan dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung. ‘[0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/ TJ /11/2006 Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘TA’ (Transaksi Pengambilan), dua karakter berikutnya berupa angka yang menunjukkan bulan dimana transaksi pengambilan dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung. ‘[0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/ TA /11/2006 Tidak ada atribut domain yang khusus Tiga karakter pertama berupa angka, dibatasi dengan karakter ‘/’, dua karakter berikutnya berupa huruf ‘TB’ (Transsksi Pembatalan), dua karakter berikutnya berupa angka yang menunjukkan bulan dimana transaksi pembatalan dilakukan, empat karakter berikutnya berupa angka menunjukkan tahun saat transaksi berlangsung. ‘[0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ 0-9] [0-9] [0-9] [0-9] ‘contoh : 001/ TB /11/2006 Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus Tidak ada atribut domain yang khusus
Primary key dan Candidate key Tabel 3.5 Tabel Candidate key dan Primary key
Nama Entiti M anufaktur Produk Pembelian
Persediaan
Karyawan M arket
Candidate Key KdM anufaktur KdProduk KdPembelian, KdM anufaktur, KdKaryawan, KdSupervisor, KdProduk KdPersediaan, KdKaryawan, KdSupervisor, KdProduk KdKaryawan, KdSupervisor KdM arket
Primary Key KdM anufaktur KdProduk KdPembelian
Alternate Key
KdM anufaktur, KdKaryawan, KdSupervisor, KdProduk
KdPersediaan
KdKaryawan, KdSupervisor, KdProduk
KdKaryawan
KdSupervisor
KdM arket
84 Nama Entiti Penjualan
Pengambilan
Penerimaan
Pengeluaran
Pembatalan
Candidate Key KdPenjualan, KdFaktur. KdProduk, KdKaryawan, KdSupervisor KdPengambilan, KdPenjualan, KdKaryawan, KdSupervisor KdPenerimaan, KdPembelian, KdKaryawan, KdSupervisor KdPengeluaran, KdPenjualan, KdKaryawan, KdSupervisor KdPembatalan, KdPenjualan, KdKaryawan, KdSupervisor
Primary Key KdPenjualan
Alternate Key KdFaktur. KdProduk, KdKaryawan, KdSupervisor
KdPengambilan
KdPenjualan, KdKaryawan, KdSupervisor
KdPenerimaan
KdPembelian, KdKaryawan, KdSupervisor
KdPengeluaran
KdPenjualan, KdKaryawan, KdSupervisor
KdPembatalan
KdPenjualan, KdKaryawan, KdSupervisor
85
Gambar 3.6 ER Diagram dengan Primary key
3.2.1.4
Mempertimbangkan untuk Penggunaan Konsep Pemodelan
Enhanced M arket terdiri atas dua tipe yaitu tradisional market dan modern market, dimana setiap market pasti merupakan market tradisional atau market modern.
86 Market kdMarket {mandatory,or} Tradisional Market
Modern Market
Gambar 3.7 Entiti Market dengan Model Enchanced
Gambar 3.8 ER Diagram dengan konsep model Enchanced
3.2.1.5
Mengecek Redundansi pada Model
M engecek redudansi pada model konseptual data dilakukan dalam 2 tahapan:
87 1.
M emeriksa kembali entity yang mempunyai hubungan one – one ( 1:1 ) Dalam mengidentifikasikan dua entiti yang arti sebenarnya sama namun
dalam penulisan kata yang berbeda atau kedua relasi memiliki relasi 1:1, maka kedua entiti tersebut harus digabungkan menjadi 1 entiti. Jika primary key kedua entiti berbeda, hanya memilih salah satu primary key kemudian primary key yang lain dapat dijadikan sebagai alternate key. Namun dari konsep model konseptual yang telah didapat, tidak ada entiti yang memiliki hubungan 1:1. M aka tahapan ini tidak perlu dilakukan. 2.
M enghilangkan relasi yang redudansi Tahapan yang kedua adalah menghilangkan relasi yang redudansi, berulang
membentuk suatu circle (lingkaran) dengan panah relasi yang searah. Tahapan ini juga tidak terdapat dalam model konseptual data yang telah dibuat. 3.2.1.6
Memvalidasi
Model
Konseptual
Lokal
dengan
Transaksi
Pengguna Validasi model konseptual dengan model transaction dapat digunakan untuk memastikan bahwa rancangan konseptual yang sedang dibangun dapat mendukung transaksi yang dibutuhkan pengguna. Hal ini dapat dilakukan dengan 2 pendekatan, yaitu : 1. Pendekatan Transaksi a) M enampilkan kode pembelian, tanggal pembelian ke manufaktur b) M enampilkan Karyawan yang melakukan pembelian barang c) M enampilkan daftar pembelian barang d) M enampilkan karyawan yang melakukan penerimaan barang e) M enampilkan kode penjualan, tanggal penjualan dari distributor
88 f) M enampilkan karyawan yang melakukan penjualan g) M enampilkan daftar penjualan barang h) M enampilkan karyawan yang melakukan pembatalan i) M enampilkan karyawan yang melakukan pengeluaran j) M enampilkan daftar persediaan barang k) M enampilkan distributor yang melakukan distribusi ke market l) M enampilkan daftar pengambilan dari penjualan barang m) M enampilkan karyawan yang mengupdate persediaan n) Prosedur update persediaan barang dilakukan karyawan 2. Penggambaran panah transaksi dalam diagram
89
Gambar 3.9 ER Diagram Konseptual dengan panah transaksi
3.2.2
Pemilihan DBMS
Pemilihan DBM S dipengaruhi oleh beberapa factor sebagai berikut : 1. Kemudahan dalam dipergunakan (ease of use) DBM S sebaiknya mudah dipergunakan oleh penggunanya. 2. Kemudahan dalam administrasi (ease of administration) DBM S sebaiknya mudah diadministrasikan.
90 3. Kehandalan (reliability) DBM S sebaiknya mampu mengamankan data apabila terjadi kegagalan piranti lunak atau keras. 4. Biaya (cost) Biaya dari DBM S sebaiknya tidak melebihi anggaran yang diperkirakan oleh perusahaan. 5. Keamanan (security) DBM S sebaiknya dapat membedakan dan memilih di antara berbagai tingkat pengguna dari yang tidak memiliki hak akses hingga hak administrasi penuh. 6. Compatibility DBM S sebaiknya dapat bekerja dengan komponen piranti keras dan lunak lainnya dengan baik di dalam sistem manajemen informasi. 7. Persyaratan M inimum (minimum requirement) DBM S sebaiknya mampu bekerja pada platform computer untuk menjalankan system manajemen informasi. 8. Kedekatan dengan basis data (familiarity with database) Jika struktur dan operasi dari DBM S sudah diketahui, maka waktu yang seharusnya dihabiskan untuk mempelajari DBM S dapat difokuskan kepada perancangan. 9. Skalability M empertimbangkan faktor besar atau kecilnya suatu perusahaan, dan seberapa banyak data yang ditampung pada DBM S tersebut. Dari tabel perbandingan DBM S ( bab 2. ) dan beberapa faktor yang dipertimbangkan untuk memilih DBM S, penulis menyarankan M icrosoft SQL Server 2000 sebagai
91 DBM S yang dipergunakan untuk mengimplementasikan rancangan basis data. Keputusan ini diambil atas pertimbangan beberapa faktor berikut ini: 1
M icrosoft SQL Server 2000 memiliki kemudahan penggunaan yang lebih baik dari Oracle 9i ataupun MySQL. Hal ini terlihat dari data diatas yang menyebutkan M icrosoft SQL Server 2000 memiliki dokumentasi yang cukup mudah dimengerti dan mendapat bantuan teknis bila terjadi masalah. M ySQL secara dokumentasi sudah cukup baik namun tidak mendapat bantuan teknis bila terjadi masalah. Sedangkan dokumentasi Oracle 9i sulit dipahami sehingga menyulitkan user.
2
Dalam hal kemudahannya dalam administrasi Oracle 9i paling sulit. M icrosoft SQL Server 2000 dan M ySQL hamper sama, namun M icrosoft SQL Server 2000 lebih baik sedikit dari MySQL karena banyak fitur-fitur pedukungnya dalam proses administrasinya.
3
Dalam segi kehandalan Oracle 9i paling baik, kedua M icrosoft SQL Server 2000 kemudian M ySQL yang cuma punya kehandalan karena gratis.
4
Dari segi biaya MySQL paling baik karena tidak memerlukan biaya, dan untuk lisensi komersialnya $395. Oracle 9i memiliki biaya paling tinggi diantara ketiganya, lagipula lisensinya berdasarkan per individu bukan medianya. Sedangkan M icrosoft SQL Server 2000 berada ditengah-tengah dalam hal biaya.
5
Oracle 9i mempunyai keamanan paling baik. Kedua, M icrosoft SQL Server 2000, kemudian M ySQL yang keamanannya masih belum jelas.
6
Dalam hal kompatibilitasnya Oracle 9i mendukung strandar paling lengkap dan bisa berjalan disistem operasi yang lengkap pula. MySQL dalam hal standar kalah dengan M icrosoft SQL Server 2000 namun hanya dapat berjalan di system
92 operasi berbasis UNIX. M icrosoft SQL Server 2000 juga hanya dapat berjalan di system operasi buatan M icrosoft. 7
Untuk persyaratan minimum MySQL paling baik. Urutan kedua padda M icrosoft SQL Server 2000, kemudian Oracle 9i.
8
Dari segi familiarnya M icrosoft SQL Server 2000 yang paling baik karena sudah banyak yang bisa mengoperasikannya. Sedangkan Oracle 9i paling jarang dipakai.
9
Dari melihat factor scalability, M icrosoft SQL Server 2000 atau MySQL yang cocok karena perusahaan
tempat rancangan basis data tersebut akan
diimplementasikan, merupakan perusahaan menengah. Oracle 9i dirasa terlalu berlebih. Dari ulasan beberapa faktor diatas dapat diambil kesimpulan bahwa Oracle 9i memiliki kemampuan yang paling baik. Namun Oracle 9i memiliki biaya yang mahal dibanding M icrosoft SQL Server 2000 maupun MySQL dan dirasa terlalu berlebih untuk perusahaan tingkat menengah. MySQL memang mempunyai biaya yang paling murah namun mempunyai banyak keterbatasan dibanding M icrosoft SQL Server 2000 dan hanya dapat berjalan di sistem operasi berbasis UNIX. M icrosoft SQL Server 2000 unggul dalam hal kemudahannya dan berada ditengah-tengah dalam hal kemampuannya, selain itu dari pihak perusahaan sudah menyanggupi masalah pendanaannya. Jadi setelah melewati berbagai pertimbangan, yang dipilih adalah M icrosoft SQL Server 2000.
93 3.2.3
Perancangan Basis Data Logikal
3.2.3.1
Menghilangkan Fitur-Fitur yang Tidak Sesuai dengan Model
Relational Dalam tahap ini akan dilakukan pengecekan terhadap relasi – relasi yang ada, dan apabila ada model – model konseptual yang tidak sesuai dengan model konseptual maka akan dihilangkan. M odel relasi yang tidak sesuai adalah : a. Relasi many-to-many (*:*) baik yang binary maupun recursive
Gambar 3.10 Relasi *:* antara Pembelian dan Produk
94 Gambar 3.11 Pemecahan menjadi dua relationship 1:* antara entity Pembelian dan Produk
Gambar 3.12 Relasi *.* antara Penjualan dan Produk
Gambar 3.13 Pemecahan menjadi dua relationship 1:* antara entity Penjualan dan Produk
95
Gambar 3.14 Relasi *.* antara Pembatalan dan Penjualan
Gambar 3.15 Pemecahan menjadi dua relationship 1:* antara entity Pembatalan dan Penjualan
Gambar 3.16 Relasi *.* antara Penjualan dan Pengambilan
96
Gambar 3.17 Pemecahan menjadi dua relationship 1:* antara entity Penjualan dan Pengambilan
Gambar 3.18 Relasi *.* antara Penerimaan dan Pembelian
Gambar 3.19 Pemecahan menjadi dua relationship 1:* antara entity Penerimaan dan Pembelian
97
Gambar 3.20 Relasi *.* antara Pengeluaran dan Penjualan
Gambar 3.21 Pemecahan menjadi dua relationship 1:* antara entity Pengeluaran dan Penjualan
Gambar 3.22 Relasi *.* antara Produk dan Persediaan
98
Gambar 3.23 Pemecahan menjadi dua relationship 1:* antara entity Produk dan Persediaan
b. Atribut – atribute yang multivalue
Gambar 3.24 Penghilang atribute multivalue pada entity Manufaktur
Gambar 3.25 Penghilang atribute multivalue pada entity Distributor
Gambar 3.26 Penghilang atribute multivalue pada entity Karyawan
99
Gambar 3.27 Penghilang atribute multivalue pada entity Market
c. Atribut – atribute yang recursive
Gambar 3.28 Atribute yang recursive pada entity karyawan
Gambar 3.29 Penghilangan atribute recursive pada entity karyawan
3.2.3.2
Menurunkan Relasi untuk Model Data Logikal
3.2.3.2.1
Strong entities types Manufaktur ( KdM anufkatur, NmM anufaktur, Alamat, Kota, KodePos) Primary key KdM anufaktur
Karyawan
(
KdKaryawan,
NmKaryawan,
KodePos, , Jabatan, Password, KdSupervisor)
Alamat,
Kota,
100 Primary Key KdKaryawan Foreign Key KdSupervisor references Supervisor (KdSupervisor)
Distributor ( KdDistributor, NmDistributor, Alamat, Kota, KodePos) Primary key KdDistributor
Produk ( KdProduk, NmProduk, Ukuran, HargaBeli, HargaJual ) Primary Key KdProduk
Supervisor ( KdSupervisor, NmSupervisor ) Primary key KdSupervisor
Market ( KdM arket, NmM arket, Alamat, Kota, KodePos) Primary key KdM arket
3.2.3.2.2
Weak entities types Penjualan ( KdPenjualan, TglPenjualan, TglJatuhTempo, NoFaktur, KdKaryawan, NmKaryawan, Jabatan, KdDistributor, NmDistributor, Alamat, Kota, KodePos, Telp, Fax, Diskon, status, keterangan) Primary Key KdPenjualan Foreign Key KdKaryawan references Karyawan ( KdKaryawan ) Foreign Key KdDistributor references Distributor(KdDistributor)
Pembelian (KdPembelian, T glPembelian, TglJatuhTempo, KdM anufkatur, NmM anufaktur, Alamat, Kota, KodePos, Telp, Fax, KdKaryawan, NmKaryawan, Jabatan, Diskon, status, keterangan) Primary Key KdPembelian
101 Foreign
Key
KdM anufaktur
references
M anufaktur
KdM anufaktur ) Foreign Key KdKaryawan references Karyawan ( KdKaryawan )
Penerimaan (Kd Penerimaan, T glPenerimaan, KdKaryawan, NmKaryawan, Jabatan) Primary Key KdPenerimaan Foreign Key KdKaryawan references Karyawan (KdKaryawan)
Pengeluaran (KdPengeluaran, TglPengeluaran, KdKaryawan, NmKaryawan, Jabatan) Primary Key KdPengeluaran Foreign Key KdKaryawan references Karyawan (KdKaryawan)
Persediaan (KdPersediaan, TglUpdate, KdKaryawan, NmKaryawan, Jabatan) Primary Key KdPersediaan Foregin Key KdKaryawan references Karyawan (KdKaryawan)
Pembatalan (KdPembatalan, TglPembatalan, KdKaryawan, NmKaryawan, Jabatan) Primary Key KdPembatalan Foreign Key KdKaryawan references Karyawan (KdKaryawan) Pengambilan (KdPengambilan, TglPengambilan, KdKaryawan, NmKaryawan, Jabatan) Primary Key KdPengambilan Foreign Key KdKaryawan references Karyawan (KdKaryawan)
Detail_Penjualan (KdPenjualan, KdProduk, NmProduk, Ukuran,
(
102 HargaJual, Qty) Primary Key KdPenjualan, KdProduk Foreign Key KdPenjualan references Penjualan (KdPenjualan) Foreign Key KdProduk references Produk (KdProduk)
Detail_Pembelian (KdPembelian, KdProduk, NmProduk, Ukuran, HargaBeli, Qty) Primary Key KdPembelian, KdProduk Foreign Key KdPembelian references Pembelian (KdPembelian) Foreign Key KdProduk references Produk (KdProduk)
Detail_Penerimaan (KdPenerimaan, KdPembelian, TglPembelian) Primary Key KdPenerimaan, KdPembelian Foreign Key KdPenerimaan references Penerimaan (KdPenerimaan) Foreign Key KdPembelian references Pembelian (KdPembelian)
Detail_Pengeluaran (KdPengeluaran, KdPenjualan, TglPenjualan) Primary Key KdPengeluaran, KdPenjualan Foreign Key KdPengeluaran references Pengeluaran (KdPengeluaran) Foreign Key KdPenjualan references Penjualan (KdPenjualan)
Detail_Persediaan (KdPersediaan, KdProduk, NmProduk, Ukuran, HargaJual, Qty) Primary Key KdPersediaan, KdProduk
103 Foreign Key KdPersediaan references Persediaan (KdPersediaan) Foreign Key KdProduk reference Produk (KdProduk)
Detail_Pembatalan (KdPembatalan, KdPenjualan, TglPenjualan) Primary Key KdPembatalan, KdPenjualan Foreign Key KdPenjualan references Penjualan (KdPenjualan) Foreign Key KdPembatalan references Pembatalan (KdPembatalan)
Detail_Pengambilan (KdPengambilan, KdPenjualan, TglPenjualan) Primary Key KdPengambilan, KdPenjualan Foreign Key KdPengambilan references Pengambilan (KdPengambilan) Foreign Key KdPenjualan references Penjualan (KdPenjualan)
TelpManufaktur (Telp, KdM anufaktur) Primary Key Telp, KdM anufaktur Foreign
Key
KdM anufaktur
references
M anufaktur
references
M anufaktur
(KdM anufaktur)
FaxManufaktur (Fax, KdM anufaktur) Primary Key Fax, KdM anufaktur Foreign
Key
KdM anufaktur
(KdM anufaktur)
TelpKaryawan (Telp, KdKaryawan) Primary Key Telp, KdKaryawan
104 Foreign Key KdKaryawan references Karyawan (KdKaryawan)
TelpDistributor (Telp, KdDistibutor) Primary Key Telp, KdDistributor Foreign Key KdDistibutor references Distibutor (KdDistibutor)
FaxDistributor (Fax, KdDistibutor) Primary Key Fax, KdDistributor Foreign Key KdDistibutor references Distibutor (KdDistibutor)
TelpMarket (Telp, KdM arket) Primary Key Telp, KdM arket Foreign Key KdM arket references M arket (KdM arket)
3.2.3.2.3
One-to-many (1:*) binary relationship types
1. Hubungan antara entity M anufaktur (parent) dengan Pembelian (child)
2. Hubungan antara entity Karyawan (parent) dengan Pembelian (child)
105
3. Hubungan antara entity Karyawan (parent) dengan Penjualan (child)
4. Hubungan antara entity Karyawan (parent) dengan Penerimaan (child)
5. Hubungan antara entity Karyawan (parent) dengan Pembatalan (child)
106
6. Hubungan antara entity Karyawan (parent) dengan Persediaan (child )
7. Hubungan antara entity Karyawan (parent) dengan Pengambilan (child )
8. Hubungan antara entity Supervisor (parent) dengan Karyawan (child )
107
9. Hubungan antara entity Distributor (parent) dengan Penjualan (child)
10. Hubungan antara entity Distributor (parent) dengan M arket (child)
3.2.3.2.4
Many-to-many (*:*) binary relationship types
1. Hubungan antara entity Produk (parent) dengan Pembelian (child)
108
2. Hubungan antara entity Pembelian (parent) dengan Penerimaan (child) Pembelian ( KdPembelian, TglPembelian, TglJatuhTempo, KdKaryawan, NmKaryawan, Jabatan, KdManufkatur, NmM anufaktur, Alamat, Kota, KodePos, Telp, Fax, Diskon, status, keterangan ) Foreign Key KdManufaktur references Manuf aktur ( KdManufaktur ) Foreign Key KdKaryawan refe rences Karyawa n ( KdKaryawan ) Primary Key KdPembelian
Penerimaan (Kd Penerimaan, TglPenerimaan, KdKaryawan, NmKaryawan, Jabatan) Foreign Key KdKaryawan references Karyawan (KdKaryawan) Primary Key KdPenerimaan
Detail_Penerimaan (KdPenerimaan, KdPembelian, TglPembelian) Primary Key KdPenerimaan, KdPem belian Foreign Key KdPenerimaan references Penerimaan (KdPenerimaan) Foreign Key KdPembelian references Pembelian (KdPembelian)
3. Hubungan antara entity Penjualan (parent) dengan Pengeluaran (child)
109
4. Hubungan antara entity Produk (parent) dengan Penjualan (child)
5. Hubungan antara entity Penjualan (parent) dengan Pembatalan (child)
110
6. Hubungan antara entity Penjualan (parent) dengan Pengambilan (child)
7. Hubungan antara entity Produk (parent) dengan Persediaan (child)
111
3.2.3.2.5
Multi-value attributes
1. Hubungan antara entity M anufaktur (parent) dengan TelpM anufaktur (child)
2. Hubungan antara entity M anufaktur (parent) dengan FaxM anufaktur (child)
3. Hubungan antara entity Karyawan (parent) dengan TelpKaryawan (child)
112
4. Hubungan antara entity Distributor (parent) dengan TelpDistributor (child)
5. Hubungan antara entity Distributor (parent) dengan FaxDistributor (child)
6. Hubungan antara entity M arket (parent) dengan TelpM arket (child)
113
3.2.3.3
Validasi Relasi dengan Normalisasi
1. Pembelian Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Pembelian ( @KdPembelian, T glPembelian, TglJatuhTempo, KdM anufaktur, NmM anufaktur,
Alamat,
Kota,
KodePos,
Telp,
Fax,
KdKaryawan,
NmKaryawan, Jabatan, Diskon, Status, keterangan ) Detail_Pembelian ( @KdPembelian, @KdProduk, NmProduk, Ukuran, HargaBeli, Qty ) Tabel 3.6 Tabel normalisasi entity Pembelian
Tahap
Pembelian
UNF
Sudah memenuhi bentuk normal UNF, pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF, karena tidak ada ketergantungan parsial
3NF
Pembelian = @KdPembelian + T glPembelian + TglJatuhTempo + KdM anufaktur + KdKaryawan + Diskon + Status Detail_Pembelian =
114 Tahap
Pembelian @KdPembelian+@KdProduk+HargaBeli+Qty S tatus_Pembelian = @Status + keterangan Manufaktur = @KdM anufaktur+NmM anufaktur+Alamat+Kota+KodePos+Telp+Fax Karyawan = @KdKaryawan+NmKaryawan+AlmtKaryawan+Kota+Telp+KodePos+ Jabatan+Password+KdSupervisor+NmSupervisor Produk = @KdProduk+NmProduk+Ukuran+HargaBeli+HargaJual
BCNF
Pembelian = @KdPembelian+T glPembelian+TglJatuhTempo+KdM anufaktur+ KdKaryawan +Diskon + Status Detail_Pembelian = @KdPembelian+@KdProduk+HargaBeli +Qty S tatus_Pembelian = @Status + keterangan Manufaktur = @KdM anufaktur+NmM anufaktur+Alamat+Kota+KodePos+Telp+Fax Karyawan = @KdKaryawan+NmKaryawan+AlmtKaryawan+Kota+Telp+KodePos+ Jabatan+Password+KdSupervisor Produk = @KdProduk+NmProduk+Ukuran+HargaBeli+HargaJual Supervisor = @KdSupervisor+NmSupervisor
4NF
Pembelian = @KdPembelian+T glPembelian+TglJatuhTempo+KdM anufaktur+ KdKaryawan + Diskon + Status Detail_Pembelian =
115 Tahap
Pembelian @KdPembelian+@KdProduk++HargaBeli Qty S tatus_Pembelian = @Status + keterangan Manufaktur = @KdM anufaktur+NmM anufaktur+Alamat+Kota+KodePos Karyawan = @KdKaryawan+NmKaryawan+AlmtKaryawan+Kota+KodePos+Jabatan +Password+KdSupervisor Produk = @KdProduk+NmProduk+Ukuran+HargaBeli+HargaJual Supervisor = @KdSupervisor+NmSupervisor Telp Manufaktur = @Telp+Kdmanufaktur Fax Manufaktur = @Fax+Kdmanufaktur Telp Karyawan = @Telp+KdKaryawan
2. Penjualan Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Penjualan ( @KdPenjualan, TglPenjualan, KdDistributor,
NmDistributor,
Alamat,
TglJatuhTempo, NoFaktur,
Kota,
KodePos,
Telp,
Fax,
KdKaryawan, NmKaryawan, Jabatan, Diskon, status, keterangan) Detail_Penjualan ( @KdPenjualan, @KdProduk, NmProduk, Ukuran, HargaJual, Qty)
116 Tabel 3.7 Tabel normalisasi entity Penjualan
Tahap
Penjualan
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF, karena tidak ada ketergantungan parsial
3NF
Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon + Status Detail_ Penjualan = @KdPenjualan+@KdProduk+ HargaJual +Qty S tatus_Penjualan = @Status + Keterangan Karyawan = @KdKaryawan+NmKaryawan+AlmKaryawan+Kota+Telp+KodePos+ Jabatan+Password+KdSupervisor+NmSupervisor Produk = @KdProduk + NmProduk + Ukuran + HargaBeli + HargaJual Distributor = @KdDistributor + NmDistributor + Alamat + Kota + KodePos + Telp + Fax
BCNF
Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Detail_Penjualan = @KdPenjualan+@KdProduk+ HargaJual +Qty S tatus_Penjualan = @Status + Keterangan Karyawan =
117 Tahap
Penjualan @KdKaryawan+NmKaryawan+AlmtKaryawan+Kota+Telp+KodePos+ Jabatan+Password+ KdSupervisor Produk = @KdProduk+NmProduk+Ukuran+ HargaBeli + HargaJual Distributor = @KdDistributor + NmDistributor + Alamat + Kota + KodePos + Telp + Fax Supervisor= @KdSupervisor + NmSupervisor
4NF
Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Detail_Penjualan = @KdPenjualan + @KdProduk + HargaJual +Qty S tatus_Penjualan = @Status + Keterangan Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + KodePos + Jabatan + Password + KdSupervisor Produk = @KdProduk + NmProduk + Ukuran + HargaBeli + HargaJual Distributor = @KdDistributor + NmDistributor + Alamat + Kota + KodePos Supervisor = @KdSupervisor + NmSupervisor Telp Karyawan = @ Telp + @KdKaryawan Telp Distributor = @ Telp + @KdDistributor Fax Distributor = @ Fax + @KdDistributor
118 3. Penerimaan Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Penerimaan
(
@KdPenerimaan,
T glPenerimaan,
KdKaryawan,
NmKaryawan, Jabatan) Detail_ Penerimaan ( @KdPenerimaan, @KdPembelian, T glPembelian) Tabel 3.8 Tabel normalisasi entity Penerimaan
Tahap
Penerimaan
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Pada bentuk normal terakhir masih terdapat transitive depedency (non key bergantung pada non-key), maka dibuat tabel baru . M aka bentuk normal 1NF menjadi : Penerimaan = @KdPenerimaan + T glPenerimaan + KdKaryawan Detail_ Penerimaan = @KdPenerimaan + @KdPembelian Pembelian = @KdPembelian+T glPembelian+TglJatuhTempo+KdM anufaktur+ KdKaryawan + Diskon + Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor + NmSupervisor // M uncul tabel karyawan
BCNF
Penerimaan
=
119 Tahap
Penerimaan @KdPenerimaan + T glPenerimaan + KdKaryawan Detail_ Penerimaan = @KdPenerimaan + @KdPembelian Pembelian = @KdPembelian+T glPembelian+TglJatuhTempo+KdM anufaktur+ KdKaryawan + Diskon + Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor Supervisor = @KdSupervisor + NmSupervisor
4NF
Penerimaan
=
@KdPenerimaan + T glPenerimaan + KdKaryawan Detail_ Penerimaan = @KdPenerimaan + @KdPembelian Pembelian = @KdPembelian+T glPembelian+TglJatuhTempo+KdM anufaktur+ KdKaryawan + Diskon + Status Karyawan
=
@KdKaryawan + NmKaryawan + AlmKaryawan + Kota + KodePos + Jabatan + Password + KdSupervisor Supervisor
=
@KdSupervisor + NmSupervisor Telp Karyawan
=
@Telp + @KdKaryawan 4. Pengeluaran Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional :
120 Pengeluaran
(
@KdPengeluaran,
TglPengeluaran,
KdKaryawan,
NmKaryawan, Jabatan) Detail_ Pengeluaran ( @KdPengeluaran, @KdPenjualan, T glPenjualan) Tabel 3.9 Tabel normalisasi entity Pengeluaran
Tahap
Pengeluaran
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Pada bentuk normal terakhir masih terdapat transitive depedency (non key bergantung pada non-key), maka dibuat tabel baru . M aka bentuk normal 1NF menjadi : Pengeluaran = @KdPengeluaran + TglPengeluaran + KdKaryawan Detail_ Pengeluaran = @KdPengeluaran + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan
=
@KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor + NmSupervisor // M uncul tabel karyawan BCNF
Pengeluaran = @KdPengeluaran + TglPengeluaran + KdKaryawan Detail_ Pengeluaran = @KdPengeluaran + @KdPenjualan Penjualan =
121 Tahap
Pengeluaran @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan
=
@KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor Supervisor
=
@KdSupervisor + NmSupervisor 4NF
Pengeluaran = @KdPengeluaran + TglPengeluaran + KdKaryawan Detail_ Pengeluaran = @KdPengeluaran + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan
=
@KdKaryawan + NmKaryawan + AlmKaryawan + Kota + KodePos + Jabatan + Password + KdSupervisor Supervisor
=
@KdSupervisor + NmSupervisor Telp Karyawan = @Telp + @KdKaryawan 5. Persediaan Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Persediaan ( @KdPersediaan, TglUpdate, KdKaryawan,
NmKaryawan,
Jabatan) Detail_Persediaan ( @KdPersediaan, @KdProduk, NmProduk, Ukuran, HargaBeli, HargaJual, Qty)
122 Tabel 3.10 Tabel normalisasi entity Persediaan
Tahap
Persediaan
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF, karena tidak ada ketergantungan parsial
3NF
Pada bentuk normal terakhir masih terdapat transitive depedency (non key bergantung pada non-key), maka dibuat tabel baru.Bentuk normal 1NF : Persediaan = @KdPersediaan + TglUpdate + KdKaryawan Detail_Persediaan = @KdPersediaan + @KdProduk + Qty Karyawan
=
@KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor + NmSupervisor // muncul tabel karyawan Produk = @KdProduk + NmProduk + Ukuran + HargaBeli + HargaJual // M uncul tabel produk BCNF
Persediaan = @KdPersediaan + TglUpdate + KdKaryawan Detail_Persediaan = @KdPersediaan + @KdProduk + Qty Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor Produk = @KdProduk + NmProduk + Ukuran + HargaBeli + HargaJual Supervisor =
123 Tahap
Persediaan @KdSupervisor + NmSupervisor
4NF
Persediaan = @KdPersediaan + TglUpdate + KdKaryawan Detail_Persediaan = @KdPersediaan + @KdProduk + Qty Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + KodePos + Jabatan + Password + KdSupervisor Produk = @KdProduk + NmProduk + Ukuran + HargaBeli + HargaJual Supervisor = @KdSupervisor + NmSupervisor Telp Karyawan = @Telp + @KdKaryawan
6. Pembatalan Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Pembatalan ( @KdPembatalan, TglPembatalan, KdKaryawan, NmKaryawan, Jabatan) Detail_ Pembatalan ( @KdPembatalan, @KdPenjualan, TglPenjualan ) Tabel 3.11 Tabel normalisasi entity Pembatalan
Tahap
Pembatalan
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
124 Tahap
Pembatalan
3NF
Pada bentuk normal terakhir masih terdapat transitive depedency (non key bergantung pada non-key), maka dibuat tabel baru . M aka bentuk normal 3NF menjadi : Pembatalan = @KdPembatalan + TglPembatalan + KdKaryawan Detail_ Pembatalan = @KdPembatalan + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor + NmSupervisor // muncul tabel karyawan
BCNF
Pembatalan = @KdPembatalan + TglPembatalan + KdKaryawan Detail_ Pembatalan = @KdPembatalan + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor Supervisor = @KdSupervisor + NmSupervisor
4NF
Pembatalan = @KdPembatalan + TglPembatalan + KdKaryawan Detail_ Pembatalan =
125 Tahap
Pembatalan @KdPembatalan + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + KodePos + Jabatan + Password + KdSupervisor Supervisor = @KdSupervisor + NmSupervisor Telp Karyawan = @Telp + @KdKaryawan
7. Pengambilan Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Pengambilan
(
@KdPengambilan,
TglPengambilan,
KdKaryawan,
NmKaryawan, Jabatan) Detail_ Pengambilan ( @KdPengambilan, @KdPenjualan, T glPenjualan ) Tabel 3.12 Tabel normalisasi entity Pengambilan
Tahap
Pengambilan
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Pada bentuk normal terakhir masih terdapat transitive depedency (non key bergantung pada non-key), maka dibuat tabel baru . M aka bentuk normal 1NF menjadi :
126 Tahap
Pengambilan Pengambilan = @KdPengambilan + T glPengambilan + KdKaryawan Detail_Pengambilan = @KdPengambilan + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor + NmSupervisor // muncul tabel karyawan
BCNF
Pengambilan = @KdPengambilan + T glPengambilan + KdKaryawan Detail_Pengambilan = @KdPengambilan + @KdKdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur + KdKaryawan + KdDistributor + Diskon+ Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + Telp + KodePos + Jabatan + Password + KdSupervisor Supervisor = @KdSupervisor + NmSupervisor
4NF
Pengambilan = @KdPengambilan + T glPengambilan + KdKaryawan Detail_Pengambilan = @KdPengambilan + @KdPenjualan Penjualan = @KdPenjualan + T glPenjualan + TglJatuhTempo + NoFaktur +
127 Tahap
Pengambilan KdKaryawan + KdDistributor + Diskon+ Status Karyawan = @KdKaryawan + NmKaryawan + AlmKaryawan + Kota + KodePos + Jabatan + Password + KdSupervisor Supervisor = @KdSupervisor + NmSupervisor Telp Karyawan = @Telp + @KdKaryawan
8. Manufaktur Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Manufaktur ( @ KdM anufaktur, NmM anufaktur, Alamat, Kota, KodePos) Telp_Manufaktur ( @Telp, @KdM anufaktur ) Fax_Manufaktur ( @Fax, @KdM anufaktur ) Tabel 3.13 Tabel normalisasi entity Manufaktur
Tahap
Manufaktur
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Sudah memenuhi bentuk normal 3NF pada saat penghilangan fitur – fitur yang tidak relasional
BCNF
Sudah memenuhi bentuk normal BCNF pada saat penghilangan fitur – fitur yang tidak relasional
4NF
Sudah memenuhi bentuk normal 4NF pada saat penghilangan fitur – fitur yang tidak relasional
128 9. Karyawan Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Karyawan ( @ KdKaryawan, NmKaryawan, Alamat, Kota, KodePos, Jabatan, Password, KdSupervisor ) Supervisor (@KdSupervisor, NmSupervisor ) Telp_Karyawan ( @Telp, @KdKaryawan) Tabel 3.14 Tabel normalisasi entity Karyawan
Tahap
Karyawan
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Sudah memenuhi bentuk normal 3NF pada saat penghilangan fitur – fitur yang tidak relasional
BCNF
Sudah memenuhi bentuk normal BCNF pada saat penghilangan fitur – fitur yang tidak relasional
4NF
Sudah memenuhi bentuk normal 4NF pada saat penghilangan fitur – fitur yang tidak relasional
10. Distributor Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Distributor ( @ KdDistributor, NmDistributor, Alamat, Kota, KodePos) Telp_ Distributor ( @Telp, @KdDistributor) Fax_ Distributor ( @Fax, @KdDistributor)
129 Tabel 3.15 Tabel normalisasi entity Distributor
Tahap
Distributor
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Sudah memenuhi bentuk normal 3NF pada saat penghilangan fitur – fitur yang tidak relasional
BCNF
Sudah memenuhi bentuk normal BCNF pada saat penghilangan fitur – fitur yang tidak relasional
4NF
Sudah memenuhi bentuk normal 4NF pada saat penghilangan fitur – fitur yang tidak relasional
11. Produk Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Produk (@KdProduk, NmProduk, Ukuran, HargaBeli, HargaJual) Tabel 3.16 Tabel normalisasi entity Produk
Tahap
Produk
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Sudah memenuhi bentuk normal 3NF pada saat penghilangan fitur – fitur yang tidak relasional
BCNF
Sudah memenuhi bentuk normal BCNF pada saat penghilangan fitur –
130 Tahap
Produk fitur yang tidak relasional
4NF
Sudah memenuhi bentuk normal 4NF pada saat penghilangan fitur – fitur yang tidak relasional
12. Market Bentuk normal terakhir setelah proses penghilangan fitur – fitur yang tidak relasional : Market ( @ KdKaryawan, NmKaryawan, Alamat, Kota, KodePos) Telp_Market ( @Telp, @KdM arket) Tabel 3.17 Tabel normalisasi entity Market
Tahap
Market
UNF
Sudah memenuhi bentuk normal UNF pada saat penghilangan fitur – fitur yang tidak relasional
1NF
Sudah memenuhi bentuk normal 1NF pada saat penghilangan fitur – fitur yang tidak relasional
2NF
Sudah memenuhi bentuk normal 2NF pada saat penghilangan fitur – fitur yang tidak relasional
3NF
Sudah memenuhi bentuk normal 3NF pada saat penghilangan fitur – fitur yang tidak relasional
BCNF
Sudah memenuhi bentuk normal BCNF pada saat penghilangan fitur – fitur yang tidak relasional
4NF
Sudah memenuhi bentuk normal 4NF pada saat penghilangan fitur – fitur yang tidak relasional
131
Gambar 3.30 ER Diagram model logikal
132
MsProduk
Pembelian
Status_Pembelian
PK
KdPembelian
PK Status
FK1 FK2
TglPembelian TglJatuhTempo KdKaryawan KdManufaktur Diskon Status
Detail_Pembelian
PK KdProduk
PK,FK2 KdPembelian PK,FK1 KdProduk
NmProduk Ukuran HargaBeli HargaJual
HargaBeli Qty
FK3
Keterangan
MsManufaktur PK KdManufaktur
Detail_Penerimaan Detail_Persediaan PK,FK1 PK,FK2
PK,FK1 KdPenerimaan PK,FK2 KdPembelian
KdPersediaan KdProduk
PK
KdKaryawan
FK1
NmKaryawan AlmtKaryawan Kota KodePos Jabatan Password KdSupervisor
Qty Penerimaan
Persediaan PK
PK
KdPenerimaan
FK1
TglPenerimaan KdKaryawan
NmManufaktur AlmtManufaktur Kota KodePos
MsKaryawan
TelpManufaktur PK,FK1 PK
KdManufaktur Telp
KdPersediaan
TglUpdate FK1 KdKaryawan
Penjualan PK
Status_Penjualan PK Status Keterangan
KdPenjualan
TelpKaryawan
FaxManufaktur
PK,FK1 KdKaryawan PK Telp
PK,FK1 KdManufaktur PK Fax
TglPenjualan TglJatuhTempo NoFaktur FK1 KdKaryawan FK2 KdDistributor Diskon FK3 Status
Detail_Penjualan
MsSupervisor
PK
KdPengeluaran
FK1
TglPengeluaran KdKaryawan
MsDistributor
PK,FK1 KdPenjualan PK,FK2 KdProduk
PK KdSupervisor
Pengeluaran
PK KdDistributor NmDistributor AlmtDistributor Kota KodePos
HargaJual Qty
Pembatalan PK
KdPembatalan
FK1
TglPembatalan KdKaryawan
Detail_Pengeluaran
Pengambilan PK
KdPengambilan
FK1
TglPengambilan KdKaryawan
PK,FK1 KdPengeluaran PK,FK2 KdPenjualan
FaxDistributor
Detail_Pembatalan
PK,FK1 KdDistributor PK Fax
PK,FK1 KdPembatalan PK,FK2 KdPenjualan
MsMarket Detail_Pengambilan PK,FK1 PK,FK2
NmSupervisor
KdPengambilan KdPenjualan
PK
KdMarket
FK1
NmMarket AlmtMarket Kota KodePos KdDistributor
TelpDistributor PK,FK1 PK
KdDistributor Telp
TelpMarket PK,FK1 KdMarket PK TelpMarket
Gambar 3.31 ERD GLOBAL
3.2.3.4
Validasi Relasi Melalui Transaksi Pengguna
M odel logikal harus diuji apakah dapat menjalankan transaksi yang diinginkan oleh pengguna. Berikut adalah contoh – contoh transaksi seperti
133 data entry, data update / deletion, dan data queries yang dapat divalidasikan terhadap model logikal : a. Tampilkan kode pembelian, tanggal pembelian, tanggal jatuh tempo, kode manufaktur serta kode karyawan yang melakukan pembelian dari entity pembelian dan manufaktur b. Tampilkan detail pembelian dari entity detail_pembelian dan msproduk c. Tampilkan karyawan yang melakukan pembelian barang dari entity pembelian dan karyawan d. Tampilkan Kode pembelian, kode produk serta jumlah kuantitas produk pembelian dari entity pembelian dan detail_pembelian e. Tampilkan karyawan yang melakukan penerimaan barang dari entity penerimaan dan karyawan f. Tampilkan detail Penerimaan dari entity detail_penerimaan, pembelian, detail_pembelian dan msproduk g. Tampilkan Kode serta tanggal penerimaan dan pembelian dari entity penerimaan dan detail_penerimaan h. Tampilkan karyawan yang memproses persediaan dari entity persediaan dan karyawan i. Tampilkan detail persediaan dari entity detail_persediaan dan msproduk j. Tampilkan Kode persediaan, tanggal update persediaan, kode produk berserta jumlah kuantitas produk persediaan dari entity persediaan dan detail_persediaan k. Tampilkan karyawan yang melakukan transaksi penjualan dari entity penjualan dan karyawan
134 l. Tampilkan Detail penjualan dari entity detail_penjualan dan msproduk m. Tampilkan Kode penjualan, kode produk serta jumlah kuantitas produk penjualan dari entity penjualan dan detail_ penjualan n. Tampilkan
karyawan
yang melakukan
pengeluaran
dari
entity
pengeluaran dan mskaryawan o. Tampilkan Detail pengeluaran dari entity detail_pengeluaran, penjualan, detail_penjualan dan msproduk p. Tampilkan Kode serta tanggal pengeluaran dan penjualan dari entity pengeluaran dan detail_pengeluaran q. Tampilkan karyawan yang melakukan pembatalan dari entity pembatalan dan karyawan r. Tampilkan Detail pembatalan dari entity Detail_pembatalan, penjualan, detail_penjualan dan msproduk s. Tampilkan Kode serta tanggal pembatalan dan penjualan dari entity pembatalan dan detail_ pembatalan t. Tampilkan kode penjualan, tanggal penjualan, tanggal jatuh tempo, kode distributor yang memesan barang serta kode karyawan yang melakukan penjualan dari entity penjualan dan distributor u. Tampilkan detail pengambilan dari entity detail_pengambilan, penjualan, detail_penjualan dan msproduk v. Tampilkan Kode serta tanggal pengambilan dan penjualan dari entity pengambilan dan detail_ pengambilan w. Tampilkan
karyawan
yang mengurus
pengambilan dan mskaryawan
pengambilan
dari
entity
135 x. Tampilkan distributor yang mendistribusikan barang dan market yang menjadi daerah distribusi dari entity distributor dan market y. Tampilkan status pembelian
barang dari entity
pembelian dan
barang dari
penjualan
status_pembelian z. Tampilkan
status penjualan
entity
status_penjualan
Gambar 3.32 ER Diagram Logikal dengan panah transaksi
dan
136 3.2.3.5
Definisi Integrity Constraint Tabel 3.18 Tabel kendala integrity
Pembelian(KdPembelian, TglPembelian, TglJatuhTempo, KdM anufaktur,KdKaryawan, Diskon, status) Primary Key KdPembelian Foreign Key KdM anufaktur references M anufaktur ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Status references Status_Pembelian ON UPDATE CASCADE ON DELETE NO ACTION Detail_ Pembelian (KdPembelian, KdProduk, HargaBeli,Qty) Primary Key KdPembelian, KdProduk Foreign Key KdPembelian references Pembelian ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdProduk references Produk ON UPDATE NO ACTION ON DELETE NO ACTION S tatus_Pembelian ( Status, Keterangan ) Primary Key Status Penjualan(KdPenjualan, TglPenjualan, TglJatuhTempo, NoFaktur, KdKaryawan, KdDistributor, Diskon) Primary Key KdPenjualan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON
137 DELETE NO ACTION Foreign Key KdDistributor references Distributor ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Status_Penjualan
references
Status_Pembelian
ON
UPDATE
CASCADE ON DELETE NO ACTION Detail_ Penjualan (KdPenjualan, KdProduk, HargaJual, Qty) Primary Key KdPenjualan, KdProduk Foreign Key KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdProduk references Produk ON UPDATE NO ACTION ON DELETE NO ACTION S tatus_Penjualan (Status, Keterangan ) Primary Key Status Karyawan (KdKaryawan, NmKaryawan, AlmKaryawan, Kota, KodePos, Jabatan, Password, KdSupervisor) Primary Key KdKaryawan Foreign Key KdSupervisor references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Telp_Karyawan (Telp, KdKaryawan) Primary Key Telp, KdKaryawan Produk (KdProduk, NmProduk, Ukuran, HargaBeli, HargaJual) Primary Key KdProduk Supervisor (KdSupervisor, NmSupervisor)
138 Primary Key KdSupervisor Distributor (KdDistributor, NmDistributor, Alamat, Kota, KodePos) Primary Key KdDistributor Telp_Distributor (KdDistributor, Telp) Primary Key Telp, KdDistributor Fax_Distributor (KdDistributor, Fax) Primary Key Fax, KdDistributor Penerimaan (KdPenerimaan, T glPenerimaan, KdKaryawan) Primary Key KdPenerimaan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Detail_Penerimaan (KdPenerimaan, KdPembelian) Primary Key KdPenerimaan, KdPembelian Foreign Key KdPenerimaan references Penerimaan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPembelian references Pembelian ON UPDATE CASCADE ON DELETE NO ACTION Pengeluaran (KdPengeluaran, TglPengeluaran, KdKaryawan) Primary Key KdPengeluaran Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Detail_Pengeluaran (KdPengeluaran, KdPenjualan) Primary Key KdPengeluaran, KdPenjualan
139 Foreign Key KdPengeluaran references Pengeluaran ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION Persediaan (KdPersediaan, TglUpdate, KdKaryawan) Primary Key KdPersediaan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Detail_Persediaan (KdPersediaan, KdProduk, Qty) Primary Key KdPersediaan, KdProduk Foreign Key KdPersediaan references Persediaan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdProduk references Produk ON UPDATE CASCADE ON DELETE NO ACTION Pembatalan (KdPembatalan, TglPembatalan, KdKaryawan) Primary Key KdPembatalan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Detail _Pembatalan(KdPembatalan, KdPenjualan) Primary Key KdPembatalan, KdPenjualan Foreign Key KdPembatalan references Pembatalan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPenjualan references Penjualan
140 Pengambilan (KdPengambilan, TglPengambilan, KdKaryawan) Primary Key KdPengambilan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Detail_ Pengambilan (KdPengambilan, KdPenjualan) Primary Key KdPengambilan, KdPenjualan Foreign Key KdPengambilan references Pengambilan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION Manufaktur (KdM anufaktur, NmM anufaktur, AlmM anufaktur, Kota, KodePos) Primary Key KdM anufaktur Telp_Manufaktur (Telp, Kdmanufaktur) Primary Key Telp, KdM anufaktur Fax_Manufaktur (Fax, KdM anufaktur) Primary Key Fax, , KdM anufaktur Market (KdM arket, NmM arket, Alamat, Kota, KodePos) Primary Key KdM arket Telp Market (Telp, KdM arket) Primary Key Telp, KdM arket
3.2.3.6
Membangun dan Memvalidasi Model Data Logikal Global
Model Global Pembelian
141 M odel Lokal Pembelian
M odel Perusahaan
Pembelian ( KdPembelian, TglPembelian, Pembelian ( KdPembelian, TglPembelian, TglJatuhTempo, KdM anufaktur,
TglJatuhTempo, KdM anufaktur,
KdKaryawan, Diskon, status )
KdKaryawan, Diskon, status )
Primary Key KdPembelian
Primary Key KdPembelian
Foreign Key KdM anufaktur
references Foreign Key KdM anufaktur
references
M anufaktur
M anufaktur
Foreign Key KdKaryawan references
Foreign Key KdKaryawan references
Karyawan
Karyawan
Foreign Key Status references
Foreign Key Status references
Status_Pembelian
Status_Pembelian M odel Global
Pembelian
(
KdPembelian,
TglPembelian,
TglJatuhTempo,
KdM anufaktur,
KdKaryawan, Diskon, status ) Primary Key KdPembelian Foreign Key KdM anufaktur references M anufaktur ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Status references Status_Pembelian ON UPDATE CASCADE ON DELETE NO ACTION Model Global Detail_ Pembelian M odel Lokal
M odel Perusahaan
142 Detail_Pembelian
(KdPembelian, Detail_Pembelian
(KdPembelian,
KdProduk, Qty, HargaBeli)
KdProduk, HargaBeli Qty)
Primary Key KdPembelian, KdProduk
Primary Key KdPembelian, KdProduk
Foreign Key KdPembelian
references Foreign Key KdPembelian
references
Pembelian
Pembelian
Foreign Key KdProduk references
Foreign Key KdProduk references
Produk
Produk M odel Global
Detail_Pembelian (KdPembelian, KdProduk, Qty) Primary Key KdPembelian, KdProduk Foreign Key KdPembelian references Pembelian ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdProduk references Produk ON UPDATE NO ACTION ON DELETE NO ACTION Model Global S tatus_Pembelian M odel Lokal
M odel Perusahaan
S tatus_Pembelian (Status, Keterangan)
S tatus_Pembelian (Status, Keterangan)
Primary Key Status
Primary Key Status M odel Global
S tatus_Pembelian (Status, Keterangan) Primary Key Status Model Global Manufaktur M odel Lokal
M odel Perusahaan
143 Manufaktur (KdM anufaktur,
Manufaktur (KdM anufaktur,
NmM anufaktur, Alamat, Kota, KodePos)
NmM anufaktur, Alamat, Kota, KodePos)
Primary Key KdM anufaktur
Primary Key KdM anufaktur M odel Global
Manufaktur (KdM anufaktur, NmM anufaktur, Alamat, Kota, KodePos) Primary Key KdM anufaktur Model Global Karyawan M odel Lokal
M odel Perusahaan
Karyawan (KdKaryawan, NmKaryawan, Karyawan (KdKaryawan, NmKaryawan, AlmKaryawan, Kota, KodePos, Jabatan, AlmKaryawan, Kota, KodePos, Jabatan, Password, KdSupervisor)
Password, KdSupervisor)
Primary Key KdKaryawan
Primary Key KdKaryawan
Foreign Key KdSupervisor
references Foreign Key KdSupervisor
references
Karyawan
Karyawan
M odel Global Karyawan (KdKaryawan, NmKaryawan, AlmKaryawan, Kota, KodePos, Jabatan, Password, KdSupervisor) Primary Key KdKaryawan Foreign Key KdSupervisor references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Produk M odel Lokal
M odel Perusahaan
Produk (KdProduk, NmProduk, Ukuran, Produk (KdProduk, NmProduk, Ukuran,
144 HargaBeli, HargaJual)
HargaBeli, HargaJual)
Primary Key KdProduk
Primary Key KdProduk M odel Global
Produk (KdProduk, NmProduk, Ukuran, HargaBeli, HargaJual) Primary Key KdProduk Model Global S upervisor M odel Lokal Supervisor
M odel Perusahaan
(KdSupervisor, Supervisor
(KdSupervisor,
NmSupervisor)
NmSupervisor)
Primary Key KdSupervisor
Primary Key KdSupervisor M odel Global
Supervisor (KdSupervisor, NmSupervisor) Primary Key KdSupervisor Model Global Telp Manufaktur M odel Lokal
M odel Perusahaan
Telp_Manufaktur (Telp, Kdmanufaktur)
Telp_Manufaktur (Telp, Kdmanufaktur)
Primary Key Telp, KdM anufaktur
Primary Key Telp, KdM anufaktur M odel Global
Telp_Manufaktur (Telp, Kdmanufaktur) Primary Key Telp, KdM anufaktur Model Global Fax Manufaktur M odel Lokal Fax_Manufaktur (Fax, Kdmanufaktur)
M odel Perusahaan Fax_Manufaktur (Fax, Kdmanufaktur)
145 Primary Key Fax, KdM anufaktur
Primary Key Fax, KdM anufaktur M odel Global
Fax_Manufaktur (Fax, Kdmanufaktur) Primary Key Fax, KdM anufaktur Model Global Telp Karyawan M odel Lokal
M odel Perusahaan
Telp_Karyawan (Telp, KdKaryawan)
Telp_Karyawan (Telp, KdKaryawan)
Primary Key Telp, KdKaryawan
Primary Key Telp, KdKaryawan M odel Global
Telp_Karyawan (Telp, KdKaryawan) Primary Key Telp, KdKaryawan Model Global Penjualan M odel Lokal
M odel Perusahaan
Penjualan(KdPenjualan, TglPenjualan,
Penjualan(KdPenjualan, TglPenjualan,
TglJatuhTempo, NoFaktur, KdKaryawan,
TglJatuhTempo, NoFaktur, KdKaryawan,
KdDistributor, Diskon, status)
KdDistributor, Diskon, status)
Primary Key KdPenjualan
Primary Key KdPenjualan
Foreign Key KdKaryawan
references Foreign Key KdKaryawan
references
Karyawan
Karyawan
Foreign Key KdDistributor references
Foreign Key KdDistributor references
Distributor
Distributor
Foreign Key Status references
Foreign Key Status references
Status_Penjualan
Status_Penjualan
146 M odel Global Penjualan(KdPenjualan, TglPenjualan, TglJatuhTempo, NoFaktur, KdKaryawan, KdDistributor, Diskon, status) Primary Key KdPenjualan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdDistributor references Distributor ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key Status references Status_Penjualan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Detail_ Penjualan M odel Lokal
M odel Perusahaan
Detail_ Penjualan (KdPenjualan,
Detail_ Penjualan (KdPenjualan,
KdProduk, HargaJual, Qty)
KdProduk, HargaJual, Qty)
Primary Key KdPenjualan, KdProduk
Primary Key KdPenjualan, KdProduk
Foreign Key KdPenjualan
references Foreign Key KdPenjualan
references
Penjualan
Penjualan
Foreign Key KdProduk references
Foreign Key KdProduk references
Produk
Produk M odel Global
Detail_ Penjualan (KdPenjualan, KdProduk, HargaJual, Qty) Primary Key KdPenjualan, KdProduk Foreign Key KdPenjualan references Penjualan ON UPDATE CASCADE ON
147 DELETE NO ACTION Foreign Key KdProduk references Produk ON UPDATE NO ACTION ON DELETE NO ACTION Model Global S tatus_Penjualan M odel Lokal
M odel Perusahaan
S tatus_Penjualan (Status, Keterangan)
S tatus_Penjualan (Status, Keterangan)
Primary Key Status
Primary Key Status M odel Global
S tatus_ Penjualan (Status, Keterangan) Primary Key Status Model Global Distributor M odel Lokal
M odel Perusahaan
Distributor (KdDistributor,
Distributor (KdDistributor,
NmDistributor, Alamat, Kota, KodePos)
NmDistributor, Alamat, Kota, KodePos)
Primary Key KdDistributor
Primary Key KdDistributor M odel Global
Distributor (KdDistributor, NmDistributor, Alamat, Kota, KodePos) Primary Key KdDistributor Model Global Telp Distributor M odel Lokal
M odel Perusahaan
Telp_Distributor (Telp, KdDistributor)
Telp_Distributor (Telp, KdDistributor)
Primary Key Telp, KdDistributor
Primary Key Telp, KdDistributor M odel Global
148 Telp_Distributor (Telp, KdDistributor) Primary Key Telp, KdDistributor Model Global Fax Distributor M odel Lokal
M odel Perusahaan
Fax_Distributor (Fax, KdDistributor)
Fax_Distributor (Fax, KdDistributor)
Primary Key Fax, KdDistributor
Primary Key Fax, KdDistributor M odel Global
Fax_Distributor (Fax, KdDistributor) Primary Key Fax, KdDistributor Model Global Penerimaan M odel Lokal
M odel Perusahaan
Penerimaan (KdPenerimaan,
Penerimaan (KdPenerimaan,
TglPenerimaan, KdKaryawan)
TglPenerimaan, KdKaryawan)
Primary Key KdPenerimaan
Primary Key KdPenerimaan
Foreign Key KdKaryawan
references Foreign Key KdKaryawan
references
Karyawan
Karyawan
M odel Global Penerimaan (KdPenerimaan, T glPenerimaan, KdKaryawan) Primary Key KdPenerimaan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Penerimaan_Detail M odel Lokal
M odel Perusahaan
149 Detail_ Penerimaan (KdPenerimaan,
Detail_ Penerimaan (KdPenerimaan,
KdPembelian)
KdPembelian)
Primary Key KdPenerimaan,
Primary Key KdPenerimaan,
KdPembelian
KdPembelian
Foreign Key KdPenerimaan
references Foreign Key KdPenerimaan
references
Penerimaan
Penerimaan Foreign Key KdPembelian
references Foreign Key KdPembelian
references
Pembelian
Pembelian
M odel Global Detail_ Penerimaan (KdPenerimaan, KdPembelian) Primary Key KdPenerimaan, KdPembelian Foreign Key KdPenerimaan references Penerimaan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPembelian references Pembelian ON UPDATE CASCADE ON DELETE NO ACTION Model Global Pengeluaran M odel Lokal
M odel Perusahaan
Pengeluaran (KdPengeluaran,
Pengeluaran (KdPengeluaran,
TglPengeluaran, KdKaryawan)
TglPengeluaran, KdKaryawan)
Primary Key KdPengeluaran
Primary Key KdPengeluaran
Foreign Key KdKaryawan Karyawan
references Foreign Key KdKaryawan Karyawan M odel Global
references
150 Pengeluaran (KdPengeluaran, TglPengeluaran, KdKaryawan) Primary Key KdPengeluaran Foreign Key KdKaryawan references Karyawan Model Global Pengeluaran_Detail M odel Lokal
M odel Perusahaan
Detail_ Pengeluaran (KdPengeluaran,
Detail_ Pengeluaran (KdPengeluaran,
KdPenjualan)
KdPenjualan)
Primary Key KdPengeluaran,
Primary Key KdPengeluaran,
KdPenjualan
KdPenjualan
Foreign Key KdPengeluaran references Foreign Key KdPengeluaran references Pengeluaran
Pengeluaran Foreign Key KdPenjualan
references Foreign Key KdPenjualan
references
Penjualan
Penjualan
M odel Global Detail_ Pengeluaran (KdPengeluaran, KdPenjualan) Primary Key KdPengeluaran, KdPenjualan Foreign Key KdPengeluaran references Pengeluaran ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Persediaan M odel Lokal Persediaan (KdPersediaan, TglUpdate,
M odel Perusahaan Persediaan (KdPersediaan, TglUpdate,
151 KdKaryawan)
KdKaryawan)
Primary Key KdPersediaan
Primary Key KdPersediaan
Foreign Key KdKaryawan
references Foreign Key KdKaryawan
Karyawan
references
Karyawan M odel Global
Persediaan (KdPersediaan, TglUpdate, KdKaryawan) Primary Key KdPersediaan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Persediaan_Detail M odel Lokal
M odel Perusahaan
Detail_ Persediaan (KdPersediaan,
Detail_ Persediaan (KdPersediaan,
KdProduk, Qty)
KdProduk, Qty)
Primary Key KdPersediaan,
Primary Key KdPersediaan,
KdKaryawan
KdKaryawan
Foreign Key KdPersediaan
references Foreign Key KdPersediaan Persediaan
Persediaan Foreign Key KdProduk
references
references Foreign Key KdProduk
references
Produk
Produk
M odel Global Detail_ Persediaan (KdPersediaan, KdProduk, Qty) Primary Key KdPersediaan, KdKaryawan Foreign Key KdPersediaan references Persediaan ON UPDATE CASCADE ON
152 DELETE NO ACTION Foreign Key KdProduk references Produk ON UPDATE CASCADE ON DELETE NO ACTION Model Global Pembatalan M odel Lokal
M odel Perusahaan
Pembatalan (KdPembatalan,
Pembatalan (KdPembatalan,
TglPembatalan, KdKaryawan)
TglPembatalan, KdKaryawan)
Primary Key KdPembatalan
Primary Key KdPembatalan
Foreign Key KdKaryawan
references Foreign Key KdKaryawan
references
Karyawan
Karyawan
M odel Global Pembatalan (KdPembatalan, TglPembatalan, KdKaryawan) Primary Key KdPembatalan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Pembatalan_Detail M odel Lokal
M odel Perusahaan
Detail_ Pembatalan (KdPembatalan,
Detail_ Pembatalan (KdPembatalan,
KdPenjualan)
KdPenjualan)
Primary Key KdPembatalan,
Primary Key KdPembatalan,
KdKaryawan
KdKaryawan
Foreign Key KdPembatalan Pembatalan
references Foreign Key KdPembatalan Pembatalan
references
153 Foreign Key KdPenjualan
references Foreign Key KdPenjualan
Penjualan
references
Penjualan M odel Global
Detail_ Pembatalan (KdPembatalan, KdPenjualan) Primary Key KdPembatalan, KdKaryawan Foreign Key KdPembatalan references Pembatalan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPenjualan references Penjualan ON UPDATE NO ACTION ON DELETE NO ACTION Model Global Pengambilan M odel Lokal
M odel Perusahaan
Pengambilan (KdPengambilan,
Pengambilan (KdPengambilan,
TglPengambilan, KdKaryawan)
TglPengambilan, KdKaryawan)
Primary Key KdPengambilan
Primary Key KdPengambilan
Foreign Key KdKaryawan
references Foreign Key KdKaryawan
references
Karyawan
Karyawan
M odel Global Pengambilan (KdPengambilan, TglPengambilan, KdKaryawan) Primary Key KdPengambilan Foreign Key KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Detail_ Pengambilan M odel Lokal
M odel Perusahaan
154 Detail_ Pengambilan (KdPengambilan,
Detail_ Pengambilan (KdPengambilan,
KdPenjualan)
KdPenjualan)
Primary Key KdPengambilan
Primary Key KdPengambilan
Foreign Key KdPengambilan references Foreign Key KdPengambilan references Pengambilan
Pengambilan Foreign Key KdPenjualan
references Foreign Key KdPenjualan
references
Penjualan
Penjualan
M odel Global Detail_ Pengambilan (KdPengambilan, KdPenjualan) Primary Key KdPengambilan Foreign Key KdPengambilan references Pengambilan ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION Model Global Market M odel Lokal
M odel Perusahaan
Market (KdM arket, NmM arket, Alamat,
Market (KdM arket, NmM arket, Alamat,
Kota, KodePos)
Kota, KodePos)
Primary Key KdM arket
Primary Key KdM arket M odel Global
Market (KdM arket, NmM arket, Alamat, Kota, KodePos) Primary Key KdM arket Model Global Telp Market
155 M odel Lokal
M odel Perusahaan
Telp_Market (Telp, KdM arket)
Telp_Market (Telp, KdM arket)
Primary Key Telp, KdM arket
Primary Key Telp, KdM arket M odel Global
Telp_Market (Telp, KdM arket) Primary Key Telp, KdM arket
3.2.4
Perancangan Basis Data Fisikal
3.2.4.1
Penerjemahan Model Data Logikal Global untuk DBMS Target
3.2.4.1.1
Perancangan Relasi Dasar
1. Domain KdM anufaktur:
variable length char string, length 10
Domain NmM anufaktur:
variable length var char sring, length 40
Domain AlmtM anufaktur:
variable length var char string, length 100
Domain Kota:
variable length var char string, length 20
Domain KodePos:
variable length char string, length 10
M anufaktur ( KdM anufaktur
KdM anufaktur
NOT NULL,
NmM anufaktur
NmM anufaktur
NOT NULL,
AlmtM anufaktur
AlmtM anufaktur
NOT NULL,
Kota
Kota
NOT NULL,
KodePos
KodePos
NOT NULL,
PRIM ARY KEY(KdM anufaktur) 2. Domain Telp
);
variable length var char string, length 15
156 Domain KdM anufaktur:
variable length char string, length 10
TelpM anufaktur( Telp
Telp
NOT NULL,
KdM anufaktur
KdM anufaktur
NOT NULL,
PRIM ARY KEY(Telp, KdM anufaktur) FOREIGN KEY KdM anufaktur references M anufaktur ON UPDATE CASCADE ON DELETE NO ACTION ); 3. Domain Fax:
variable length var char string, length 15
Domain KdM anufaktur:
variable length char string, length 10
FaxM anufaktur( Fax
Fax
NOT NULL,
KdM anufaktur
KdM anufaktur
NOT NULL,
PRIM ARY KEY(Fax, KdM anufaktur), FOREIGN KEY KdM anufaktur references M anufaktur ON UPDATE CASCADE ON DELETE NO ACTION ); 4. Domain KdProduk:
variable length char string, length 10
Domain NmProduk:
variable length var char string, length 40
Domain Ukuran:
variable length var char string, length 10
Domain HargaBeli:
monetary
value,
in
the
range
00.000.000-
monetary
value,
in
the
range
00.000.000-
99.999.999 Domain HargaJual: 99.999.999
157 Produk( KdProduk
KdProduk
NOT NULL,
NmProduk
NmProduk
NOT NULL,
Ukuran
Ukuran
NOT NULL,
HargaBeli
HargaBeli
NOT NULL,
HargaJual
HargaJual
NOT NULL,
PRIM ARY KEY(KdProduk) ); 5. Domain KdDistributor:
variable length char string, length 10
Domain NmDistributor:
variable length var char string, length 40
Domain AlmtDistributor:
variable length var char string, length 100
Domain Kota:
variable length var char string, length 20
Domain KodePos:
variable length var char string, length 10
Distributor( KdDitributor
KdDistributor
NOT NULL,
NmDistributor
NmDistributor
NOT NULL,
AlmtDistributor
AlmtDistributor
NOT NULL,
Kota
Kota
NOT NULL,
KodePos
KodePos
NOT NULL,
PRIM ARY KEY(KdDistributor) ); 6. Domain Telp: Domain KdDistributor: TelpDistributor(
variable length var char string, length 15 variable length char string, length 10
158 Telp
Telp
NOT NULL,
KdDistributor
KdDistributor
NOT NULL,
PRIM ARY KEY(Telp, KdDistributor), FOREIGN KEY KdDistributor references Distributor ON UPDATE CASCADE ON DELETE NO ACTION ); 7. Domain Fax:
variable length var char string, length 15
Domain KdDistributor: variable length char string, length 10 FaxDistributor( Fax
Fax
NOT NULL,
KdDistributor
Kdistributor
NOT NULL,
PRIM ARY KEY(Fax, KdDistributor), FOREIGN KEY KdDistributor references Distributor ON UPDATE CASCADE ON DELETE NO ACTION ); 8. Domain KdM arket:
variable length char string, length 10
Domain NmM arket:
variable length var char string, length 40
Domain AlmtM arket:
variable length var char string, length 100
Domain Kota:
variable length var char string, length 20
Domain KodePos:
variable length var char string, length 10
Domain KdDistributor:
variable length char string, length 10
M arket( KdM arket
KdM arket
NOT NULL,
NmM arket
NmM arket
NOT NULL,
159 Alamat
Alamat
NOT NULL,
Kota
Kota
NOT NULL,
KodePos
KodePos
NOT NULL,
KdDistrributor
KdDistributor
NOT NULL,
PRIM ARY KEY(KdM arket), FOREIGN KEY KdDistributor references Distributor ON UPDATE CASCADE ON DELETE NO ACTION ); 9. Domain Telp: Domain KdM arket:
variable length var char string, length 15 variable length char string, length 10
TelpM arket( Telp
Telp
NOT NULL,
KdM arket
KdM arket
NOT NULL,
PRIM ARY KEY(Telp, KdM arket), FOREIGN KEY KdM arket references M arket ON UPDATE CASCADE ON DELETE NO ACTION ); 10. Domain KdPembelian:
variable length char string, length 20
Domain TglPembelian:
Date
Domain TglJatuhTempo:
Date
Domain KdM anufaktur:
variable length char string, length 10
Domain KdKaryawan:
variable length char string, length 10
Domain Diskon:
float
Domain Status :
int
160 Pembelian( KdPembelian
KdPembelian
NOT NULL,
TglPembelian
TglPembelian
NOT NULL,
TglJatuhTempo
TglJatuhTempo
NOT NULL,
KdM anufaktur
KdM anufaktur
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
Diskon
Diskon
NOT NULL,
Status
Status
NOT NULL
PRIM ARY KEY (KdPembelian), FOREIGN KEY KdM anufaktur references M anufaktur ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN
KEY
KdKaryawan
references
Karyawan
ON
UPDATE CASCADE ON DELETE NO ACTION FOREIGN
KEY Status
references
Status_Pembelian
UPDATE CASCADE ON DELETE NO ACTION ); 11. Domain Status Domain keterangan
int variable length char string, length 20
Status_Pembelian( Status
Status
NOT NULL,
Keterangan
Keterangan
NOT NULL,
PRIM ARY KEY (Status), ); 12. Domain KdPembelian:
variable length char string, length 20
ON
161 Domain KdProduk:
variable length char string, length 10
Domain HargaBeli:
monetary value, in the range 00.000.000-
99.999.999 Domain Qty:
Int
Detail_Pembelian( KdPembelian
KdPembelian
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Domain HargaBeli:
monetary value, in the range 00.000.000-
99.999.999 Qty
Qty
NOT NULL,
PRIM ARY KEY (KdPembelian, KdProduk), FOREIGN
KEY KdPembelian
references
Pembelian
ON
UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KdProduk references Produk ON UPDATE NO ACTION ON DELETE NO ACTION ); 13. Domain KdPersediaan:
variable length char string, length 20
Domain TglUpdate:
Date
Domain KdKaryawan:
variable length char string, length 10
Persediaan( KdPersediaan
KdPersediaan
NOT NULL,
TglUpdate
TglUpdate
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
PRIM ARY KEY (KdPersediaan)
162 ); 14. Domain KdPersediaan:
variable length char string, length 20
Domain KdProduk:
variable length char string, length 10
Domain Qty:
Int
Detail_Persediaan( KdPersediaan
KdPersediaan
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Qty
Qty
NOT NULL,
PRIM ARY KEY (KdPersediaan, KdProduk), FOREIGN KEY KdPersediaan
references
Persediaan
ON
UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KdProduk references Produk ON UPDATE CASCADE ON DELETE NO ACTION ); 15. Domain KdKaryawan:
variable length char string, length 10
Domain NmKaryawan:
variable length var char string, length 40
Domain AlmtKaryawan:
variable length var char string, length 100
Domain Kota:
variable length var char string, length 20
Domain KodePos:
variable length var char string, length 10
Domain Jabatan:
variable length var char string, length 20
Domain Password:
variable length var char string, length 6
Domain KdSupervisor:
variable length char string, length 10
Karyawan( KdKaryawan
KdKaryawan
NOT NULL.
163 NmKaryawan
NmKaryawan
NOT NULL.
AlmtKaryawan
AlmtKaryawan
NOT NULL.
Kota
Kota
NOT NULL.
KodePos
KodePos
NOT NULL.
Jabatan
Jabatan
NOT NULL.
Password
Password
NOT NULL.
KdSupervisor
KdSupervisor
NOT NULL.
PRIM ARY KEY (KdKaryawan), FOREIGN KEY KdSupervisor
references
Supervisor
ON
UPDATE CASCADE ON DELETE NO ACTION ); 16. Domain Telp:
variable length var char string, length 15
Domain KdKaryawan:
variable length char string, length 10
TelpKaryawan( Telp
Telp
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
PRIM ARY KEY (Telp, KdKaryawan), FOREIGN
KEY
KdKaryawan
references
Karyawan
UPDATE CASCADE ON DELETE NO ACTION ): 17. Domain KdPenerimaan: Domain TglPenerimaan:
variable length char string, length 20 Date
Domain KdKaryawan: variable length char string, length 10 Penerimaan(
ON
164 KdPenerimaan
KdPenerimaan
NOT NULL,
TglPenerimaan
TglPenerimaan
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
PRIM ARY KEY (KdPenerimaan), FOREIGN KEY KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION ); 18. Domain KdPenerimaan: Domain KdPembelian:
variable length char string, length 20 variable length char string, length 20
Detail_Penerimaan( KdPenerimaan
KdPenerimaan
NOT NULL,
KdPembelian
KdPembelian
NOT NULL,
PRIM ARY KEY (KdPenerimaan, KdPembelian), FOREIGN KEY KdPenerimaan references Penerimaan ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN
KEY KdPembelian
references
Pembelian
UPDATE CASCADE ON DELETE NO ACTION ); 19. Domain KdPengeluaran:
variable length char string, length 20
Domain TglPengeluaran:
Date
Domain KdKaryawan:
variable length char string, length 10
Pengeluaran ( KdPengeluaran
KdPengeluaran
NOT NULL,
TglPengeluaran
TglPengeluaran
NOT NULL,
ON
165 KdKaryawan
KdKaryawan
NOT NULL,
PRIM ARY KEY (KdPengeluaran), FOREIGN KEY KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION ); 20. Domain KdPengeluaran:
variable length char string, length 20
Domain KdPenjualan:
variable length char string, length 20
Detail_Pengeluaran( KdPengeluaran
KdPengeluaran
NOT NULL,
KdPenjualan
KdPenjualan
NOT NULL,
PRIM ARY KEY (KdPengeluaran, KdPenjualan), FOREIGN KEY KdPengeluaran references Pengeluaran ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION ); 21. Domain KdPenjualan:
variable length char string, length 20
Domain TglPenjualan:
Date
Domain TglJatuhTempo:
Date
Domain NoFaktur:
variable length char string, length 10
Domain KdKaryawan:
variable length char string, length 10
Domain KdDistributor:
variable length char string, length 10
Domain Diskon:
Float
Domain Status :
int
166 Penjualan ( KdPenjualan
KdPenjualan
NOT NULL,
TglPenjualan
TglPenjualan
NOT NULL,
TglJatuhTempo
TglJatuhTempo
NOT NULL,
NoFaktur
NoFaktur
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
KdDistributor
KdDistributor
NOT NULL,
Diskon
Diskon
NOT NULL,
Status
Status
NOT NULL
PRIM ARY KEY (KdPenjualan), FOREIGN KEY KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY KdDistributor references Distributor ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY Status references Status_Penjualan ON UPDATE CASCADE ON DELETE NO ACTION ); 22. Domain KdPenjualan:
variable length char string, length 20
Domain KdProduk:
variable length char string, length 10
Domain HargaJual:
monetary value, in the range 00.000.000-
99.999.999 Domain Qty:
Int
Detail_Penjualan( KdPenjualan
KdPenjualan
NOT NULL,
167 KdProduk
KdProduk
NOT NULL,
Domain HargaJual:
monetary value, in the range 00.000.000-
99.999.999 Qty
Qty
NOT NULL,
PRIM ARY KEY (KdPenjualan, KdProduk), FOREIGN KEY KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KdProduk references Produk ON UPDATE NO ACTION ON DELETE NO ACTION ); 23. Domain Status Domain keterangan
int variable length char string, length 20
Status_Penjualan( Status
Status
NOT NULL,
Keterangan
Keterangan
NOT NULL,
PRIM ARY KEY (Status), ); 24. Domain KdPengambilan:
variable length char string, length 20
Domain TglPengambilan:
Date
Domain KdKaryawan:
variable length char string, length 10
Pengambilan ( KdPengambilan
KdPengambilan
NOT NULL,
TglPengambilan
TglPengambilan
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
168 PRIM ARY KEY (KdPengambilan), FOREIGN
KEY
KdKaryawan
references
Karyawan
ON
UPDATE CASCADE ON DELETE NO ACTION ); 25. Domain KdPengambilan:
variable length char string, length 20
Domain KdPenjualan:
variable length char string, length 20
Detail_Pengambilan( KdPengambilan
KdPengambilan
NOT NULL,
KdPenjualan
KdPenjualan
NOT NULL,
PRIM ARY KEY (KdPengambilan, KdPenjualan), FOREIGN KEY KdPengambilan references Pengambilan ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KdPenjualan references Penjualan ON UPDATE CASCADE ON DELETE NO ACTION ); 26. Domain KdPembatalan:
variable length char string, length 20
Domain TglPembatalan:
Date
Domain KdKaryawan:
variable length char string, length 10
Pembatalan ( KdPembatalan
KdPembatalan
NOT NULL,
TglPembatalan
TglPembatalan
NOT NULL,
KdKaryawan
KdKaryawan
NOT NULL,
PRIM ARY KEY (KdPembatalan),
169 FOREIGN KEY KdKaryawan references Karyawan ON UPDATE CASCADE ON DELETE NO ACTION ); 27. Domain KdPembatalan: Domain KdPenjualan:
variable length char string, length 20 variable length char string, length 10
Detail_Pembatalan( KdPembatalan
KdPembatalan
NOT NULL,
KdPenjualan
KdPenjualan
NOT NULL,
PRIM ARY KEY (KdPembatalan, KdPenjualan), FOREIGN KEY KdPembatalan references Pembatalan ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY KdPenjualan references Penjualan ON UPDATE NO ACTION ON DELETE NO ACTION ); 28. Domain KdSupervisor: Domain NmSupervisor:
variable length char string, length 10 variable length var char string, length 40
Supervisor( KdSupervisor
KdSupervisor
NOT NULL.
NmSupervisor
NmSupervisor
NOT NULL.
PRIM ARY KEY (KdSupervisor) 3.2.4.1.2
);
Perancangan Representasi dari Data yang Diturunkan
Dalam penelitian ini terdapat rancangan representasi data turunan yaitu attribut tanggal jatuh tempo pada tabel penjualan dan pembelian yang didapat dari penambahan 45 hari setelah tanggal penjualan dan tanggal pembelian.
170 3.2.4.2
Perancangan Representasi Fisikal
3.2.4.2.1
Analisa Transaksi Tabel 3.19 Tabel analisa transaksi 1
Transaksi (A) (B) (C) (D) Relasi I R U D I R U D I R U D I R U D M anufaktur x x Karyawan x x x x Distributor x Produk x x x x x x Supervisor Tradisional_M arket M odern_M arket Pembelian x x x x Penjualan x x x Persediaan x x x Penerimaan x x x Pengeluaran Pembatalan Pengambilan Detail_Pembelian x x x Detail_Penjualan x x x Detail_Persediaan x x x Detail_Penerimaan x x x Detail_Pengeluaran Detail_Pembatalan Detail_Pengambilan Status_Pembelian x x x x x x Status_Penjualan x x x x TelpM anufaktur FaxM anufaktur TelpKaryawan FaxKaryawan TelpDistributor FaxDistributor TelpM arket I = Insert; R = Read; U = Update; D = Delete (A) Prosedur Pembelian Produk, Karyawan memesan Produk ke M anufaktur (B)
Prosedur Penerimaan Produk, Karyawan menerima produk dari manufaktur
(C)
Prosedur Penjualan Produk, Distributor memesan produk ke Karyawan
171 (D)
Prosedur Perhitungan Stok Barang, staff menghitung barang. Tabel 3.20 Tabel analisa transaksi 2
Transaksi ( E) (F) (G) (H) Relasi I R U D I R U D I R U D I R U D M anufaktur x x x x Karyawan x x Distributor x Produk x x x x x x Supervisor Tradisional_M arket M odern_M arket Pembelian Penjualan x x Persediaan Penerimaan Pengeluaran Pembatalan x x x Pengambilan x x x Detail_Pembelian Detail_Penjualan Detail_Persediaan Detail_Penerimaan Detail_Pengeluaran Detail_Pembatalan x x x Detail_Pengambilan x x x Status_pembelian Status_Penjualan x x x x TelpM anufaktur x x x x FaxM anufaktur x x x x TelpKaryawan FaxKaryawan TelpDistributor FaxDistributor TelpM arket I = Insert; R = Read; U = Update; D = Delete (E) Prosedur Pembatalan penjualan, Karyawan melakukan pembatalan penjualan (F)
Prosedur Pengambilan produk, Distributor mengambil pesanan produk
(G)
M asukkan detail produk
(H)
M asukkan detail M anufaktur
172 Tabel 3.21 Tabel analisa transaksi 3
Transaksi (I) (J) Relasi I R U D I R U M anufaktur Karyawan x x x x Distributor x x x Produk Supervisor x x x x Tradisional_M arket M odern_M arket Pembelian Penjualan Persediaan Penerimaan Pengeluaran Pembatalan Pengambilan Detail_Pembelian Detail_Penjualan Detail_Persediaan Detail_Penerimaan Detail_Pengeluaran Detail_Pembatalan Detail_Pengambilan Status_pembelian Status_Penjualan TelpM anufaktur FaxM anufaktur TelpKaryawan x x x x FaxKaryawan x x x x TelpDistributor x x x FaxDistributor x x x TelpM arket I = Insert; R = Read; U = Update; D = Delete (I) M asukkan detail Karyawan
D
I
(K) R U D
I
( L) R U D x x x
x
x x
x x
x x
x x x
x
x
x
x
x
x
x
x
x x x
x
x
x
(J)
M asukkan detail Distributor
(K)
M asukkan detail M arket
(L)
Prosedur pengeluaran produk, untuk pesanan penjualan dari distributor
173 3.2.4.2.2
Pemilihan Organisasi File Organisasi file yang dipilih adalah B-tree, hal ini dikarenakan B-
tree adalah struktur penyimpanan yang lebih serbaguna, dimana B-tree mendukung pengembalian berdasarkan key yang cocok dan tepat, pattern yang cocok, rentang nilai (range value) dan spesifikasi part key. Index B-tree dinamis, berkembang sesuai dengan perkembangan relasi. B-tree juga memelihara urutan dari access key ketika file diupdate. 3.2.4.2.3
Pemilihan Indek Tabel 3.22 Tabel Indeks
Nama Entiti M anufaktur
Indeks Key KdM anufaktur
Nama Indeks pk_ms_manufaktur
Deskripsi Indeks Clustered, unique, primary key located on PRIM ARY
NmM anufaktur
idx_nm_manufaktur
Non - clustered
Telp M anufaktur
Telp
pk_telp_manufaktur
Fax M anufaktur
Fax
pk_fax_manufaktur
Produk
KdProduk
pk_ms_produk
NmProduk
idx_nm_produk
Clustered, unique, primary key located on PRIM ARY Clustered, unique, primary key located on PRIM ARY clustered, unique, primary key located on PRIM ARY Non - clustered
KdDistributor
pk_ms_distributor
NmDistributor
idx_nm_distributor
Telp Distributor
Telp
pk_telp_distributor
FaxDistributo r
Fax
pk_fax_distributor
M arket
KdM arket
pk_ms_market
Distributor
clustered, unique, primary key located on PRIM ARY Non - clustered Clustered, unique, primary key located on PRIM ARY Clustered, unique, primary key located on PRIM ARY clustered, unique,
174 Nama Entiti
Indeks Key
Nama Indeks
NmM arket
idx_nm_market
Telp M arket
Telp
pk_telp_market
Karyawan
KdKaryawan
pk_ms_karyawan
NmKaryawan
idx_nm_karyawan
TelpKaryawa n
Telp
pk_telp_karyawan
Supervisor
KdSupervisor
pk_ms_supervisor
NmSupervisor
idx_nm_supervisor
KdPembelian
pk_pembelian
TglPembelian
idx_t gl_pembelian_ pembelian pk_detail_pembelian
Pembelian
Detail_Pembe lian
KdPembelian
Detail_ Persediaan
clustered, unique, primary key located on PRIM ARY Non - clustered
KdPersediaan
pk_detail_persediaan
KdPenerimaan
TglPenerimaan Detail_ Penerimaan
Clustered, unique, primary key located on PRIM ARY clustered, unique, primary key located on PRIM ARY Non - clustered
TglUpdate
KdPersediaan
KdProduk Penerimaan
Clustered, unique, primary key located on PRIM ARY clustered, unique, primary key located on PRIM ARY Non - clustered
clustered, unique, primary key located on PRIM ARY idx_kd_produk_detail Non - clustered _pembelian pk_persediaan clustered, unique, primary key located on PRIM ARY idx_t gl_update Non - clustered
KdProduk Persediaan
Deskripsi Indeks primary key located on PRIM ARY Non - clustered
KdPenerimaan
clustered, unique, primary key located on PRIM ARY idx_kd_produk_detail Non - clustered _persediaan pk_penerimaan clustered, unique, primary key located on PRIM ARY idx_t gl_penerimaan Non - clustered pk_detail_penerimaan
clustered, unique, primary key located
175 Nama Entiti
Indeks Key KdPembelian
Pengeluaran
Detail_ Pengeluaran
Penjualan
Detail_ Penjualan
Pembatalan
Detail_ Pembatalan
Nama Indeks
Deskripsi Indeks on PRIM ARY
KdPengeluaran
Idx_kd_pembelian_ detail_penerimaan pk_pengeluaran
TglPengeluara
Idx_tgl_pengeluaran
KdPengeluaran
pk_detail_pengeluara n
KdPenjualan KdPenjualan
Idx_kd_penjualan_ detail_pengeluaran pk_penjualan
TglPenjualan
Idx_tgl_penjualan
KdPenjualan
pk_detail_penjualan
KdProduk
idx_kd_produk
KdPembatalan
pk_pembatalan
TglPembatalan
Idx_tgl_pembatalan
KdPembatalan
pk_detail_pembatalan clustered, unique, primary key located on PRIM ARY Idx_kd_penjualan_pe Non - clustered mbatalan pk_pengambilan clustered, unique, primary key located on PRIM ARY Idx_tgl_pengambilan Non - clustered
KdPenjualan Pengambilan
KdPengambilan
Detail_ Pengambilan
TglPengambila n KdPengambilan KdPenjualan KdPenjualan
pk_detail_pengambil an Idx_kd_penjualan_pe ngambilan
Non - clustered clustered, unique, primary key located on PRIM ARY Non - clustered clustered, unique, primary key located on PRIM ARY Non – clustered clustered, unique, primary key located on PRIM ARY Non – clustered clustered, unique, primary key located on PRIM ARY Non - clustered clustered, unique, primary key located on PRIM ARY Non – clustered
clustered, unique, primary key located on PRIM ARY Non - clustered
176 3.2.4.2.4 Estimasi Kebutuhan Media Penyimpanan Berikut ini adalah estimasi atau perkiraan kebutuhan akan kapasitas penyimpanan yang dibutuhkan : Tabel 3.23 : Tabel Manufaktur
Nama Entity M anufaktur
Nama Field KdM anufaktur NmM anufaktur AlmtM anufaktur Kota KodePos
Type Ukuran Char 5 Varchar 40 Varchar 100 Varchar 20 Char 5 Jumlah 170 Kapasitas dari Tabel Manufaktur adalah 170 bytes Diperkirakan dalam satu bulan terjadi 2 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 2 x 170 = 4080 bytes = 3,98 Kbytes. Tabel 3.24 : Tabel TelpManufaktur
Nama Entity TelpM anufaktur
Nama Field KdM anufaktur Telp
Type Ukuran Char 5 Varchar 15 Jumlah 20 Kapasitas dari Tabel TelpManufaktur adalah 20 bytes Diperkirakan dalam satu bulan terjadi 3 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 3 x 20 = 720 bytes = 0,7 Kbytes. Tabel 3.25 : Tabel FaxManufaktur
Nama Entity FaxM anufaktur
Nama Field KdM anufaktur Fax
Type Ukuran Char 5 Varchar 15 Jumlah 20 Kapasitas dari Tabel FaxManufaktur adalah 20 bytes Diperkirakan dalam satu bulan terjadi 3 transaksi
177 Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 3 x 20 = 720 bytes = 0,7 Kbytes. Tabel 3.26 : Tabel Produk
Nama Entity Produk
Nama Field KdProduk NmProduk Ukuran HargaBeli HargaJual
Type Char Varchar Varchar M oney M oney Jumlah Kapasitas dari Tabel Produk adalah 71 bytes
Ukuran 5 40 10 8 8 71
Diperkirakan dalam satu bulan terjadi 5 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 5 x 71 = 4260 bytes = 4,16 Kbytes. Tabel 3.27 : Tabel Distributor
Nama Entity Distributor
Nama Field KdDistributor NmDistributor AlmtDistributor Kota KodePos
Type Ukuran Char 5 Varchar 40 Varchar 100 Varchar 20 Char 5 Jumlah 170 Kapasitas dari Tabel Distributor adalah 170 bytes Diperkirakan dalam satu bulan terjadi 5 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 5 x 170 = 10200 bytes = 9,96 Kbytes. Tabel 3.28 : Tabel TelpDistributor
Nama Entity TelpDistributor
Nama Field KdDistributor Telp
Type Ukuran Char 5 Varchar 15 Jumlah 20 Kapasitas dari Tabel TelpDistributor adalah 20 bytes Diperkirakan dalam satu bulan terjadi 10 transaksi.
178 Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 10 x 20 = 2400 bytes = 2,34 Kbytes. Tabel 3.29 : Tabel Fax Distributor
Nama Entity FaxDistributor
Nama Field KdDistributor Fax
Type Ukuran Char 5 Varchar 15 Jumlah 20 Kapasitas dari Tabel FaxDistributor adalah 20 bytes Diperkirakan dalam satu bulan terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 10 x 20 = 2400 bytes = 2,34 Kbytes. Tabel 3.30 : Tabel Market
Nama Entity M arket
Nama Field KdM arket NmM arket AlmtM arket Kota KodePos KdDistributor
Type Char Varchar Varchar Varchar Char Char Jumlah Kapasitas dari Tabel Market adalah 175 bytes
Ukuran 5 40 100 20 5 5 175
Diperkirakan dalam satu bulan terjadi 5 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 5 x 175 = 10500 bytes = 10,25 Kbytes. Tabel 3.31 : Tabel TelpMarket
Nama Entity TelpM arket
Nama Field KdM arket Telp
Type Ukuran Char 5 Varchar 15 Jumlah 20 Kapasitas dari Tabel TelpMarket adalah 20 bytes Diperkirakan dalam satu bulan terjadi 10 transaksi.
179 Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 10 x 20 = 2400 bytes = 2,34 Kbytes. Tabel 3.32 : Tabel Karyawan
Nama Entity Karyawan
Nama Field KdKaryawan NmKaryawan AlmtKaryawan Kota KodePos Jabatan Password KdSupervisor
Type Char Varchar Varchar Varchar Char Varchar Char Char Jumlah Kapasitas dari Tabel Karyawan adalah 201 bytes
Ukuran 5 40 100 20 5 20 6 5 201
Diperkirakan dalam satu bulan terjadi 5 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 5 x 201 = 12060 bytes = 11,78 Kbytes. Tabel 3.33 : Tabel TelpKaryawan
Nama Entity TelpKaryawan
Nama Field KdKaryawan Telp
Type Ukuran Char 5 Varchar 15 Jumlah 20 Kapasitas dari Tabel TelpKaryawan adalah 20 bytes Diperkirakan dalam satu bulan terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 10 x 20 = 2400 bytes = 2,34 Kbytes. Tabel 3.34 : Tabel Supervisor
Nama Entity Supervisor
Nama Field KdSupervisor NmSupervisor
Type Char Varchar Jumlah Kapasitas dari Tabel S upervisor adalah 45 bytes Diperkirakan dalam satu bulan terjadi 5 transaksi
Ukuran 5 40 45
180 Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 5 x 45 = 2700 bytes = 2,64 Kbytes. Tabel 3.35 : Tabel Pembelian
Nama Entity Pembelian
Nama Field KdPembelian TglPembelian TglJatuhTempo KdM anufaktur KdKaryawan Diskon Status
Type Char Date Date Char Char Float Int Jumlah Kapasitas dari Tabel Pembelian adalah 63 bytes
Ukuran 20 8 8 10 5 8 4 63
Diperkirakan dalam satu bulan terjadi 2 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 12 x 2 x 63 = 1512 bytes = 1,48 Kbytes. Tabel 3.36 : Tabel Detail_Pembelian
Nama Entity Detail_Pembelian
Nama Field KdPembelian KdProduk HargaBeli Qty
Type Ukuran Char 20 Char 10 M oney 8 Int 4 Jumlah 42 Kapasitas dari Tabel Detail_Pembelian adalah 42 bytes Diperkirakan dalam satu bulan terjadi 2 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 2 x 12 x 42 = 5040 bytes = 4,92 Kbytes. Tabel 3.37 : Tabel Status_Pembelian
Nama Entity Status_Pembelian
Nama Field Status Keterangan
Type Int Varchar Jumlah
Ukuran 4 20 24
181 Kapasitas dari Tabel S tatus_Pembelian adalah 24 bytes Diperkirakan dalam satu bulan terjadi 2 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 2 x 12 x 24 = 576 bytes = 0,56 Kbytes. Tabel 3.38 : Tabel Persediaan
Nama Entity Persediaan
Nama Field KdPersediaan TglUpdate KdKaryawan
Type Ukuran char 20 Date 8 char 5 Jumlah 33 Kapasitas dari Tabel Persediaan adalah 33 bytes Diperkirakan dalam satu bulan terjadi 1 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 1 x 12 x 33 = 396 bytes = 0,39 Kbytes.
Tabel 3.39 : Tabel Detail_Persediaan
Nama Entity Detail_Persediaan
Nama Field KdPersediaan KdProduk Qty
Type Ukuran char 20 char 10 Int 4 Jumlah 34 Kapasitas dari Tabel Detail_Persediaan adalah 34 bytes Diperkirakan dalam satu bulan terjadi 1 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 1 x 12 x 34 = 2040 bytes = 1,99 Kbytes.
Tabel 3.40 : Tabel Penerimaan
Nama Entity Penerimaan
Nama Field KdPeneriman TglPenerimaan KdKaryawan
Type char Date char Jumlah
Ukuran 20 8 5 33
182 Kapasitas dari Tabel Penerimaan adalah 33 bytes Diperkirakan dalam satu bulan terjadi 2 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 2 x 12 x 33 = 792 bytes = 0,77 Kbytes. Tabel 3.41 : Tabel Detail_Penerimaan
Nama Entity Detail_Penerimaan
Nama Field KdPenerimaan KdPembelian
Type Ukuran char 20 char 20 Jumlah 40 Kapasitas dari Tabel Detail_Penerimaan adalah 40 bytes Diperkirakan dalam satu bulan terjadi 2 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 2 x 12 x 40 = 4800 bytes = 4,69 Kbytes.
Tabel 3.42 : Tabel Pengeluaran
Nama Entity Pengeluaran
Nama Field KdPengeluaran TglPengeluaran KdKaryawan
Type Ukuran Char 20 Date 8 Char 5 Jumlah 33 Kapasitas dari Tabel Pengeluaran adalah 33 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 22 x 10 x 12 x 33 = 87120 bytes = 85,08 Kbytes.
Tabel 3.43 : Tabel Detail_ Pengeluaran
Nama Entity Detail_ Pengeluaran
Nama Field KdPengeluaran KdPenjualan
Type Ukuran Char 20 Char 20 Jumlah 40
183 Kapasitas dari Tabel Detail_ Pengeluaran adalah 40 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 22 x 10 x 12 x 40 = 528000 bytes = 515,63 Kbytes. Tabel 3.44 : Tabel Penjualan
Nama Entity Penjualan
Nama Field KdPenjualan TglPenjualan TglJatuhTempo NoFaktur KdKaryawan KdDistributor Diskon Status
Type Ukuran Char 20 Date 8 Date 8 Char 5 Char 5 Char 5 Float 8 Int 4 Jumlah 63 Kapasitas dari Tabel Penjualan adalah 63 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 22 x 10 x 12 x 63 = 166320 bytes = 162,42 Kbytes.
Tabel 3.45 : Tabel Detail_Penjualan
Nama Entity Detail_Penjualan
Nama Field KdPenjualan KdProduk HargaJual Qty
Type Ukuran Char 20 Char 10 M oney 8 Int 4 Jumlah 42 Kapasitas dari Tabel Detail_Penjualan adalah 42 bytes Diperkirakan dalam satu hari terjadi 10 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 22 x 10 x 12 x 42 = 554400 bytes = 541,41 Kbytes
184 Tabel 3.46 : Tabel Status_Penjualan
Nama Entity Status_Penjualan
Nama Field Status Keterangan
Type Ukuran Int 4 Varchar 20 Jumlah 24 Kapasitas dari Tabel S tatus_Penjualan adalah 24 bytes Diperkirakan dalam satu hari terjadi 5 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 22 x 5 x 12 x 24 = 31680 bytes = 30,94 Kbytes.
Tabel 3.47 : Tabel Pembatalan
Nama Entity Pembatalan
Nama Field KdPembatalan TglPembatalan KdKaryawan
Type Ukuran Char 20 Date 8 Char 5 Jumlah 33 Kapasitas dari Tabel Pembatalan adalah 33 bytes
Diperkirakan dalam satu hari terjadi 2 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 22 x 2 x 12 x 33 = 17424 bytes = 17,02 Kbytes. Tabel 3.48 : Tabel Detail_Pembatalan
Nama Entity Detail_Pembatalan
Nama Field KdPembatalan KdPenjualan
Type Ukuran Char 20 Char 20 Jumlah 40 Kapasitas dari Tabel Detail_Pembatalan adalah 40 bytes Diperkirakan dalam satu hari terjadi 2 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 22 x 2 x 12 x 40 = 105600 bytes = 103,13 Kbytes.
185 Tabel 3.49 : Tabel Pengambilan
Nama Entity Pengambilan
Nama Field KdPengambilan TglPengambilan KdKaryawan
Type Ukuran Char 20 Date 8 Char 5 Jumlah 33 Kapasitas dari Tabel Pengambilan adalah 33 bytes
Diperkirakan dalam satu hari terjadi 8 transaksi Dalam satu tahun pertumbuhan dari tabel ini adalah 22 x 8 x 12 x 33 = 69696 bytes = 68,06 Kbytes. Tabel 3.50 : Tabel Detail_Pengambilan
Nama Entity Detail_Pengambilan
Nama Field KdPengambilan KdPenjualan
Type Ukuran Char 20 Char 20 Jumlah 40 Kapasitas dari Tabel Detail_Pengambilan adalah 40 bytes Diperkirakan dalam satu hari terjadi 8 transaksi Diperkirakan setiap kali ada 5 jenis barang Dalam satu tahun pertumbuhan dari tabel ini adalah 5 x 22 x 8 x 12 x 40 = 422400 bytes = 412,5 Kbytes Tabel 3.51 Tabel Total Kapasitas yang dibutuhkan
Nama Tabel M anufaktur TelpM anufaktur FaxM anufaktur Produk Distributor TelpDistributor FaxDistributor M arket TelpM arket Karyawan TelpKaryawan
Kapasitas yang dibutuhkan dalam 1 tahun (Kbytes) 3,98 0,7 0,7 4,16 9,96 2,34 2,34 10,25 2,34 11,78 2,34
186 Nama Tabel Kapasitas yang dibutuhkan dalam 1 tahun (Kbytes) Supervisor 2,64 Pembelian 1,48 Detail_Pembelian 4,92 Status_Pembelian 0,56 Persediaan 0,39 Detail_Persediaan 1,99 Penerimaan 0,77 Detail_Penerimaan 4,69 Pengeluaran 85,08 Detail_Pengeluaran 515,63 Penjualan 162,42 Detail_Penjualan 541,41 Status_Penjualan 30,94 Pembatalan 17,02 Detail_Pembatalan 103,13 Pengambilan 68,06 Detail_Pengambilan 412,5 Total 2077,15 Total space yang dibutuhkan dalam 1 tahun 2004,52 Kbytes = 1,96 M bytes Total space yang dibutuhkan dalam 5 tahun : 5 x 1,95 = 9,8 M bytes 3.2.4.3 Perancangan User View View 1. View Detail Penjualan -- View untuk menampilkan detail dari penjualan yang belum diupdate Create View View_Detail_Penjualan as ( select a.KdPenjualan as [Kode Penjualan], a.KdProduk as [Kode Produk], b.NmProduk as [Nama Produk], b.Ukuran as [Isi kemasan],a.HargaJual as [Harga Jual], Qty as [Jumlah Barang] , keterangan from Detail_Penjualan a inner join M sProduk b on a.KdProduk = b.KdProduk inner join Penjualan c on c.KdPenjualan = a.KdPenjualan inner join status_penjualan d on d.status = c.status where c.status <> 3 ) 2. View Detail Pembelian
187 -- View untuk menampilkan Detail dari pembelian yang belum diupdate Create View View_Detail_Pembelian as ( select a.KdPembelian as [Kode Pembelian],a.KdProduk as [Kode Produk], b.NmProduk as [Nama Produk], b.Ukuran as [Isi kemasan], a.HargaBeli as [Harga Beli], a.Qty as [Jumlah Barang], d.keterangan from Detail_Pembelian a inner join M sProduk b on a.KdProduk = b.KdProduk inner join pembelian c on c.KdPembelian = a.KdPembelian inner join status_pembelian d on d.status = c.status where c.status <> 3 ) 3. View Detail Persediaan -- View untuk menampilkan Detail persediaan yang terbaru diupdate ( dari tanggal sekarang) Create View View_Detail_Persediaan as ( select a.KdProduk as [Kode Produk], b.NmProduk as [Nama Produk], b.Ukuran as [Isi kemasan], b.HargaBeli as [Harga Beli], b.HargaJual as [Harga Jual], a.Qty as [Jumlah Barang] from Detail_Persediaan a inner join M sProduk b on a.KdProduk = b.KdProduk inner join persediaan c on c.KdPersediaan = a.Kdpersediaan where datediff(month, c.TglUpdate, getdate()) = 0 ) 4. View Kartu Persediaan -- View digunakan untuk menampilkan kartu persediaan barang create view ViewKartuPersediaan as ( select a.KdPersediaan, a.KdProduk, b.NmProduk, b.Ukuran, b.HargaBeli, b.HargaJual, a.qty from detail_persediaan a inner join msproduk b on b.KdProduk = a.KdProduk inner join persediaan c on c.KdPersediaan = a.KdPersediaan where datediff(month, c.TglUpdate, getdate()) = 0 ) 5. View S tatus Penjualan -- View digunakan untuk menampilkan penjualan beserta statusnya create view view_status_penjualan as ( select a.KdPenjualan as [Kode Penjualan], a.TglPenjualan as [Tanggal Penjualan], a.TglJatuhTempo as [Tanggal Jatuh Tempo], b.KdProduk as [Kode Produk], c.NmProduk as [Nama Produk],
188 c.Ukuran as [Ukuran],b.HargaJual as [Harga Jual], b.qty as [Jumlah Barang], a.KdDistributor as [Kode M anufaktur], a.KdKaryawan as [Kode Karyawan], a.status as [Status Penjualan], d.Keterangan from Penjualan a inner join detail_penjualan b on b.KdPenjualan = a.KdPenjualan inner join msProduk c on c.KdProduk = b.KdProduk inner join status_penjualan d on d.status = a.status ) 6. View S tatus Pembelian -- View digunakan untuk menampilkan Pembelian beserta statusnya create view view_status_pembelian as ( select a.KdPembelian as [Kode Pembelian], a.TglPembelian as [Tanggal Pembelian], a.TglJatuhTempo as [Tanggal Jatuh Tempo], b.KdProduk as [Kode Produk], c.NmProduk as [Nama Produk], c.Ukuran as [Ukuran], b.HargaBeli as [Harga Beli], b.qty as [Jumlah Barang], a.KdM anufaktur as [Kode M anufaktur], a.KdKaryawan as [Kode Karyawan], a.status as [Status Pembelian], d.keterangan from Pembelian a inner join detail_pembelian b on b.KdPembelian = a.KdPembelian inner join msProduk c on c.KdProduk = b.KdProduk inner join status_pembelian d on d.status = a.status ) 7. View Detail Pembatalan -- View digunakan untuk menampilkan Detail Pembatalan Create View View_Detail_Pembatalan as ( Select a.KdPembatalan as [Kode Pembatalan], c.KdProduk as [Kode Produk], d.NmProduk as [Nama Produk], d.Ukuran as [Ukuran], c.HargaJual as [Harga Jual], c.Qty as [Jumlah Barang] from detail_pembatalan a inner join Penjualan b on a. KdPenjualan = b.KdPenjualan inner join Detail_Penjualan c on b.KdPenjualan = c.KdPenjualan inner join M sProduk d on d.KdProduk = c.KdProduk ) 8. View Pembatalan Penjualan -- View digunakan untuk menampilkan Penjualan yang dibatalkan create view view_pembatalan_penjualan as ( select a.KdPenjualan as [Kode Penjualan], a.KdProduk as [Kode Produk], b.NmProduk as [Nama Produk], b.Ukuran as [Isi kemasan], a.HargaJual as [Harga Jual], Qty as [Jumlah Barang] from Detail_Penjualan a
189 inner join M sProduk b on a.KdProduk = b.KdProduk inner join Penjualan c on c.KdPenjualan = a.KdPenjualan where status = -1 ) 9. View Manufaktur -- View untuk menampilkan Data M anufaktur create view view_M anufaktur as ( select KdM anufaktur, NmM anufaktur, AlmtM anufaktur, Kota, KodePos from M sM anufaktur ) 10. View Telp dan Fax Manufaktur -- View untuk menampilkan Telp dan Fax M anufaktur create view view_TelpM anufaktur as ( Select a.KdM anufaktur, a.NmM anufaktur, b.Telp, c.Fax from M sM anufaktur a inner join TelpM anufaktur b on b.KdM anufaktur = a.KdM anufaktur inner join FaxM anufaktur c on c.KdM anufaktur = a.KdM anufaktur) 11. View Header Pembelian -- View untuk menampilkan Header dari Pembelian barang create view view_Header_Pembelian as ( select KdPembelian, TglPembelian, TglJatuhTempo, KdKaryawan from Pembelian ) 12. View Header Penerimaan -- View untuk menampilkan Header dari Penerimaan barang create view view_Header_Penerimaan as ( select KdPenerimaan, TglPenerimaan, KdKaryawan from Penerimaan ) 13. View Detail Penerimaan -- View untuk menampilkan Detail dari Penerimaan barang create view view_Detail_Penerimaan as ( select a.KdPenerimaan, a.T glPenerimaan, c.KdPembelian, c.TglPembelian, d.KdProduk, NmProduk, Ukuran,d.HargaBeli, Qty from Penerimaan a inner join Detail_Penerimaan b on a.KdPenerimaan = b.KdPenerimaan
190 inner join Pembelian c on c.KdPembelian = b.KdPembelian inner join Detail_Pembelian d on d.KdPembelian = c.KdPembelian inner join M sProduk e on e.KdProduk = d.KdProduk ) 14. View Header Persediaan -- View untuk menampilkan Header dari Persediaan barang create view view_Header_Persediaan as ( select KdPersediaan, TglUpdate, KdKaryawan from Persediaan ) 15. View Header Penjualan -- View untuk menampilkan Header dari Penjualan barang create view view_Header_ Penjualan as ( select Kd Penjualan, T gl Penjualan, T glJatuhTempo, KdDistributor, KdKaryawan from Penjualan ) 16. View Header Pengeluaran -- View untuk menampilkan Header dari Pengeluaran barang create view view_Header_ Pengeluaran as ( select KdPengeluaran, T glPengeluaran, KdKaryawan from Pengeluaran ) 17. View Detail Pengeluaran -- View untuk menampilkan Detail dari Pengeluaran barang Create View View_Detail_Pengeluaran as ( Select a.KdPengeluaran, a.TglPengeluaran, b.KdPenjualan, c.TglPenjualan, d.KdProduk, e.NmProduk, e.Ukuran , d.HargaJual, d.Qty from pengeluaran a inner join Detail_Pengeluaran b on a. KdPengeluaran = b.KdPengeluaran inner join Penjualan c on b.KdPenjualan = c.KdPenjualan inner join Detail_Penjualan d on d.KdPenjualan = c.KdPenjualan inner join M sProduk e on d.KdProduk = e.KdProduk ) 18. View Header Pengambilan -- View untuk menampilkan Header dari Pengambilan barang create view view_Header_ Pengambilan as ( select Kd Pengambilan, Tgl Pengambilan, KdKaryawan from Pengambilan )
191 19. View Detail Pengambilan -- View untuk menampilkan Detail dari Pengambilan barang create view view_Detail_Pengambilan as ( select a.KdPengambilan, a.T glPengambilan, c.KdPenjualan, c.TglPenjualan, c.KdDistributor, c.KdKaryawan, d.KdProduk, NmProduk, Ukuran, d.HargaJual, Qty from Pengambilan a inner join Detail_Pengambilan b on a.KdPengambilan = b.KdPengambilan inner join Penjualan c on c.KdPenjualan = b.KdPenjualan inner join Detail_Penjualan d on d.KdPenjualan = c.KdPenjualan inner join M sProduk e on e.KdProduk = d.KdProduk ) 20. View Header Pembatalan -- View untuk menampilkan Header dari Pembatalan barang create view view_Header_ Pembatalan as ( select KdPembatalan, TglPembatalan, KdKaryawan from Pembatalan ) 21. View Karyawan -- View untuk menampilkan Data Karyawan create view view_ Karyawan as ( select Kd Karyawan, Nm Karyawan, Almt Karyawan, Kota, KodePos, Jabatan, a.KdSupervisor, b.NmSupervisor from M sKaryawan a inner join M sSupervisor b on b.KdSupervisor = a.KdSupervisor ) 22. View Telp Karyawan -- View untuk menampilkan Telp Karyawan create view view_Telp_Karyawan as ( Select a.Kd Karyawan, a.Nm Karyawan r, b.Telp from M s Karyawan a inner join Telp Karyawan b on b.KdKaryawan = a.KdKaryawan ) 23. View Distributor -- View untuk menampilkan Data Distributor create view view_ Distributor as
192 (
select Kd Distributor, NmDistributor, AlmtDistributor, Kota, KodePos from M sDistributor )
24. View Telp dan Fax Distributor -- View untuk menampilkan Telp dan Fax Distributor create view view_TelpM anufaktur as ( Select a.Kd Distributor, a.NmDistributor, b.Telp, c.Fax from M sDistributor a inner join TelpDistributor b on b.KdDistributor = a.KdDistributor inner join FaxDistributor c on c.KdDistributor = a.KdDistributor ) 25. View Market -- View untuk menampilkan Data M arket create view view_ M arket as ( select Kd M arket, Nm M arket, Almt M arket, Kota, KodePos, KdDistributor, b.NmDistributor from M sM arket a inner join M sDistributor on a.KdDistributor = b. KdDistributor ) 26. View Telp Market -- View untuk menampilkan Telp M arket create view view_TelpM arket as ( Select a.KdM arket, a.NmM arket, b.Telp from M sM arket a inner join TelpM arket b on b.KdM arket = a.KdM arket
)
27. View Penjualan bulanan create view view_penjbulan as select year(a.tglpenjualan) as [Tahun], month(a.tglpenjualan) as [Bulan], c.KdProduk as [Kode Produk], c.NmProduk as [Nama Produk], sum(b.qty) as [Jumlah], b.HargaJual as [Harga] from penjualan a inner join detail_penjualan b on b.KdPenjualan = a.KdPenjualan inner join msproduk c on c.KdProduk = b.KdProduk where status <> 0 or status <> -1 group by TglPenjualan, c.NmProduk, b.HargaJual, c.KdProduk 28. View Penjualan Harian create view view_penjharian
193 as select a.TglPenjualan as [Tanggal], c.NmProduk as [Nama Produk], sum(b.qty) as [Jumlah], b.hargajual as [Harga] from penjualan a inner join detail_penjualan b on b.KdPenjualan = a.KdPenjualan inner join msproduk c on c.KdProduk = b.KdProduk where status <> 0 or status <> -1 group by a.TglPenjualan, c.NmProduk, b.HargaJual, c.KdProduk 29. View Penjualan Per Produk create view view_penjualanPerProduk as select a.kdproduk, nmproduk, sum(a.qty) as [Jumlah Produk] from detail_penjualan a inner join msproduk b on a.KdProduk = b.KdProduk inner join penjualan c on c.KdPenjualan = a.KdPenjualan where status <> 0 or status <> -1 group by a.kdproduk, b.nmproduk 30. View Pilih Pembatalan create view view_pilih_pembatalan as select KdPenjualan as [Kode Penjualan], TglPenjualan as [Tanggal Penjualan] from Penjualan where status = 1 31. View Pilih Pengeluaran create view view_pilih_pengeluaran as select KdPenjualan as [Kode Penjualan], TglPenjualan as [Tanggal Penjualan] from penjualan where status = 0 32. View Pilih Pengambilan create view view_pilih_pengambilan as select KdPenjualan as [Kode Penjualan], TglPenjualan as [Tanggal Penjualan] from Penjualan where status = 1
194 33. View pilih penerimaan create view view_pilih_penerimaan as select KdPembelian, TglPembelian from pembelian where status = 0 S tore Procedure 1. Procedure Insert Karyawan CREATE procedure proc_add_karyawan @KdKaryawan char(10), @NmKaryawan varchar(40), @AlmtKaryawan Varchar(100), @Kota varchar(20), @KodePos char(10), @jabatan varchar(50), @password varchar(10), @KdSupervisor char(10) as insert into M sKaryawan values (@KdKaryawan,@NmKaryawan,@AlmtKaryawan,@Kota,@KodePos, @jabatan, @password, @KdSupervisor) 2. Procedure add supervisor CREATE procedure proc_add_supervisor @KdSupervisor char(10), @NmSupervisor char(40) as insert into M sSupervisor values (@KdSupervisor,@NmSupervisor) 3. Procedure add Telp Karyawan create procedure proc_add_telpKaryawan @Telp varchar(15), @KdKaryawan char(10) as insert into TelpKaryawan values (@Telp,@KdKaryawan) 4. Procedure add Produk create proc proc_add_produk @KdProduk varchar(10), @NmProduk varchar(50),
195 @Ukuran varchar(10), @HargaBeli money, @HargaJual money as insert into msproduk values (@KdProduk, @NmProduk, @Ukuran, @HargaBeli, @HargaJual) 5. Procedure Bulan Transaksi pembelian create proc proc_bulan_Pembelian as SELECT distinct DATENAM E(month, TglPembelian) AS 'Bulan Transaksi Pembelian' from Pembelian 6. Procedure Bulan Transaksi penjualan create proc proc_bulan_Penjualan as SELECT distinct DATENAM E(month, TglPenjualan) AS 'Bulan Transaksi Penjualan' from Penjualan 7. Procedure Bulan Transaksi persediaan create proc proc_bulan_Persediaan as SELECT distinct DATENAM E(month, TglUpdate) AS 'Bulan Transaksi Persediaan' from Persediaan 8. Procedure cek jumlah persediaan create proc proc_cek_qty @jumlah int as select a.KdProduk, b.NmProduk, b.Ukuran, a.Qty from detail_persediaan a inner join M sProduk b on b.KdProduk = a.KdProduk where a.qty < @jumlah 9. Procedure Delete Karyawan create procedure proc_delete_karyawan @KdKaryawan char(10) as delete from M sKaryawan where KdKaryawan = @KdKaryawan
196
10. Procedure Delete Produk create procedure proc_delete_produk @KdProduk char(10) as delete from M sProduk where KdProduk = @KdProduk 11. Procedure Insert detail pembatalan CREATE proc proc_insert_detail_pembatalan @KdPembatalan char(20), @KdPenjualan char(20), as insert into detail_Pembatalan values (@KdPembatalan, @KdPenjualan)
12. Procedure Insert detail pembelian create proc proc_insert_detail_pembelian @KdPembelian char(20), @KdProduk char(10), @HargaBeli money, @Qty int as insert into Detail_Pembelian values (@KdPembelian, @KdProduk, @HargaBeli, @Qty) 13. Procedure Insert detail penerimaan create proc proc_insert_detail_penerimaan @KdPenerimaan char(20), @KdPembelian char(20), as insert into Detail_Penerimaan values (@KdPenerimaan, @KdPembelian) 14. Procedure Insert detail pengambilan create proc proc_insert_detail_pengambilan @KdPengambilan char(20), @KdPenjualan char(20), as insert into detail_pengambilan values (@KdPengambilan,@KdPenjualan) 15. Procedure Insert detail pengeluaran create proc proc_insert_detail_pengeluaran
197 @KdPengeluaran char(20), @KdPenjualan char(20), as insert into Detail_Pengeluaran values (@KdPengeluaran, @KdPenjualan) 16. Procedure Insert detail penjualan create proc proc_insert_detail_penjualan @Kdpenjualan char(20), @KdProduk char(10), @HargaJual money, @Qty int as insert into Detail_penjualan values (@Kdpenjualan, @KdProduk, @HargaJual, @Qty) 17. Procedure Insert pembatalan CREATE proc proc_insert_pembatalan @KdPembatalan char(20), @TglPembatalan datetime, @KdKaryawan char(10) as insert into Pembatalan values (@KdPembatalan, @TglPembatalan, @KdKaryawan) 18. Procedure Insert pembelian create proc proc_insert_pembelian @KdPembelian char(20), @TglPembelian datetime, @TglJatuhTempo datetime, @KdM anufaktur char(10), @KdKaryawan char(10), @Diskon varchar(10), @Status int = 0 as insert into Pembelian values (@KdPembelian, @T glPembelian, @TglJatuhTempo, @KdM anufaktur, @KdKaryawan, @Diskon, @Status) 19. Procedure Insert penerimaan create proc proc_insert_penerimaan @KdPenerimaan char(20), @TglPenerimaan datetime, @KdKaryawan char(10) as
198 insert into Penerimaan values (@KdPenerimaan, @T glPenerimaan, @KdKaryawan) 20. Procedure Insert pengambilan create proc proc_insert_pengambilan @KdPengambilan char(20), @TglPengambilan datetime, @KdDistributor char(20), @KdKaryawan char(20) as insert into Pengambilan values(@KdPengambilan, @T glPengambilan, @KdDistributor, @KdKaryawan) 21. Procedure Insert pengeluaran create proc proc_insert_pengeluaran @KdPengeluaran char(20), @TglPengeluaran datetime, @KdKaryawan char(10) as insert into Pengeluaran values (@KdPengeluaran, @TglPengeluaran, @KdKaryawan) 22. Procedure Insert penjualan create proc proc_insert_penjualan @KdPenjualan char(20), @TglPenjualan datetime, @TglJatuhTempo datetime, @NoFaktur char(10), @KdDistributor char(10), @KdKaryawan char(10), @Diskon varchar(10), @Status int = 0 as insert into Penjualan values (@KdPenjualan, @TglPenjualan, @TglJatuhTempo, @NoFaktur, @KdDistributor, @KdKaryawan, @Diskon, @Status) 23. Procedure Insert persediaan create proc proc_insert_persediaan @KdPersediaan char(20), @TglUpdate datetime, @KdKaryawan char(10) as
199 insert into Detail_Persediaan values (@KdPersediaan, @T glUpdate, @KdKaryawan) 24. Procedure Insert detail persediaan create proc proc_insert_detail_persediaan @KdPersediaan char(20), @KdProduk char(10), @Qty int as insert into Persediaan values (@KdPersediaan, @KdProduk, @Qty) 25. Procedure Jatuh Tempo Pembelian create proc proc_jatuh_tempo_pembelian as SELECT Kdpembelian, Tglpembelian, T glJatuhTempo FROM pembelian where TglJatuhTempo > getdate() 26. Procedure Konfirmasi Pengambilan barang CREATE proc proc_konfirmasi_ambil_barang @waktuPerkiraan int as SELECT DATEADD(day, @waktuPerkiraan, [Tanggal Ambil Barang] FROM Penjualan
TglPenjualan)
AS
27. Procedure Select Karyawan create proc proc_select_karyawan @KdKaryawan char(10) as select * from M sKaryawan where KdKaryawan = @KdKaryawan 28. Procedure Titik pemesanan ulang CREATE proc proc_titik_pemesanan_ulang @ROP int as select KdPembelian, TglPembelian, dateadd(day, @ROP, TglPembelian) as [Titik Pemesanan ulang pembelian] from pembelian 29. Procedure Update Karyawan create procedure proc_update_karyawan @KdKaryawan char(10),
200 @NmKaryawan varchar(40), @AlmtKaryawan Varchar(100), @Kota varchar(20), @KodePos char(10), @jabatan varchar(50), @password varchar(10), @KdSupervisor char(10) as update M sKaryawan set KdKaryawan = @KdKaryawan, NmKaryawan = @NmKaryawan, AlmtKaryawan = @AlmtKaryawan, Kota = @Kota, KodePos = @KodePos, Jabatan = @jabatan, Password = @password, KdSupervisor = @KdSupervisor where KdKaryawan = @KdKaryawan 30. Procedure Update Produk create procedure proc_update_produk @HargaBeli money, @HargaJual money, @KdProduk char(20) as update M sProduk set HargaBeli = @HargaBeli, HargaJual = @HargaJual where KdProduk = @KdProduk 31. Procedure Update Qty Pembatalan CREATE proc proc_update_qty_pembatalan @KdPenjualan char(20) as update detail_persediaan set qty = a.qty + c.qty from detail_persediaan a, msproduk b, detail_penjualan c, penjualan d, detail_pembatalan e, pembatalan f where a.KdProduk = b.KdProduk and b.KdProduk = c.KdProduk and c.Kdpenjualan = d.Kdpenjualan and d.KdPenjualan = e.KdPenjualan and e.KdPembatalan = f.KdPembatalan and substring(kdpersediaan,11,4) = year(getdate()) and substring(kdpersediaan,8,2) = month(getdate()) and c.KdPenjualan = @KdPenjualan 32. Procedure Update Qty Penerimaan CREATE proc proc_update_qty_penerimaan @KdPembelian char(20) as update detail_persediaan set qty = a.qty + c.qty from detail_persediaan a, msproduk b, detail_pembelian c, pembelian d , detail_penerimaan e, penerimaan f
201 where a.KdProduk = b.KdProduk and b.KdProduk = c.KdProduk and c.Kdpembelian = d.Kdpembelian and d.KdPembelian = e.KdPembelian and e.KdPenerimaan = f.KdPenerimaan and substring(kdpersediaan,11,4) = year(getdate()) and substring(kdpersediaan,8,2) = month(getdate()) and c.Kdpembelian = @Kdpembelian 33. Procedure Update Qty Pengeluaran CREATE proc proc_update_qty_pengeluaran @KdPenjualan char(20) as update detail_persediaan set qty = a.qty - c.qty from detail_persediaan a, msproduk b, detail_penjualan c, penjualan d , detail_pengeluaran e, pengeluaran f where a.KdProduk = b.KdProduk and b.KdProduk = c.KdProduk and c.Kdpenjualan = d.Kdpenjualan and e.KdPenjualan = d.KdPenjualan and e.KdPengeluaran = f.KdPengeluaran and substring(kdpersediaan,11,4) = year(getdate()) and substring(kdpersediaan,8,2) = month(getdate()) and c.KdPenjualan = @KdPenjualan 34. Procedure Update S tatus pembatalan create proc proc_update_status_pembatalan @KdPenjualan char(20) as update penjualan set status = -1 where KdPenjualan = @KdPenjualan 35. Procedure Update S tatus penerimaan create proc proc_update_status_penerimaan @KdPembelian char(20) as update pembelian set status = 1 where KdPembelian = @KdPembelian 36. Procedure Update S tatus pengambilan @KdPenjualan char(20) as update penjualan set status = 2 where KdPenjualan = @KdPenjualan 37. Procedure Update S tatus pengeluaran create proc proc_update_status_pengeluaran @KdPenjualan char(20) as update penjualan set status = 1 where KdPenjualan = @KdPenjualan
202
38. Procedure Update S tatus persediaan status pembelian create proc proc_update_persediaan_status_pembelian as update pembelian set status = 3 where status = 1 39. Procedure Update S tatus persediaan status penjualan create proc proc_update_persediaan_status_penjualan as update penjualan set status = 3 where status = 2 or status = -1 40. Procedure Update View TelpKaryawan create proc proc_view_telpKaryawan @KdKaryawan char (10) as select Telp from TelpKaryawan where KdKaryawan = @KdKaryawan 41. Procedure S how Karyawan CREATE proc showKaryawan @kdkaryawan char(10) as select KdKaryawan, NmKaryawan, AlmtKaryawan, Kota, Jabatan from M sKaryawan where KdKaryawan = @KdKaryawan 3.2.4.4
Perancangan Mekanisme Pengamanan
Berikut ini perancangan mekanisme keamanan yang meliputi pembuatan user dengan menggunakan syntax SQL untuk memberikan hak pengaksesan data sesuai dengan jabatan, yaitu sebagai berikut : •
Membuat user
Create user user1 identified by Operational M anager ( OM ); Create user user2 identified by Finance & Accounting ( FA ); Create user user3 identified by Purchasing / Logistic ( PL );
203 Create user user4 identified by Warehouse ( WH ); •
Membuat jabatan ( role )
Create role operator to user1; Create role operator to user2; Create role operator to user3; Create role operator to user4; •
Pemberian hak akses
Tabel Manufaktur Grant select, insert, update on M anufaktur to user1; Tabel Produk Grant select, insert, update on Produk to user1; Grant select, insert, update on Produk to user4; Grant select on Produk to user3; Tabel Karyawan Grant select, insert, update on Karyawan to user1; Tabel Distributor Grant select, insert, update on Distributor to user1; Grant select, insert, update on Distributor to user3; Tabel S upervisor Grant select, insert, update on Supervisor to user1; Tabel Market Grant select, insert, update on Distributor to user1; Grant select, insert, update on Distributor to user3; Tabel Pembelian
204 Grant select, insert, update on Pembelian to user1; Grant select on Pembelian to user2; Grant select, insert on Pembelian to user3; Tabel Penjualan Grant select, insert, update on Penjualan to user1; Grant select on Penjualan to user2; Grant select, insert on Penjualan to user3; Tabel Persediaan Grant select, insert, update on Persediaan to user1; Grant select, insert on Persediaan to user2; Grant select, insert, update on Persediaan to user4; Grant select on Persediaan to user3; Tabel Penerimaan Grant select, insert, update on Penerimaan to user1; Grant select, insert on Penerimaan to user4; Tabel Pengeluaran Grant select, insert, update on Penerimaan to user1; Grant select, insert on Penerimaan to user4; Tabel Pembatalan Grant select, insert, update on Pembatalan to user1; Grant select, insert on Pembatalan to user3; Tabel Pengambilan Grant select, insert, update on Pembatalan to user1; Grant select, insert on Pembatalan to user3;
205 Tabel Detail_Penjualan Grant select, insert, update on Detail_Penjualan to user1; Grant select on Detail_Penjualan to user2; Grant select, insert on Detail_Penjualan to user3; Tabel Detail_Pembelian Grant select, insert, update on Detail_Pembelian to user1; Grant select on Detail_Pembelian to user2; Grant select, insert on Detail_Pembelian to user3; Tabel Detail_Persediaan Grant select, insert, update on Persediaan to user1; Grant select, insert on Persediaan to user2; Grant select, insert, update on Persediaan to user4; Grant select on Persediaan to user3; Tabel Detail_Penerimaan Grant select, insert, update on Penerimaan to user1; Grant select, insert on Penerimaan to user4; Tabel Detail_Pembatalan Grant select, insert, update on Pembatalan to user1; Grant select, insert on Pembatalan to user3; Tabel Detail_Pengambilan Grant select, insert, update on Pembatalan to user1; Grant select, insert on Pembatalan to user3;