BAB 3 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA
3.1
Riwayat Perusahaan PT. Istana Argo Kencana merupakan perusahaan perdagangan (Trading Company) yang menjadi distributor sekaligus agen tunggal pemegang merk dari produk Sanken yang diproduksi oleh PT. Sanken Argadwija. PT. Istana Argo Kencana yang berlokasi di Jln. Pluit Raya No. 19, Jakarta Barat didirikan pada akhir tahun 1997 yang dikepalai oleh 3 orang yang sekaligus pemegang saham terbesar, yaitu Mr. Markus Seah, Bp. Leo Zahar, dan Ibu Magdalena Ongko Wijaya. Saat itu, mereka membawahi sekitar 100 orang karyawan. Sebagai pemain baru dalam memasarkan produknya waktu itu, PT. Istana Argo Kencana harus bersaing dengan pemain-pemain lama yang telah lama menguasai pasar, sebut saja merk Toshiba atau National yang sudah tidak asing lagi di telinga orang Indonesia. Pada awalnya untuk membuat produk Sanken, PT. Istana Argo Kencana menjalin hubungan dengan beberapa manufaktur baik yang ada di dalam negeri maupun di luar negeri dan bila selesai, produk tersebut akan dikirim ke PT. Sanken Argadwija yang berada di Curug, Tangerang untuk registrasi dan pelabelan, baru selanjutnya dipasarkan oleh PT. Istana Argo Kencana. Produk yang dipasarkan terbagi atas: 1. Produk Home Appliance dan Small Home Appliance seperti kulkas, mesin cuci, kompor gas, juicer, rice cooker, air conditioner, dan sebagainya. 66
67 2. Produk Audio Video seperti TV, VCD dan home theater. Dari produk-produk yang dipasarkan tersebut ada yang masih belum dapat diproduksi di dalam negeri dan masih harus diimpor dalam bentuk Completely Built Up (CBU) dari Taiwan dan Malaysia, yaitu terdiri dari: 1. Lemari es besar 3 pintu 2. Mesin cuci Full Automatic 3. Small Appliances 4. Air Conditioner dengan kompresor dari Mitsubishi PT. Istana Argo Kencana yang saat ini memiliki jumlah karyawan sekitar 256 orang yang berada di kantor pusat dan 14 kantor cabang yang tersebar di wilayah kota besar di Indonesia, yaitu: Tangerang, Bandung, Malang, Palembang, Samarinda, Banjarmasin, Ujung Pandang, Bali, Yogyakarta, Semarang, Surabaya, dan Lampung.
68 3.2
Struktur Organisasi Perusahaan dan Pembagian Tugas, Tanggung Jawab, Wewenang dan hal-hal lain yang menyangkut perusahaan
Berikut ini adalah struktur organisasi PT. Istana Argo Kencana.
Gambar 3.1 Struktur Organisasi
69 Berdasarkan struktur organisasi yang ada, maka pembagian tugas, wewenang, dan tanggung jawab perusahaan adalah sebagai berikut: 1. BOD (Board of Directors) Tugas dari BOD (Board of Directors) adalah menerima semua laporan penjualan yang dilakukan Perusahaan. 2. Sales & Marketing Tugas dari bagian Sales & Marketing adalah membuat konsep-konsep promosi yang dapat mendukung penjualan produk. 3. Customer Service Tugas dari bagian Customer Service adalah menangani dan melayani kebutuhan customer dengan baik. 4. IT Tugas dari bagian IT adalah menjaga sistem tetap berjalan, melakukan pengembangan sistem baru, dan juga mengatasi permasalahan yang ada pada sistem. 5. Admin Tugas dari bagian Admin adalah melakukan input data yang berkaitan terhadap sistem informasi di perusahaan dan melakukan update atau delete terhadap data yang bermasalah. 6. Finance Tugas dari bagian Finance adalah membuat kas bank dan laporan keuangan perusahaan.
70 7. Sales Admin Tugas dari Sales Admin adalah melakukan input data penjualan yang diberikan oleh sales dan retur barang. 8. Inventory Control Tugas dari Inventory Control adalah memeriksa apakah barang yang keluar dari gudang telah sesuai dengan barang yang diterima oleh customer. 9. Acccount Receivable Tugas dari Account Receivable adalah membuat faktur berdasarkan barang yang telah dipesan oleh customer dan juga memastikan customer membayar dengan jumlah yang sesuai dan tepat pada waktunya. 10. Internal Audit Tugas dari Internal Audit adalah melakukan pemeriksaan terhadap keberadaan barang baik secara fisik maupun data dan juga mempelajari alur keberadaan barang untuk barang yang hilang. 11. Gudang Tugas dari bagian Gudang adalah menyiapkan barang pesanan sesuai delivery order, membuat surat jalan sesuai dengan barang keluar, dan menerima barang yang masuk ke gudang.
71 3.3
Tata Laksana/Prosedur yang Sedang Berjalan
Gambar 3.2 Proses Pemesanan Sistem yang Sedang Berjalan
72 Proses pemesanan dimulai dari Customer memesan barang kepada Sales perusahaan. Sales kemudian membuat Sales Order dua rangkap. Satu lembar diberikan kepada Sales Admin secara langsung, melalui fax, atau telepon. Sales Admin membuat Delivery Order dua rangkap, selembar diberikan kepada bagian Inventory Control untuk diperiksa apakah stok barang yang dipesan mencukupi. Inventory Control mencetak stok barang yang ada di gudang, dan memberikan kembali ke Sales Admin. Sales Admin membandingkan ketersediaan barang dengan jumlah pesanan. Jika pesanan terpenuhi, maka Delivery Order direvisi bila perlu dan diinput ke dalam basis data, serta diberikan kepada bagian Kepala Gudang. Jika tidak terpenuhi, maka Sales Admin menunda pesanan, membuat purchase order ke pabrik dan transaksi berakhir.
73
Gambar 3.3 Proses Pengiriman Sistem yang Sedang Berjalan
74 Proses Pengiriman dimulai dari Kepala Gudang menerima kertas Delivery Order. Jika barang tidak dikirim saat itu, maka barang yang dipesan disimpan dahulu. Jika barang dikirim saat itu juga, Kepala Gudang menyiapkan barang-barang pesanan, lalu memasukkan data barang keluar ke sistem. Dari data barang keluar di basis data, Admin Gudang membuat Surat Jalan dua rangkap lalu diberikan kembali ke Kepala Gudang untuk ditandatangani. Admin Gudang juga meng-input Surat Jalan tersebut ke basis data. Surat Delivery Order diberikan ke bagian Inventory Control dan Surat Jalan diberikan ke Kurir untuk diantar.
75
Gambar 3.4 Proses Pengiriman (lanjutan) Sistem yang Sedang Berjalan
76 Kurir mengantarkan barang beserta Surat Jalan kepada Customer. Customer mengecek barang kiriman. Jika ada yang kondisinya kurang bagus, barang tersebut diretur. Lalu Customer menandatangani Surat Jalan dan memberikannya kembali kepada Kurir. Surat Jalan kemudian diberikan ke bagian Inventory Control. Bagian Inventory Control memeriksa apakah pesanan yang tertulis di Delivery Order sama dengan barang yang diantar. Jika sama, kurangi stok barang di basis data. Jika berbeda, setelah mengurangi stok barang, Inventory
Control
mengubah
data
pada
surat
Delivery
Order,
lalu
memberikannya kepada Sales Admin untuk di-update di basis data, serta mendata barang retur.
77
Gambar 3.5 Proses Barang Masuk Sistem yang Sedang Berjalan
Pada proses ketersediaan barang, barang yang dikirim oleh kurir dari pabrik akan diterima oleh Kepala Gudang. Kepala Gudang akan memeriksa kualitas dari barang tersebut. Apabila barang tersebut kurang bagus, maka barang tersebut akan dikembalikan ke pabrik. Sebaliknya, barang yang bagus akan
78 dimasukkan ke dalam gudang. Kemudian, kepala Gudang menandatangani Surat Jalan yang diberikan dan meng-input barang yang masuk tersebut ke dalam basis data.
79
Gambar 3.6 Proses Penjualan Sistem yang Sedang Berjalan
80 Pada proses penjualan, bagian Account Receiveable membuat faktur tiga rangkap lalu meng-input faktur tersebut ke basis data. Faktur diberikan kepada Customer sebagai tanda penagihan. Customer dapat membayar secara cash atau transfer. Jika pembayaran sudah benar, maka uang dan faktur diberikan ke bagian Finance untuk dibukukan. Pemasukan perusahaan dimasukkan ke dalam basis data kasbank. Sampai tahap ini, proses transaksi selesai.
81 3.4
Data Flow Diagram 3.4.1
Diagram Context
Gambar 3.7 DFD level Context Sistem yang Sedang Berjalan
82 3.4.2 Diagram level 0
Gambar 3.8 Diagram level 0 Sistem yang Sedang Berjalan
83 3.5
Permasalahan yang Dihadapi
Setelah melihat sistem yang ada dan data-data yang didapat dari hasil wawancara, maka didapatkan beberapa masalah yang dihadapi PT. Istana Argo Kencana adalah sebagai berikut: 1.
Basis data pada sistem pemesanan, pengiriman, dan penjualan belum terintegrasi, sehingga aliran data pada perusahaan menjadi lambat, barang tidak tersedia saat ada pemesanan, dan sulitnya komunikasi informasi antar unit.
2.
Belum online-nya sistem yang sedang berjalan antar cabang, sehingga staff IT harus mengirim data setiap dua minggu sekali secara rutin ke pusat untuk meng-update data pemesanan, pengiriman, dan penjualan pada setiap cabang tersebut.
3.
Pada proses keluar-masuknya barang, masih menggunakan proses input data secara manual sehingga banyak terjadi kesalahan pada pendataan barang, jumlah barang yang tidak seusai, dan lambatnya aliran informasi mengenai barang.
84 3.6
Alternatif Pemecahan Masalah
Alternatif pemecahan untuk permasalahan yang dihadapi adalah: 1. Membuat suatu basis data pemesanan, pengiriman, dan penjualan berbasis web yang dapat mengintegrasikan seluruh informasi-informasi yang berkaitan dengan aktivitas pemesanan, pengiriman, dan penjualan barang. 2. Membuat suatu basis data yang dapat menyimpan informasi pemesanan, pengiriman, dan penjualan dari setiap cabang. 3. Menggunakan barcode pada proses keluar-masuknya barang sehingga mengurangi kesalahan pendataan barang.
85 3.7
Usulan Prosedur yang Baru
Gambar 3.9 Proses Pemesanan Sistem yang Diusulkan
Proses pemesanan dimulai dari Customer memesan barang kepada Sales perusahaan. Sales kemudian membuat Sales Order dua rangkap. Satu lembar
86 diberikan kepada Sales Admin secara langsung, melalui fax, atau telepon. Sales Admin membandingkan ketersediaan barang dengan jumlah pesanan. Jika pesanan terpenuhi, maka Sales Admin membuat Delivery Order dan menyimpannya ke dalam basis data, serta diberikan kepada bagian Kepala Gudang. Jika tidak terpenuhi, maka Sales Admin menunda pesanan, membuat purchase order ke pabrik dan transaksi berakhir.
87
Gambar 3.10 Proses Pengiriman Sistem yang Diusulkan
88 Proses Pengiriman dimulai dari Kepala Gudang melihat Delivery Order yang baru pada sistem, lalu mencetaknya. Kepala Gudang menyiapkan pesanan, scan barang keluar, dan menyimpan data ke basis data. Stok barang di gudang akan otomatis berkurang. Jika barang sudah saatnya untuk dikirim, Admin Gudang membuat Surat Jalan baru dan menyimpannya ke dalam basis data, lalu dicetak. Surat Jalan ditandatangani oleh Kepala Gudang, lalu diberikan ke Kurir.
89
Gambar 3.11 Proses Pengiriman (Lanjutan) Sistem yang Diusulkan
Kurir mengantarkan barang beserta Surat Jalan kepada Customer. Customer mengecek barang kiriman. Jika ada yang kondisinya kurang bagus, barang tersebut diretur. Lalu Customer menandatangani Surat Jalan dan memberikannya kembali kepada Kurir. Surat Jalan kemudian diberikan ke bagian Inventory Control. Bagian Inventory Control memeriksa apakah pesanan yang tertulis di Delivery Order sama dengan barang yang diantar. Jika berbeda,
90 Inventory Control mengubah data pada Delivery Order di basis data, lalu memberikan informasi retur kepada Sales Admin. Sales Admin kemudian memasukkan data retur ke basis data.
Gambar 3.12 Proses Barang Masuk Sistem yang Diusulkan
91 Pada proses ketersediaan barang, barang yang dikirim oleh kurir dari pabrik akan diterima oleh Kepala Gudang. Kepala Gudang akan memeriksa kualitas dari barang tersebut. Apabila barang tersebut kurang bagus, maka barang tersebut akan dikembalikan ke pabrik. Sebaliknya, barang yang bagus akan dimasukkan ke dalam gudang. Kemudian, kepala Gudang menandatangani Surat Jalan yang diberikan dan meng-input barang yang masuk tersebut ke dalam basis data.
92
Gambar 3.13 Proses Penjualan Sistem yang Diusulkan
Pada proses penjualan, bagian Account Receiveable membuat faktur dan menyimpannya ke basis data, lalu mencetaknya sebanyak dua rangkap. Faktur
93 diberikan kepada Customer sebagai tanda penagihan. Customer dapat membayar secara cash atau transfer. Jika pembayaran sudah benar, maka uang dan faktur diberikan ke bagian Finance untuk dibukukan. Pemasukan perusahaan dimasukkan ke dalam basis data kas bank. Sampai tahap ini, proses transaksi selesai.
94 3.8
Data Flow Diagram untuk Prosedur yang Baru 3.8.1 Diagram Context
Gambar 3.14 Diagram Aliran Data Sistem yang Diusulkan
95 3.8.2 Diagram Level 0
Gambar 3.15 Diagram Level 0 Sistem yang Diusulkan
96 3.9
Perancangan Basis Data Konseptual 3.9.1
Mengidentifikasi Tipe Entitas
Entitas yang didapat dari DFD adalah entitas Gudang, Orders, Customer, Kendaraan, Barang, Retur, BarangMasuk, BarangKeluar, Faktur, SuratJalan, dan KasBank. Entitas lain yang diperlukan adalah: 1. Entitas Cabang, untuk menjelaskan entitas Gudang 2. Entitas Staff, untuk menjelaskan aktor dari setiap kegiatan 3. Entitas Divisi, untuk menjelaskan entitas Staff 4. Entitas Users, untuk menjelaskan pengguna system 5. Entitas JenisKendaraan, untuk menjelaskan entitas Kendaraan 6. Entitas JenisBarang, untuk menjelaskan entitas Barang
Tabel 3.1 Identifikasi Tipe Entitas Nama Entitas
Deskripsi
Alias
Kejadian (Occurrence)
Cabang
Semua cabang yang -
Setiap
cabang
dimiliki perusahaan.
memiliki
gudang
dan staff. Divisi
Staff
Semua divisi yang ada -
Setiap
di perusahaan.
memiliki staff.
Semua
staff
yang Karyawan
Setiap
divisi
staff
me-
97 bekerja di perusahaan.
nangani
customer,
order, barang masuk, barang keluar, surat
jalan,
faktur,
retur,
dan
kas
bank. Setiap staff memiliki nol atau satu user. Users
Customer
Semua
pengguna User
Setiap user dimiliki
sistem basis data
oleh satu staff
Semua
Setiap
pembeli Pelanggan
barang.
dapat
customer melakukan
order. Setiap
customer
memiliki staff yang melayani order. Gudang
Semua gudang yang -
Setiap
gudang
digunakan untuk me-
menjelaskan barang
nyimpan barang.
masuk dan barang keluar.
Setiap
gudang
memiliki
barang. Kendaraan
Semua
kendaraan -
Setiap
kendaraan
98 untuk
JenisKendaraan
mengantar
menyertai nol atau
barang.
banyak surat jalan.
Semua jenis kendara- -
Setiap
an yang dimiliki ken-
daraan menjelaskan
daraan.
satu
jenis
atau
ken-
banyak
kendaraan. Barang
Semua yang
barang berasal
jadi Produk
Setiap barang dapat
dari
di
pabrik.
order.
Setiap
barang menjelaskan barang masuk dan barang keluar.
JenisBarang
Semua jenis barang -
Setiap jenis barang
yang dimiliki barang
menjelaskan
satu
atau banyak barang. Orders
Semua
pemesanan Pemesanan
barang oleh customer
Setiap order memiliki
surat
faktur,
jalan,
dan
kas
bank. Setiap order membuktikan retur. BarangMasuk
Semua barang yang -
Setiap
barang
masuk ke gudang.
masuk
dijelaskan
oleh
gudang
barang.
dan
99 BarangKeluar
Semua barang yang -
Setiap barang keluar
keluar dari gudang.
mempengaruhi surat jalan.
SuratJalan
Sebagai untuk
surat
ijin -
mengeluarkan
barang dari gudang.
Setiap surat jalan dimiliki order dan dipengaruhi
oleh
barang keluar. Retur
Semua barang yang -
Setiap retur mem-
dikembalikan
pengaruhi barang.
oleh
customer. Faktur
Sebagai surat tagihan -
Setiap
kepada
dimiliki order.
untuk
customer barang
telah
faktur
yang dikirim
kepadanya. KasBank
Sebagai
laporan -
pemasukan kas bagi perusahaan.
Setiap
kas
dimiliki order.
bank
100 3.9.2 Mengidentifikasi Tipe Relationship a. Membuat Entity Relationship (ER) Diagram
Gambar 3.16 Entity Relationship Diagram Konseptual
101 b. Tipe Relationship
Tabel 3.2 Identifikasi Tipe Relationship Nama Entitas
Multi-
Relationship
plicity Staff
Multi-
Nama Entitas
plicity
1..1
melayani
0..*
Customer
1..1
memiliki
0..1
Users
1..*
menangani
0..*
Orders
1..1
membuat
0..*
SuratJalan
1..1
menangani
0..*
Faktur
1..1
menangani
0..*
Retur
1..1
mendata
0..*
BarangMasuk
1..1
mendata
0,,*
BarangKeluar
1..1
membuat
0..*
KasBank
Divisi
1..1
memiliki
1..*
Staff
Customer
1..1
melakukan
1..*
Orders
Barang
1..*
menjelaskan
1..*
BarangMasuk
1..*
menjelaskan
1..*
BarangKeluar
1..*
melengkapi
0..*
Orders
1..1
menjelaskan
1..*
BarangMasuk
1..1
menjelaskan
1..*
BarangKeluar
1..1
memiliki
1..*
Kendaraan
1..1
menjelaskan
1..*
Orders
Gudang
102 1..*
memiliki
1..*
Barang
1..1
memiliki
1..1
KasBank
1..1
memiliki
1..1
BarangKeluar
1..1
memiliki
1..1
Faktur
1..1
membuktikan
0..1
Retur
BarangKeluar
1..1
mempengaruhi 1..1
SuratJalan
Kendaraan
1..1
melengkapi
0..*
SuratJalan
Cabang
1..1
memiliki
1..*
Staff
1..1
menjelaskan
1..*
Gudang
1..1
menjelaskan
1..*
Barang
JenisKendaraan 1..1
menjelaskan
1..*
Kendaraan
Retur
mempengaruhi 1..*
Orders
JenisBarang
1..*
Barang
103 3.9.3 Mengidentifikasi dan Mengasosiasikan Atribut dengan Tipe Entitas atau Relationship
Tabel 3.3 Identifikasi Atribut dengan Tipe Entitas Nama
Atribut
Deskripsi
Entitas Cabang
Tipe Data
Null
& Panjang
Multivalued
kdCabang
kode cabang
char(3)
tidak
tidak
namaCabang
nama cabang
varchar(40)
tidak
tidak
alamatCabang
alamat cabang
varchar(50)
tidak
tidak
kdPosCabang
kode
tidak
tidak
pos char(5)
cabang kotaCabang
kota cabang
varchar(15)
tidak
tidak
noTelpCabang
nomor telepon varchar(12)
tidak
ya
tidak
ya
cabang noFaxCabang
nomor
fax varchar(12)
cabang emailCabang
email cabang
varchar(30)
tidak
tidak
noRekCabang
nomor
varchar(15)
tidak
ya
rekening cabang
Divisi
namaBank
nama bank
varchar(30)
tidak
ya
kdDivisi
kode divisi
char(2)
tidak
tidak
namaDivisi
nama divisi
varchar(20)
tidak
tidak
104 Staff
kdStaff
kode staff
char(5)
tidak
tidak
namaStaff
nama staff
varchar(40)
tidak
tidak
alamatStaff
alamat staff
varchar(50)
tidak
tidak
kdPosStaff
kode pos staff
char(5)
tidak
tidak
kotaStaff
kota staff
varchar(15)
tidak
tidak
noTelpStaff
telepon staff
varchar(15)
tidak
ya
tanggalLahir
tanggal
tidak
tidak
ya
tidak
lahir date
staff
Users
emailStaff
email staff
jenisKelamin
jenis
varchar(30)
kelamin character (L tidak
staff
atau P)
jabatan
jabatan staff
varchar(20)
tanggalMulai
tanggal
Kerja
mulai bekerja
username
username
password
tidak
tidak
tidak
tidak
tidak
varchar(10)
tidak
tidak
password
varchar(20)
tidak
tidak
privilege
hak akses
varchar(10)
tidak
tidak
lastLogin
waktu terakhir datetime
tidak
tidak
staff date
login Customer
kdCust
kode customer
char(5)
tidak
tidak
namaCust
nama customer
varchar(40)
tidak
tidak
alamatCust
alamat
varchar(50)
tidak
tidak
customer
105 kdPosCust
kode
pos char(5)
tidak
tidak
customer kotaCust
kota customer
varchar(15)
tidak
tidak
noTelpCust
nomor telepon varchar(12)
tidak
ya
tidak
ya
customer noFaxCust
nomor
fax varchar(12)
customer emailCust
email customer varchar(30)
ya
tidak
noRekCust
nomor
varchar(15)
tidak
ya
rekening customer
Gudang
namaBank
nama bank
varchar(30)
tidak
ya
kdGudang
kode gudang
char(3)
tidak
tidak
namaGudang
nama gudang
varchar(30)
tidak
tidak
alamatGudang
alamat gudang
varchar(50)
tidak
tidak
kdPosGudang
kode
tidak
tidak
pos char(5)
gudang
Kendaraan
kotaGudang
kota gudang
varchar(15)
tidak
tidak
kdKend
kode
char(4)
tidak
tidak
varchar(10)
tidak
tidak
tidak
tidak
kendaraan
JenisKenda raan
noPolisi
nomor polisi
kdJenisKend
kode kendaraan
jenis varchar(2)
106 jenisKend
jenis
varchar(20)
tidak
tidak
kendaraan Barang
JenisBarang
kdBarang
kode barang
char(8)
tidak
tidak
namaBarang
nama barang
varchar(50)
tidak
tidak
qtyBarang
jumlah barang
int
tidak
tidak
harga
harga barang
int
tidak
tidak
kdJenisBarang
jenis barang
varchar(3)
tidak
tidak
deskripsi
deskripsi
varchar(80)
tidak
tidak
tidak
tidak
tidak
tidak
tidak
tidak
int
tidak
ya
input datetime
tidak
tidak
tidak
tidak
tidak
tidak
barang Orders
kdDO
kode delivery char(10) order
tanggalKirimDO tanggal
kirim date
delivery order totalHarga
total
harga int
delivery order qtyDO
quantity barang
pada
delivery order tanggalInput
tanggal
delivery order tanggalPrint
tanggal
cetak datetime
delivery order kdStaffPrint
kode staff yang varchar(5)
107 mencetak delivery order kdStaffInput
kode staff yang varchar(5)
tidak
tidak
barang char(12)
tidak
tidak
tanggal barang datetime
tidak
tidak
tidak
tidak
barang char(12)
tidak
tidak
tanggal barang datetime
tidak
tidak
int
tidak
tidak
surat char(12)
tidak
tidak
date
tidak
tidak
char(12)
tidak
tidak
meng-input delivery order BarangMa
kdBarangMasuk
suk
kode masuk
tanggalMasuk
masuk qtyBarang
quantity
int
barang masuk BarangKelu
kdBarangKeluar
ar
kode keluar
tanggalKeluar
keluar qtyBarang
quantity barang keluar
SuratJalan
kdSuratJalan
kode jalan
tglSuratJalan
tanggal pembuatan surat jalan
Retur
kdRetur
kode retur
108 tanggalRetur
tanggal retur
date
tidak
tidak
qtyRetur
quantity
int
tidak
tidak
varchar(80)
tidak
tidak
barang retur keteranganRetur
keterangan retur
Faktur
kdFaktur
kode faktur
char(12)
tidak
tidak
tanggalFaktur
tanggal
date
tidak
tidak
jatuh date
tidak
tidak
pembuatan faktur jatuhTempo
tanggal tempo
KasBank
kdKasBank
kode kas bank
char(12)
tidak
tidak
tanggalPembaya
tanggal
date
tidak
tidak
ran
pembayaran integer
tidak
tidak
totalPembayaran total pembayaran
109 3.9.4 Menentukan Domain Atribut
Tabel 3.4 Identifikasi Domain dari Tiap Atribut Nama Entitas Cabang
Atribut kdCabang
Domain 3 karakter dengan format xxx, dimana tiga karakter ini merupakan nomor urut cabang berupa angka.
namaCabang
Variasi karakter dengan maksimal jumlah 40 karakter.
alamatCabang
Variasi karakter dengan maksimal jumlah 50 karakter.
kdPosCabang
5 karakter berupa angka.
kotaCabang
Variasi karakter dengan maksimal jumlah 15 karakter.
noTelpCabang
Variasi angka dengan maksimal jumlah 12 digit.
noFaxCabang
Variasi angka dengan maksimal jumlah 12 digit.
emailCabang
Variasi karakter dengan maksimal jumlah 30 karakter, harus mengandung karakter ‘@’ dan ‘.’, dan karakter ‘@’ dan ‘.’ tidak boleh bersebelahan.
noRekCabang
Variasi angka dengan maksimal jumlah 15
110 digit. namaBank
Variasi karakter dengan maksimal jumlah 30 karakter.
Divisi
kdDivisi
2 karakter dengan format xx, dimana dua karakter ini merupakan nomor urut divisi berupa angka.
namaDivisi
Variasi karakter dengan maksimal jumlah 20 karakter.
Staff
kdStaff
5 karakter dengan format aaxxx, dimana dua karakter awal berupa huruf dan tiga karakter selanjutnya merupakan nomor urut staff berupa angka.
namaStaff
Variasi karakter dengan maksimal jumlah 40 karakter.
alamatStaff
Variasi karakter dengan maksimal jumlah 50 karakter.
kdPosStaff
5 karakter berupa angka.
kotaStaff
Variasi karakter dengan maksimal jumlah 15 karakter.
noTelpStaff
Variasi angka dengan maksimal jumlah 15 digit.
tanggalLahir
Tanggal dengan format dd-mm-yyyy.
emailStaff
Variasi karakter dengan maksimal jumlah
111 30 karakter, harus mengandung karakter ‘@’ dan ‘.’, dan karakter ‘@’ dan ‘.’ tidak boleh bersebelahan. jenisKelamin
Sebuah karakter ‘L’ untuk jenis kelamin laki-laki atau ‘P’ untuk jenis kelamin perempuan.
jabatan
Variasi karakter dengan maksimal jumlah 20 karakter.
Users
tanggalMulaiKerja
Tanggal dengan format dd-mm-yyyy.
username
Variasi karakter dengan maksimal jumlah 10 karakter.
password
Variasi karakter dengan maksimal jumlah 20 karakter.
privilege
Variasi karakter dengan maksimal jumlah 10 karakter.
lastLogin
Tanggal dan waktu dengan format dd-mmyyyy hh:mi:ss
Customer
kdCust
5 karakter dengan format xxxxx, dimana lima karakter ini merupakan nomor urut customer berupa angka.
namaCust
Variasi karakter dengan maksimal jumlah 40 karakter.
alamatCust
Variasi karakter dengan maksimal jumlah
112 50 karakter. kdPosCust
5 karakter berupa angka.
kotaCust
Variasi karakter dengan maksimal jumlah 15 karakter.
noTelpCust
Variasi angka dengan maksimal jumlah 12 digit.
noFaxCust
Variasi angka dengan maksimal jumlah 12 angka.
emailCust
Variasi karakter dengan maksimal jumlah 30 karakter, harus mengandung karakter ‘@’ dan ‘.’, dan karakter ‘@’ dan ‘.’ tidak boleh bersebelahan.
noRekCust
Variasi angka dengan maksimal jumlah 15 digit.
namaBank
Variasi karakter dengan maksimal jumlah 30 karakter.
Gudang
kdGudang
3 karakter dengan format xxx, dimana tiga karakter ini merupakan nomor urut gudang berupa angka.
namaGudang
Variasi karakter dengan maksimal jumlah 30 karakter.
alamatGudang
Variasi karakter dengan maksimal jumlah 50 karakter.
113 kdPosGudang
5 karakter berupa angka.
kotaGudang
Variasi karakter dengan maksimal jumlah 15 karakter.
Kendaraan
kdKend
4 karakter dengan format xxxx, dimana empat karakter ini merupakan nomor urut kendaraan berupa angka
noPolisi
Variasi karakter dengan maksimal jumlah 10 karakter.
JenisKendaraan kdJenisKend
Variasi karakter dengan maksimal jumlah 2 karakter.
jenisKend
Variasi karakter dengan maksimal jumlah 20 karakter.
Barang
kdBarang
8 karakter dengan format xxxxxxxx.
namaBarang
Variasi karakter dengan maksimal jumlah 50 karakter.
JenisBarang
qtyBarang
Angka non-desimal
harga
Angka non-desimal
kdJenisBarang
Variasi karakter dengan maksimal jumlah 2 karakter.
deskripsi
Variasi karakter dengan maksimal jumlah 80 karakter.
Orders
kdDO
10 karakter dengan format DOxxxxaaaa, dimana dua karakter awal harus berupa
114 karakter ‘DO’, empat karakter selanjutnya adalah nomor DO yang diinput, dan empat karakter terakhir merupakan nomor urut DO. tanggalKirimDO
Tanggal dengan format dd-mm-yyyy.
totalHarga
Angka non-desimal
qtyDO
Angka non-desimal
tanggalInput
Tanggal dan waktu dengan format dd-mmyyyy hh:mi:ss
tanggalPrint
Tanggal dan waktu dengan format dd-mmyyyy hh:mi:ss
kdStaffPrint
5 karakter dengan format aaxxx, dimana dua karakter awal berupa huruf dan tiga karakter selanjutnya merupakan nomor urut staff berupa angka.
kdStaffInput
5 karakter dengan format aaxxx, dimana dua karakter awal berupa huruf dan tiga karakter selanjutnya merupakan nomor urut staff berupa angka.
BarangMasuk
kdBarangMasuk
12
karakter
dengan
format
yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya
115 berupa tanggal, dan empat karakter terakhir merupakan nomor urut barang masuk pada tanggal tersebut. tanggalMasuk
Tanggal dan waktu dengan format dd-mmyyyy hh:mi:ss.
BarangKeluar
qtyBarang
Angka non-desimal
kdBarangKeluar
12
karakter
dengan
format
yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut barang keluar pada tanggal tersebut. tanggalKeluar
Tanggal dan waktu dengan format dd-mmyyyy hh:mi:ss.
SuratJalan
qtyBarang
Angka non-desimal
kdSuratJalan
12
karakter
dengan
format
yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut surat jalan pada tanggal tersebut.
116
Retur
tglSuratJalan
Tanggal dengan format dd-mm-yyyy.
kdRetur
12
karakter
dengan
format
yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut retur pada tanggal tersebut. tanggalRetur
Tanggal dengan format dd-mm-yyyy.
qtyRetur
Angka non-desimal
keteranganRetur
Variasi karakter dengan maksimal jumlah 80 karakter.
Faktur
kdFaktur
12
karakter
dengan
format
yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut faktur pada tanggal tersebut.
KasBank
tanggalFaktur
Tanggal dengan format dd-mm-yyyy.
jatuhTempo
Tanggal dengan format dd-mm-yyyy.
kdKasBank
12
karakter
dengan
format
yyyymmddxxxx, dimana empat karakter
117 awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut kas bank pada tanggal tersebut. tanggalPembayaran
Tanggal dengan format dd-mm-yyyy.
totalPembayaran
Angka non-desimal
3.9.5 Menentukan Atribut Candidate, Primary, dan Alternate Key
Tabel 3.5 Identifikasi Candidate dan Primary Key untuk Tiap Entitas Nama Entitas Cabang
Candidate Key kdCabang
Primary Key kdCabang
alamatCabang noTelpCabang noFaxCabang emailCabang noRekCabang Divisi
kdDivisi
kdDivisi
namaDivisi Staff
kdStaff alamatStaff
kdStaff
118 noTelpStaff emailStaff Users
username
username
Customer
kdCust
kdCust
alamatCust noTelpCust noFaxCust emailCust noRekCust Gudang
kdGudang
kdGudang
alamatGudang Kendaraan
kdKend
kdKend
noPolisi JenisKendaraan
kdJenisKend
kdJenisKendaraan
Barang
kdBarang
kdBarang
Jenisbarang
kdJenisBarang
kdJenisBarang
Orders
kdDO
kdDO
tanggalInput tanggalPrint BarangMasuk
kdBarangMasuk tanggalMasuk
kdBarangMasuk
119 BarangKeluar
kdBarangKeluar
kdBarangKeluar
tanggalKeluar SuratJalan
kdSuratJalan
kdSuratJalan
Retur
kdRetur
kdRetur
Faktur
kdFaktur
kdFaktur
KasBank
kdKasBank
kdKasBank
120
Gambar 3.17 Entity Relationship Diagram dengan Primary Key
121 3.9.6 Memeriksa Model untuk Redundansi a.
Memeriksa Hubungan One to One
Gambar 3.18 Hubungan Staff dengan Users
Entitas Staff dan Users tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas, karena tidak semua staff memiliki users.
Gambar 3.19 Hubungan Orders dengan KasBank
Entitas Orders dan KasBank tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas, karena merupakan objek yang berbeda.
Gambar 3.20 Hubungan BarangKeluar dengan Orders
122 Entitas BarangKeluar dan Orders tidak redundan dan keduanya tidak bisa digabungkan menjadi satu entitas, karena merupakan objek yang berbeda.
Gambar 3.21 Hubungan Faktur dengan Orders
Entitas Faktur dan Orders tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas karena merupakan objek yang berbeda.
Gambar 3.22 Hubungan Retur dengan Orders
Entitas Retur dan Orders tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas karena merupakan objek yang berbeda.
Gambar 3.23 Hubungan BarangKeluar dengan SuratJalan
Entitas BarangKeluar dan SuratJalan tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas karena merupakan objek yang berbeda.
123 b. Menghilangkan hubungan redundansi Hubungan antar entitas tidak menunjukkan adanya redudansi.
3.9.7 Memvalidasi Model Konseptual dengan Transaksi Pengguna Tinjauan Sales Admin (SA) a.
Melihat rincian data pesanan yang dilakukan oleh pelanggan tertentu.
b.
Melihat rincian data retur yang dilakukan oleh pelanggan tertentu.
c.
Melihat rincian data retur yang mengacu pada delivery order tertentu.
d.
Melihat daftar customer.
e.
Melihat daftar sales yang melayani customer tertentu.
f.
Melihat daftar gudang yang memiliki barang tertentu.
g.
Melihat staff yang bertanggung jawab menangani retur.
h.
Melihat nama barang yang diretur pada tanggal tertentu.
i.
Melihat Delivery Order berdasarkan gudang tertentu.
Tinjauan Kepala Gudang j.
Melihat informasi pesanan dengan detail barang yang dipesan.
k.
Melihat staff yang menginput informasi pesanan tertentu.
l.
Melihat daftar staff yang bekerja di cabang tertentu.
m.
Melihat barang apa saja yang keluar di gudang tertentu.
n.
Melihat nama barang yang keluar pada tanggal tertentu.
124 o.
Melihat staff yang bertanggung jawab dengan barang keluar tertentu.
p.
Melihat barang keluar yang sesuai dengan surat jalan tertentu.
q.
Melihat barang apa saja yang masuk pada tanggal tertentu.
r.
Melihat barang masuk di gudang tertentu.
s.
Melihat staff yang bertanggung jawab dengan barang masuk tertentu.
Tinjauan Admin Gudang t.
Melihat kendaraan yang dicantumkan pada Surat Jalan tertentu.
u.
Melihat alamat customer pada Delivery Order tertentu.
v.
Melihat staff yang bertanggung jawab membuat Surat Jalan.
w.
Melihat cabang beserta gudang-gudangnya.
x.
Melihat surat jalan yang mengacu kepada Delivery Order tertentu.
y.
Melihat kendaraan yang terdapat pada gudang tertentu.
Tinjauan Inventory Control z.
Melihat stok barang yang dipesan pada Delivery Order oleh customer tertentu.
Tinjauan Account Recieveable aa.
Melihat faktur untuk customer tertentu.
bb.
Melihat faktur yang mengacu pada Delivery Order tertentu.
cc.
Melihat staff yang bertanggung jawab membuat faktur tertentu.
125 dd.
Melihat jatuh tempo pembayaran seorang customer.
ee.
Melihat daftar harga barang.
ff.
Melihat status faktur dari customer tertentu.
Tinjauan Finance gg.
Melihat status faktur dari order tertentu.
hh.
Melihat kas bank dari order tertentu.
ii.
Melihat staff yang bertanggung jawab dalam pembuatan kas bank tertentu.
Tinjauan Admin jj.
Melihat daftar cabang.
kk.
Melihat daftar divisi.
ll.
Melihat daftar staff yang bekerja pada suatu cabang.
mm. Melihat daftar staff yang bekerja pada suatu divisi. nn.
Melihat daftar username dari staff tertentu.
oo.
Melihat daftar barang.
pp.
Melihat daftar gudang.
qq.
Melihat daftar customer.
rr.
Melihat daftar pesanan.
ss.
Melihat daftar surat jalan.
tt.
Melihat daftar faktur.
uu.
Melihat daftar kas bank.
vv.
Melihat nama barang beserta jenis barangnya.
126 ww. Melihat nama kendaraan beserta jenis kendaraannya. xx.
Melihat daftar retur.
Gambar 3.24 Entity Relationship Diagram Model Konseptual dengan Transaksi Pengguna
127 3.10
Perancangan Basis Data Logikal 3.10.1 Menurunkan Relasi untuk Model Data Logikal a. Tipe Entitas Kuat Cabang(kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, noTelpCabang, noFaxCabang, emailCabang, noRekCabang, namaBank) Primary Key kdCabang Divisi (kdDivisi, namaDivisi) Primary Key kdDivisi Staff(kdStaff, namaStaff, alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja) Primary Key kdStaff Users(username, password, privilege, lastLogin) Primary Key username Customer (kdCust, namaCust, alamatCust, kdPosCust, kotaCust, noTelpCust, noFaxCust, emailCust, noRekCust, namaBank) Primary Key kdCust Gudang
(kdGudang,
namaGudang,
kotaGudang) Primary Key kdGudang Kendaraan (kdKend, noPolisi) Primary Key kdKend JenisKendaraan (kdJenisKend, jenisKend) Primary Key kdJenisKend
alamatGudang,
kdPosGudang,
128 Barang (kdBarang, namaBarang, qtyBarang, harga) Primary Key kdBarang JenisBarang (kdJenisBarang, deskripsi) Primary Key kdJenisBarang Orders
(kdDO,
tanggalKirimDO,
totalHarga,
qtyDO,
tanggalPrint, kdStaffPrint, kdStaffInput) Primary Key kdDO BarangMasuk (kdBarangMasuk, tanggalMasuk, qtyBarang) Primary Key kdBarangMasuk BarangKeluar (kdBarangKeluar, tanggalKeluar, qtyBarang) Primary Key kdBarangKeluar SuratJalan (kdSuratJalan, tglSuratJalan) Primary Key (kdSuratJalan) Retur (kdRetur, tanggalRetur, qtyRetur, keteranganRetur) Primary Key kdRetur Faktur (kdFaktur, tanggalFaktur, jatuhTempo) Primary Key kdFaktur KasBank (kdKasBank, tanggalPembayaran, totalPembayaran) Primary Key kdKasBank
b. Tipe Entitas Lemah Tidak terdapat entitas lemah pada model data.
tanggalInput,
129 c. Tipe Binary Relationship 1:* Relationship antara entitas Cabang dengan Gudang memiliki
Cabang (kdCabang, namaCabang,
Gudang(kdGudang, namaGudang,
alamatCabang, kdPosCabang,
alamatGudang, kdPosGudang,
kotaCabang, noTelpCabang,
kotaGudang, kdCabang)
noFaxCabang, emailCabang,
Primary Key kdGudang
noRekCabang, namaBank)
Foreign Key kdCabang references
Primary Key kdCabang
Cabang(kdCabang)
Relationship antara entitas Cabang dengan Staff memiliki
Cabang (kdCabang, namaCabang,
Staff(kdStaff, namaStaff,
alamatCabang, kdPosCabang,
alamatStaff, kdPosStaff, kotaStaff,
kotaCabang, emailCabang)
noTelpStaff, tanggalLahir,
Primary Key kdCabang
emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdCabang) Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang)
130 Relationship antara entitas Divisi dengan Staff memiliki
Divisi(kdDivisi, namaDivisi)
Staff(kdStaff, namaStaff,
Primary Key kdDivisi
alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi) Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
131 Relationship antara entitas Staff dengan BarangMasuk
mendata
Staff(kdStaff, namaStaff,
BarangMasuk(kdBarangMasuk,
alamatStaff, kdPosStaff, kotaStaff,
tanggalMasuk, kdStaff)
noTelpStaff, tanggalLahir,
Primary Key kdBarangMasuk
emailStaff, jenisKelamin, jabatan,
Foreign Key kdStaff references
tanggalMulaiKerja, KdCabang,
Staff(kdStaff)
kdDivisi) Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
132 Relationship antara entitas Staff dengan BarangKeluar
mendata
Staff(kdStaff, namaStaff,
BarangKeluar(kdBarangKeluar,
alamatStaff, kdPosStaff, kotaStaff,
tanggalKeluar, qtyBarang , kdStaff)
noTelpStaff, tanggalLahir,
Primary Key kdBarangKeluar
emailStaff, jenisKelamin, jabatan,
Foreign Key kdStaff references
tanggalMulaiKerja, KdCabang,
Staff(kdStaff)
kdDivisi) Primary Key kdStaff Foreign
Key
kdCabang
references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
133 Relationship antara entitas Staff dengan Customer
melayani
Staff(kdStaff, namaStaff,
Customer(kdCust, namaCust,
alamatStaff, kdPosStaff, kotaStaff,
alamatCust, kdPosCust, kotaCust,
noTelpStaff, tanggalLahir,
noTelpCust, noFaxCust, emailCust,
emailStaff, jenisKelamin, jabatan,
noRekCust, namaBank, kdStaff)
tanggalMulaiKerja, KdCabang,
Primary Key kdCust
kdDivisi)
Foreign Key kdStaff references
Primary Key kdStaff
Staff(kdStaff)
Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
134 Relationship antara entitas Staff dengan KasBank membuat
Staff(kdStaff, namaStaff,
KasBank(kdKasBank,
alamatStaff, kdPosStaff, kotaStaff,
tanggalPembayaran,
noTelpStaff, tanggalLahir,
totalPembayaran, kdStaff)
emailStaff, jenisKelamin, jabatan,
Primary Key kdKasBank
tanggalMulaiKerja, KdCabang,
Foreign Key kdStaff references
kdDivisi)
Staff(kdStaff)
Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
135 Relationship antara entitas Staff dengan Retur menangani
Staff(kdStaff, namaStaff,
Retur
alamatStaff, kdPosStaff, kotaStaff,
qtyRetur, keteranganRetur, kdStaff)
noTelpStaff, tanggalLahir,
Primary Key kdRetur
emailStaff, jenisKelamin, jabatan,
Foreign Key kdStaff references
tanggalMulaiKerja, KdCabang,
Staff(kdStaff)
kdDivisi) Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
(kdRetur,
tanggalRetur,
136 Relationship antara entitas Staff dengan Faktur membuat
Staff(kdStaff, namaStaff,
Faktur(kdFaktur, tanggalFaktur,
alamatStaff, kdPosStaff, kotaStaff,
jatuhTempo, kdStaff)
noTelpStaff, tanggalLahir,
Primary Key kdFaktur
emailStaff, jenisKelamin, jabatan,
Foreign Key kdStaff references
tanggalMulaiKerja, KdCabang,
Staff(kdStaff)
kdDivisi) Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
137 Relationship antara entitas Staff dengan SuratJalan
membuat
Staff(kdStaff, namaStaff,
SuratJalan(kdSuratJalan,
alamatStaff, kdPosStaff, kotaStaff,
tglSuratJalan, kdStaff)
noTelpStaff, tanggalLahir,
Primary Key kdSuratJalan
emailStaff, jenisKelamin, jabatan,
Foreign Key kdStaff references
tanggalMulaiKerja, KdCabang,
Staff(kdStaff)
kdDivisi) Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)
138 Relationship antara entitas Customer dengan Orders melakukan
Customer(kdCust, namaCust,
Orders (kdDO, tanggalKirimDO,
alamatCust, kdPosCust, kotaCust,
totalHarga,
noTelpCust, noFaxCust, emailCust,
tanggalPrint,
noRekCust, namaBank, kdStaff)
kdStaffInput, kdCust)
Primary Key kdCust
Primary Key kdDO
Foreign Key kdStaff
Foreign Key kdCust references
references Staff(kdStaff)
Customer(kdCust)
qtyDO,
tanggalInput, kdStaffPrint,
Relationship antara entitas Gudang dengan BarangMasuk menjelaskan
Gudang(kdGudang, namaGudang,
BarangMasuk(kdBarangMasuk,
alamatGudang, kdPosGudang,
tanggalMasuk, kdStaff, kdGudang)
kotaGudang, kdCabang)
Primary Key kdBarangMasuk
Primary Key kdGudang
Foreign Key kdStaff references
Foreign Key kdCabang
Staff(kdStaff)
references Cabang(kdCabang)
Foreign Key kdGudang references Gudang(kdGudang)
139 Relationship antara entitas Gudang dengan BarangKeluar
menjelaskan
Gudang(kdGudang, namaGudang,
BarangKeluar(kdBarangKeluar,
alamatGudang, kdPosGudang,
tanggalKeluar, qtyBarang , kdStaff,
kotaGudang, kdCabang)
kdGudang)
Primary Key kdGudang
Primary Key kdBarangKeluar
Foreign Key kdCabang
Foreign Key kdStaff references
references Cabang(kdCabang)
Staff(kdStaff) Foreign Key kdGudang references Gudang(kdGudang)
Relationship antara entitas Gudang dengan Kendaraan memiliki
Gudang(kdGudang, namaGudang,
Kendaraan
alamatGudang, kdPosGudang,
kdGudang)
kotaGudang, kdCabang)
Primary Key kdKend
Primary Key kdGudang
Foreign Key kdGudang references
Foreign Key kdCabang
Gudang(kdGudang)
references Cabang(kdCabang)
(kdKend,
noPolisi,
140 Relationship antara entitas Gudang dengan Orders menjelaskan
Gudang(kdGudang, namaGudang,
Orders (kdDO, tanggalKirimDO,
alamatGudang, kdPosGudang,
totalHarga,
kotaGudang, kdCabang)
tanggalPrint,
Primary Key kdGudang
kdStaffInput, kdCust, kdGudang)
Foreign Key kdCabang
Primary Key kdDO
references Cabang(kdCabang)
Foreign Key kdCust references
qtyDO,
tanggalInput, kdStaffPrint,
Customer(kdCust) Foreign Key kdGudang references Gudang(kdGudang)
141 Relationship antara entitas Kendaraan dengan SuratJalan melengkapi
Kendaraan (kdKend, noPolisi,
SuratJalan(kdSuratJalan,
kdGudang)
tglSuratJalan, kdStaff, kdKend)
Primary Key kdKend
Primary Key kdSuratJalan
Foreign Key kdGudang
Foreign Key kdStaff references
references Gudang(kdGudang)
Staff(kdStaff) Foreign Key kdKend references Kendaraan(kdKend)
Relationship antara entitas JenisKendaraan dengan Kendaraan menjelaskan
JenisKendaraan (kdJenisKend,
Kendaraan
(kdKend,
jenisKend)
kdGudang, kdJenisKend)
Primary Key kdJenisKend
Primary Key kdKend
noPolisi,
Foreign Key kdGudang references Gudang(kdGudang) Foreign Key kdJenisKend references JenisKendaraan(kdJenisKend)
142 Relationship antara entitas JenisBarang dengan Barang menjelaskan
JenisBarang(kdJenisBarang,
Barang(kdBarang, namaBarang,
deskripsi)
harga, kdJenisBarang, qtyBarang)
Primary Key kdjenisbarang
Primary Key kdBarang Foreign Key kdJenisBarang references JenisBarang(kdJenisBarang)
143 d. Tipe Binary Relationship 1:1
Relationship antara entitas Staff dengan Users memiliki
Staff(kdStaff, namaStaff, alamatStaff,
Users(username, password, privilege,
kdPosStaff, kotaStaff, noTelpStaff,
lastLogin, kdStaff)
tanggalLahir, emailStaff, jenisKelamin,
Primary Key username
jabatan, tanggalMulaiKerja, KdCabang,
Foreign Key kdStaff references
kdDivisi)
Staff(kdStaff)
Primary Key kdStaff Foreign Key kdCabang references Cabang(kdCabang) Foreign
Key
Divisi(kdDivisi)
kdDivisi
references
144 Relationship antara entitas Orders dengan KasBank memiliki
Orders (kdDO, tanggalKirimDO,
KasBank(kdKasBank,
totalHarga, qtyDO, tanggalInput,
tanggalPembayaran, totalPembayaran,
tanggalPrint, kdStaffPrint,
kdStaff, kdDO)
kdStaffInput, kdCust, kdGudang)
Primary Key kdKasBank
Primary Key kdDO
Foreign
Foreign Key kdCust references
Staff(kdStaff)
Customer(kdCust)
Foreign
Foreign Key kdGudang references
Orders(kdDO)
Gudang(kdGudang)
Key
Key
kdStaff
references
kdDO
references
145 Relationship antara entitas Orders dengan KasBank
membuktikan
Orders (kdDO, tanggalKirimDO,
Retur
totalHarga, qtyDO, tanggalInput,
qtyRetur, keteranganRetur, kdStaff)
(kdRetur,
tanggalRetur,
tanggalPrint, kdStaffPrint, kdStaffInput, Primary Key kdRetur kdCust, kdGudang)
Foreign
Primary Key kdDO
Staff(kdStaff)
Foreign Key kdCust
Foreign
references Customer(kdCust)
Orders(kdDO)
Foreign Key kdGudang references Gudang(kdGudang)
Key
Key
kdStaff
references
kdDO
references
146 Relationship antara entitas Orders dengan Faktur
memiliki
Orders (kdDO, tanggalKirimDO,
Faktur(kdFaktur, tanggalFaktur,
totalHarga, qtyDO, tanggalInput,
jatuhTempo, kdStaff, kdDO)
tanggalPrint, kdStaffPrint,
Primary Key kdFaktur
kdStaffInput, kdCust, kdGudang)
Foreign Key kdStaff references
Primary Key kdDO
Staff(kdStaff)Foreign
Foreign Key kdCust references
references Orders(kdDO)
Customer(kdCust) Foreign Key kdGudang references Gudang(kdGudang)
Key
kdDO
147 Relationship antara entitas Orders dengan BarangKeluar
memiliki
Orders (kdDO, tanggalKirimDO,
BarangKeluar(kdBarangKeluar,
totalHarga, qtyDO, tanggalInput,
tanggalKeluar, qtyBarang , kdStaff,
tanggalPrint, kdStaffPrint,
kdGudang, kdDO)
kdStaffInput, kdCust, kdGudang)
Primary Key kdBarangKeluar
Primary Key kdDO
Foreign Key kdStaff references
Foreign Key kdCust references
Staff(kdStaff)
Customer(kdCust)
Foreign Key kdGudang references
Foreign Key kdGudang references
Gudang(kdGudang) Foreign Key
Gudang(kdGudang)
kdDO references Orders(kdDO)
148 Relationship antara entitas BarangKeluar dengan SuratJalan
mempengaruhi
BarangKeluar(kdBarangKeluar,
SuratJalan(kdSuratJalan,
tanggalKeluar, qtyBarang , kdStaff,
tglSuratJalan, kdStaff, kdKend,
kdGudang, kdDO)
kdBarangKeluar)
Primary Key kdBarangKeluar
Primary Key kdSuratJalan
Foreign Key kdStaff references
Foreign Key kdStaff references
Staff(kdStaff)
Staff(kdStaff)
Foreign Key kdGudang references
Foreign Key kdKend references
Gudang(kdGudang) Foreign Key
Kendaraan(kdKend) Foreign Key
kdDO references Orders(kdDO)
kdBarangKeluar references BarangKeluar(kdBarangKeluar)
149 e. Tipe Relationship Superclass/Subclass Tidak ada tipe relationship superclass/subclass pada rancangan model data.
f. Tipe Binary Relationship *:*
Relationship antara entitas Barang, Gudang, dan LokasiBarang Barang(kdBarang, namaBarang,
Gudang(kdGudang, namaGudang,
harga, kdJenisBarang)
alamatGudang, kdPosGudang,
Primary Key kdBarang
kotaGudang, kdCabang)
Foreign Key kdJenisBarang
Primary Key kdGudang
references
Foreign Key kdCabang references
JenisBarang(kdJenisBarang)
Cabang(kdCabang)
LokasiBarang(kdBarang, kdGudang, qtyBarang) Primary Key kdBarang, kdGudang Foreign Key kdBarang references Barang(kdBarang) Foreign Key kdGudang references Gudang(kdGudang)
150 Relationship antara entitas Orders, Staff, dan OrderStaff Orders(kdDO, tanggalKirimDO,
Staff(kdStaff, namaStaff,
totalHarga, tanggalInput,
alamatStaff, kdPosStaff, kotaStaff,
tanggalPrint, kdCust, kdGudang,
tanggalLahir, emailStaff,
qtyDO, kdStaffPrint, kdStaffInput)
jenisKelamin, jabatan,
Primary Key kdDO
tanggalMulaiKerja, telpStaff) Primary Key kdStaff
OrderStaff(kdDO, kdStaff) Primary Key kdDO, kdStaff Foreign Key kdDO references Ordesr(kdDO) Foreign Key kdStaff references Staff(kdStaff)
151 Relationship antara entitas Orders, Barang, dan OrderDetail Orders(kdDO, tanggalKirimDO,
Barang(kdBarang, namaBarang,
totalHarga, tanggalInput,
harga, kdJenisBarang)
tanggalPrint, kdStaffPrint,
Primary Key kdBarang
kdStaffInput)
Foreign Key kdJenisBarang
Primary Key kdDO
references JenisBarang(kdJenisBarang)
OrderDetail(kdDO, kdBarang, qtyDO) Primary Key kdDO, kdBarang Foreign Key kdDO references Orders(kdDO) Foreign Key kdBarang references Barang(kdBarang)
152 Relationship antara entitas BarangMasuk, Barang, dan BarangMasukDetail Barangmasuk(kdBarangMasuk,
Barang(kdBarang, namaBarang,
tanggalMasuk)
harga, kdJenisBarang)
Primary Key kdBarangMasuk
Primary Key kdBarang Foreign Key kdJenisBarang references JenisBarang(kdJenisBarang)
BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang) Primary Key kdBarangMasuk, kdBarang Foreign Key kdBarangMasuk references BarangMasuk(kdBarangMasuk) Foreign Key kdBarang references Barang(kdBarang)
153 Relationship antara entitas BarangKeluar, Barang, dan BarangKeluarDetail BarangKeluar(kdBarangKeluar,
Barang(kdBarang, namaBarang,
tanggalKeluar)
harga, kdJenisBarang)
Primary Key kdBarangKeluar
Primary Key kdBarang Foreign Key kdJenisBarang references JenisBarang(kdJenisBarang)
BarangKeluarDetail (kdBarangKeluar, kdBarang, qtyBarang) Primary Key kdBarangKeluar, kdBarang Foreign Key kdBarangKeluar references BarangKeluar(kdBarangKeluar) Foreign Key kdBarang references Barang(kdBarang)
154 Relationship antara entitas Retur, Barang, dan ReturDetail Retur(kdRetur, tanggalRetur,
Barang(kdBarang, namaBarang,
keteranganRetur)
harga, kdJenisBarang)
Primary Key kdRetur
Primary Key kdBarang Foreign Key kdJenisBarang references JenisBarang(kdJenisBarang)
ReturDetail(kdRetur, kdBarang, qtyRetur) Primary Key kdRetur, kdBarang Foreign Key kdRetur references Retur(kdRetur) Foreign Key kdBarang references Barang(kdBarang)
155 g. Tipe Relationship kompleks Tidak ada tipe relationship kompleks pada rancangan model data.
h. Atribut Multi-valued
Gambar 3.25 Atribut Multi-valued pada entitas Staff Entitas Staff merepresentasikan situasi dimana sebuah staff memiliki hingga tiga nomor telepon, sehingga atribut noTelpStaff pada entitas Staff merupakan atribut multi-valued seperti gambar diatas.
Gambar 3.26 Atribut Multi-valued pada entitas Customer
156 Entitas Customer merepresentasikan situasi dimana sebuah customer memiliki hingga tiga nomor telepon, tiga nomor fax, dan tiga nomor rekening, sehingga atribut noTelpCust, noFaxCust, noRekCust pada entitas Customer merupakan atribut multi-valued seperti gambar diatas.
Gambar 3.27 Atribut Multi-valued pada entitas Cabang Entitas Cabang merepresentasikan situasi dimana sebuah cabang memiliki hingga tiga nomor telepon, tiga nomor fax, dan tiga nomor rekening, sehingga atribut noTelpCabang, noFaxCabang, noRekCabang pada entitas Cabang merupakan atribut multi-valued seperti gambar diatas.
157 3.10.2 Memvalidasi Relasi Menggunakan Normalisasi
LokasiBarang
UNF LokasiBarang(kdJenisBarang, deskripsi, kdBarang, namaBarang, qtyBarang, harga, kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)
1NF Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang) TelpCabang(noTelpCabang, kdCabang) FaxCabang(noFaxCabang, kdCabang) RekCabang(noRekCabang, namaBank, kdCabang) LokasiBarang(kdJenisBarang, kdGudang, deskripsi, kdBarang, namaBarang, qtyBarang, harga)
2NF Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)
158 TelpCabang(noTelpCabang, kdCabang) FaxCabang(noFaxCabang, kdCabang) RekCabang(noRekCabang, namaBank, kdCabang) LokasiBarang(kdGudang, kdBarang, qtyBarang) Barang (kdBarang, namaBarang, harga, kdJenisBarang, deskripsi,)
3NF Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Cabang(kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang) TelpCabang(noTelpCabang, kdCabang) FaxCabang(noFaxCabang, kdCabang) RekCabang(noRekCabang, namaBank, kdCabang) LokasiBarang(kdGudang, kdBarang, qtyBarang) Barang(kdBarang, namaBarang, harga, kdJenisBarang) JenisBarang(kdJenisBarang, deskripsi)
159 Delivery Order (DO)
UNF Orders (kdDO, tanggalKirimDO, qtyDO, kdBarang, namaBarang, totalHarga, kdStaffInput, kdStaffPrint, kdPengirim, kdSales, kdCustomer, namaCust, kdCabang, namaDivisi)
1NF Orders(kdDO, tanggalKirimDO, totalHarga, tanggalInput, tanggalPrint, kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff, kdGudang) OrderDetail(kdDO, kdBarang, qtyDO) OrderStaff(kdDO, kdStaff, namaStaff, alamatStaff, kdPosStaff, Kota, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi, namaDivisi) TelpStaff(noTelpStaff, kdStaff) TelpCust(noTelpCust, kdCust) faxCust(noFaxCust, kdCust) rekCust(noRekCust, namaBank, kdCust)
2NF Orders(kdDO, tanggalKirimDO, totalHarga, tanggalInput, tanggalPrint, kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff, kdGudang)
160 OrderDetail(kdDO, kdBarang, qtyDO) OrderStaff(kdDO, kdStaff, namaStaff, alamatStaff, kdPosStaff, kota, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi, namaDivisi) TelpStaff(noTelpStaff, kdStaff) TelpCust(noTelpCust, kdCust) FaxCust(noFaxCust, kdCust) RekCust(noRekCust, namaBank, kdCust)
3NF Orders(kdDO, tanggalKirimDO, totalHarga, tanggalInput, tanggalPrint, kdCust) OrderDetail(kdDO, kdBarang, qtyDO) Staff (kdStaff, namaStaff, alamatStaff, kdPosStaff, kota, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi) Divisi(kdDivisi, namaDivisi) OrderStaff(kdDO, kdStaff) TelpStaff(noTelpStaff, kdStaff) Customer(kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff) TelpCust(noTelpCust, kdCust) FaxCust(noFaxCust, kdCust) RekCust(noRekCust, namaBank, kdCust)
161 Users
UNF Users(username, password, privilege, lastLogin, kdStaff)
1NF Users(username, password, privilege, lastLogin, kdStaff)
2NF Users(username, password, privilege, lastLogin, kdStaff)
3NF Users(username, password, privilege, lastLogin, kdStaff)
BarangMasuk
UNF BarangMasuk(kdBarangMasuk, tanggalMasuk, kdBarang, namaBarang, qtyBarang, kdKepalaGudang, kdGudang)
1NF BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang)
162 2NF BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang)
3NF BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang)
BarangKeluar
UNF BarangKeluar(kdBarangKeluar, tanggalKeluar, kdBarang, namaBarang, qtyBarang, kdKepalaGudang, kdGudang, kdDO)
1NF BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO) BarangKeluarDetail(kdBarangKeluar, kdBarang, qtyBarang)
2NF BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO) BarangKeluarDetail(kdBarangKeluar, kdBarang, qtyBarang)
163 3NF BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO) BarangKeluarDetail(kdBarangKeluar, kdBarang, qtyBarang)
Surat Jalan
UNF SuratJalan(kdSuratJalan, tglSuratJalan, kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, telpCust, kdBarang, qtyDO, namaBarang, kdAdminGudang, kdKend, noPolisi, kdJenisKend, jenisKend, kdGudang, kdBarangKeluar)
1NF SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, noPolisi, kdJenisKend, jenisKend, kdGudang, kdBarangKeluar)
2NF SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, noPolisi, kdJenisKend, jenisKend, kdGudang, kdBarangKeluar)
3NF SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, kdBarangKeluar)
164 Kendaraan(kdKend, noPolisi, kdJenisKend, kdGudang) JenisKendaraan(kdJenisKend, jenisKend)
Faktur
UNF Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdBarang, namaBarang, qtyDO, harga, jumlahHarga, totalHarga, kdManagerPenjualan, kdStaffBuat, kdStaffCetak, kdStaffCek, kdManagerAR, kdCust, namaCust, alamatCust)
1NF Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdStaff)
2NF Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdStaff)
3NF Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdStaff)
165 Retur
UNF Retur(kdRetur, tanggalRetur, keteranganRetur, kdDO, kdBarang, qtyRetur, kdCust, kdPenerimaRetur, kdStaffyangmenyetujui)
1NF Retur(kdRetur, tanggalRetur, keteranganRetur, kdBarang, qtyRetur, kdDO, kdStaff)
2NF Retur(kdRetur, tanggalRetur, keteranganRetur, kdDO, kdStaff) ReturDetail(kdRetur, kdBarang, qtyRetur)
3NF Retur(kdRetur, tanggalRetur, keteranganRetur, kdDO, kdStaff) ReturDetail(kdRetur, kdBarang, qtyRetur)
166 KasBank
UNF KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, kdStaff)
1NF KasBank(kdKasBank, tanggalPembayaran, totaPembayaran, kdDO, kdStaff)
2NF KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, kdStaff)
3NF KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, totalHarga, kdStaff)
167
Gambar 3.28 Entity Relationship Diagram Logikal
168 3.10.3 Memvalidasi Relasi Terhadap Transaksi Pengguna Proses ini bertujuan untuk memastikan bahwa relasi pada model data logikal mendukung kebutuhan transaksi. Tahap ini memeriksa bahwa relasi yang dibuat pada tahap sebelumnya juga mendukung transaksi yang ada dan memastikan tidak ada error yang terjadi pada saat membuat relasi. Apabila semua transaksi dapat dipenuhi oleh model data logikal yang dibuat maka model data logikal tersebut valid. Pada perancangan diatas, semua transaksi dapat dipenuhi oleh model data logikal yang dibuat.
3.10.4 Memeriksa Integrity Constraint Cabang(kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang) Primary Key kdCabang
TelpCabang(noTelpCabang, kdCabang) Primary Key noTelpCabang Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE
FaxCabang(noFaxCabang, kdCabang) Primary Key noFaxCabang Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE
169
RekCabang(noRekCabang, namaBank, kdCabang) Primary Key noRekCabang Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE
Divisi(kdDivisi, namaDivisi) Primary Key kdDivisi
Staff(kdStaff, namaStaff, alamatStaff, kdPosStaff, kotaStaff, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi, kdCabang) Primary Key kdStaff Foreign Key kdDivisi references Divisi(kdDivisi) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE NO ACTION
TelpStaff(noTelpStaff, kdStaff) Primary Key noTelpStaff Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE CASCADE Users(username, password, privilege, lastLogin, kdStaff) Primary Key username
170 Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE CASCADE
Customer(kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff) Primary Key kdCust Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL TelpCust(noTelpCust, kdCust) Primary Key noTelpCust Foreign Key kdCust references Customer(kdCust) ON UPDATE CASCADE ON DELETE CASCADE
FaxCust (FaxCust, kdCust) Primary Key noFaxCust Foreign Key kdCust references Customer(kdCust) ON UPDATE CASCADE ON DELETE CASCADE
RekCust(noRekCust, namaBank, kdCust) Primary Key noRekCust Foreign Key kdCust references Customer(kdCust) ON UPDATE CASCADE ON DELETE CASCADE Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang)
171 Primary Key kdGudang Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE NO ACTION
Kendaraan(kdKendaraan, noPolisi, jumlahKend, kdJenisKend, kdGudang) Primary Key kdKendaraan Foreign Key kdJenisKend references JenisKendaraan(kdJenisKend) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdGudang references Gudang(kdGudang) ON UPDATE CASCADE ON DELETE SET NULL
JenisKendaraan(kdJenisKendaraan, JenisKendaraan) Primary Key kdJenisKendaraan
Barang(kdBarang, namaBarang, harga, kdJenisBarang) Primary Key kdBarang Foreign Key kdJenisBarang references JenisBarang(kdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION
JenisBarang(kdJenisBarang, deskripsi) Primary Key kdJenisBarang LokasiBarang(kdBarang, kdGudang, qtyBarang) Primary Key kdBarang, kdGudang
172 Foreign Key kdBarang references Barang(kdBarang) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key kdGudang references Gudang(kdGudang) ON UPDATE CASCADE ON DELETE CASCADE
Orders(kdDO, tanggalKirimDO, totalHarga, keteranganDO, tanggalInput, tanggalPrint, kdCust, kdGudang) Primary Key kdDO Foreign Key kdCust references Customer(kdCustomer) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdGudang references Gudang(kdGudang) ON UPDATE CASCADE ON DELETE NO ACTION
OrderDetail(kdDO, kdBarang, qtyDO) Primary Key kdDO, kdBarang Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key kdBarang references Barang(kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION
Orderstaff(kdDO, kdStaff) Primary Key kdDO, kdStaff Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE CASCADE
173 Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) Primary Key kdBarangMasuk Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key kdGudang references Gudang(kdGudang) ON UPDATE CASCADE ON DELETE NO ACTION
BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang) Primary Key kdBarangMasuk, kdBarang Foreign Key kdBarangMasuk references BarangMasuk(kdBarangMasuk) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key kdBarang references Barang(kdBarang) ON UPDATE CASCADE ON DELETE CASCADE
BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO) Primary Key kdBarangKeluar Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key kdGudang references Gudang(kdGudang) ON UPDATE CASCADE ON DELETE NO ACTION
174 Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION
BarangKeluarDetail (kdBarangkeluar, kdBarang, qtyBarang) Primary Key kdBarangKeluar, kdBarang Foreign Key kdBarangKeluar references BarangKeluar(kdBarangKeluar) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key kdBarang references Barang(kdBarang) ON UPDATE CASCADE ON DELETE CASCADE
SuratJalan(kdSuratJalan, tglSuratJalan, kdDO, kdStaff, kdKend, kdBarangKeluar) Primary Key kdSuratJalan Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL Foreign Key kdKend references Kendaraan(kdKend) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdBarangKeluar references BarangKeluar(kdBarangKeluar) ON UPDATE CASCADE ON DELETE NO ACTION
175 Retur(kdRetur, tanggalRetur, kdDO, kdFaktur, kdStaff) Primary Key kdRetur Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdFaktur references Faktur(kdFaktur) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL
ReturDetail(kdRetur, kdBarang, qtyRetur) Primary Key kdRetur, kdBarang Foreign Key kdRetur references Retur(kdRetur) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key kdBarang references Barang(kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION
Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdStaff) Primary Key kdFaktur Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL
176 KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, kdStaff) Primary Key kdKasBank Foreign Key kdDO references Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL
3.10.5 Meninjau Model Data Logikal dengan Pengguna Tahap ini bertujuan untuk meninjau ulang model data logikal yang telah dibuat dengan pengguna-pengguna untuk memastikan bahwa model data logikal yang telah dibuat telah merepresentasikan kebutuhan data secara benar. Model data logikal yang telah dibuat telah merefleksikan struktur data yang disimpan untuk perusahaan, dibuktikan dengan setiap penyimpanan data pada DFD telah merepresentasikan seluruh tipe entitas pada ERD dan atribut pada DFD dimiliki juga oleh entitas pada ERD.
177 3.11
Perancangan Basis Data Fisikal 3.11.1 Menerjemahkan Model Data Logikal untuk DBMS Target 3.11.1.1 Desain Relasi Dasar
Cabang Domain KodeCabang
fixed length character string length 3
Domain NamaCabang
variable length character string length 40
Domain AlamatCabang
variable length character string length 50
Domain KodePosCabang
fixed length character string length 5
Domain KotaCabang
variable length character string length 15
Domain EmailCabang
variable length character string length 30
Cabang( kdCabang
KodeCabang
NOT NULL,
alamatCabang
AlamatCabang
NOT NULL,
kdPosCabang
KodePosCabang
NOT NULL,
kotaCabang
KotaCabang
NOT NULL,
emailCabang
EmailCabang
NOT NULL,
PRIMARY KEY kdCabang);
TelpCabang Domain NomorTeleponCabang variable length character string length 12 Domain KodeCabang
fixed length character string length 3
TelpCabang( noTelpCabang
NomorTeleponCabang
NOT NULL,
178 kdCabang
KodeCabang
NOT NULL,
PRIMARY KEY telpCabang, FOREIGN KEY kdCabang REFERENCES Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE);
FaxCabang Domain NomorFaxCabang
variable length character string length 12
Domain KodeCabang
fixed length character string length 3
FaxCabang( noFaxCabang
NomorFaxCabang
NOT NULL,
kdCabang
KodeCabang
NOT NULL,
PRIMARY KEY faxCabang, FOREIGN KEY kdCabang REFERENCES Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE);
RekCabang Domain NoRekeningCabang
variable length character string length 15
Domain NamaBank
variable length character string length 30
Domain KodeCabang
fixed length character string length 3
RekCabang( noRekCabang
NoRekeningCabang
NOT NULL,
namaBank
NamaBank
NOT NULL,
kdCabang
kodeCabang
NOT NULL,
PRIMARY KEY rekCabang,
179 FOREIGN KEY kdCabang REFERENCES Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE);
Divisi Domain KodeDivisi
fixed length character string length 2
Domain NamaDivisi
variable length character string length 20
Divisi( kdDivisi
KodeDivisi
NOT NULL,
namaDivisi
NamaDivisi
NOT NULL,
PRIMARY KEY kdDivisi);
Staff Domain KodeStaff
fixed length character string length 5
Domain NamaStaff
variable length character string length 40
Domain AlamatStaff
variable length character string length 50
Domain KodePosStaff
fixed length character string length 5
Domain Kota
variable length character string length 15
Domain TanggalLahir
date
Domain EmailStaff
variable length character string length 30
Domain JenisKelamin
single character, “L” atau “P”
Domain Jabatan
variable length character string length 20
Domain TanggalMulaiKerja
date
Domain KodeDivisi
fixed length character string length 2
Domain KodeCabang
fixed length character string length 3
180 Staff( kdStaff
KodeStaff
NOT NULL,
namaStaff
NamaStaff
NOT NULL,
alamatStaff
AlamatStaff
NOT NULL,
kdPosStaff
KodePosStaff
NOT NULL,
kota
Kota
NOT NULL,
tanggalLahir
TanggalLahir
NOT NULL,
emailStaff
EmailStaff,
jenisKelamin
JenisKelamin
NOT NULL,
jabatan
Jabatan
NOT NULL,
tanggalMulaiKerja TanggalMulaiKerja
NOT NULL,
kdDivisi
KodeDivisi
NOT NULL,
kdCabang
KodeCabang
NOT NULL,
PRIMARY KEY kdStaff, FOREIGN KEY kdDivisi REFERENCES Divisi(kdDivisi) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY kdCabang REFERENCES Cabang(kdCabang) ON UPDATE CASCADE ON DELETE NO ACTION);
TelpStaff Domain NomorTeleponStaff
variable length character string length 12
Domain KodeStaff
fixed length character string length 5
TelpStaff( noTelpStaff
NomorTeleponStaff
NOT NULL,
181 kdStaff
KodeStaff
NOT NULL,
PRIMARY KEY telpStaff, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE CASCADE);
Users Domain Username
variable length character string length 10
Domain Password
variable length character string length 20
Domain Privilege
variable length character string length 10
Domain LastLogin
datetime
Domain KodeStaff
fixed length character string length 5
Users( username
Username
NOT NULL,
password
Password
NOT NULL,
privilege
Privilege
NOT NULL,
lastLogin
LastLogin
NOT NULL,
kdStaff
KodeStaff
NOT NULL,
PRIMARY KEY username, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE CASCADE);
Customer Domain KodeCustomer
fixed length character string length 5
Domain NamaCustomer
variable length character string length 40
182 Domain AlamatCustomer
variable length character string length 50
Domain KodePosCustomer
fixed length character string length 5
Domain KotaCustomer
variable length character string length 15
Domain EmailCustomer
variable length character string length 30
Domain KodeStaff
fixed length character string length 5
Customer( kdCust
KodeCustomer
NOT NULL,
namaCust
NamaCustomer
NOT NULL,
alamatCust
AlamatCustomer
NOT NULL,
kdPosCust
KodePosCustomer
NOT NULL,
kotaCust
KotaCustomer
NOT NULL,
emailCust
EmailCustomer,
kdStaff
KodeStaff
NOT NULL,
PRIMARY KEY kdCust, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL);
TelpCust Domain NoTeleponCustomer
variable length character string length 12
Domain KodeCustomer
fixed length character string length 5
TelpCust( noTelpCust
NoTeleponCustomer
NOT NULL,
kdCust
KodeCustomer
NOT NULL,
PRIMARY KEY telpCust,
183 FOREIGN
KEY
kdCust
REFERENCES
Customer(kdCust)
ON
UPDATE CASCADE ON DELETE CASCADE);
FaxCust Domain NomorFaxCustomer
variable length character string length 12
Domain KodeCustomer
fixed length character string length 5
FaxCust( noFaxCust
NomorFaxCustomer
NOT NULL,
kdCust
KodeCustomer
NOT NULL,
PRIMARY KEY faxCust, FOREIGN
KEY
kdCust
REFERENCES
Customer(kdCust)
ON
UPDATE CASCADE ON DELETE CASCADE);
RekCust Domain NoRekeningCustomer variable length character string length 15 Domain NamaBank
variable length character string length 30
Domain KodeCustomer
fixed length character string length 5
RekCust( noRekCust
NoRekeningCustomer
NOT NULL,
namaBank
NamaBank
NOT NULL,
kdCust
KodeCustomer
NOT NULL,
PRIMARY KEY rekCust, FOREIGN
KEY
kdCust
REFERENCES
Customer(kdCust)
UPDATE CASCADE ON DELETE CASCADE);
ON
184 Gudang Domain KodeGudang
fixed length character string length 3
Domain NamaGudang
variable length character string length 30
Domain AlamatGudang
variable length character string length 50
Domain KodePosGudang
fixed length character string length 5
Domain KotaGudang
variable length character string length 15
Domain KodeCabang
fixed length character string length 3
Gudang( kdGudang
KodeGudang
NOT NULL,
namaGudang
NamaGudang
NOT NULL,
alamatGudang
AlamatGudang
NOT NULL,
kdPosGudang
KodePosGudang
NOT NULL,
kotaGudang
KotaGudang
NOT NULL,
kdCabang
KodeCabang
NOT NULL,
PRIMARY KEY kdGudang, FOREIGN KEY kdCabang REFERENCES Cabang(kdCabang) ON UPDATE CASCADE ON DELETE NO ACTION);
Kendaraan Domain KodeKendaraan
fixed length character string length 4
Domain NomorPolisi
variable length character string length 10
Domain KodeJenisKendaraan
fixed length character string length 2
Domain KodeGudang
fixed length character string length 3
Kendaraan(
185 kdKend
KodeKendaraan
NOT NULL,
noPolisi
NomorPolisi
NOT NULL,
kdJenisKend
KodeJenisKendaraan NOT NULL,
kdGudang
KodeGudang
NOT NULL,
PRIMARY KEY kdKend, FOREIGN KEY kdJenisKend REFERENCES JenisKendaraan(kdJenisKend) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY kdGudang REFERENCES Gudang(kdGudang) ON UPDATE CASCADE ON DELETE SET NULL);
JenisKendaraan Domain KodeJenisKendaraan
fixed length character string length 2
Domain JenisKendaraan
variable length character string length 20
JenisKendaraan( kdJenisKend
KodeJenisKendaraan NOT NULL,
jenisKend
JenisKendaraan
NOT NULL,
PRIMARY KEY kdJenisKendaraan);
Barang Domain KodeBarang
variable length character string length 10
Domain NamaBarang
variable length character string length 50
Domain Harga
integer
Domain KodeJenisBarang
fixed length character string length 2
186 Barang( kdBarang
KodeBarang
NOT NULL,
namaBarang
NamaBarang
NOT NULL,
harga
Harga
NOT NULL,
kdJenisBarang
KodeJenisBarang
NOT NULL,
PRIMARY KEY kdBarang, FOREIGN KEY kdJenisBarang REFERENCES JenisBarang(kdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION);
JenisBarang Domain KodeJenisBarang
fixed length character string length 2
Domain Deskripsi
variable length character string length 80
JenisBarang( kdJenisBarang
KodeJenisBarang
NOT NULL,
deskripsi
Deskripsi
NOT NULL,
PRIMARY KEY kdJenisBarang);
LokasiBarang Domain KodeBarang
variable length character string length 10
Domain KodeGudang
fixed length character string length 3
Domain QuantityBarang
integer
LokasiBarang( kdBarang
KodeBarang
NOT NULL,
187 kdGudang
KodeGudang
NOT NULL,
qtyBarang
QuantityBarang
NOT NULL,
PRIMARY KEY kdBarang, kdGudang, FOREIGN KEY kdBarang REFERENCES Barang(kdBarang) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY kdGudang REFERENCES Gudang(kdGudang) ON UPDATE CASCADE ON DELETE CASCADE);
Orders Domain KodeDO
fixed length character string length 10
Domain TanggalKirimDO
date
Domain TotalHarga
integer
Domain TanggalInput
datetime
Domain TanggalPrint
datetime
Domain KodeCustomer
fixed length character string length 5
Domain KodeGudang
fixed length character string length 3
Orders( kdDO
KodeDO
NOT NULL,
tanggalKirimDO
TanggalKirimDO
NOT NULL,
totalHarga
TotalHarga
NOT NULL,
tanggalInput
TanggalInput
NOT NULL,
tanggalPrint
TanggalPrint
NOT NULL,
kdCust
KodeCustomer
NOT NULL,
kdGudang
KodeGudang
NOT NULL,
188 PRIMARY KEY kdDO, FOREIGN KEY kdCust REFERENCES Customer(kdCust) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY kdGudang REFERENCES Gudang(kdGudang) ON UPDATE CASCADE ON DELETE NO ACTION);
OrderDetail Domain KodeDO
fixed length character string length 10
Domain KodeBarang
variable length character string length 10
Domain QuantityDO
integer
OrderDetail( kdDO
KodeDO
NOT NULL,
kdBarang
KodeBarang
NOT NULL,
qtyDO
QuantityDO
NOT NULL,
PRIMARY KEY kdDO, kdBarang, FOREIGN KEY kdDO REFERENCES Orders(kdDO) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY kdBarang REFERENCES Barang(kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION);
OrderStaff Domain KodeDO
variable length character string length 10
Domain KodeStaff
fixed length character string length 5
OrderStaff (
189 kdDO
KodeDO
NOT NULL,
kdStaff
KodeStaff
NOT NULL,
PRIMARY KEY kdDO, kdStaff, FOREIGN KEY kdDO REFERENCES Orders(kdDO) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY kdstaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL);
BarangMasuk Domain KodeBarangMasuk
fixed length character string length 12
Domain TanggalMasuk
datetime
Domain KodeStaff
fixed length character string length 5
Domain KodeGudang
fixed length character string length 3
BarangMasuk( kdBarangMasuk
KodeBarangMasuk
NOT NULL,
tanggalMasuk
TanggalMasuk
NOT NULL,
kdStaff
KodeStaff
NOT NULL,
kdGudang
kodeGudang
NOT NULL,
PRIMARY KEY kdBarangMasuk, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY kdGudang REFERENCES Gudang(kdGudang) ON UPDATE CASCADE ON DELETE NO ACTION);
190 BarangMasukDetail Domain KodeBarangMasuk
fixed length character string length 12
Domain KodeBarang
variable length character string length 10
Domain QuantityBarang
integer
BarangMasukDetail( kdBarangMasuk
KodeBarangMasuk
NOT NULL,
kdBarang
KodeBarang
NOT NULL,
qtyBarang
QuantityBarang
NOT NULL,
PRIMARY KEY kdBarangMasuk, kdBarang, FOREIGN KEY kdBarangMasuk REFERENCES barangMasuk(kdBarangMasuk) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY kdBarang REFERENCES Barang(kdBarang) ON UPDATE CASCADE ON DELETE CASCADE);
BarangKeluar Domain KodeBarangKeluar
fixed length character string length 12
Domain TanggalKeluar
datetime
Domain KodeStaff
fixed length character string length 5
Domain KodeGudang
fixed length character string length 3
BarangKeluar( kdBarangKeluar
KodeBarangKeluar
NOT NULL,
tanggalKeluar
TanggalKeluar
NOT NULL,
kdStaff
KodeStaff
NOT NULL,
191 kdGudang
KodeGudang
NOT NULL,
kdSuratJalan
KodeSuratJalan
NOT NULL,
PRIMARY KEY kdBarangKeluar, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY kdGudang REFERENCES Gudang(kdGudang) ON UPDATE CASCADE ON DELETE NO ACTION);
BarangKeluarDetail Domain KodeBarangKeluar
fixed length character string length 12
Domain KodeBarang
variable length character string length 10
Domain QuantityBarang
integer
BarangKeluarDetail( kdBarangKeluar
KodeBarangKeluar
NOT NULL,
kdBarang
KodeBarang
NOT NULL,
qtyBarang
QuantityBarang
NOT NULL,
PRIMARY KEY kdBarangKeluar, kdBarang, FOREIGN KEY kdBarangKeluar REFERENCES barangKeluar(kdBarangKeluar) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY kdBarang REFERENCES Barang(kdBarang) ON UPDATE CASCADE ON DELETE CASCADE);
192 SuratJalan Domain KodeSuratJalan
fixed length character string length 12
Domain TanggalSuratJalan
date
Domain KodeDO
fixed length character string length 10
Domain KodeStaff
fixed length character string length 5
Domain Kodekendaraan
fixed length character string length 4
Domain KodeBarangKeluar
fixed length character string length 12
SuratJalan( kdSuratJalan
KodeSuratJalan
NOT NULL,
tglSuratJalan
TanggalSuratJalan
NOT NULL,
kdDO
kodeDO
NOT NULL,
kdStaff
kodeStaff
NOT NULL,
kdKend
kodeKendaraan
NOT NULL,
kdBarangKeluar
kodeBarangKeluar
NOT NULL,
PRIMARY KEY kdSuratJalan, FOREIGN KEY kdDO REFERENCES Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL , FOREIGN KEY kdKend REFERENCES Kendaraan(kdKend) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN
KEY
kdBarangKeluar
REFERENCES
BarangKeluar(kdBarangKeluar) ON UPDATE CASCADE ON DELETE NO ACTION);
193 Retur Domain KodeRetur
fixed length character string length 12
Domain TanggalRetur
date
Domain KeteranganRetur
variable length character string length 80
Domain KodeDO
fixed length character string length 10
Domain KodeStaff
fixed length character string length 5
Retur( kdRetur
kodeRetur
NOT NULL,
tanggalRetur
tanggalRetur
NOT NULL,
keteranganRetur
keteranganRetur
NOT NULL,
kdDO
kodeDO
NOT NULL,
kdStaff
kodeStaff
NOT NULL,
PRIMARY KEY kdRetur, FOREIGN KEY kdDO REFERENCES Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL);
ReturDetail Domain KodeRetur
fixed length character string length 12
Domain KodeBarang
variable length character string length 10
Domain QuantityRetur
integer
ReturDetail( kdRetur
KodeRetur
NOT NULL,
194 kdBarang
KodeBarang
NOT NULL,
qtyRetur
QuantityRetur
NOT NULL,
PRIMARY KEY kdRetur, kdBarang, FOREIGN KEY kdRetur REFERENCES Retur(kdRetur) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY kdBarang REFERENCES Barang(kdBarang) ON UPDATE CASCADE ON DELETE NO ACTION);
Faktur Domain KodeFaktur
fixed length character string length 12
Domain TanggalFaktur
date
Domain JatuhTempo
date
Domain KodeDO
fixed length character string length 10
Domain KodeStaff
fixed length character string length 5
Faktur( kdFaktur
KodeFaktur
NOT NULL,
tanggalFaktur
TanggalFaktur
NOT NULL,
jatuhTempo
TanggalBayar
NOT NULL,
kdDO
KodeDO
NOT NULL,
kdStaff
KodeStaff
NOT NULL,
PRIMARY KEY kdFaktur, FOREIGN KEY kdDO REFERENCES Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION,
195 FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL);
KasBank Domain KodeKasBank
fixed length character string length 12
Domain TanggalPembayaran
date
Domain TotalPembayaran
integer
Domain KodeDO
fixed length character string length 10
Domain KodeStaff
fixed length character string length 5
KasBank( kdKasBank
KodeKasBank
NOT NULL,
tanggalPembayaran TanggalPembayaran
NOT NULL,
totalPembayaran
TotalPembayaran
NOT NULL,
kdDO
KodeDO
NOT NULL,
kdStaff
KodeStaff
NOT NULL,
PRIMARY KEY kdPembayaran, FOREIGN KEY kdStaff REFERENCES Staff(kdStaff) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY kddo REFERENCES Orders(kdDO) ON UPDATE CASCADE ON DELETE NO ACTION);
196 3.11.1.2 Merancang Representasi Dari Data yang Diturunkan Data yang diturunkan antara lain : a.
totalHarga pada tabel Orders Merepresentasikan nominal harga yang didapat dengan mengalikan kuantitas produk yang dipesan dengan harga per produk.
3.11.1.3 Merancang Batasan Umum a. Tanggal pengiriman tidak boleh lebih kecil daripada tanggal pembuatan Delivery Order tersebut. CONSTRAINT tanggalKirimDOValidation CHECK (NOT EXIST (SELECT tanggalKirimDO FROM Orders WHERE tanggalKirimDO < SYSDATE)) b. Tanggal pembayaran tidak boleh lebih kecil daripada tanggal pembuatan faktur dan tidak boleh lebih besar daripada tanggal pembuatan kas bank tersebut. CONSTRAINT tanggalPembayaranValidation CHECK (NOT EXIST (SELECT tanggalPembayaran FROM Orders WHERE tanggalPembayaran < tanggalFaktur AND tanggalPembayaran > SYSDATE)) c. Tanggal jatuh tempo tidak boleh lebih kecil daripada tanggal pembuatan faktur tersebut.
197 CONSTRAINT jatuhTempoValidation CHECK (NOT EXIST (SELECT jatuhTempo FROM Faktur WHERE jatuhTempo < SYSDATE)) d. Cabang hanya dapat memiliki 3 nomor telepon CONSTRAINT TelpCabangValidation CHECK (NOT EXIST (SELECT noTelpCabang FROM TelpCabang GROUP BY noTelpCabang HAVING COUNT(*) > 3)) e. Cabang hanya dapat memiliki 3 nomor fax CONSTRAINT FaxCabangValidation CHECK (NOT EXIST (SELECT noFaxCabang FROM FaxCabang GROUP BY noFaxCabang HAVING COUNT (*) > 3)) f. Cabang hanya dapat memiliki 3 nomor rekening CONSTRAINT RekCabangValidation CHECK (NOT EXIST (SELECT noRekCabang FROM RekCabang GROUP BY noRekCabang HAVING COUNT (*) > 3)) g. Staff hanya dapat memiliki 3 nomor telepon CONSTRAINT TelpStaffValidation
198 CHECK (NOT EXIST (SELECT noTelpStaff FROM TelpStaff GROUP BY noTelpStaff HAVING COUNT (*) > 3)) h. Customer hanya dapat memiliki 3 nomor telepon CONSTRAINT TelpCust Validation CHECK (NOT EXIST (SELECT noTelpCust FROM TelpCust GROUP BY noTelpCut HAVING COUNT (*) > 3)) i. Customer hanya dapat memiliki 3 nomor fax CONSTRAINT FaxCust Validation CHECK (NOT EXIST (SELECT noFaxCust FROM FaxCust GROUP BY noFaxCust HAVING COUNT (*) > 3)) j. Customer hanya dapat memiliki 3 nomor rekening CONSTRAINT RekCustomer Validation CHECK (NOT EXIST (SELECT noRekCust FROM RekCust GROUP BY noRekCust HAVING COUNT (*) > 3))
199 3.11.2 Merancang Organisasi File dan Index 3.11.2.1 Menganalisis Transaksi Memetakan Seluruh Jalur Transaksi Tinjauan Sales Admin (SA) a.
Memasukkan data order dari customer tertentu.
b.
Memasukkan data retur dari order tertentu.
c.
Mengubah/menghapus data order dari customer tertentu.
d.
Mengubah/menghapus data retur dari order tertentu.
e.
Melihat rincian data pesanan yang dilakukan oleh customer tertentu.
f.
Melihat rincian data retur yang dilakukan oleh customer tertentu.
g.
Melihat rincian data retur yang mengacu pada delivery order tertentu.
h.
Melihat daftar customer.
i.
Melihat daftar sales yang melayani customer tertentu.
j.
Melihat daftar gudang yang memiliki barang tertentu.
k.
Melihat staff yang bertanggung jawab menangani retur.
l.
Melihat nama barang yang diretur pada tanggal tertentu.
m.
Melihat delivery order berdasarkan gudang tertentu.
200 Tinjauan Kepala Gudang n.
Memasukkan data barang yang keluar dari Delivery Order
o.
Memasukkan data barang yang masuk
p.
Melihat informasi pesanan dengan detail barang yang dipesan.
q.
Melihat staff yang menginput informasi pesanan tertentu.
r.
Melihat daftar staff yang bekerja di cabang tertentu.
s.
Melihat barang apa saja yang keluar di gudang tertentu.
t.
Melihat nama barang yang keluar pada tanggal tertentu.
u.
Melihat staff yang bertanggung jawab dengan barang keluar tertentu.
v.
Melihat barang keluar yang sesuai dengan surat jalan tertentu.
w.
Melihat barang apa saja yang masuk pada tanggal tertentu.
x.
Melihat barang masuk di gudang tertentu.
y.
Melihat staff yang bertanggung jawab dengan barang masuk tertentu.
201 Tinjauan Admin Gudang z.
Memasukkan data surat jalan dari barang keluar
aa.
Melihat kendaraan yang dicantumkan pada surat jalan tertentu.
bb.
Melihat alamat customer pada Delivery Order tertentu.
cc.
Melihat staff yang bertanggung jawab membuat Surat Jalan.
dd.
Melihat cabang beserta gudang-gudangnya.
ee.
Melihat surat jalan yang mengacu kepada delivery order tertentu.
ff.
Melihat kendaraan yang terdapat pada gudang tertentu.
Tinjauan Inventory Control gg.
Mengubah data stok barang di Delivery Order tertentu
hh.
Melihat stok barang yang dipesan pada Delivery Order oleh customer tertentu.
Tinjauan Account Recieveable ii.
Memasukkan data faktur dari Delivery Order tertentu
jj.
Mengubah status pembayaran dari faktur tertentu
kk.
Melihat faktur untuk customer tertentu.
ll.
Melihat faktur yang mengacu pada Delivery Order tertentu.
202 mm.
Melihat staff yang bertanggung jawab membuat faktur tertentu.
nn.
Melihat jatuh tempo pembayaran seorang customer.
oo.
Melihat daftar harga barang.
pp.
Melihat status faktur dari customer tertentu.
Tinjauan Finance qq.
Memasukkan data kas bank dari Delivery Order tertentu.
rr.
Melihat status faktur dari order tertentu.
ss.
Melihat kasbank dari order tertentu.
tt.
Melihat
staff
yang
bertanggung
pembuatan kas bank tertentu.
Tinjauan Admin uu.
Memasukkan data cabang
vv.
Memasukkan data divisi
ww.
Memasukkan data staff
xx.
Memasukkan data user
yy.
Memasukkan data customer
zz.
Memasukkan data gudang
aaa.
Memasukkan data kendaraan
bbb.
Memasukkan data jenis kendaraan
ccc.
Memasukkan data barang
jawab
dalam
203 ddd.
Memasukkan data jenis barang
eee.
Memasukkan data lokasi barang
fff.
Mengubah/menghapus data cabang
ggg.
Mengubah/menghapus data divisi
hhh.
Mengubah/menghapus data staff
iii.
Mengubah/menghapus data user
jjj.
Mengubah/menghapus data customer
kkk.
Mengubah/menghapus data gudang
lll.
Mengubah/menghapus data kendaraan
mmm. Mengubah/menghapus data jenis kendaraan nnn.
Mengubah/menghapus data barang
ooo.
Mengubah/menghapus data jenis barang
ppp.
Mengubah/menghapus data lokasi barang
qqq.
Mengubah/menghapus data Delivery Order
rrr.
Mengubah/menghapus data barang keluar
sss.
Mengubah/menghapus data barang masuk
ttt.
Mengubah/menghapus data surat jalan
uuu.
Mengubah/menghapus data retur
vvv.
Mengubah/menghapus data faktur
www.
Mengubah/menghapus data kas bank
xxx.
Melihat daftar cabang.
yyy.
Melihat daftar divisi.
zzz.
Melihat daftar staff yang bekerja pada suatu cabang.
aaaa.
Melihat daftar staff yang bekerja pada suatu divisi.
204 bbbb.
Melihat daftar username dari staff tertentu.
cccc.
Melihat daftar barang.
dddd.
Melihat daftar gudang.
eeee.
Melihat daftar customer.
ffff.
Melihat daftar pesanan.
gggg.
Melihat daftar surat jalan.
hhhh.
Melihat daftar faktur.
iiii.
Melihat daftar kas bank.
jjjj.
Melihat nama barang beserta jenis barangnya.
kkkk.
Melihat nama kendaraan beserta jenis kendaraannya.
llll.
Melihat daftar retur.
205 Tabel 3.6 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
a I
R
b U
D
I
X X X X X
X
R
c U
D
I
R
X
X X X X X
X X X
X
X X
I = Insert, R = Read, U = Update, D = Delete
U
D
X
X
206 Tabel 3.7 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
d I
R
e U
D
I
R
f U
D
I
R
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
I = Insert, R = Read, U = Update, D = Delete
X X
U
D
207 Tabel 3.8 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
g I
R
X
h U
D
I
R
i U
D
X X X X X
X X X
X X
I = Insert, R = Read, U = Update, D = Delete
I
R
X X X X X X X
U
D
208 Tabel 3.9 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
j I
R
X
k U
D
I
R
l U
D
X X X
I
R
X
X
X X X
X X X
X X
I = Insert, R = Read, U = Update, D = Delete
X X
U
D
209 Tabel 3.10 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
m I
R
n U
D
I
X
R
o U
D
I
X
R
X
X
X
X X X X X X
X X X
X X X
X X X X
I = Insert, R = Read, U = Update, D = Delete
U
D
210 Tabel 3.11 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
p I
R
q U
D
I
R
X
X X X
X X X X X X
X X X
r U
D
I = Insert, R = Read, U = Update, D = Delete
I
R X X X X X X X X
U
D
211 Tabel 3.12 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
s I
R
X
t U
D
I
R
u U
D
X
I
R
X X X
X
X X X
X X X
X X
X X
I = Insert, R = Read, U = Update, D = Delete
X X
U
D
212 Tabel 3.13 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
v I
R
X
w U
D
I
R
x U
D
X
I
R
X
X
X X X X X
I = Insert, R = Read, U = Update, D = Delete
X X
U
D
213 Tabel 3.14 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
y I
R
z U
D
I
X X X
R
aa U
D
X
I
R
X
X X
X X X X X
I = Insert, R = Read, U = Update, D = Delete
X
U
D
214 Tabel 3.15 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
bb I
R
X X X X X
cc U
D
I
R
dd U
D
X X X
I
R X X X X
X
X
X X X
X
I = Insert, R = Read, U = Update, D = Delete
U
D
215 Tabel 3.16 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
ee I
R
X
ff U
D
I
R
gg U
D
X
I
R
U
X
X X X
X X X
X
I = Insert, R = Read, U = Update, D = Delete
X X X
X X X
D
216 Tabel 3.17 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
hh I
R
ii U
D
I
X X X X X
R
jj U
D
X
X X X X X X
I
R
U
X
X X X
X
I = Insert, R = Read, U = Update, D = Delete
X
D
217 Tabel 3.18 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
kk I
R
X
ll U
D
I
R
U
D
X
I
R
X X X
X X X
X
X
I = Insert, R = Read, U = Update, D = Delete
X
mm U
D
218 Tabel 3.19 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
nn I
R
X X X X X
oo U
D
I
R
pp U
D
X
I
R
X X X X X
X X
X
I = Insert, R = Read, U = Update, D = Delete
X
U
D
219 Tabel 3.20 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
qq I
R
rr U
D
I
R
ss U
D
I
R
X
X
X
X X X
X X X
X X X
X X
I = Insert, R = Read, U = Update, D = Delete
X
U
D
220 Tabel 3.21 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
tt I
R
uu U
D
I X X X X
R
vv U
D
I
R
X X X X
X
X
I = Insert, R = Read, U = Update, D = Delete
X
U
D
221 Tabel 3.22 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
R
ww U
xx D
I
R
X
X
yy U
D
I
R
X X X
I = Insert, R = Read, U = Update, D = Delete
X X X X X
U
D
222 Tabel 3.23 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
zz I
R
U
D
I
X
R
aaa U
D
I
X
X
X X
I = Insert, R = Read, U = Update, D = Delete
R
X
bbb U
D
223 Tabel 3.24 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
R
ccc U
D
I
X
R
ddd U
D
I
X
X
X X
I = Insert, R = Read, U = Update, D = Delete
R
X
eee U
D
224 Tabel 3.25 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
fff I
R X X X X
X
U X X X X
D X X X X
I
R
ggg U
D
X
X
X
X
I = Insert, R = Read, U = Update, D = Delete
I
R
X X X
hhh U
D
X X
X X
225 Tabel 3.26 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
iii
jjj
I
R
U
D
X
X
X
X
I
R
U
D
X X X X X
X X X X
X X X X
I
R
kkk U
D
X
X
X
I = Insert, R = Read, U = Update, D = Delete
X
226 Tabel 3.27 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
lll I
R
U
D
X
X
I
mmm R U
D
X
X
I
R
nnn U
D
X
X
X
X X
X
X
I = Insert, R = Read, U = Update, D = Delete
X
227 Tabel 3.28 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
R
ooo U
D
X
X
I
R
ppp U
D
X
X
I
R
qqq U
D
X X X
X X X
X
X X
X
X
I = Insert, R = Read, U = Update, D = Delete
X X X
228 Tabel 3.29 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
rrr I
R
U
D
X
I
R
ttt D
X
X X X X
sss U
X X
I
R
U
D
X
X
X
X X
X X
X X
I = Insert, R = Read, U = Update, D = Delete
X
229 Tabel 3.30 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
R
uuu U
D
X
X X
I
R
vvv U
D
X
X X
I
www R U
D
X
X X X
X
X
I = Insert, R = Read, U = Update, D = Delete
X
X
X
230 Tabel 3.31 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
R X X X X
xxx U
D
I
R
yyy U
D
I
R X X X X
X
X
X
I = Insert, R = Read, U = Update, D = Delete
X X X
zzz U
D
231 Tabel 3.32 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
aaaa R U
X X X X
D
I
bbbb R U
D
X X X
I = Insert, R = Read, U = Update, D = Delete
I
cccc R U
X
X X X
D
232 Tabel 3.33 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
dddd R U
X
D
I
eeee R U
D
X X X X X
I
R
X
X
I = Insert, R = Read, U = Update, D = Delete
X X X
ffff U
D
233 Tabel 3.34 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
gggg R U
D
I
X
hhhh R U
D
X
I
R
X
X
X
I = Insert, R = Read, U = Update, D = Delete
X
iiii U
D
234 Tabel 3.35 Tabel Transaksi Transaksi/Relasi Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I
R
X
jjjj U
D
I
kkkk R U
D
X
I
R
X
X X X X
I = Insert, R = Read, U = Update, D = Delete
X X
llll U
D
235 3.11.2.2 Memilih Organisasi File DBMS yang digunakan adalah Oracle 10g. Secara logikal, basis data dibagi di dalam satu atau banyak tablespace, yang secara fisikal disimpan dalam sejumlah file. Setiap tablespace terdiri dari satu atau banyak Oracle data block, yang secara fisik disimpan pada OS.
Gambar 3.29 Struktur Penyimpanan pada Oracle (Best, 2005, halaman 5-3)
3.11.2.3 Memilih Index
Tabel 3.36 Tabel Pemilihan Index Tabel Cabang
Index kdCabang namaCabang
TelpCabang
noTelpCabang
236 FaxCabang
noFaxCabang
RekCabang
noRekCabang
Divisi
kdDivisi namaDivisi
Staff
kdStaff namaStaff
TelpStaff
noTelpStaff
Users
username
Customer
kdCust namaCust
TelpCust
noTelpCust
FaxCust
noFaxCust
RekCust
noRekCust
Gudang
kdGudang namaGudang
Kendaraan
kdKendaraan noPolisi
JenisKendaraan
kdJenisKendaraan
Barang
kdBarang namaBarang
JenisBarang
kdJenisBarang
LokasiBarang
kdBarang kdGudang
237 Orders
kdDO kdCustomer totalHarga
OrderDetail
kdDO kdBarang
OrderStaff
kdDO kdStaff
BarangMasuk
kdBarangMasuk
BarangMasukDetail
kdBarangMasuk kdBarangBarang
BarangKeluar
kdBarangKeluar
BarangKeluarDetail
kdBarangKeluar kdBarang
SuratJalan
kdSuratJalan
Retur
kdRetur tanggalRetur
Faktur
kdFaktur tanggalFaktur jatuhTempo
KasBank
kdKasBank tanggalPembayaran
238 3.11.2.4 Memperkirakan Kebutuhan disk space
Menghitung ukuran total block header. Langkah pertama adalah menghitung ukuran dari block header: totalBlockHeaderSize = fixedHeaderSize + fixedTransactionHeader + variableTransactionHeader + dataHeader fixedHeaderSize = KCBH + UB4 fixedTransactionHeader = KTBBH variableTransactionHeader = KTBIT*(INITTRANS – 1) dataHeader = KDBH dimana parameter KCBH, UB4, KTBBH, KTBIT, KDBH dapat diambil dari tabel sistem v$type_size, dan INITTRANS adalah angka inisial dari pengisian transaksi per objek. Untuk tabel non-clustered dengan INITTRANS = 1, didapatkan: totalBlockHeaderSize = (20 + 4) + 48 + 0 + 14 = 86
Menghitung tempat data yang tersedia per blok data. Kemudian, hitunglah jumlah dari tempat yang tersedia pada blok data dengan cara: availableDataSpace = ROUNDUP((blockSize – totalBlockHeaderSize)*(1 - PCTFREE/100) - KDBT
239 dimana PCTFREE adalah persentase dari tempat yang dipesan pada block untuk update. Untuk tabel non-clustered dengan PCTFREE = 10, didapatkan: availableDataSpace = (8192 – 86)*(1 - 10/100) – 4 = 7292
Menghitung tempat yang digunakan per baris. Hitunglah tempat data gabungan yang dibutuhkan untuk baris biasa. Hal ini bergantung pada: a. Banyaknya kolom pada definisi tabel b. Tipe data yang digunakan pada setiap kolom Total ukuran kolom, termasuk jumlah byte, dihitung dengan cara: totalColumnSize = columnSize + (1, if column size < 250, else 3) maka, ukuran barisnya adalah: totalRowSize = rowHeaderSize = ∑ totalColumnSize dimana rowHeaderSize = 3 bytes per baris dari tabel nonclustered. Apabila nilai yang dihitung lebih kecil daripada nilai pasti dari row size, gunakan nilai minimum sebagai row size.
240 Tabel 3.37 Tabel Estimasi Penggunaan Kapasitas pada Tabel Cabang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Cabang
kdCabang
kode cabang
char
3
namaCabang
nama cabang
varchar
40
alamatCabang
alamat cabang
varchar
50
kdPosCabang
kode pos cabang
char
5
kota
kota
varchar
15
emailCabang
email cabang
varchar
30
totalRowSize = 3 + ∑ (4 + 40 + 50 + 6 + 15 + 30) = 3 + 145 = 148
Menghitung Jumlah Total baris per Blok Data Jumlah total dari baris yang memenuhi data blok dapat dihitung dengan cara: noRowsPerBlock = ROUNDDOWN (availableDataSpace/totalRowSize) Maka, noRowsPerBlock = ROUNDDOWN (7292/148) = 49 Cabang yang dimiliki saat ini adalah sekitar 14 cabang. Maka, total kebutuhan baris adalah 14 baris. Total kebutuhan blok data adalah 14 / 49 = 1 blok data Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan cabang dalam 1 tahun adalah 1 cabang.
241 Total kebutuhan baris dalam 1 tahun adalah 15 baris. Total kebutuhan blok data adalah 15/49 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan cabang dalam 5 tahun adalah 5 cabang. Total kebutuhan baris dalam 5 tahun adalah 19 baris. Total kebutuhan blok data adalah 19/49 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.38 Tabel Estimasi Penggunaan Kapasitas pada Tabel TelpCabang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas TelpCabang
noTelpCabang
nomor
telepon varchar
12
cabang kdCabang
kode cabang
char
3
totalRowSize = 3 + ∑ (12 + 4) = 3 + 16 = 19 noRowsPerBlock = ROUNDDOWN (7292/19) = 383 Cabang yang dimiliki saat ini adalah sekitar 14 cabang Maksimal nomor telepon dalam 1 cabang adalah 3 nomor telepon Total kebutuhan baris adalah 42 baris Total kebutuhan blok data adalah 42/383 = 1 blok data Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan nomor telepon cabang dalam 1 tahun adalah 3 nomor. Total kebutuhan baris dalam 1 tahun adalah 45 baris.
242 Total kebutuhan blok data adalah 45/383 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan nomor telepon cabang dalam 5 tahun adalah 15 nomor. Total kebutuhan baris dalam 5 tahun adalah 57 baris. Total kebutuhan blok data adalah 57/383 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.39 Tabel Estimasi Penggunaan Kapasitas pada Tabel FaxCabang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas FaxCabang
noFaxCabang
nomor fax cabang
varchar
12
kdCabang
kode cabang
varchar
3
totalRowSize = 3 + ∑ (12 + 4) = 3 + 16 = 19 noRowsPerBlock = ROUNDDOWN (7292/19) = 383 Cabang yang dimiliki saat ini adalah sekitar 14 cabang Maksimal nomor fax dalam 1 cabang adalah 3 nomor fax Total kebutuhan baris adalah 42 baris Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan nomor fax cabang dalam 1 tahun adalah 3 nomor. Total kebutuhan baris dalam 1 tahun adalah 45 baris. Total kebutuhan blok data adalah 45/383 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan nomor fax cabang dalam 5 tahun adalah 15 nomor.
243 Total kebutuhan baris dalam 5 tahun adalah 57 baris. Total kebutuhan blok data adalah 57/383 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.40 Tabel Estimasi Penggunaan Kapasitas pada Tabel RekCabang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas RekCabang
noRekCabang
nomor
rekening varchar
15
cabang namaBank
nama bank
varchar
30
kdCabang
kode cabang
char
3
totalRowSize = 3 + ∑ (15 + 30 + 3) = 3 + 48 = 51 noRowsPerBlock = ROUNDDOWN (7292/51) = 142 Cabang yang dimiliki saat ini adalah sekitar 14 cabang Maksimal nomor rekening dalam 1 cabang adalah 3 nomor telepon Total kebutuhan baris adalah 42 baris Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan nomor rekening cabang dalam 1 tahun adalah 3 nomor. Total kebutuhan baris dalam 1 tahun adalah 45 baris. Total kebutuhan blok data adalah 45/142 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan nomor telepon cabang dalam 5 tahun adalah 15 nomor. Total kebutuhan baris dalam 5 tahun adalah 57 baris.
244 Total kebutuhan blok data adalah 57/142 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.41 Tabel Estimasi Penggunaan Kapasitas pada Tabel Divisi Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Divisi
kdDivisi
kode divisi
char
2
namaDivisi
nama divisi
varchar
20
totalRowSize = 3 + ∑ (3 + 20) = 3 + 23 = 26 noRowsPerBlock = ROUNDDOWN (7292/26) = 280 Divisi yang dimiliki saat ini adalah sekitar 26 divisi Total kebutuhan baris adalah 26 baris Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan divisi dalam 1 tahun adalah 0 divisi. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan divisi dalam 5 tahun adalah 0 divisi. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.42 Tabel Estimasi Penggunaan Kapasitas pada Tabel Staff Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Staff
kdStaff
kode staff
char
5
namaStaff
nama staff
varchar
40
245 alamatStaff
alamat staff
varchar
50
kdPosStaff
kode pos staff
char
5
kotaStaff
kota staff
varchar
15
tanggalLahir
tanggal lahir staff
date
8
emailStaff
email staff
varchar
30
jenisKelamin
jenis kelamin staff
char
2
jabatan
jabatan staff
varchar
15
tanggalMulaiKer
tanggal staff mulai date
ja
bekerja
kdDivisi
kode divisi
char
8
2
totalRowSize = 3 + ∑ (6 + 40 + 50 + 6 + 15 + 8 + 30 + 3 + 15 + 8 + 3) = 3 + 184 = 187 noRowsPerBlock = ROUNDDOWN (7292/187) = 38 Staff yang dimiliki saat ini adalah sekitar 256 orang Cabang yang dimiliki saat ini adalah 14 cabang. Total kebutuhan baris adalah 256 * 14 = 3584 baris Total kebutuhan blok data adalah 3584/38 = 95 Jadi, total kebutuhan disk space adalah 95 * 8192 = 760 KB Estimasi pertumbuhan staff dalam 1 tahun adalah 256 orang. Total kebutuhan baris dalam 1 tahun adalah 3840 baris. Total kebutuhan blok data adalah 3840/38 = 102 blok data. Jadi, total kebutuhan disk space adalah 102 * 8192 = 816 KB Estimasi pertumbuhan staff dalam 5 tahun adalah 1280 orang.
246 Total kebutuhan baris dalam 5 tahun adalah 4864 baris. Total kebutuhan blok data adalah 4864/38 = 128 blok data. Jadi, total kebutuhan disk space adalah 128 * 8192 = 1024 KB
Tabel 3.43 Tabel Estimasi Penggunaan Kapasitas pada Tabel TelpStaff Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas TelpStaff
noTelpStaff
nomor telepon staff varchar
12
kdStaff
kode staff
5
char
totalRowSize = 3 + ∑ (12 + 6) = 3 + 18 = 21 noRowsPerBlock = ROUNDDOWN (7292/21) = 347 Staff yang dimiliki saat ini adalah sekitar 256 orang Cabang yang dimiliki saat ini adalah 14 cabang. Maksimal nomor telepon pada 1 staff adalah 3 nomor telepon Total kebutuhan baris adalah 10752 baris Total kebutuhan blok data adalah 10752 / 347 = 31 Jadi, total kebutuhan disk space adalah 31 * 8192 = 248 KB Estimasi pertumbuhan staff dalam 1 tahun adalah 256 orang. Total kebutuhan baris dalam 1 tahun adalah 10752 + 768 = 11520 baris. Total kebutuhan blok data adalah 11520/347 = 34 blok data. Jadi, total kebutuhan disk space adalah 34 * 8192 = 272 KB Estimasi pertumbuhan staff dalam 5 tahun adalah 1280 orang. Total kebutuhan baris dalam 5 tahun adalah 10752 + 3840 = 14592 baris.
247 Total kebutuhan blok data adalah 14592/347 = 43 blok data. Jadi, total kebutuhan disk space adalah 43 * 8192 = 344 KB
Tabel 3.44 Tabel Estimasi Penggunaan Kapasitas pada Tabel Users Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Users
username
Username
varchar
10
password
Password
varchar
20
privilege
Privilege
varchar
10
lastLogin
last login
datetime
8
kodeStaff
kode staff
char
5
totalRowSize = 3 + ∑ (10 + 20 + 10 + 8 + 6) = 3 + 54 = 57 noRowsPerBlock = ROUNDDOWN (7292/57) = 127 Staff yang dimiliki saat ini adalah sekitar 256 orang Cabang yang dimiliki saat ini adalah 14 cabang. Total kebutuhan baris adalah 3584 baris Total kebutuhan blok data adalah 3584 / 127 = 29 Jadi, total kebutuhan disk space adalah 29 * 8192 = 232 KB Estimasi pertumbuhan staff dalam 1 tahun adalah 256 orang. Total kebutuhan baris dalam 1 tahun adalah 3584 + 256 = 3840 baris. Total kebutuhan blok data adalah 3840 / 127 = 31 blok data. Jadi, total kebutuhan disk space adalah 31 * 8192 = 248 KB Estimasi pertumbuhan staff dalam 5 tahun adalah 1280 orang.
248 Total kebutuhan baris dalam 5 tahun adalah 3584 + 1280 = 4864 baris. Total kebutuhan blok data adalah 4864 / 127 = 39 blok data. Jadi, total kebutuhan disk space adalah 39 * 8192 = 312 KB
Tabel 3.45 Tabel Estimasi Penggunaan Kapasitas pada Tabel Customer Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Customer
kdCust
kode customer
char
5
namaCust
nama customer
varchar
40
alamatCust
alamat customer
varchar
50
kdPosCust
kode pos customer
char
5
kotaCust
kota customer
varchar
15
emailCust
email customer
varchar
30
kdStaff
kode staff
char
5
totalRowSize = 3 + ∑ (6 + 40 + 50 + 6 + 15 + 30 + 6) = 3 + 153 = 156 noRowsPerBlock = ROUNDDOWN (7292/156) = 46 Customer yang dimiliki saat ini adalah sekitar 5000 customer Total kebutuhan baris adalah 5000 baris Total kebutuhan blok data adalah 5000 / 46 = 109 Jadi, total kebutuhan disk space adalah 109 * 8192 = 872 KB Estimasi pertumbuhan customer dalam 1 tahun adalah 200 customer. Total kebutuhan baris dalam 1 tahun adalah 5200 baris. Total kebutuhan blok data adalah 5200 / 46 = 114 blok data.
249 Jadi, total kebutuhan disk space adalah 114 * 8192 = 912 KB Estimasi pertumbuhan customer dalam 5 tahun adalah 1000 customer. Total kebutuhan baris dalam 5 tahun adalah 5000 + 1000 = 6000 baris. Total kebutuhan blok data adalah 6000 / 46 = 131 blok data. Jadi, total kebutuhan disk space adalah 131 * 8192 = 1048 KB
Tabel 3.46 Tabel Estimasi Penggunaan Kapasitas pada Tabel TelpCust Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas TelpCust
noTelpCust
nomor
telepon varchar
12
customer kdCust
kode customer
char
totalRowSize = 3 + ∑ (12 + 6) = 3 + 18 = 21 noRowsPerBlock = ROUNDDOWN (7292/21) = 347 Customer yang dimiliki saat ini adalah sekitar 5000 customer Maksimal nomor telepon pada 1 staff adalah 3 nomor telepon Total kebutuhan baris adalah 15000 baris Total kebutuhan blok data adalah 15000 / 347 = 44 Jadi, total kebutuhan disk space adalah 44 * 8192 = 352 KB Estimasi pertumbuhan customer dalam 1 tahun adalah 200 customer. Total kebutuhan baris dalam 1 tahun adalah 5200 * 3 = 15600 baris. Total kebutuhan blok data adalah 15600 / 347 = 45 blok data. Jadi, total kebutuhan disk space adalah 45 * 8192 = 360 KB
5
250 Estimasi pertumbuhan customer dalam 5 tahun adalah 1000 customer. Total kebutuhan baris dalam 5 tahun adalah 6000 * 3 = 18000 baris. Total kebutuhan blok data adalah 18000 / 347 = 52 blok data. Jadi, total kebutuhan disk space adalah 52 * 8192 = 416 KB
Tabel 3.47 Tabel Estimasi Penggunaan Kapasitas pada Tabel FaxCust Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas FaxCust
noFaxCustomer
nomor
fax varchar
12
customer kdCustomer
kode customer
char
totalRowSize = 3 + ∑ (12 + 6) = 3 + 18 = 21 noRowsPerBlock = ROUNDDOWN (7292/21) = 347 Customer yang dimiliki saat ini adalah sekitar 5000 customer Maksimal nomor fax pada 1 staff adalah 3 nomor fax Total kebutuhan baris adalah 15000 baris Total kebutuhan blok data adalah 15000 / 347 = 44 Jadi, total kebutuhan disk space adalah 44 * 2048 = 352 KB Estimasi pertumbuhan customer dalam 1 tahun adalah 200 customer. Total kebutuhan baris dalam 1 tahun adalah 5200 * 3 = 15600 baris. Total kebutuhan blok data adalah 15600 / 347 = 45 blok data. Jadi, total kebutuhan disk space adalah 45 * 8192 = 360 KB Estimasi pertumbuhan customer dalam 5 tahun adalah 1000 customer.
5
251 Total kebutuhan baris dalam 5 tahun adalah 6000 * 3 = 18000 baris. Total kebutuhan blok data adalah 18000 / 347 = 52 blok data. Jadi, total kebutuhan disk space adalah 52 * 8192 = 416 KB
Tabel 3.48 Tabel Estimasi Penggunaan Kapasitas pada Tabel RekCust Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas RekCust
noRekCust
nomor
rekening varchar
15
customer namaBank
nama bank
varchar
30
kdCust
kode customer
char
5
totalRowSize = 3 + ∑ (15 + 30 + 6) = 3 + 51 = 54 noRowsPerBlock = ROUNDDOWN (7292/54) = 135 Customer yang dimiliki saat ini adalah sekitar 5000 customer Maksimal nomor rekening pada 1 customer adalah 3 nomor rekening Total kebutuhan baris adalah 15000 baris Total kebutuhan blok data adalah 15000 / 135 = 112 Jadi, total kebutuhan disk space adalah 112 * 8192 = 896 KB Estimasi pertumbuhan customer dalam 1 tahun adalah 200 customer. Total kebutuhan baris dalam 1 tahun adalah 5200 * 3 = 15600 baris. Total kebutuhan blok data adalah 15600 / 112 = 140 blok data. Jadi, total kebutuhan disk space adalah 140 * 8192 = 1120 KB Estimasi pertumbuhan customer dalam 5 tahun adalah 1000 customer.
252 Total kebutuhan baris dalam 5 tahun adalah 6000 * 3 = 18000 baris. Total kebutuhan blok data adalah 18000 / 112 = 161 blok data. Jadi, total kebutuhan disk space adalah 161 * 8192 = 1288 KB
Tabel 3.49 Tabel Estimasi Penggunaan Kapasitas pada Tabel Gudang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Gudang
kdGudang
kode gudang
char
3
namaGudang
nama gudang
varchar
30
alamatGudang
alamat gudang
varchar
50
kdPosGudang
kode pos gudang
char
5
kotaGudang
kota gudang
varchar
15
kdCabang
kode cabang
char
3
totalRowSize = 3 + ∑ (4 + 30 + 50 + 6 + 15 + 4) = 3 + 109 = 112 noRowsPerBlock = ROUNDDOWN (7292/112) = 65 Gudang yang dimiliki saat ini adalah sekitar 20 gudang Maka, total kebutuhan baris adalah 20 baris Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan gudang dalam 1 tahun adalah 1 gudang. Total kebutuhan baris dalam 1 tahun adalah 21 baris. Total kebutuhan blok data adalah 21 / 65 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan gudang dalam 5 tahun adalah 5 gudang.
253 Total kebutuhan baris dalam 5 tahun adalah 25 baris. Total kebutuhan blok data adalah 25 / 65 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.50 Tabel Estimasi Penggunaan Kapasitas pada Tabel Kendaraan Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Kendaraan
kdKend
kode kendaraan
char
4
nomorPolisi
nomor polisi
varchar
10
kdJenisKend
kode
jenis varchar
2
kendaraan kdGudang
kode gudang
char
totalRowSize = 3 + ∑ (4 + 10 + 2 + 3) = 3 + 19 = 22 noRowsPerBlock = ROUNDDOWN (7292/22) = 331 Kendaraan yang dimiliki saat ini adalah sekitar 200 kendaraan Maka, total kebutuhan baris adalah 200 baris Total kebutuhan blok data adalah 200 / 331 = 1 Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan kendaraan dalam 1 tahun adalah 10 kendaraan. Total kebutuhan baris dalam 1 tahun adalah 210 baris. Total kebutuhan blok data adalah 210 / 331 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan kendaraan dalam 5 tahun adalah 50 kendaraan.
3
254 Total kebutuhan baris dalam 5 tahun adalah 250 baris. Total kebutuhan blok data adalah 250 / 331 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
Tabel 3.51 Tabel Estimasi Penggunaan Kapasitas pada Tabel JenisKendaraan
Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas JenisKendara
kdJenisKend
an
kode
jenis varchar
2
kendaraan jenisKend
jenis kendaraan
varchar
totalRowSize = 3 + ∑ (2 + 20) = 3 + 22 = 25 noRowsPerBlock = ROUNDDOWN (7292/25) = 291 Jenis Kendaraan yang dimiliki saat ini adalah sekitar 20 kendaraan Maka, total kebutuhan baris adalah 20 baris Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan jenis kendaraan dalam 1 tahun adalah 0 jenis. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan jenis kendaraan dalam 5 tahun adalah 0 jenis. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
20
255 Tabel 3.52 Tabel Estimasi Penggunaan Kapasitas pada Tabel Barang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Barang
kdBarang
kode barang
char
4
namaBarang
nama barang
varchar
50
harga
harga barang
integer
4
kdJenisBarang
kode jenis barang
varchar
3
totalRowSize = 3 + ∑ (9 + 50 + 4 + 3) = 3 + 66 = 69 noRowsPerBlock = ROUNDDOWN (7292/69) = 105 Barang yang dimiliki saat ini adalah sekitar 500 barang Total kebutuhan baris adalah 500 barang Total kebutuhan blok data adalah 500 / 105 = 5 Jadi, total kebutuhan disk space adalah 5 * 8192 = 40 KB Estimasi pertumbuhan barang dalam 1 tahun adalah 20 barang. Total kebutuhan baris dalam 1 tahun adalah 520 baris. Total kebutuhan blok data adalah 520 / 105 = 5 blok data. Jadi, total kebutuhan disk space adalah 5 * 8192 = 40 KB Estimasi pertumbuhan barang dalam 5 tahun adalah 100 barang. Total kebutuhan baris dalam 5 tahun adalah 600 baris. Total kebutuhan blok data adalah 600 / 105 = 6 blok data. Jadi, total kebutuhan disk space adalah 6 * 8192 = 48 KB
256 Tabel 3.53 Tabel Estimasi Penggunaan Kapasitas pada Tabel JenisBarang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas JenisBarang
kdJenisBarang
kode jenis barang
varchar
3
deskripsi
deskripsi barang
varchar
80
totalRowSize = 3 + ∑ (4 + 80) = 3 + 84 = 87 noRowsPerBlock = ROUNDDOWN (7292/87) = 83 JenisBarang yang dimiliki saat ini adalah sekitar 50 JenisBarang Total kebutuhan baris adalah 50 baris Total kebutuhan blok data adalah 50 / 83 = 1 Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan jenis barang dalam 1 tahun adalah sekitar 5 jenis. Total kebutuhan baris dalam 1 tahun adalah 55 baris. Total kebutuhan blok data adalah 55 / 83 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB Estimasi pertumbuhan jenis barang dalam 5 tahun adalah sekitar 25 jenis. Total kebutuhan baris dalam 5 tahun adalah 75 baris. Total kebutuhan blok data adalah 75 / 83 = 1 blok data. Jadi, total kebutuhan disk space adalah 1 * 8192 = 8 KB
257 Tabel 3.54 Tabel Estimasi Penggunaan Kapasitas pada Tabel LokasiBarang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas LokasiBa
kdBarang
kode barang
char
8
KdGudang
kode gudang
char
3
qtyBarang
quantity barang
integer
4
rang
totalRowSize = 3 + ∑ (9 + 4 + 4) = 3 + 17 = 20 noRowsPerBlock = ROUNDDOWN (7292/20) = 364 Barang yang dimiliki saat ini adalah sekitar 500 barang Gudang yang dimiliki saat ini adalah sekitar 20 gudang Total kebutuhan baris adalah 10000 baris Total kebutuhan blok data adalah 10000 / 364 = 28 Jadi, total kebutuhan disk space adalah 28 * 8192 = 224 KB Estimasi pertumbuhan barang dalam 1 tahun adalah 20 barang. Estimasi pertumbuhan gudang dalam 1 tahun adalah 1 gudang. Total kebutuhan baris dalam 1 tahun adalah 520 * 21 = 10920 baris. Total kebutuhan blok data adalah 10920 / 364 = 30 blok data. Jadi, total kebutuhan disk space adalah 30 * 8192 = 240 KB Estimasi pertumbuhan barang dalam 1 tahun adalah 100 barang. Estimasi pertumbuhan gudang dalam 1 tahun adalah 5 gudang. Total kebutuhan baris dalam 5 tahun adalah 600 * 25 = 15000 baris.
258 Total kebutuhan blok data adalah 15000 / 364 = 42 blok data. Jadi, total kebutuhan disk space adalah 42 * 8192 = 336 KB
Tabel 3.55 Tabel Estimasi Penggunaan Kapasitas pada Tabel Orders Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Orders
kdDO
kode DO
char
10
tanggalKirimDO
tanggal kirim DO
date
8
totalHarga
total harga
integer
4
tanggalInput
tanggal input DO
datetime
8
tanggalPrint
tanggal print DO
datetime
8
kdCust
kode customer
varchar
5
kdGudang
kode gudang
varchar
3
totalRowSize = 3 + ∑ (11 + 8 + 4 + 8 + 8 + 5 + 3) = 3 + 47 = 50 noRowsPerBlock = ROUNDDOWN (7292/50) = 145 Total order dalam 1 hari adalah sekitar 400 order Total order dalam 1 tahun adalah 400 * (365 – 52) = 125200 order Total kebutuhan baris dalam 1 tahun adalah 125200 baris Total kebutuhan blok data adalah 125200 / 145 = 864 Jadi, total kebutuhan disk space adalah 864 * 8192 = 6912 KB Estimasi pertumbuhan order dalam 1 tahun adalah 20 order. Total kebutuhan baris dalam 1 tahun adalah 125200 + (20 * (365 – 52)) = 131460 baris.
259 Total kebutuhan blok data adalah 131460 / 145 = 907 blok data. Jadi, total kebutuhan disk space adalah 907 * 8192 = 7256 KB Estimasi pertumbuhan order dalam 5 tahun adalah 100 order. Total kebutuhan baris dalam 1 tahun adalah 125200 + (100 * (365 – 52)) = 156500 baris. Total kebutuhan blok data adalah 156500 / 145 = 1080 blok data. Jadi, total kebutuhan disk space adalah 1080 * 8192 = 8640 KB
Tabel 3.56 Tabel Estimasi Penggunaan Kapasitas pada Tabel OrderDetail Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas OrderDetail
kdDO
kode DO
char
10
kdBarang
kode barang
char
8
qtyDO
quantity do
integer
4
totalRowSize = 3 + ∑ (11 + 9 + 4) = 3 + 24 = 27 noRowsPerBlock = ROUNDDOWN (7292/27) = 270 Total order dalam 1 hari adalah sekitar 400 order Total barang yang dipesan dalam 1 DO adalah sekitar 3 barang Total order dalam 1 tahun adalah 3 * 400 * (365 – 52) = 375600 order Total kebutuhan baris dalam 1 tahun adalah 375600 baris Total kebutuhan blok data adalah 375600 / 270 = 1392 Jadi, total kebutuhan disk space adalah 1392 * 8192 = 11136 KB Estimasi pertumbuhan order dalam 1 tahun adalah 20 order.
260 Total kebutuhan baris dalam 1 tahun adalah 3 * 420 * (365 – 52) = 394380 baris. Total kebutuhan blok data adalah 394380 / 270 = 1461 blok data. Jadi, total kebutuhan disk space adalah 1461 * 8192 = 11688 KB Estimasi pertumbuhan order dalam 5 tahun adalah 100 order. Total kebutuhan baris dalam 1 tahun adalah 3 * 500 * (365 – 52) = 469500 baris. Total kebutuhan blok data adalah 469500 / 270 = 1739 blok data. Jadi, total kebutuhan disk space adalah 1739 * 8192 = 13912 KB
Tabel 3.57 Tabel Estimasi Penggunaan Kapasitas pada Tabel OrderStaff Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas OrderStaff
kodeDO
kode DO
char
10
kodeStaff
kode staff
char
5
totalRowSize = 3 + ∑ (11 + 6) = 3 + 17 = 20 noRowsPerBlock = ROUNDDOWN (7292/20) = 364 Total order dalam 1 hari adalah sekitar 400 order Total staff yang menangani 1 DO adalah sekitar 3 staff Total order dalam 1 tahun adalah 3 * 400 * (365 – 52) = 375600 order Total kebutuhan baris dalam 1 tahun adalah 375600 baris Total kebutuhan blok data adalah 375600 / 364 = 1032 Jadi, total kebutuhan disk space adalah 1032 * 8192 = 8256 KB Estimasi pertumbuhan order dalam 1 tahun adalah 20 order. Total kebutuhan baris dalam 1 tahun adalah 3 * 420 * (365 – 52) = 394380 baris.
261 Total kebutuhan blok data adalah 394380 / 364 = 1084 blok data. Jadi, total kebutuhan disk space adalah 1084 * 8192 = 8672 KB Estimasi pertumbuhan order dalam 5 tahun adalah 100 order. Total kebutuhan baris dalam 1 tahun adalah 3 * 500 * (365 – 52) = 469500 baris. Total kebutuhan blok data adalah 469500 / 364 = 1290 blok data. Jadi, total kebutuhan disk space adalah 1290 * 8192 = 10320 KB
Tabel 3.58 Tabel Estimasi Penggunaan Kapasitas pada Tabel TelpCabang Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas BarangMa
kdBarangMasuk
kode barang masuk
char
12
suk
tanggalMasuk
tanggal masuk
datetime
8
kdStaff
kode staff
char
5
kdGudang
kode gudang
char
3
totalRowSize = 3 + ∑ (13 + 8 + 6 + 4) = 3 + 31 = 34 noRowsPerBlock = ROUNDDOWN (7292/34) = 214 Total barang masuk dalam 1 hari adalah sekitar 50 kali Total barang masuk dalam 1 tahun adalah 50 * (365 – 52) = 15650 Total kebutuhan baris dalam 1 tahun adalah 15650 baris Total kebutuhan blok data adalah 15650 / 214 = 74 Jadi, total kebutuhan disk space adalah 74 * 8192 = 592 KB Estimasi pertumbuhan barang masuk dalam 1 tahun adalah 5 barang masuk. Total kebutuhan baris dalam 1 tahun adalah 55 * (365 – 52) = 17215 baris.
262 Total kebutuhan blok data adalah 17215 / 214 = 81 blok data. Jadi, total kebutuhan disk space adalah 81 * 8192 = 648 KB Estimasi pertumbuhan barang masuk dalam 5 tahun adalah 25 barang masuk. Total kebutuhan baris dalam 1 tahun adalah 75 * (365 – 52) = 23475 baris. Total kebutuhan blok data adalah 23475 / 214 = 110 blok data. Jadi, total kebutuhan disk space adalah 110 * 8192 = 880 KB
Tabel 3.59 Tabel Estimasi Penggunaan Kapasitas pada Tabel BarangMasukDetail Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas BarangMa
kdBarangMasuk
kode barang masuk
char
12
sukDetail
kdBarang
kode barang
char
8
qtyBarang
quantity barang
integer
4
totalRowSize = 3 + ∑ (13 + 9 + 4) = 3 + 26 = 29 noRowsPerBlock = ROUNDDOWN (7292/29) = 251 Total barang masuk dalam 1 hari adalah sekitar 50 kali Total barang yang ada pada saat barang masuk dalam 1 hari adalah sekitar 1000 barang Total barang masuk detail dalam 1 tahun adalah 50 * 1000 * (365 – 52) = 15650000 Total kebutuhan baris dalam 1 tahun adalah 15650000 baris Total kebutuhan blok data adalah 15650000 / 251 = 62351 Jadi, total kebutuhan disk space adalah 62351 * 8192 = 498808 KB
263 Estimasi pertumbuhan barang masuk dalam 1 tahun adalah 5 barang masuk. Total kebutuhan baris dalam 1 tahun adalah 55 * 1000 * (365 – 52) = 17215000 baris. Total kebutuhan blok data adalah 17215000 / 251 = 68586 blok data. Jadi, total kebutuhan disk space adalah 68586 * 8192 = 548688 KB Estimasi pertumbuhan barang masuk dalam 5 tahun adalah 25 barang masuk. Total kebutuhan baris dalam 1 tahun adalah 75 * 1000 * (365 – 52) = 23475000 baris. Total kebutuhan blok data adalah 23475000 / 251 = 93526 blok data. Jadi, total kebutuhan disk space adalah 93526 * 8192 = 748208 KB
Tabel 3.60 Tabel Estimasi Penggunaan Kapasitas pada Tabel BarangKeluar Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas BarangKelu
kdBarangKeluar
kode barang keluar
ar
tanggalKeluar
tanggal
char
keluarnya datetime
12 8
barang kdDO
kode DO
char
10
kdStaff
kode staff
char
5
kdGudang
kode gudang
char
3
totalRowSize = 3 + ∑ (13 + 8 + 11 + 6 + 4) = 3 + 42 = 45 noRowsPerBlock = ROUNDDOWN (7292/45) = 162
264 Total barang keluar dalam 1 hari adalah sekitar 400 kali Total barang keluar dalam 1 tahun adalah 400 * (365 – 52) = 125200 Total kebutuhan baris dalam 1 tahun adalah 125200 baris Total kebutuhan blok data adalah 125200 / 162 = 773 Jadi, total kebutuhan disk space adalah 773 * 8192 = 6184 KB Estimasi pertumbuhan barang keluar dalam 1 tahun adalah 20 barang keluar. Total kebutuhan baris dalam 1 tahun adalah 420 * (365 – 52) = 131460 baris. Total kebutuhan blok data adalah 131460 / 162 = 812 blok data. Jadi, total kebutuhan disk space adalah 812 * 8192 = 6496 KB Estimasi pertumbuhan barang keluar dalam 5 tahun adalah 100 barang keluar. Total kebutuhan baris dalam 1 tahun adalah 500 * (365 – 52) = 156500 baris. Total kebutuhan blok data adalah 156500 / 162 = 967 blok data. Jadi, total kebutuhan disk space adalah 967 * 8192 = 7736 KB
Tabel 3.61 Tabel Estimasi Penggunaan Kapasitas pada Tabel BarangKeluarDetail Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas BarangKelu
kdBarangKeluar
kode barang keluar
char
12
arDetail
kdBarang
kode barang
char
8
qtyBarang
quantity barang
integer
4
totalRowSize = 3 + ∑ (13 + 9 + 4) = 3 + 26 = 29 noRowsPerBlock = ROUNDDOWN (7292/29) = 251
265 Total barang keluar dalam 1 hari adalah sekitar 400 kali Total barang yang ada pada saat barang keluar dalam 1 hari adalah sekitar 1200 barang Total barang keluar detail dalam 1 tahun adalah 400 * 1200 * (365 – 52) = 150240000 Total kebutuhan baris dalam 1 tahun adalah 150240000 baris Total kebutuhan blok data adalah 150240000 / 251 = 598576 Jadi, total kebutuhan disk space adalah 598576 * 8192 = 4788608 KB Estimasi pertumbuhan barang keluar dalam 1 tahun adalah 20 barang keluar. Total kebutuhan baris dalam 1 tahun adalah 420 * 1200 * (365 – 52) = 157752000 baris. Total kebutuhan blok data adalah 157752000 / 251 = 628495 blok data. Jadi, total kebutuhan disk space adalah 628495 * 8192 = 5027960 KB Estimasi pertumbuhan barang keluar dalam 5 tahun adalah 100 barang keluar. Total kebutuhan baris dalam 1 tahun adalah 500 * 1200 * (365 – 52) = 187800000 baris. Total kebutuhan blok data adalah 187800000 / 251 = 748208 blok data. Jadi, total kebutuhan disk space adalah 748208 * 8192 = 5985664 KB
266 Tabel 3.62 Tabel Estimasi Penggunaan Kapasitas pada Tabel SuratJalan Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas SuratJalan
kdSuratJalan
kode surat jalan
char
12
tglSuratJalan
tanggal surat jalan
date
8
kdBarangKeluar
kode barang keluar
char
12
kdStaff
kode staff
char
5
kdKend
kode kendaraan
char
4
totalRowSize = 3 + ∑ (13 + 8 + 13 + 6 + 5) = 3 + 45 = 48 noRowsPerBlock = ROUNDDOWN (7292/48) = 151 Total surat jalan dalam 1 hari adalah sekitar 400 surat jalan Total kebutuhan baris dalam 1 tahun adalah 400 * (365-52) = 125200 baris Total kebutuhan blok data adalah 125200 / 151 = 830 Jadi, total kebutuhan disk space adalah 830 * 8192 = 6640 KB Estimasi pertumbuhan surat jalan dalam 1 tahun adalah 20 surat jalan. Total kebutuhan baris dalam 1 tahun adalah 420 * (365-52) = 131460 baris. Total kebutuhan blok data adalah 131460 / 151 = 871 blok data. Jadi, total kebutuhan disk space adalah 871 * 8192 = 6968 KB Estimasi pertumbuhan barang masuk dalam 5 tahun adalah 100 barang masuk. Total kebutuhan baris dalam 1 tahun adalah 500 * (365 – 52) = 156500 baris. Total kebutuhan blok data adalah 156500 / 151 = 1037 blok data. Jadi, total kebutuhan disk space adalah 1037 * 8192 = 8296 KB
267 Tabel 3.63 Tabel Estimasi Penggunaan Kapasitas pada Tabel Retur Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Retur
kdRetur
kode retur
char
12
tanggalRetur
tanggal retur
date
8
keteranganRetur
keterangan retur
varchar
80
kodeDO
kode DO
char
10
kodeStaff
kode staff
char
5
totalRowSize = 3 + ∑ (13 + 8 + 80 + 11 + 6) = 3 + 109 = 112 noRowsPerBlock = ROUNDDOWN (7292/112) = 65 Total retur dalam 1 hari adalah sekitar 20 kali Total retur dalam 1 tahun adalah 20 * (365 – 52) = 6260 Total kebutuhan baris dalam 1 tahun adalah 6260 baris Total kebutuhan blok data adalah 6260 / 65 = 96 Jadi, total kebutuhan disk space adalah 96 * 8192 = 768 KB Estimasi pertumbuhan retur dalam 1 tahun adalah 1 retur. Total kebutuhan baris dalam 1 tahun adalah 21 * (365 – 52) = 6573 baris. Total kebutuhan blok data adalah 6573 / 65 = 102 blok data. Jadi, total kebutuhan disk space adalah 102 * 8192 = 816 KB Estimasi pertumbuhan retur dalam 5 tahun adalah 5 retur. Total kebutuhan baris dalam 5 tahun adalah 25 * (365 – 52) = 7825 baris. Total kebutuhan blok data adalah 7825 / 65 = 121 blok data. Jadi, total kebutuhan disk space adalah 121 * 8192 = 968 KB
268 Tabel 3.64 Tabel Estimasi Penggunaan Kapasitas pada Tabel ReturDetail Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas ReturDetail
kdRetur
kode retur
char
12
kdBarang
kode barang
char
8
qtyRetur
quantity retur
integer
4
totalRowSize = 3 + ∑ (13 + 8 + 4) = 3 + 25 = 28 noRowsPerBlock = ROUNDDOWN (7292/28) = 260 Total retur dalam 1 hari adalah sekitar 20 kali Total barang yang ada dalam retur adalah sekitar 3 barang Total retur detail dalam 1 tahun adalah 20 * 3 * (365 – 52) = 18780 Total kebutuhan baris dalam 1 tahun adalah 18780 baris Total kebutuhan blok data adalah 18780 / 260 = 73 Jadi, total kebutuhan disk space adalah 73 * 8192 = 584 KB Estimasi pertumbuhan retur dalam 1 tahun adalah 1 retur. Total kebutuhan baris dalam 1 tahun adalah 21 * 3 * (365 – 52) = 19719 baris. Total kebutuhan blok data adalah 19719 / 260 = 76 blok data. Jadi, total kebutuhan disk space adalah 76 * 8192 = 608 KB Estimasi pertumbuhan retur dalam 5 tahun adalah 5 retur. Total kebutuhan baris dalam 5 tahun adalah 25 * 3 * (365 – 52) = 23475 baris. Total kebutuhan blok data adalah 23475 / 260 = 91 blok data. Jadi, total kebutuhan disk space adalah 91 * 8192 = 728 KB
269 Tabel 3.65 Tabel Estimasi Penggunaan Kapasitas pada Tabel Faktur Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas Faktur
kdFaktur
kode faktur
char
12
tanggalFaktur
tanggal faktur
date
8
jatuhTempo
tanggal bayar
date
8
kdDO
kode do
char
10
kdStaff
kode staff
char
5
totalRowSize = 3 + ∑ (13 + 8 + 8 + 11 + 6) = 3 + 47 = 50 noRowsPerBlock = ROUNDDOWN (7292/50) = 145 Total barang keluar dalam 1 hari adalah sekitar 400 kali Total barang keluar dalam 1 tahun adalah 400 * (365 – 52) = 125200 Total kebutuhan baris dalam 1 tahun adalah 125200 baris Total kebutuhan blok data adalah 125200 / 145 = 864 Jadi, total kebutuhan disk space adalah 864 * 8192 = 6912 KB Estimasi pertumbuhan faktur dalam 1 tahun adalah 20 faktur. Total kebutuhan baris dalam 1 tahun adalah 420 * (365 – 52) = 131460 baris. Total kebutuhan blok data adalah 131460 / 145 = 907 blok data. Jadi, total kebutuhan disk space adalah 907 * 8192 = 7256 KB Estimasi pertumbuhan retur dalam 5 tahun adalah 5 retur. Total kebutuhan baris dalam 5 tahun adalah 500 * (365 – 52) = 156500 baris. Total kebutuhan blok data adalah 156500 / 145 = 1080 blok data. Jadi, total kebutuhan disk space adalah 1080 * 8192 = 8640 KB
270 Tabel 3.66 Tabel Estimasi Penggunaan Kapasitas pada Tabel KasBank Nama
Atribut
Deskripsi
Tipe Data
Ukuran
Entitas KasBank
kdKasBank
kode kas bank
char
12
tanggalPembayar
tanggal
date
8
an
pembayaran
jumlahPembayar
jumlah
integer
4
an
pembayaran
kodeDO
kode do
char
10
kdStaff
kode staff
char
5
totalRowSize = 3 + ∑ (13 + 8 + 4 + 11 + 6) = 3 + 42 = 45 noRowsPerBlock = ROUNDDOWN (7292/45) = 162 Total kas bank dalam 1 hari adalah sekitar 400 kali Total kas bank dalam 1 tahun adalah 400 * (365 – 52) = 125200 Total kebutuhan baris dalam 1 tahun adalah 125200 baris Total kebutuhan blok data adalah 125200 / 162 = 773 Jadi, total kebutuhan disk space adalah 773 * 8192 = 6184 KB Estimasi pertumbuhan kas bank dalam 1 tahun adalah 20 kas bank. Total kebutuhan baris dalam 1 tahun adalah 420 * (365 – 52) = 131460 baris. Total kebutuhan blok data adalah 131460 / 162 = 812 blok data. Jadi, total kebutuhan disk space adalah 812 * 8192 = 6496 KB Estimasi pertumbuhan retur dalam 5 tahun adalah 5 retur. Total kebutuhan baris dalam 5 tahun adalah 500 * (365 – 52) = 156500 baris.
271 Total kebutuhan blok data adalah 156500 / 162 = 967 blok data. Jadi, total kebutuhan disk space adalah 967 * 8192 = 7736 KB
Tabel 3.67 Tabel Estimasi Kapasitas Penyimpanan Nama Tabel
Kapasitas yang dibutuhkan
Kapasitas yang
Kapasitas yang
dibutuhkan pada dibutuhkan pada tahun pertama
tahun kelima
Cabang
8 KB
8 KB
8 KB
TelpCabang
8 KB
8 KB
8 KB
FaxCabang
8 KB
8 KB
8 KB
RekCabang
8 KB
8 KB
8 KB
Divisi
8 KB
8 KB
8 KB
Staff
760 KB
816 KB
1024 KB
TelpStaff
248 KB
272 KB
344 KB
Users
232 KB
248 KB
312 KB
Customer
872 KB
912 KB
1048 KB
TelpCust
352 KB
360 KB
416 KB
FaxCust
352 KB
360 KB
416 KB
RekCust
896 KB
1120 KB
1288 KB
Gudang
8 KB
8 KB
8 KB
Kendaraan
8 KB
8 KB
8 KB
JenisKendaraan
8 KB
8 KB
8 KB
40 KB
40 KB
48 KB
8 KB
8 KB
8 KB
224 KB
240 KB
336 KB
6912 KB
7256 KB
8640 KB
OrderDetail
11136 KB
11688 KB
13912 KB
OrderStaff
8256 KB
8672 KB
10320 KB
Barang JenisBarang LokasiBarang Orders
272 BarangMasuk
592 KB
648 KB
880 KB
498808 KB
548688 KB
748208 KB
6184 KB
6496 KB
7736 KB
4788608 KB
5027960 KB
5985664 KB
6640 KB
6968 KB
8296 KB
Retur
768 KB
816 KB
968 KB
ReturDetail
584 KB
608 KB
728 KB
Faktur
6912 KB
7256 KB
8640 KB
KasBank
6184 KB
6496 KB
7736 KB
5345632 KB
5637992 KB
6807032 KB
BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan
Total:
Jadi, estimasi kebutuhan pada tahun pertama adalah 5.345.632 KB, estimasi kebutuhan pada tahun pertama dengan pertumbuhannya adalah 5.637.992 KB, dan estimasi kebutuhan pada tahun kelima dengan pertumbuhannya adalah 6.807.032 KB.
273 3.11.3 Merancang User View
Tabel 3.68 Tabel User View User
View
Tabel
Sales Admin
SAview
Orders OrderDetail StaffOrder Customers TelpCust FaxCust RekCust Staff TelpStaff Barang LokasiBarang JenisBarang Retur ReturDetail Gudang
Kepala Gudang
KGview
Gudang Barang LokasiBarang JenisBarang
274 Orders OrderDetail OrderStaff BarangKeluar BarangKeluarDetail BarangMasuk BarangMasukDetail Admin Gudang
AGView
Gudang Kendaraan JenisKendaraan BarangKeluar BarangKeluarDetail SuratJalan
Inventory Control
ICView
Orders OrderDetail OrderStaff
Account Receivable
ARView
Orders OrderDetail OrderStaff Faktur
Finance
FIView
Orders OrderDetail OrderStaff
275 KasBank Admin
ADView
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk
276 BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
277 3.11.4 Merancang Mekanisme Keamanan
Tabel 3.69 Tabel Keamanan Basis Data User View Tabel Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
Sales Admin
R R R R R R R R
R R R I, R I, R I, R
I, R I, R
Kepala Gudang
Admin Gudang
R
R
R
R R R
R R R I, R I, R I, R I, R
R R I, R
278 Tabel 3.70 Tabel Keamanan Basis Data User View Tabel Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
Inventory Control
Account Receivable
Finance
R
R
R
R, U R, U R, U
R R R
R R R
I, R I, R
279 Tabel 3.71 Tabel Keamanan Basis Data User View Table Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
BOD
R
R R R
Admin I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D I, R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D R, U, D
280 3.12
Pemilihan DBMS
Pertimbangan DBMS yang akan digunakan untuk implementasi perancangan basis data yang diusulkan adalah Oracle Database 10g release 2 dan IBM DB2 9.1 sebagai DBMS yang memiliki kemampuan dalam grid computing dan skalabilitas yang sesuai untuk penampungan data-data pada sistem yang diusulkan . Berdasarkan hasil penelitian Comparative Management Cost Studies (CMCS) yang
membandingkan
Oracle
Database
10g
dengan
IBM
DB2
9.1
(http://www.oracle.com/database/docs/oracle10g-vs-db2-9.1-cmcs.pdf), didapatkan hasil analisis perbandingan Oracle Database 10g dan DB2 9.1: 1. DBA (Database Administrator) dapat melakukan tugas-tugas administratif dengan waktu 38% lebih cepat jika menggunakan Oracle Database 10g dibandingkan DB2 2. Oracle Database 10g memerlukan langkah-langkah 35% lebih sedikit dibanding DB2 dalam melakukan tugas-tugas standard RDBMS 3. Keuntungan dari produktivitas DBA menghasilkan $31,654 per DBA per Hari untuk pemilihan Oracle Database 10g 4. Dalam performa dan tuning, Oracle Database 10g menggunakan waktu 76% lebih cepat dan 50% kompleksitas yang lebih mudah dibandingkan dengan DB2 5. Dalam backup dan recovery, Oracle Database 10g menggunakan waktu 50% lebih cepat dan 62% langkah yang lebih sedikit dibandingkan DB2
281 6. Instalasi DB2 menggunakan waktu 78% lebih cepat dibandingkan Oracle Database 10g karena komponen yang digunakan lebih sedikit.
Tabel 3.72 Tabel Perbandingan Hasil Keseluruhan DB2 dengan Oracle Time (min)
Result Summary
Overall Total
Complecity (steps)
DB2
Oracle
DB2
Oracle
64.55
46.53
51
27
% difference –(DB2 – Oracle)DB2
28%
47%
DBA Workday Savings
38%
35%
Tabel 3.73 Tabel Perbandingan Instalasi dan Pengaturan DB2 dengan Oracle Time (min)
Installation and Simple “Out-of-Box” Setup
Category Sub-Total
Complecity (steps)
DB2
Oracle
DB2
Oracle
15
26.63
12
6
% difference –(DB2 – Oracle)DB2
-78%
50%
DBA Workday Savings
-4%
3%
Tabel 3.74 Tabel Perbandingan Database Administration DB2 dengan Oracle Day-to-Day Database Administration
Category Sub-Total
Time (min)
Complecity (steps)
DB2
Oracle
DB2
Oracle
11.75
6.57
16
11
282 % difference –(DB2 – Oracle)DB2
44%
31%
DBA Workday Savings
15%
11%
Tabel 3.75 Tabel Perbandingan Backup dan Recovery DB2 dengan Oracle Backup & Recovery
Category Sub-Total
Time (min)
Complecity (steps)
DB2
Oracle
DB2
Oracle
16.55
8.33
13
5
% difference –(DB2 – Oracle)DB2
50%
62%
DBA Workday Savings
7%
9%
Tabel 3.76 Tabel Perbandingan Diagnosa Performa dan Tuning DB2 dengan Oracle Performance Diagnostics and Tuning
Category Sub-Total
Time (min)
Complecity (steps)
DB2
Oracle
DB2
Oracle
21.25
5
10
5
% difference –(DB2 – Oracle)DB2
76%
50%
DBA Workday Savings
20%
13%
Dengan mempertimbangkan hasil diatas, DBMS yang dipilih adalah Oracle.
283 3.13
Perancangan Aplikasi 3.13.1 Struktur Menu
Gambar 3.30 Struktur Menu Sales Admin
284
Gambar 3.31 Struktur Menu Kepala Gudang
Gambar 3.32 Struktur Menu Admin Gudang
285
Gambar 3.33 Struktur Menu Inventory Control
Gambar 3.34 Struktur Menu Account Receivable
286
Gambar 3.35 Struktur Menu Finance
287
Gambar 3.36 Struktur Menu Board of Directors
288
Gambar 3.37 Struktur Menu Admin
289 3.13.2 State Transition Diagram
Gambar 3.38 State Transition Diagram Halaman Login
290
Gambar 3.39 State Transition Diagram Halaman Home SA
291
Gambar 3.40 State Transition Diagram Halaman Home KG
292
Gambar 3.41 State Transition Diagram Halaman Home AG
Gambar 3.42 State Transition Diagram Halaman Home IC
293
Gambar 3.43 State Transition Diagram Halaman Home AR
Gambar 3.44 State Transition Diagram Halaman Home FI
294
Gambar 3.45 State Transition Diagram Halaman Home BOD
295
Gambar 3.46 State Transition Diagram Halaman Home Admin
296 3.13.3 Perancangan Layar
Gambar 3.47 Perancangan Layar Halaman Login
Gambar 3.48 Perancangan Layar Halaman Home untuk SA
297
Gambar 3.49 Perancangan Layar Halaman Delivery Order untuk SA
Gambar 3.50 Perancangan Layar Halaman Input DO untuk SA
298
Gambar 3.51 Perancangan Layar Halaman Draft DO untuk SA
Gambar 3.52 Perancangan Layar Halaman Edit Draft DO untuk SA
299
Gambar 3.53 Perancangan Layar Halaman Lihat DO untuk SA
Gambar 3.54 Perancangan Layar Halaman Retur Barang untuk SA
300
Gambar 3.55 Perancangan Layar Halaman Input Retur untuk SA
Gambar 3.56 Perancangan Layar Halaman Lihat Retur untuk SA
301
Gambar 3.57 Perancangan Layar Halaman Lihat Customer untuk SA
Gambar 3.58 Perancangan Layar Halaman Home untuk Kepala Gudang
302
Gambar 3.59 Perancangan Layar Halaman Delivery Order untuk Kepala Gudang
303
Gambar 3.60 Perancangan Layar Halaman Delivery Order Detail untuk Kepala Gudang
304
Gambar 3.61 Perancangan Layar Halaman Barang Masuk untuk Kepala Gudang
305
Gambar 3.62 Perancangan Layar Halaman Barang Keluar untuk Kepala Gudang
306
Gambar 3.63 Perancangan Layar Halaman Home untuk Admin Gudang
Gambar 3.64 Perancangan Layar Halaman Surat Jalan untuk Admin Gudang
307
Gambar 3.65 Perancangan Layar Halaman Input Surat Jalan untuk Admin Gudang
308
Gambar 3.66 Perancangan Layar Halaman Lihat Surat Jalan untuk Admin Gudang
Gambar 3.67 Perancangan Layar Halaman Home untuk Inventory Control (IC)
309
Gambar 3.68 Perancangan Layar Halaman Delivery Order untuk IC
Gambar 3.69 Perancangan Layar Halaman Delivery Order Detail untuk IC
310
Gambar 3.70 Perancangan Layar Halaman Home untuk Account Receivable (AR)
Gambar 3.71 Perancangan Layar Halaman Faktur untuk AR
311
Gambar 3.72 Perancangan Layar Halaman Input Faktur untuk AR
Gambar 3.73 Perancangan Layar Halaman Lihat Faktur untuk AR
312
Gambar 3.74 Perancangan Layar Halaman Home untuk Finance
Gambar 3.75 Perancangan Layar Halaman Kas Bank untuk Finance
313
Gambar 3.76 Perancangan Layar Halaman Input Kas Bank untuk Finance
Gambar 3.77 Perancangan Layar Halaman Lihat Kas Bank untuk Finance
314
Gambar 3.78 Perancangan Layar Halaman Home untuk BOD
Gambar 3.79 Perancangan Layar Halaman Laporan Penjualan untuk BOD
315
Gambar 3.80 Perancangan Layar Halaman Home untuk Admin
Gambar 3.81 Perancangan Layar Halaman Berita untuk Admin
316
Gambar 3.82 Perancangan Layar Halaman Cabang untuk Admin
Gambar 3.83 Perancangan Layar Halaman Tambah Cabang untuk Admin
317
Gambar 3.84 Perancangan Layar Halaman Edit Cabang untuk Admin
Gambar 3.85 Perancangan Layar Halaman Divisi untuk Admin
318
Gambar 3.86 Perancangan Layar Halaman Tambah Divisi untuk Admin
Gambar 3.87 Perancangan Layar Halaman Edit Divisi untuk Admin
319
Gambar 3.88 Perancangan Layar Halaman Staff untuk Admin
Gambar 3.89 Perancangan Layar Halaman Tambah Staff untuk Admin
320
Gambar 3.90 Perancangan Layar Halaman Edit Staff untuk Admin
Gambar 3.91 Perancangan Layar Halaman User untuk Admin
321
Gambar 3.92 Perancangan Layar Halaman Tambah User untuk Admin
Gambar 3.93 Perancangan Layar Halaman Edit User untuk Admin
322
Gambar 3.94 Perancangan Layar Halaman Gudang untuk Admin
Gambar 3.95 Perancangan Layar Halaman Tambah Gudang untuk Admin
323
Gambar 3.96 Perancangan Layar Halaman Edit Gudang untuk Admin
Gambar 3.97 Perancangan Layar Halaman Kendaraan untuk Admin
324
Gambar 3.98 Perancangan Layar Halaman Tambah Kendaraan untuk Admin
Gambar 3.99 Perancangan Layar Halaman Edit Kendaraan untuk Admin
325
Gambar 3.100 Perancangan Layar Halaman Barang untuk Admin
Gambar 3.101 Perancangan Layar Halaman Tambah Barang untuk Admin
326
Gambar 3.102 Perancangan Layar Halaman Edit Barang untuk Admin
Gambar 3.103 Perancangan Layar Halaman Customer untuk Admin
327
Gambar 3.104 Perancangan Layar Halaman Tambah Customer untuk Admin
328
Gambar 3.105 Perancangan Layar Halaman Edit Customer untuk Admin
Gambar 3.106 Perancangan Layar Halaman Transaksi untuk Admin