66 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.
263
Embed
BAB 3 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA …thesis.binus.ac.id/doc/Bab3/2010-1-00192-IF BAB 3.pdf · ANALISIS DAN PERANCANGAN SISTEM BASIS DATA 3.1 Riwayat Perusahaan PT.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
66
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.
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,
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) ON
UPDATE CASCADE ON DELETE CASCADE);
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 jawab dalam
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
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 a b c I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer X X TelpCust X X FaxCust X X RekCust X X Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X X X X X OrderDetail X OrderStaff X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur X ReturDetail X Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
206
Tabel 3.7 Tabel Transaksi
Transaksi/Relasi d e f I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer X X TelpCust X X FaxCust X X RekCust X X Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X X X OrderDetail X X X OrderStaff X X X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur X X X X ReturDetail X X X X Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
207
Tabel 3.8 Tabel Transaksi
Transaksi/Relasi g h i I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X TelpStaff X Users X X X Customer X X TelpCust X X FaxCust X X RekCust X X Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X OrderDetail X OrderStaff X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur X ReturDetail X Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
208
Tabel 3.9 Tabel Transaksi
Transaksi/Relasi j k l I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X TelpStaff X Users X X X Customer TelpCust FaxCust RekCust Gudang X Kendaraan JenisKendaraan Barang X X JenisBarang X X LokasiBarang X X Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur X X ReturDetail X X Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
209
Tabel 3.10 Tabel Transaksi
Transaksi/Relasi m n o I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang X X Kendaraan JenisKendaraan Barang X X JenisBarang X X LokasiBarang X X Orders X X OrderDetail X X OrderStaff X X BarangMasuk X BarangMasukDetail X BarangKeluar X BarangKeluarDetail X SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
210
Tabel 3.11 Tabel Transaksi
Transaksi/Relasi p q r I R U D I R U D I R U D
Cabang X TelpCabang X FaxCabang X RekCabang X Divisi X Staff X X TelpStaff X X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang X JenisBarang X LokasiBarang X Orders X X OrderDetail X X OrderStaff X X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
211
Tabel 3.12 Tabel Transaksi
Transaksi/Relasi s t u I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X TelpStaff X Users X X X Customer TelpCust FaxCust RekCust Gudang X Kendaraan JenisKendaraan Barang X X JenisBarang X X LokasiBarang X X Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar X X X BarangKeluarDetail X X X SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
212
Tabel 3.13 Tabel Transaksi
Transaksi/Relasi v w x I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang X Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk X X BarangMasukDetail X X BarangKeluar X BarangKeluarDetail X SuratJalan X Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
213
Tabel 3.14 Tabel Transaksi
Transaksi/Relasi y z aa I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X TelpStaff X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan X JenisKendaraan X Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk X BarangMasukDetail X BarangKeluar X BarangKeluarDetail X SuratJalan X X Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
214
Tabel 3.15 Tabel Transaksi
Transaksi/Relasi bb cc dd I R U D I R U D I R U D
Cabang X TelpCabang X FaxCabang X RekCabang X Divisi Staff X TelpStaff X Users X X X Customer X TelpCust X FaxCust X RekCust X Gudang X Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X OrderDetail X OrderStaff X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan X Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
215
Tabel 3.16 Tabel Transaksi
Transaksi/Relasi ee ff gg I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang X Kendaraan X JenisKendaraan X Barang JenisBarang LokasiBarang Orders X X X OrderDetail X X X OrderStaff X X X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan X Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
216
Tabel 3.17 Tabel Transaksi
Transaksi/Relasi hh ii jj I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer X TelpCust X FaxCust X RekCust X Gudang Kendaraan JenisKendaraan Barang X JenisBarang X LokasiBarang X Orders X X OrderDetail X X OrderStaff X X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur X X KasBank
I = Insert, R = Read, U = Update, D = Delete
217
Tabel 3.18 Tabel Transaksi
Transaksi/Relasi kk ll mm I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X TelpStaff X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X OrderDetail X OrderStaff X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur X X X KasBank
I = Insert, R = Read, U = Update, D = Delete
218
Tabel 3.19 Tabel Transaksi
Transaksi/Relasi nn oo pp I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer X X TelpCust X X FaxCust X X RekCust X X Gudang Kendaraan JenisKendaraan Barang X JenisBarang X LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur X X KasBank
I = Insert, R = Read, U = Update, D = Delete
219
Tabel 3.20 Tabel Transaksi
Transaksi/Relasi qq rr ss I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X X X OrderDetail X X X OrderStaff X X X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur X KasBank X X
I = Insert, R = Read, U = Update, D = Delete
220
Tabel 3.21 Tabel Transaksi
Transaksi/Relasi tt uu vv I R U D I R U D I R U D
Cabang X TelpCabang X FaxCabang X RekCabang X Divisi X Staff X TelpStaff X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank X
I = Insert, R = Read, U = Update, D = Delete
221
Tabel 3.22 Tabel Transaksi
Transaksi/Relasi ww xx yy I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X TelpStaff X Users X X X X Customer X TelpCust X FaxCust X RekCust X Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
222
Tabel 3.23 Tabel Transaksi
Transaksi/Relasi zz aaa bbb I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang X Kendaraan X JenisKendaraan X Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
223
Tabel 3.24 Tabel Transaksi
Transaksi/Relasi ccc ddd eee I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff X X X TelpStaff Users Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang X JenisBarang X LokasiBarang X Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
224
Tabel 3.25 Tabel Transaksi
Transaksi/Relasi fff ggg hhh I R U D I R U D I R U D
Cabang X X X TelpCabang X X X FaxCabang X X X RekCabang X X X Divisi X X X Staff X X X TelpStaff X X X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
225
Tabel 3.26 Tabel Transaksi
Transaksi/Relasi iii jjj kkk I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X X X X Customer X X X TelpCust X X X FaxCust X X X RekCust X X X Gudang X X X Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
226
Tabel 3.27 Tabel Transaksi
Transaksi/Relasi lll mmm nnn I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan X X X JenisKendaraan X X X Barang X X X JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
227
Tabel 3.28 Tabel Transaksi
Transaksi/Relasi ooo ppp qqq I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang X X X LokasiBarang X X X Orders X X X OrderDetail X X X OrderStaff X X X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
228
Tabel 3.29 Tabel Transaksi
Transaksi/Relasi rrr sss ttt I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk X X X BarangMasukDetail X X X BarangKeluar X X X BarangKeluarDetail X X X SuratJalan X X X Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
229
Tabel 3.30 Tabel Transaksi
Transaksi/Relasi uuu vvv www I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur X X X ReturDetail X X X Faktur X X X KasBank X X X
I = Insert, R = Read, U = Update, D = Delete
230
Tabel 3.31 Tabel Transaksi
Transaksi/Relasi xxx yyy zzz I R U D I R U D I R U D
Cabang X X TelpCabang X X FaxCabang X X RekCabang X X Divisi X Staff X TelpStaff X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
231
Tabel 3.32 Tabel Transaksi
Transaksi/Relasi aaaa bbbb cccc I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi X Staff X X TelpStaff X X Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang X JenisBarang X LokasiBarang X Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
232
Tabel 3.33 Tabel Transaksi
Transaksi/Relasi dddd eeee ffff I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer X TelpCust X FaxCust X RekCust X Gudang X Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders X OrderDetail X OrderStaff X BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
233
Tabel 3.34 Tabel Transaksi
Transaksi/Relasi gggg hhhh iiii I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan X Retur ReturDetail Faktur X KasBank X
I = Insert, R = Read, U = Update, D = Delete
234
Tabel 3.35 Tabel Transaksi
Transaksi/Relasi jjjj kkkk llll I R U D I R U D I R U D
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users X X X Customer TelpCust FaxCust RekCust Gudang Kendaraan X JenisKendaraan X Barang X JenisBarang X LokasiBarang Orders OrderDetail OrderStaff BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur X ReturDetail X Faktur KasBank
I = Insert, R = Read, U = Update, D = Delete
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 Index
Cabang 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.
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
Sales Admin
Kepala Gudang
Admin Gudang
Cabang TelpCabang FaxCabang RekCabang Divisi Staff R TelpStaff R Users R R R Customer R TelpCust R FaxCust R RekCust R Gudang R R R Kendaraan R JenisKendaraan R Barang R JenisBarang R LokasiBarang R Orders I, R R OrderDetail I, R R OrderStaff I, R R BarangMasuk I, R BarangMasukDetail I, R BarangKeluar I, R R BarangKeluarDetail I, R R SuratJalan I, R Retur I, R ReturDetail I, R Faktur KasBank
278
Tabel 3.70 Tabel Keamanan Basis Data
User View Tabel
Inventory Control Account Receivable
Finance
Cabang TelpCabang FaxCabang RekCabang Divisi Staff TelpStaff Users R R R Customer TelpCust FaxCust RekCust Gudang Kendaraan JenisKendaraan Barang JenisBarang LokasiBarang Orders R, U R R OrderDetail R, U R R OrderStaff R, U R R BarangMasuk BarangMasukDetail BarangKeluar BarangKeluarDetail SuratJalan Retur ReturDetail Faktur I, R KasBank I, R
279
Tabel 3.71 Tabel Keamanan Basis Data User View Table
BOD Admin
Cabang I, R, U, D TelpCabang I, R, U, D FaxCabang I, R, U, D RekCabang I, R, U, D Divisi I, R, U, D Staff I, R, U, D TelpStaff I, R, U, D Users I, R, U, D Customer R I, R, U, D TelpCust I, R, U, D FaxCust I, R, U, D RekCust I, R, U, D Gudang I, R, U, D Kendaraan I, R, U, D JenisKendaraan I, R, U, D Barang R I, R, U, D JenisBarang R I, R, U, D LokasiBarang R I, R, U, D Orders R, U, D OrderDetail R, U, D OrderStaff R, U, D BarangMasuk R, U, D BarangMasukDetail R, U, D BarangKeluar R, U, D BarangKeluarDetail R, U, D SuratJalan R, U, D Retur R, U, D ReturDetail R, U, D Faktur R, U, D KasBank 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