View
221
Download
0
Category
Preview:
Citation preview
66
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Gambaran Perusahaan
3.1.1 Profil Perusahaan
PT. RIZKI BAJA MANDIRI berdiri pada tahun 2006 dengan nama PT.
WIRA BUANA PARAMITHA, dengan bidang usaha perdagangan besi baja.
Sesuai dengan akte 025/1.824.271, nama perusahaan berganti menjadi PT.
RIZKI BAJA MANDIRI (RBM).
PT. RIZKI BAJA MANDIRI mulai beroperasi secara komersil pada
Mei 2006, dengan kapasitas penjualan empat miliar/tahun dan dengan
penjualan berbagai macam jenis besi baja.
Seiring dengan perkembangannya, PT. RIZKI BAJA MANDIRI selalu
meningkatkan mutu layanan dan kualitas, untuk memenuhi kebutuhan industri
yang semakin meningkat maka dari tahun ke tahun kami selalu meningkatkan
investasi maupun jenis barang yang diperdagangkan.
Sejak tahun 2008, PT. RIZKI BAJA MANDIRI telah mencapai total
kapasitas penjualan dua puluh lima miliar/tahun. Pertumbuhan ini dapat
tercapai karena adanya dukungan sistem manajemen yang efektif dan tingginya
tingkat pembangunan di Indonesia.
67
3.1.2 Visi Perusahaan
Perusahaan baja terpadu dengan keunggulan kompetitif untuk tumbuh
dan berkembang secara berkesinambungan menjadi perusahaan terkemuka di
Indonesia.
3.1.3 Misi Perusahaan
Menyediakan produk baja bermutu dan jasa terkait bagi kemakmuran
bangsa.
3.1.4 Kegiatan Usaha
Kegiatan usaha yang dilakukan PT. RIZKI BAJA MANDIRI adalah
melakukan pembelian dan penjualan besi baja yang meliputi besi beton, besi
plat hitam, besi plat putih, plat kapal, plat bordes, CNP, UNP, plat strip, besi
siku, besi H-Beam, besi WF, dan pipa.
68
3.1.5 Struktur Organisasi
Gambar 3.1 Struktur organisasi
69
3.1.6 Pembagian Tugas dan Tanggung Jawab
Tugas dan tanggung jawab dari masing-masing dalam struktur
organisasi :
1. Director
Tugas-tugasnya antara lain :
a. Melaksanakan tugas yang berhubungan dengan
perusahaan dalam mencapai maksud dan tujuannya.
b. Menentukan kebijakan-kebijakan bagi perusahaan.
c. Mengawasi pekerjaan General Manager.
d. Menyusun perencanaan jangka panjang dan jangka
pendek perusahaan secara keseluruhan.
2. General Manager
Tugas-tugasnya antara lain :
a. Melakukan pengawasan terhadap keseluruhan divisi-
divisi, terutama bila direktur sedang tidak ada di tempat.
b. Meminta pertanggungjawaban atas pekerjaan yang
dilakukan tiap divisi.
c. Menangani permasalahan yang mungkin timbul saat
aktifitas perusahaan berjalan.
d. Mengatur agar keteraturan dan kenyamanan lingkungan
kerja dapat terjaga dengan baik.
3. Marketing Department
Tugas-tugasnya antara lain :
70
a. Memimpin divisi marketing yang bertugas dalam
memasarkan dan menjual barang-barang kepada
customer yang ada.
b. Memikirkan strategi pemasaran dan promosi yang akan
digunakan guna meningkatkan penjualan.
c. Memantau kinerja dari departemen marketing
4. Marketing Staff
Tugas-tugasnya antara lain :
a. Memasarkan produk perusahaan.
b. Mengatasi permasalahan, baik itu kritikan dari customer.
c. Melakukan pendataan customer.
5. Finance & Accounting
Tugas-tugasnya antara lain :
a. Mengelola data yang berhubungan dengan keuangan
perusahaan.
b. Bertanggung jawab terhadap pembukuan / cash flow
perusahaan.
c. Mengelola data yang berhubungan dengan keuangan
perusahaan.
d. Memeriksa laporan keuangan.
6. Finance Staff
Tugas-tugasnya antara lain :
71
a. Bertanggung jawab terhadap pengeluaran dan pemasukan
uang dalam perusahaan beserta laporan keuangannya.
b. Mencatat transaksi-transaksi penjualan maupun
pembelian yang terjadi pada perusahaan.
7. Collector
Tugas-tugasnya antara lain :
a. Bertanggung jawab atas penagihan piutang-piutang dari
customer yang ada.
b. Bertanggung jawab pada bagian finance untuk
melakukan penagihan kepada debitur-debitur.
8. Administration
Tugas-tugasnya antara lain :
a. Bertugas mempersiapkan yang berhubungan dengan
pemesanan barang.
9. Purchasing
Tugas-tugasnya antara lain :
a. Bertanggung jawab terhadap pemesanan barang kepada
supplier.
10. Transportation
Tugas-tugasnya antara lain :
a. Bertanggung jawab mengantar barang kepada customer.
b. Bertanggung jawab mengambil barang dari supplier.
c. Bertanggung jawab atas alat angkut milik perusahaan.
72
11. Warehousing
Tugas-tugasnya antara lain :
a. Bertanggung jawab mengawasi persediaan barang di
gudang.
b. Bertanggung jawab mengawasi keluar masuk barang di
gudang.
c. Bertugas memberitahu bagian purchasing ketika stock di
gudang sudah mencapai minimum.
12. Warehousing Staff
Tugas-tugasnya antara lain :
a. Memeriksa kualitas barang yang masuk.
b. Mempertanggung jawabkan kerusakan dan kehilangan
barang-barang yang ada di gudang.
c. Membantu kepala warehousing melakukan bongkar muat
ke gudang.
d. Membantu kepala warehousing melakukan pengecekan
persediaan pada gudang.
13. Security
Tugas-tugasnya antara lain :
a. Bertanggung jawab atas keamanan gudang.
b. Mengawasi orang yang keluar masuk gudang.
c. Mengawasi keluar dan masuk barang dari gudang.
73
3.1.7 Prosedur yang Sedang Berjalan
3.1.7.1 Penjualan
Prosedur penjualan yang berlaku pada PT. RIZKI BAJA MANDIRI
adalah sebagai berikut :
1. Customer mengirimkan PO kepada bagian marketing.
2. Bagian marketing mengecek barang ke bagian warehousing.
(Jika jumlah stock di gudang sudah sesuai dengan permintaan
customer langsung ke No. 4, Jika tidak ke No. 3)
3. Jika jumlah stock barang yang ada di gudang tidak mencukupi,
maka bagian marketing harus langsung menghubungi bagian
purchasing untuk langsung memesan barang dari supplier.
4. Jika jumlah stock barang yang ada di daftar PO dari customer
sudah terpenuhi maka bagian marketing akan membuat surat
jalan yang akan diberikan kepada bagian transportasi untuk
mengantarkan barang pesanan.
5. Setelah surat jalan diterima oleh bagian transportasi, bagian
transportasi langsung menuju ke bagian warehousing untuk
menunjukan surat jalan, lalu barang dimuat di kendaraan
pengantar.
6. Setelah barang selesai dimuat, barang langsung diantar ke tujuan.
7. Setelah barang sampai di tempat tujuan dan customer
menandatangani surat jalan yang di terima, bagian transportasi
74
memberikan surat jalan tersebut kepada bagian finance untuk
membuatkan faktur penagihan kepada customer.
8. Setelah faktur dibuat oleh bagian finance maka akan diberikan
kepada customer.
9. Pada saat tanggal jatuh tempo, bagian collector yg bertugas
menagih kepada customer yang telah membeli dari PT. RIZKI
BAJA MANDIRI.
10. Setelah customer membayar, bagian collector wajib melapor
kepada bagian finance.
75
Gambar 3.2 Document flowchart penjualan
76
3.1.7.2 Pembelian
Prosedur pembelian yang berlaku pada PT. RIZKI BAJA MANDIRI
adalah sebagai berikut :
1. Bagian purchasing mengirimkan penawaran PO kepada
perusahaan supplier.
2. Supplier mengirimkan barang langsung ke gudang.
3. Staff warehousing melapor kepada manager warehousing bahwa
ada kiriman barang.
4. Lalu manager warehousing menghubungi bagian purchasing
untuk menanyakan jumlah dan barang yang dipesan apakah
sudah benar.
5. Setelah mendapatkan kepastian, manager warehousing meminta
agar para staffnya memeriksa kondisi dan kualitas barang.
6. Jika sudah dicek semua kondisi dan kualitasnya, staff
warehousing melapor kepada manager warehousing.
7. Jika ada barang yang buruk, baik kondisi maupun kualitas maka
pihak warehousing akan menolak barang tersebut dan meminta
barang tersebut diganti dengan yang lebih baik kondisi ataupun
kualitasnya.
8. Setelah semua terpenuhi barulah pihak warehousing
menandatangani surat jalan yang dibawa oleh supir supplier.
77
9. Setelah pihak warehousing menandatangani surat jalan, mereka
harus langsung melapor kepada bagian purchasing bahwa PO
untuk barang-barang yang dipesan sudah terpenuhi.
10. Dan bagian purchasing harus memberitahu kepada bagian
finance bahwa baru saja bagian purchasing melakukan
pembelian dan barang sudah diterima di gudang.
11. Lalu bagian purchasing akan menerima faktur yang nantinya
harus dibayarkan sebelum atau pada saat jatuh tempo.
78
Gambar 3.3 Document flowchart pembelian
79
3.1.7.3 Persediaan
Prosedur persediaan PT. RIZKI BAJA MANDIRI adalah jika ada
terjadi transaksi penjualan maka pihak warehousing akan langsung mengurangi
jumlah barang yang ada digudang. Begitu juga sebaliknya jika PT. RIZKI
BAJA MANDIRI melakukan pembelian maka pada saat barang yang dipesan
sampai digudang, bagian warehousing mengecek apakah barang yang diterima
dengan kualitas dan kondisi yang baik. Jika barang sudah dengan kondisi yang
baik maka pihak warehousing akan menandatangani surat jalan dari supplier,
maka dengan begitu stock pada gudang bertambah.
Transaksi pembelian yang dilakukan oleh PT. RIZKI BAJA MANDIRI
akan menyebabkan penambahan stock (persediaan) pada gudang karena
penambahan dari hasil pembelian yang mana barang hasil pembelian tersebut
akan disimpan pada gudang.
Transaksi penjualan yang dilakukan oleh PT. RIZKI BAJA MANDIRI
akan menyebabkan pengurangan stock (persediaan) pada gudang karena
pengurangan dari penjualan yang mana barang hasil penjualan tersebut diambil
dari gudang.
Untuk mengetahui jumlah stock (persediaan) yang terdapat di dalam
gudang, pihak-pihak yang membutuhkan data tersebut menghubungi bagian
gudang untuk menanyakan ketersediaan barang.
80
Gambar 3.4 Document flowchart persediaan bertambah
81
Gambar 3.5 Document flowchart persediaan berkurang
82
3.1.8 Permasalahan yang Sedang Dihadapi
Setelah melakukan wawancara dan analisis terhadap transaksi penjualan,
pembelian, dan persediaan ditemukan masalah-masalah sebagai berikut :
1. Sulitnya perusahaan untuk mengetahui jumlah persediaan barang
yang terdapat pada gudang.
2. Sulit dan lamanya pencatatan data transaksi karena perusahaan
masih mencatat data transaksi secara manual.
3. Lamanya waktu yang dibutuhkan dalam proses pembuatan
laporan bulanan maupun tahunan.
4. Seringnya terjadi kesalahan perhitungan pada laporan yang
dibuat, sehingga terkadang harus dibuat berulang-ulang.
5. Sulitnya mencari data customer dan supplier baik telepon,
contact person dan alamatnya.
3.1.9 Alternatif Pemecahan Masalah
Dari analisis permasalahan dan kebutuhan data, solusi-solusi yang
diusulkan adalah dengan membangun sistem basis data yang memiliki
kemampuan sebagai berikut :
1. Menampung data penjualan, pembelian, dan persediaan.
2. Mengurangi dan menambah jumlah persediaan barang pada
gudang secara otomatis jika terjadi pembelian dan penjualan
barang.
83
3. Memudahkan bagian-bagian yang terkait dalam melihat
persediaan barang di gudang secara up-to-date kapan saja bagian
tersebut membutuhkan data persediaan.
4. Membantu pembelian dan penjualan, serta pencarian data
sehingga lebih mudah.
5. Mempermudah proses pembuatan laporan sehingga dapat
menghemat waktu dan mengurangi kesalahan.
6. Meningkatkan keamanan data perusahaan.
Berdasarkan butir-butir tersebut, dapat disimpulkan pemecahan masalah
yang diusulkan adalah dengan perancangan sistem basis data untuk
menggantikan sistem manual yang sedang berjalan. Basis data yang dibuat akan
menampung data transaksi pembelian, data transaksi penjualan, stock pada
gudang, data customer, dan data supplier.
Sistem tersebut memungkinkan untuk mengakses, memanipulasi, dan
mengolah data yang terdapat pada basis data yang telah dibuat untuk digunakan
oleh beberapa bagian perusahaan dan mendukung proses-proses pembelian,
penjualan, dan persediaan perusahaan. Sistem ini juga mendukung validasi
dalam tiap input sehingga meminimalisasikan kesalahan input yang disebabkan
pengguna.
Sistem ini juga dapat mengolah data yang telah diinput menjadi
informasi dalam bentuk sejarah transaksi penjualan, sejarah transaksi pembelian,
84
dan laporan yang dibutuhkan perusahaan pada setiap bulannya maupun setiap
tahunnya.
3.2 Data Flow Diagram Sistem yang Diusulkan
3.2.1 Context Diagram (Level 0)
Context diagram ini membantu kita untuk mengetahui aliran data pada
sistem basis data yang diusulkan.
Gambar 3.6 Context diagram sistem basis data yang diusulkan
85
3.2.2 Data Flow Diagram Level 1
Data flow diagram level 1 ini menggambarkan secara lebih jelas proses-
proses apa saja yang terdapat pada sistem basis data PT. Rizki Baja Mandiri.
Beberapa proses diantaranya adalah :
• Penjualan barang.
• Pembelian barang.
• Persediaan barang.
• Pembentukan laporan.
86
Gambar 3.7 Data flow diagram level 1 sistem basis data yang diusulkan
87
3.3 Perancangan Basis Data
Perancangan basis data pada PT. Rizki Baja Mandiri dibagi menjadi tiga
tahap, yaitu :
3.3.1 Perancangan Basis Data Konseptual
Perancangan basis data konseptual adalah proses membangun suatu
model informasi yang digunakan oleh perusahaan atau organisasi yang tidak
tergantung dari pertimbangan fisik. Berikut adalah langkah-langkah
perancangan basis data konseptual :
3.3.1.1 Mengidentifikasi entity type
Tujuan dari langkah ini adalah untuk menentukan tipe-tipe entitas yang
dibutuhkan.
Tabel 3.1 Identifikasi entity types
Entity Name Description Aliases Occurence
Barang Barang-barang yang
diperjual-belikan oleh PT.
Rizki Baja Mandiri.
Barang Barang dibeli,
disimpan, dan
dijual oleh PT.
Rizki Baja Mandiri.
88
Gudang Tempat menyimpan
barang yang dibeli oleh
PT. Rizki Baja Mandiri.
Gudang Setiap pembelian
memasukkan
Barang ke Gudang
dan setiap
penjualan
mengambil Barang
dari Gudang.
Supplier PT. Rizki Baja Mandiri
membeli barang-
barangnya dari Supplier.
Supplier Setiap ada
pembelian Barang.
Customer PT. Rizki Baja Mandiri
menjual barang-
barangnya kepada
Customer.
Customer Setiap ada
penjualan Barang.
User Pengguna dari aplikasi
sistem basis data.
User Setiap ada
penjualan dan
pembelian barang.
PO Berisi informasi tentang
pembelian barang kepada
Supplier.
PurchaseOrder Setiap ada
pembelian barang.
SuratJalan Berisi informasi tentang
pengiriman barang kepada
Customer dan merupakan
SJ Setiap ada
penjualan barang.
89
subset dari penjualan.
Faktur Berisi infromasi tentang
penjualan barang kepada
Customer.
Faktur Setiap ada
penjualan barang.
3.3.1.2 Mengidentifikasi relationship type
Tujuan dari langkah ini adalah untuk mengidentifikasi relationship yang
penting yang ada antara entity types yang telah diidentifikasi sebelumnya.
Tabel 3.2 Identifikasi relationship type
Entity Name Multiplicity Relationship Multiplicity Entity Name
Gudang 1..* menyimpan 0..* Barang
Supplier 1..1 menerima 0..* PO
PO 0..* mempunyai 1..* Barang
User 1..1
0..1
1..1
0..1
1..1
0..1
membuat
merubah
membuat
merubah
membuat
merubah
0..*
0..*
0..*
0..*
0..*
0..*
PO
PO
Faktur
Faktur
SuratJalan
SuratJalan
Customer 1..1 menerima 0..* Faktur
SJ 0..*
0..*
ditujukan ke
mempunyai
1..1
1..*
Customer
Barang
Faktur
1.
0.
.1
.*
Gambar 3
terdiri dar
mempuny
3.8 Conceptu
ri
yai
1..*
1..*
ual ER Diag
Su
B
gram
uratJalan
arang
90
91
3.3.1.3 Mengidentifikasi dan menghubungkan attributes dengan entity atau
relationship types
Tujuan dari langkah ini adalah untuk menghubungkan atribut-atribut
yang diperlukan dengan entitas atau relationship yang tepat.
Tabel 3.3 Identifikasi attributes
Entity
Name
Attributes Description Data Type
& Length
Nulls Multi-
Valued
Barang IdBarang Identitas unik dari
barang
Integer No No
NamaBarang Nama dari barang Varchar(50) No No
Berat Berat dari barang Numeric(9,
2)
No No
KdJenisBarang
Identitas unik dari
jenisbarang
Varchar(8) No No
NamaJenisBar
ang
Nama dari
jenisbarang
Varchar(50) No No
NamaSatuan Nama dari satuan
yang dimiliki barang
Varchar(10) No No
KdSatuan Kode dari satuan
yang dimiliki barang
Varchar(5) No No
Gudang IdGudang Identitas unik dari Integer No No
92
gudang
NamaGudang Nama dari gudang Varchar(50) No No
AlamatGudang Alamat dari gudang Varchar(10
0)
No No
TeleponGudan
g
Telepon dari gudang Varchar(15) Yes Yes
FaxGudang Fax dari gudang Varchar(15) Yes Yes
Supplier IdSupplier Identitas unik dari
supplier
Integer No No
NamaSupplier Nama dari supplier Varchar(50) No No
AlamatSupplie
r
Alamat dari supplier Varchar(10
0)
No No
CPSupplier Contact Person dari
supplier
Varchar(50) Yes No
TeleponSuppli
er
Telepon dari
supplier
Varchar(15) Yes Yes
FaxSupplier Fax dari supplier Varchar(15) Yes Yes
Customer IdCustomer Identitas unik dari
customer
Integer No No
NamaCustome
r
Nama dari customer Varchar(50) No No
ShortNamaCus
tomer
Singkatan dari nama
customer
Varchar(10) No No
93
AlamatCustom
er
Alamat dari
customer
Varchar(10
0)
No No
CPCustomer Contact Person dari
customer
Varchar(50) Yes No
TeleponCusto
mer
Telepon dari
customer
Varchar(15) Yes Yes
FaxCustomer Fax dari customer Varchar(15) Yes Yes
User IdUser Identitas unik dari
user
Integer No No
Username Username dari user Varchar(15) No No
Password Password dari user Varchar(15) No No
NamaUser Nama dari user Varchar(50) No No
NamaRole Nama dari role Varchar(50) No No
PO NoPO Identitas unik dari
PO
Integer No No
TanggalPO Tanggal pada PO Datetime No No
Batal Status batal pada PO Char Yes No
TanggalLunas Tanggal PO lunas Datetime Yes No
NamaJenisPe
mbayaran
Nama dari jenis
pembayaran
Varchar(20) Yes No
NamaBank Nama dari bank Varchar(50) Yes No
NoGiroPO Nomor Giro yang
dikeluarkan
Varchar(15) Yes No
94
TanggalCairGi
ro
Tanggal Giro dapat
dicairkan
Datetime Yes No
SJ NoSJ Identitas unik dari
SJ
Integer No No
TanggalSJ Tanggal pada SJ Datetime No No
Batal Status batal pada SJ Char Yes No
AlamatTujuan Alamat tujuan SJ Varchar(10
0)
Yes No
Faktur NoFaktur Identitas unik dari
Faktur
Integer No No
TanggalFaktur Tanggal pada Faktur Datetime No No
OngkosKirim Jumlah ongkos
kirim
Money Yes No
Catatan Catatan pada Faktur Varchar(10
0)
Yes No
TanggalJatuhT
empo
Tanggal Faktur akan
jatuh tempo
Datetime No No
TanggalLunas Tanggal PO lunas Datetime Yes No
NamaJenisPe
mbayaran
Nama dari jenis
pembayaran
Varchar(20) Yes No
NamaBank Nama dari bank Varchar(50) Yes No
NoGiroFaktur Nomor Giro yang
dikeluarkan
Varchar(15) Yes No
95
TanggalCairGi
ro
Tanggal Giro dapat
dicairkan
Datetime Yes No
3.3.1.4 Menentukan attribute domains
Tujuan dari langkah ini adalah untuk menetukan attribute domain yang
tepat untuk digunakan.
Tabel 3.4 Identifikasi domain attributes
Entity Name Attributes Domain
Barang IdBarang integer
NamaBarang variable length character string, length 50
Berat decimal, 2 point precission
KdJenisBarang variable length character string, length 8
NamaJenisBarang variable length character string, length 50
Gudang IdGudang integer
NamaGudang variable length character string, length 50
AlamatGudang variable length character string, length 100
TeleponGudang variable length character string, length 15
FaxGudang variable length character string, length 15
Supplier IdSupplier integer
NamaSupplier variable length character string, length 50
AlamatSupplier variable length character string, length 100
96
CPSupplier variable length character string, length 50
TeleponSupplier variable length character string, length 15
FaxSupplier variable length character string, length 15
Customer IdCustomer integer
NamaCustomer variable length character string, length 50
ShortNamaCustomer variable length character string, length 10
AlamatCustomer variable length character string, length 100
CPCustomer variable length character string, length 50
TeleponCustomer variable length character string, length 15
FaxCustomer variable length character string, length 15
User IdUser integer
Username variable length character string, length 15
Password variable length character string, length 15
NamaUser variable length character string, length 50
NamaRole variable length character string, length 50
PO NoPO integer
TanggalPO tanggal
Batal single character, must be ‘Y’
TanggalLunas tanggal
NamaJenisPembayaran variable length character string, length 20
NamaBank variable length character string, length 50
NoGiroPO variable length character string, length 15
TanggalCairGiro tanggal
97
SuratJalan NoSJ integer
TanggalSJ tanggal
Batal single character, must be ‘Y’
AlamatTujuan variable length character string, length 100
Faktur NoFaktur integer
TanggalFaktur tanggal
OngkosKirim uang
Catatan variable length character string, length 100
TanggalJatuhTempo tanggal.
TanggalLunas tanggal.
NamaJenisPembayaran variable length character string, length 20
NamaBank variable length character string, length 50
NoGiroPO variable length character string, length 15
TanggalCairGiro tanggal
3.3.1.5 Menentukan candidate, primary, dan alternate key attribute
Tujuan dari langkah ini adalah untuk mengidentifikasi candidate key
untuk tiap-tiap tipe entitas dan, jika ada lebih dari satu candidate key maka pilih
satu untuk menjadi primary key dan sisanya dapat dijadikan alternate key.
98
Tabel 3.5 Identifikasi candidate, primary, dan alternate key attribute
Entity Name Candidate Keys Primary Keys Alternate Keys
Barang IdBarang IdBarang -
Gudang IdGudang
AlamatGudang
IdGudang AlamatGudang
Supplier IdSupplier
AlamatSupplier
IdSupplier AlamatSupplier
Customer IdCustomer
AlamatCustomer
IdCustomer AlamatCustomer
User IdUser
Username
IdUser Username
PO NoPO NoPO -
SuratJalan NoSJ NoSJ -
Faktur NoFaktur NoFaktur -
3.3.1.6 Me
opsional)
enc
keb
ini d
Gambar
mpertimba
Tujuan
hance mode
butuhan untu
dilewati.
r 3.9 Concep
angkan pen
dari langkah
elling concep
uk mengguna
ptual ER Dia
ggunaan en
h ini adalah
pts. Pada des
akan enchan
agram denga
nchance mo
h untuk mem
sian basis da
ce modelling
an Primary K
odelling con
mpertimbang
ata sejauh ini
g concepts, s
Key
ncepts (lan
gkan penggu
i tidak ditem
sehingga lan
99
gkah
unaan
mukan
ngkah
100
3.3.1.7 Memeriksa model akan adanya redudansi
Tujuan dari langkah ini adalah untuk menghindari adanya redudansi
atau pengulangan data dalam model data.
a) Memeriksa kembali one-to-one relationship (1:1)
Pada ERD tidak ditemukan adanya redudansi entity pada hubungan one-to-
one.
b) Menghilangkan relasi yang redundan
Pada ERD tidak ditemukan adanya redudansi relasi.
c) Mempertimbangkan dimensi waktu
Pada ERD tidak ditemukan adanya dimensi waktu yang perlu diperhatikan
secara khusus.
3.3.1.8 Memvalidasi model konseptual terhadap user transactions
Tujuan dari langkah ini adalah untuk memastikan model konseptual
telah mendukung transaksi-transaksi yang dibutuhkan. Pendekatan yang akan
digunakan adalah dengan transaction pathways.
Data entry
• Memasukkan data customer baru.
• Memasukkan data supplier baru.
• Memasukkan barang baru.
• Memasukkan data purchase order (PO).
• Memasukkan data surat jalan (SJ).
• Memasukkan data faktur.
101
Data update/deletion
• Update/delete data dari customer.
• Update/delete data dari supplier.
• Update/delete data dari barang.
• Update data dari purchase order (PO).
• Update data dari surat jalan (SJ).
• Update data dari faktur.
Data queries
Berikut merupakan contoh dari beberapa query yang dibutuhkan oleh PT.
Rizki Baja Mandiri :
a. Menampilkan jumlah stock barang pada gudang.
b. Menampilkan PO dengan barang tertentu.
c. Menampilkan PO dengan supplier tertentu.
d. Menampilkan surat jalan dengan barang tertentu.
e. Menampilkan surat jalan dengan customer tertentu.
f. Menampilkan faktur dengan barang tertentu.
g. Menampilkan faktur dengan customer tertentu.
h. Menampilkan faktur yang terdiri lebih dari satu surat jalan (SJ).
i. Menampilkan daftar harga beli barang tertentu dengan supplier.
j. Menampilkan customer yang melakukan pembelian dengan jumlah
tertentu.
3.3.1.9 Rev
seca
peru
Riz
Gam
view model d
Tujuan
ara tepat me
usahaan. Mo
ki Baja Man
mbar 3.10 V
data konsep
dari langkah
enggambarka
odel data ya
ndiri.
Validasi terha
ptual denga
h ini adalah
an transaksi
ang telah dib
adap user tra
n user
h untuk mem
dan kebutu
buat dirasa s
ansactions
mastikan mo
uhan data sec
sudah cukup
odel data ter
cara nyata d
p mendukung
102
rsebut
dalam
g PT.
103
3.3.2 Perancangan Basis Data Logikal
Perancangan basis data konseptual adalah proses membangun model
informasi yang digunakan organisasi berdasarkan model data tertentu, tetapi
tidak tergantung dari Database Management System (DBMS) dan
pertimbangan fisik lainnya. Berikut adalah langkah-langkah perancangan basis
data logikal :
3.3.2.1 Membentuk relasi untuk logical data model
Tujuan dari langkah ini adalah untuk menyaring conceptual data model
sehingga fitur-fitur yang tidak sesuai dengan model relasional dihilangkan.
Langkah tersebut akan dilakukan terhadap :
a. Strong entity types
Untuk setiap strong entity types pada model data, dibuat relasi yang
mencakup semua atribut sederhananya.
Barang ( IdBarang, NamaBarang, Berat, KdJenisBarang,
NamaJenisBarang, NamaSatuan, KodeSatuan )
Primary Key IdBarang
Gudang ( IdGudang, NamaGudang, AlamatGudang,
TeleponGudang, FaxGudang )
Primary Key IdGudang
104
Supplier ( IdSupplier, NamaSupplier, AlamatSupplier, CPSupplier,
TeleponSupplier, FaxSupplier )
Primary Key IdSupplier
Customer ( IdCustomer, NamaCustomer, AlamatCustomer,
CPCustomer, TeleponCustomer, FaxCustomer )
Primary Key IdCustomer
User ( IdUser, Username, Password, NamaUser, NamaRole )
Primary Key IdUser
PO ( NoPO, TanggalPO, Batal, TanggalLunas,
NamaJenisPembayaran, NamaBank, NoGiro, TanggalCairGiro )
Primary Key NoPO
SuratJalan ( NoSJ, TanggalSJ, Batal, AlamatTujuan )
Primary Key NoSJ
Faktur ( NoFaktur, TanggalFaktur, OngkosKirim, Catatan,
TanggalJatuhTempo, TanggalLunas, NamaJenisPembayaran,
NamaBank, NoGiro, TanggalCairGiro )
Primary Key NoFaktur
105
b. Weak entity types
Sampai saat ini, belum ditemukan adanya Weak entity types.
c. One-to-many (1:*) binary relationship types
• Hubungan Supplier(1..1) menerima PO(0..*)
• Hubungan User(1..1) membuat PO(0..*)
• Hubungan User(0..1) mengubah PO(0..*)
106
• Hubungan User(1..1) membuat SuratJalan(0..*)
User ( IdUser, Username, Password, NamaUser, NamaRole )Primary Key IdUser
SJ ( NoSJ, TanggalSJ, Batal, AlamatTujuan, CreatedBy, CreatedTime )Primary Key NoSJForeign Key CreatedBy references User(IdUser)
Masukkan IdUser ke SJ untuk relasi 1:* membuat
• Hubungan User(0..1) mengubah SuratJalan(0..*)
• Hubungan User(1..1) membuat Faktur(0..*)
• Hubungan User(1..1) mengubah Faktur(0..*)
107
• Hubungan SuratJalan(0..*) ditujukan ke Customer(1..1)
• Hubungan Customer(1..1) menerima Faktur(0..*)
• Hubungan Faktur(1..1) terdiri dari SuratJalan(1..*)
108
d. Many-to-many (*:*) binary relationship types
• Hubungan Gudang(1..*) menyimpan Barang(0..*)
• Hubungan PO(0..*) mempunyai Barang(1..*)
109
• Hubungan SJ (0..*) mempunyai Barang(1..*)
• Hubungan Faktur (0..*) mempunyai Barang(1..*)
110
e. Multi-valued attributes
• TeleponGudang pada Gudang
• FaxGudang pada Gudang
• TeleponSupplier pada Supplier
• FaxSupplier pada Supplier
• TeleponCustomer pada Customer
111
• FaxCustomer pada Customer
3.3.2.2 Validasi relasi dengan meggunakan normalisasi
Tujuan dari langkah ini adalah membuat sekecil mungkin terjadinya
redudansi data, menghindari adanya data yang tidak konsisten terutama bila
dilakukan penghapusan atau perubahan data sebagai akibat adanya redudansi
data, dan menjamin bahwa identitas label secara tunggal sebagai determinan
semua atribut. Berikut ini merupakan proses normalisasi :
1. MsBarang
1NF :
MsBarang ( @IdBarang, NamaBarang, KdJenisBarang, NamaJenisBarang,
Berat, NamaSatuan )
2NF :
MsBarang ( @IdBarang, NamaBarang, KdJenisBarang, NamaJenisBarang,
Berat, NamaSatuan )
3NF :
MsBarang ( @IdBarang, NamaBarang, KdJenisBarang, NamaJenisBarang,
Berat, NamaSatuan )
MsJenisBarang ( @KdJenisBarang, NamaJenisBarang )
MsSatuan ( @IdSatuan, NamaSatuan, KdSatuan )
112
2. MsGudang
1NF :
MsGudang ( @IdGudang, NamaGudang, AlamatGudang )
TeleponGudang ( @IdGudang, @TeleponGudang )
FaxGudang ( @IdGudang, @FaxGudang)
2NF :
MsGudang ( @IdGudang, NamaGudang, AlamatGudang )
TeleponGudang ( @IdGudang, @TeleponGudang )
FaxGudang ( @IdGudang, @FaxGudang)
3NF :
MsGudang ( @IdGudang, NamaGudang, AlamatGudang )
TeleponGudang ( @IdGudang, @TeleponGudang )
FaxGudang ( @IdGudang, @FaxGudang)
3. MsCustomer
1NF :
MsCustomer ( @IdCustomer, NamaCustomer, AlamatCustomer,
CPCustomer )
TeleponCustomer ( @IdCustomer, @TeleponCustomer )
FaxCustomer ( @IdCustomer, @FaxCustomer )
2NF :
MsCustomer ( @IdCustomer, NamaCustomer, AlamatCustomer,
CPCustomer )
TeleponCustomer ( @IdCustomer, @TeleponCustomer )
113
FaxCustomer ( @IdCustomer, @FaxCustomer )
3NF :
MsCustomer ( @IdCustomer, NamaCustomer, AlamatCustomer,
CPCustomer )
TeleponCustomer ( @IdCustomer, @TeleponCustomer )
FaxCustomer ( @IdCustomer, @FaxCustomer )
4. StockGudang
1NF :
StockGudang ( @IdBarang, @IdGudang, Jumlah )
2NF :
StockGudang ( @IdBarang, @IdGudang, Jumlah )
3NF :
StockGudang ( @IdBarang, @IdGudang, Jumlah )
5. User
1NF :
User ( @IdUser, Username, Password, NamaUser, NamaRole )
2NF :
User ( @IdUser, Username, Password, NamaUser, NamaRole )
3NF :
User ( @IdUser, Username, Password, NamaUser, IdRole )
MsRole ( @IdRole, NamaRole )
6. PO
1NF :
114
PO ( @NoPO, TanggalPO, Batal, IdSupplier, TanggalLunas,
NamaJenisPembayaran, NamaBank, NoGiroPO, TanggalCairGiro,
CreatedBy, CreatedTime, UpdatedBy, UpdatedTime )
2NF :
PO ( @NoPO, TanggalPO, Batal, IdSupplier, TanggalLunas,
NamaJenisPembayaran, NamaBank, NoGiroPO, TanggalCairGiro,
CreatedBy, CreatedTime, UpdatedBy, UpdatedTime )
3NF :
PO ( @NoPO, TanggalPO, Batal, IdSupplier, TanggalLunas,
IdJenisPembayaran, IdBank, NoGiroPO, TanggalCairGiro, CreatedBy,
CreatedTime, UpdatedBy, UpdatedTime )
MsJenisPembayaran ( @IdJenisPembayaran, NamaJenisPembayaran )
MsBank ( @IdBank, NamaBank )
7. PODetail
1NF :
PODetail ( @NoPO, @IdBarang, Jumlah, Harga )
2NF :
PODetail ( @NoPO, @IdBarang, Jumlah, Harga )
3NF :
PODetail ( @NoPO, @IdBarang, Jumlah, Harga )
8. SJ
1NF :
115
SJ ( @NoSJ, TanggalSJ, Batal, AlamatTujuan, IdCustomer, NoFaktur,
CreatedBy, CreatedTime, UpdatedBy, UpdatedTime )
2NF :
SJ ( @NoSJ, TanggalSJ, Batal, AlamatTujuan, IdCustomer, NoFaktur,
CreatedBy, CreatedTime, UpdatedBy, UpdatedTime )
3NF :
SJ ( @NoSJ, TanggalSJ, Batal, AlamatTujuan, IdCustomer, NoFaktur,
CreatedBy, CreatedTime, UpdatedBy, UpdatedTime )
9. SJDetail
1NF :
SJDetail ( @NoSJ, @IdBarang, IdBarangPrint, Jumlah )
2NF :
SJDetail ( @NoSJ, @IdBarang, IdBarangPrint, Jumlah )
3NF :
SJDetail ( @NoSJ, @IdBarang, IdBarangPrint, Jumlah )
10. Faktur
1NF :
Faktur ( @NoFaktur, TanggalFaktur, OngkosKirim, Catatan, IdCustomer,
TanggalJatuhTempo, TanggalLunas, NamaJenisPembayaran, NamaBank,
NoGiroFaktur, TanggalCairGiro, CreatedBy, CreatedTime, UpdatedBy,
UpdatedTime )
2NF :
116
Faktur ( @NoFaktur, TanggalFaktur, OngkosKirim, Catatan, IdCustomer,
TanggalJatuhTempo, TanggalLunas, NamaJenisPembayaran, NamaBank,
NoGiroFaktur, TanggalCairGiro, CreatedBy, CreatedTime, UpdatedBy,
UpdatedTime )
3NF :
Faktur ( @NoFaktur, TanggalFaktur, OngkosKirim, Catatan, IdCustomer,
TanggalJatuhTempo, TanggalLunas, IdJenisPembayaran, IdBank,
NoGiroFaktur, TanggalCairGiro, CreatedBy, CreatedTime, UpdatedBy,
UpdatedTime )
MsJenisPembayaran ( @IdJenisPembayaran, NamaJenisPembayaran )
MsBank ( @IdBank, NamaBank )
3.3.2.3 Menentukan integrity constraint
Tujuan dari langkah ini adalah untuk melindungi basis data agar tetap
konsisten.
a) Required data
Constraints ini telah diidentifikasi pada saat 4.1.1.3 Mengidentifikasi dan
menghubungkan attributes dengan entity atau relationship types.
b) Attribute domain constraint
Constraints ini telah diidentifikasi pada saat 4.1.1.4 Menentukan attribute
domains.
117
c) Multiplicity
Constraints ini telah diidentifikasi pada saat 4.1.1.2 Mengidentifikasi
relationship type.
d) Entity integrity
Constraints ini telah diidentifikasi pada saat 4.1.1.5 Menentukan candidate,
primary, dan alternate key attribute.
e) Referential integrity
Tabel 3.6 Referential integrity constraints
FaxCustomer ( IdCustomer, FaxCustomer )
Primary Key IdCustomer, FaxCustomer
Foreign Key IdCustomer references MsCustomer(IdCustomer) ON UPDATE
CASCADE ON DELETE NO ACTION
TeleponCustomer ( IdCustomer, TeleponCustomer )
Primary Key IdCustomer, TeleponCustomer
Foreign Key IdCustomer references MsCustomer(IdCustomer) ON UPDATE
CASCADE ON DELETE NO ACTION
FaxSupplier ( IdSupplier, FaxSupplier )
Primary Key IdSupplier, FaxSupplier
Foreign Key IdSupplier references MsSupplier(IdSupplier) ON UPDATE
CASCADE ON DELETE NO ACTION
TeleponSupplier ( IdSupplier, TeleponSupplier )
Primary Key IdSupplier, TeleponSupplier
118
Foreign Key IdSupplier references MsSupplier(IdSupplier) ON UPDATE
CASCADE ON DELETE NO ACTION
FaxGudang ( IdGudang, FaxGudang )
Primary Key IdGudang, FaxGudang
Foreign Key IdGudang references MsGudang(IdGudang) ON UPDATE CASCADE
ON DELETE NO ACTION
TeleponGudang ( IdGudang, TeleponGudang )
Primary Key IdGudang, TeleponGudang
Foreign Key IdGudang references MsGudang(IdGudang) ON UPDATE CASCADE
ON DELETE NO ACTION
FakturDetail ( NoFaktur, IdBarang, IdBarangPrint, Jumlah, Harga )
Primary Key NoSJ, IdBarang
Foreign Key NoFaktur references Faktur(NoFaktur) ON UPDATE CASCADE ON
DELETE NO ACTION
Foreign Key IdBarang references MsBarang(IdBarang) ON UPDATE CASCADE
ON DELETE NO ACTION
Foreign Key IdBarangPrint references MsBarang(IdBarang) ON UPDATE
CASCADE ON DELETE NO ACTION
SJDetail ( NoSJ, IdBarang, IdBarangPrint, Jumlah )
Primary Key NoSJ, IdBarang
Foreign Key NoSJ references SJ(NoSJ)
Foreign Key IdBarang references MsBarang(IdBarang) ON UPDATE CASCADE
ON DELETE NO ACTION
119
Foreign Key IdBarangPrint references MsBarang(IdBarang) ON UPDATE
CASCADE ON DELETE NO ACTION
PODetail ( NoPO, IdBarang, Jumlah, Harga )
Primary Key NoPO, IdBarang
Foreign Key NoPO references PO(NoPO) ON UPDATE CASCADE ON DELETE
NO ACTION
Foreign Key IdBarang references MsBarang(IdBarang) ON UPDATE CASCADE
ON DELETE NO ACTION
StockGudang ( IdGudang, IdBarang, Jumlah )
Primary Key IdGudang, IdBarang
Foreign Key IdGudang references MsGudang(IdGudang) ON UPDATE CASCADE
ON DELETE NO ACTION
Foreign Key IdBarang references MsBarang(IdBarang) ON UPDATE CASCADE
ON DELETE NO ACTION
SJ ( NoSJ, TanggalSJ, Batal, AlamatTujuan, IdCustomer, NoFaktur, CreatedBy,
CreatedTime, UpdatedBy, UpdatedTime )
Primary Key NoSJ
Foreign Key CreatedBy references User(IdUser) ON UPDATE CASCADE ON
DELETE NO ACTION
Foreign Key UpdatedBy references User(IdUser) ON UPDATE CASCADE ON
DELETE NO ACTION
Foreign Key IdCustomer references Customer(IdCustomer) ON UPDATE
CASCADE ON DELETE NO ACTION
120
Foreign Key NoFaktur references Faktur(NoFaktur) ON UPDATE CASCADE ON
DELETE NO ACTION
Faktur ( NoFaktur, TanggalFaktur, OngkosKirim, Catatan, IdCustomer,
TanggalJatuhTempo, TanggalLunas, IdJenisPembayaran, IdBank, NoGiroFaktur,
TanggalCairGiro CreatedBy, CreatedTime, UpdatedBy, UpdatedTime )
Primary Key NoFaktur
Foreign Key CreatedBy references User(IdUser) ON UPDATE CASCADE ON
DELETE NO ACTION
Foreign Key UpdatedBy references User(IdUser) ON UPDATE CASCADE ON
DELETE NO ACTION
Foreign Key IdCustomer references Customer(IdCustomer) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key IdJenisPembayaran references MsJenisPembayaran(IdJenisPembayaran)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key IdBank references MsBank(IdBank) ON UPDATE CASCADE ON
DELETE NO ACTION
PO ( NoPO, TanggalPO, Batal, IdSupplier, TanggalLunas, NamaJenisPembayaran,
NamaBank, NoGiroPO, TanggalCairGiro, CreatedBy, CreatedTime, UpdatedBy,
UpdatedTime )
Primary Key NoPO
Foreign Key CreatedBy references User(IdUser) ON UPDATE CASCADE ON
DELETE NO ACTION
Foreign Key UpdatedBy references User(IdUser) ON UPDATE CASCADE ON
121
DELETE NO ACTION
Foreign Key IdSupplier references Supplier(IdSupplier) ON UPDATE CASCADE
ON DELETE NO ACTION
User ( IdUser, Username, Password, NamaUser, IdRole )
Primary Key IdUser
Foreign Key IdRole references MsRole(IdRole) ON UPDATE CASCADE ON
DELETE NO ACTION
MsBarang ( IdBarang, NamaBarang, KdJenisBarang, Berat, IdSatuan )
Primary Key IdBarang
Foreign Key IdSatuan references MsSatuan(IdSatuan) ON UPDATE CASCADE
ON DELETE NO ACTION
f) General Constraints
Berikut merupakan beberapa constraints dari perusahaan :
i. Jumlah barang harus lebih banyak dari jumlah barang yang akan
dikirim saat membuat surat jalan.
ii. Jumlah barang pada gudang dibatasi dengan jumlah minimum untuk
setiap barang yang ada.
Gambarr 3.11 Logicaal ER Diagrram
122
123
3.3.3 Perancangan Basis Data Fisikal
Perancangan basis data fisikal merupakan proses memproduksi sebuah
deskripsi dari implementasi basis data dalam secondary storage, yang
menjelaskan relasi dasar, organisasi file, dan indeks yang digunakan untuk
mendapatkan akses data yang efisien, serta setiap integrity constraint yang
saling berhubungan dan juga pengukuran keamanan. Berikut adalah langkah-
langkah perancangan basis data fisikal :
3.3.3.1 Membuat Base Relations
Tujuan dari langkah ini adalah untuk menentukan bagaimana
merepresentasikan relasi dasar yang diidentifikasikan dalam model data ke
dalam target DBMS (Database Management System) dan definisi dari relasi
tersebut dideskripsikan menggunakan Database Design Language (DBDL).
Berikut adalah DBDL yang digunakan :
1. MsRole
Domain IdRole: integer
Domain NamaRole: variable length character string, length 50
MsRole(
IdRole IdRole NOT NULL,
NamaRole NamaRole NOT NULL,
PRIMARY KEY (IdRole);
124
);
2. User
Domain IdUser: integer
Domain Username: variable length character string, length 15
Domain Password: variable length character string, length 15
Domain NamaUser: variable length character string, length 50
Domain IdRole: integer
MsUser(
IdUser IdUser NOT NULL,
Username Username NOT NULL,
Password Password NOT NULL,
NamaUser NamaUser NOT NULL,
IdRole IdRole NOT NULL,
PRIMARY KEY (IdUser),
FOREIGN KEY (IdRole) REFERENCES MsRole(IdRole) ON UPDATE
CASCADE
);
125
3. MsJenisPembayaran
Domain IdJenisPembayaran: integer
Domain NamaJenisPembayaran: variable length character string, length 20
MsJenisPembayaran(
IdJenisPembayaran IdJenisPembayaran NOT NULL,
NamaJenisPembayaran NamaJenisPembayaran NOT NULL,
PRIMARY KEY (IdJenisPembayaran)
);
4. MsBank
Domain IdBank: integer
Domain NamaBank: variable length character string, length 50
MsBank(
IdBank IdBank NOT NULL,
NamaBank NamaBank NOT NULL,
PRIMARY KEY (IdBank)
);
126
5. MsJenisBarang
Domain KdJenisBarang: variable length character string, length 8
Domain NamaJenisBarang: variable length character string, length 30
MsJenisBarang(
KdJenisBarang KdJenisBarang NOT NULL
NamaJenisBarang NamaJenisBarang NOT NULL,
PRIMARY KEY (KdJenisBarang)
);
6. MsSatuan
Domain IdSatuan: integer
Domain NamaSatuan: variable length character string, length 10
Domain KdSatuan: variable length character string, length 5
MsSatuan(
IdSatuan IdSatuan NOT NULL,
NamaSatuan NamaSatuan NOT NULL,
KdSatuan KdSatuan NOT NULL,
PRIMARY KEY (IdSatuan)
127
);
7. MsBarang
Domain IdBarang: integer
Domain NamaBarang: variable length character string, length 50
Domain KdJenisBarang: variable length character string, length 8
Domain IdSatuan: integer
Domain Berat: decimal
MsBarang(
IdBarang IdBarang NOT NULL,
NamaBarang NamaBarang NOT NULL,
KdJenisBarang KdJenisBarang NOT NULL,
IdSatuan IdSatuan NOT NULL,
Berat Berat NOT NULL,
PRIMARY KEY (IdBarang),
FOREIGN KEY (KdJenisBarang) REFERENCES
MsJenisBarang(KdJenisBarang) ON UPDATE CASCADE,
FOREIGN KEY (IdSatuan) REFERENCES MsSatuan(IdSatuan) ON UPDATE
CASCADE,
128
UNIQUE (NamaBarang, KdJenisBarang)
);
8. MsGudang
Domain IdGudang: integer
Domain NamaGudang: variable length character string, length 50
Domain AlamatGudang: variable length character string, length 100
MsGudang(
IdGudang IdGudang NOT NULL,
NamaGudang NamaGudang NOT NULL,
AlamatGudang AlamatGudang,
PRIMARY KEY (IdGudang)
);
9. TeleponGudang
Domain IdGudang: integer
Domain NoTeleponGudang: variable length character string, length 15
TeleponGudang(
IdGudang IdGudang NOT NULL,
129
NoTeleponGudang NoTeleponGudang NOT NULL,
PRIMARY KEY (NoTeleponGudang, IdGudang),
FOREIGN KEY (IdGudang) REFERENCES MsGudang(IdGudang) ON
UPDATE CASCADE
);
10. FaxGudang
Domain IdGudang: integer
Domain NoFaxGudang: variable length character string, length 15
FaxGudang(
IdGudang IdGudang NOT NULL,
NoFaxGudang NoFaxGudang NOT NULL,
PRIMARY KEY(NoFaxGudang, IdGudang),
FOREIGN KEY (IdGudang) REFERENCES MsGudang(IdGudang) ON
UPDATE CASCADE
);
11. StockGudang
Domain IdGudang: integer
Domain IdBarang: integer
130
Domain Jumlah: integer
StockGudang(
IdGudang IdGudang NOT NULL,
IdBarang IdBarang NOT NULL,
Jumlah Jumlah NOT NULL,
PRIMARY KEY (IdGudang, IdBarang),
FOREIGN KEY (IdGudang) REFERENCES MsGudang(IdGudang) ON
UPDATE CASCADE,
FOREIGN KEY (IdBarang) REFERENCES MsBarang(IdBarang) ON
UPDATE CASCADE
);
12. MsSupplier
Domain IdSupplier: integer
Domain NamaSupplier: variable length character string, length 50
Domain AlamatSupplier: variable length character string, length 100
Domain CPSupplier: variable length character string, length 50
MsSupplier(
IdSupplier IdSupplier NOT NULL,
131
NamaSupplier NamaSupplier NOT NULL,
AlamatSupplier AlamatSupplier,
CPSupplier CPSupplier,
PRIMARY KEY (IdSupplier)
);
13. TeleponSupplier
Domain IdSupplier: integer
Domain NoTeleponSupplier: variable length character string, length 15
TeleponSupplier(
IdSupplier IdSupplier NOT NULL,
NoTeleponSupplier NoTeleponSupplier NOT NULL,
PRIMARY KEY (NoTeleponSupplier, IdSupplier),
FOREIGN KEY (IdSupplier) REFERENCES MsSupplier(IdSupplier) ON
UPDATE CASCADE
);
132
14. FaxSupplier
Domain IdSupplier: integer
Domain NoFaxSupplier: variable length character string, length 15
FaxSupplier(
IdSupplier IdSupplier NOT NULL,
NoFaxSupplier NoFaxSupplier NOT NULL,
PRIMARY KEY (NoFaxSupplier, IdSupplier),
FOREIGN KEY (IdSupplier) REFERENCES MsSupplier(IdSupplier) ON
UPDATE CASCADE
);
15. PO
Domain NoPO: integer
Domain TanggalPO: tanggal
Domain IdSupplier: integer
Domain Batal: single character, must be ‘Y’
Domain TanggalLunas: tanggal
Domain IdJenisPembayaran: integer
Domain IdBank: integer
133
Domain NoGiro: variable length character string, length 15
Domain TanggalCair: tanggal
Domain CreatedBy: integer
Domain CreatedTime: integer
Domain UpdatedBy: integer
Domain UpdatedTime: integer
PO(
NoPO NoPO NOT NULL,
TanggalPO TanggalPO NOT NULL,
IdSupplier IdSupplier NOT NULL,
Batal Batal,
TanggalLunas TanggalLunas,
IdJenisPembayaran IdJenisPembayaran,
IdBank IdBank,
NoGiro NoGiro,
TanggalCair TanggalCair,
CreatedBy CreatedBy,
134
CreatedTime CreatedTime,
UpdatedBy UpdatedBy,
UpdatedTime UpdatedTime,
PRIMARY KEY (NoPO),
FOREIGN KEY (IdSupplier) REFERENCES MsSupplier(IdSupplier) ON
UPDATE CASCADE,
FOREIGN KEY (CreatedBy) REFERENCES MsUser(IdUser) ON UPDATE
CASCADE,
FOREIGN KEY (UpdatedBy) REFERENCES MsUser(IdUser),
FOREIGN KEY (IdJenisPembayaran) REFERENCES
MsJenisPembayaran(IdJenisPembayaran) ON UPDATE CASCADE,
FOREIGN KEY (IdBank) REFERENCES MsBank(IdBank) ON UPDATE
CASCADE
);
16. PODetail
Domain NoPO: integer
Domain IdBarang: integer
Domain Jumlah: integer
135
Domain Harga: decimal
PODetail(
NoPO NoPO NOT NULL,
IdBarang IdBarang NOT NULL,
Jumlah Jumlah NOT NULL,
Harga Harga NOT NULL,
PRIMARY KEY (NoPO, IdBarang),
FOREIGN KEY (NoPO) REFERENCES PO(NoPO) ON UPDATE
CASCADE,
FOREIGN KEY (IdBarang) REFERENCES MsBarang(IdBarang) ON
UPDATE CASCADE
);
17. MsCustomer
Domain IdCustomer: integer
Domain NamaCustomer: variable length character string, length 50
Domain ShortNamaCustomer: variable length character string, length 10
Domain AlamatCustomer: variable length character string, length
100
136
Domain CPCustomer: variable length character string, length 50
MsCustomer(
IdCustomer IdCustomer NOT NULL,
NamaCustomer NamaCustomer NOT NULL,
ShortNamaCustomer ShortNamaCustomer NOT NULL,
AlamatCustomer AlamatCustomer,
CPCustomer CPCustomer,
PRIMARY KEY(IdCustomer)
);
18. TeleponCustomer
Domain IdCustomer: integer
Domain NoTeleponCustomer: variable length character string, length 15
TeleponCustomer(
IdCustomer IdCustomer NOT NULL,
NoTeleponCustomer NoTeleponCustomer NOT NULL,
PRIMARY KEY (NoTeleponCustomer, IdCustomer),
FOREIGN KEY (IdCustomer) REFERENCES MsCustomer(IdCustomer) ON
UPDATE CASCADE
137
);
19. FaxCustomer
Domain IdCustomer: integer
Domain NoFaxCustomer: variable length character string, length 15
FaxCustomer(
IdCustomer IdCustomer NOT NULL,
NoFaxCustomer NoFaxCustomer NOT NULL,
PRIMARY KEY (NoFaxCustomer, IdCustomer),
FOREIGN KEY (IdCustomer) REFERENCES MsCustomer(IdCustomer) ON
UPDATE CASCADE
);
20. SJ
Domain NoSJ: integer
Domain TanggalSJ: tanggal
Domain IdCustomer: integer
Domain Batal: single character, must be ‘Y’
Domain AlamatTujuan: variable length character string, length 100
138
Domain NoFaktur: integer
Domain CreatedBy: integer
Domain CreatedTime: integer
Domain UpdatedBy: integer
Domain UpdatedTime: integer
SJ(
NoSJ NoSJ NOT NULL,
TanggalSJ TanggalSJ NOT NULL,
IdCustomer IdCustomer NOT NULL,
Batal Batal,
AlamatTujuan AlamatTujuan,
NoFaktur NoFaktur,
CreatedBy CreatedBy,
CreatedTime CreatedTime,
UpdatedBy UpdatedBy,
UpdatedTime UpdatedTime,
PRIMARY KEY(NoSJ),
139
FOREIGN KEY(IdCustomer) REFERENCES MsCustomer(IdCustomer) ON
UPDATE CASCADE,
FOREIGN KEY(NoFaktur) REFERENCES Faktur(NoFaktur),
FOREIGN KEY (CreatedBy) REFERENCES MsUser(IdUser) ON UPDATE
CASCADE,
FOREIGN KEY (UpdatedBy) REFERENCES MsUser(IdUser)
);
21. SJDetail
Domain NoSJ: integer
Domain IdBarang: integer
Domain IdBarangPrint: integer
Domain Jumlah: integer
SJDetail(
NoSJ NoSJ NOT NULL,
IdBarang IdBarang NOT NULL,
IdBarangPrint IdBarangPrint,
Jumlah Jumlah NOT NULL,
PRIMARY KEY (NoSJ, IdBarang),
140
FOREIGN KEY(IdBarang) REFERENCES MsBarang(IdBarang) ON
UPDATE CASCADE,
FOREIGN KEY(IdBarangPrint) REFERENCES MsBarang(IdBarang)
);
22. Faktur
Domain NoFaktur: integer
Domain TanggalFaktur: tanggal
Domain OngkosKirim: decimal
Domain Catatan: variable length character string, length 100
Domain IdCustomer: integer
Domain TanggalLunas: tanggal
Domain TanggalJatuhTempo: tanggal
Domain IdJenisPembayaran: integer
Domain IdBank: integer
Domain NoGiro: variable length character string, length 15
Domain TanggalCair: tanggal
Domain CreatedBy: integer
Domain CreatedTime: integer
141
Domain UpdatedBy: integer
Domain UpdatedTime: integer
Faktur(
NoFaktur NoFaktur NOT NULL,
TanggalFaktur TanggalFaktur NOT NULL,
OngkosKirim OngkosKirim,
Catatan Catatan,
IdCustomer IdCustomer NOT NULL,
TanggalLunas TanggalLunas,
TanggalJatuhTempo TanggalJatuhTempo,
IdJenisPembayaran IdJenisPembayaran,
IdBank IdBank,
NoGiro NoGiro,
TanggalCair TanggalCair,
CreatedBy CreatedBy,
CreatedTime CreatedTime,
UpdatedBy UpdatedBy,
142
UpdatedTime UpdatedTime,
PRIMARY KEY(NoFaktur),
FOREIGN KEY(IdCustomer) REFERENCES MsCustomer(IdCustomer) ON
UPDATE CASCADE,
FOREIGN KEY (CreatedBy) REFERENCES MsUser(IdUser) ON UPDATE
CASCADE,
FOREIGN KEY (UpdatedBy) REFERENCES MsUser(IdUser),
FOREIGN KEY (IdJenisPembayaran) REFERENCES
MsJenisPembayaran(IdJenisPembayaran) ON UPDATE CASCADE,
FOREIGN KEY (IdBank) REFERENCES MsBank(IdBank) ON UPDATE
CASCADE
);
23. FakturDetail
Domain NoFaktur: integer
Domain IdBarang: integer
Domain IdBarangPrint: integer
Domain Jumlah: integer
Domain Harga: decimal
143
FakturDetail(
NoFaktur NoFaktur NOT NULL,
IdBarang IdBarang NOT NULL,
IdBarangPrint IdBarangPrint,
Jumlah Jumlah NOT NULL,
Harga Harga NOT NULL,
PRIMARY KEY(NoFaktur, IdBarang),
FOREIGN KEY(IdBarang) REFERENCES MsBarang(IdBarang) ON
UPDATE CASCADE,
FOREIGN KEY(IdBarangPrint) REFERENCES MsBarang(IdBarang)
)
3.3.3.2 Analisis Transaksi
Tujuan dari langkah ini adalah untuk mengetahui fungsionalitas dari
transaksi yang akan digunakan dalam sistem basis data untuk menganalisa
transaksi yang penting. Pada analisa transaksi ini dapat diketahui tabel apa saja
yang akan terkena insert, update, delete, atau read. Berikut adalah transaksi-
transaksinya :
144
a. Memasukkan data user
b. Memasukkan data jenis barang
c. Memasukkan data barang
d. Memasukkan data customer
e. Memasukkan data supplier
f. Memasukkan data bank
g. Mengubah / menghapus data barang
h. Mengubah / menghapus data customer
i. Mengubah / menghapus data supplier
j. Membuat purchase order (PO)
k. Membuat surat jalan (SJ)
l. Membuat faktur
m. Membatalkan purchase order (PO)
n. Membatalkan surat jalan (SJ)
o. Memasukkan data pembayaran purchase order (PO)
p. Memasukkan data pembayaran faktur
145
Tabel 3.7 Analisis transaksi (i)
Transaction /
Relation
(a) (b) (c) (d)
I R U D I R U D I R U D I R U D
MsSatuan
MsJenisBarang X X
MsBarang X
MsGudang
TeleponGudang
FaxGudang
StockGudang X
MsSupplier
TeleponSupplier
FaxSupplier
MsCustomer X
TeleponCustomer X
FaxCustomer X
MsBank
MsJenisPembayaran
User X
MsRole X
PO
PODetail
SJ
SJDetail
Faktur
FakturDetail
146
Tabel 3.8 Analisis transaksi (ii)
Transaction /
Relation
(e) (f) (g) (h)
I R U D I R U D I R U D I R U D
MsSatuan
MsJenisBarang X
MsBarang X X X
MsGudang
TeleponGudang
FaxGudang
StockGudang
MsSupplier X
TeleponSupplier X
FaxSupplier X
MsCustomer X X X
TeleponCustomer X X X
FaxCustomer X X X
MsBank X
MsJenisPembayaran
User
MsRole
PO
PODetail
SJ
SJDetail
Faktur
FakturDetail
147
Tabel 3.9 Analisis transaksi (iii)
Transaction /
Relation
(i) (j) (k) (l)
I R U D I R U D I R U D I R U D
MsSatuan
MsJenisBarang X X X
MsBarang X X X
MsGudang
TeleponGudang
FaxGudang
StockGudang X X
MsSupplier X X X X
TeleponSupplier X X X
FaxSupplier X X X
MsCustomer X X
TeleponCustomer
FaxCustomer
MsBank
MsJenisPembayaran
User
MsRole
PO X
PODetail X
SJ X X
SJDetail X X
Faktur X
FakturDetail X
148
Tabel 3.10 Analisis transaksi (iv)
Transaction /
Relation
(m) (n) (o) (p)
I R U D I R U D I R U D I R U D
MsSatuan
MsJenisBarang X X
MsBarang X X
MsGudang
TeleponGudang
FaxGudang
StockGudang X X
MsSupplier X X
TeleponSupplier
FaxSupplier
MsCustomer X X
TeleponCustomer
FaxCustomer
MsBank X X
MsJenisPembayaran X X
User
MsRole
PO X X X X
PODetail X
SJ X X
SJDetail
Faktur X X
FakturDetail X
149
3.3.3.3 Memilih file organizations
Tujuan dari langkah ini adalah untuk menentukan organisasi file yang
efisien untuk tiap-tiap relasi dasar jika diperbolehkan oleh DBMS yang akan
digunakan. DBMS yang digunakan adalah SQL Server 2005, maka organisasi
file yang akan digunakan adalah organisasi file B+-Tree dan Heap.
3.3.3.4 Memilih index
Tujuan dari langkah ini adalah untuk menentukan dan memilih
pemakaian index pada sistem basis data.
CREATE UNIQUE INDEX IX_Barang ON MsBarang(IdBarang)
CREATE UNIQUE INDEX IX_JenisBarang ON
MsJenisBarang(KdJenisBarang)
CREATE UNIQUE INDEX IX_Customer ON MsCustomer(IdCustomer)
CREATE UNIQUE INDEX IX_Supplier ON MsSupplier (IdSupplier)
3.3.3.5 Memperkirakan disk space yang diperlukan
Tujuan dari langkah ini adalah untuk memperkirakan besar dari
kapasitas penyimpanan yang diperlukan oleh basis data.
150
Tabel 3.11 Perkiraan kebutuhan disk space pada tabel MsRole
Table Field Data Type Size (byte) MsRole IdRole Integer 4
NamaRole Varchar(50) 50 Total size (byte) : 54
Tabel 3.12 Perkiraan kebutuhan disk space pada tabel MsUser
Table Field Data Type Size (byte) MsUser IdUser Integer 4
Username Varchar(15) 15 Password Varchar(15) 15 NamaUser Varchar(50) 50 IdRole Integer 4
Total size (byte) : 88
Tabel 3.13 Perkiraan kebutuhan disk space pada tabel MsJenisPembayaran
Table Field Data Type Size (byte) MsJenisPembayaran IdJenisPembayaran Integer 4
NamaJenisPembayaran Varchar(50) 50 Total size (byte) : 54
Tabel 3.14 Perkiraan kebutuhan disk space pada tabel MsBank
Table Field Data Type Size (byte) MsBank IdBank Integer 4
NamaBank Varchar(50) 50 Total size (byte) : 54
151
Tabel 3.15 Perkiraan kebutuhan disk space pada tabel MsJenisBarang
Table Field Data Type Size (byte) MsJenisBarang KdJenisBarang Varchar(8) 8
NamaJenisBarang Varchar(30) 30 Total size (byte) : 38
Tabel 3.16 Perkiraan kebutuhan disk space pada tabel MsSatuan
Table Field Data Type Size (byte) MsSatuan IdSatuan Integer 4
NamaSatuan Varchar(10) 10 KdSatuan Varchar(5) 5
Total size (byte) : 19
Tabel 3.17 Perkiraan kebutuhan disk space pada tabel MsBarang
Table Field Data Type Size (byte) MsBarang IdBarang Integer 4
NamaBarang Varchar(50) 50 KdJenisBarang Varchar(8) 8 IdSatuan Integer 4 Berat Numeric(9,2) 19
Total size (byte) : 85
Tabel 3.18 Perkiraan kebutuhan disk space pada tabel MsGudang
Table Field Data Type Size (byte) MsGudang IdGudang Integer 4
NamaGudang Varchar(20) 20 AlamatGudang Varchar(100) 100
Total size (byte) : 124
152
Tabel 3.19 Perkiraan kebutuhan disk space pada tabel TeleponGudang
Table Field Data Type Size (byte) TeleponGudang IdGudang Integer 4
NoTeleponGudang Varchar(15) 15 Total size (byte) : 19
Tabel 3.20 Perkiraan kebutuhan disk space pada tabel FaxGudang
Table Field Data Type Size (byte) FaxGudang IdGudang Integer 4
NoFaxGudang Varchar(15) 15 Total size (byte) : 19
Tabel 3.21 Perkiraan kebutuhan disk space pada tabel StockGudang
Table Field Data Type Size (byte) StockGudang IdGudang Integer 4
IdBarang Integer 4 Jumlah Integer 4
Total size (byte) : 12
Tabel 3.22 Perkiraan kebutuhan disk space pada tabel MsSupplier
Table Field Data Type Size (byte) MsSupplier IdSupplier Integer 4
NamaSupplier Varchar(50) 50 AlamatSupplier Varchar(100) 100 CPSupplier Varchar(30) 30
Total size (byte) : 184
153
Tabel 3.23 Perkiraan kebutuhan disk space pada tabel TeleponSupplier
Table Field Data Type Size (byte) TeleponSupplier IdSupplier Integer 4
NoTeleponSupplier Varchar(15) 15 Total size (byte) : 19
Tabel 3.24 Perkiraan kebutuhan disk space pada tabel FaxSupplier
Table Field Data Type Size (byte) FaxSupplier IdSupplier Integer 4
NoFaxSupplier Varchar(15) 15 Total size (byte) : 19
Tabel 3.25 Perkiraan kebutuhan disk space pada tabel PO
Table Field Data Type Size (byte) PO NoPO Integer 4
TanggalPO Varchar(50) 50 IdSupplier Integer 4 Batal Char 1 TanggalLunas Datetime 8 IdJenisPembayaran Integer 4 IdBank Integer 4 NoGiro Varchar(15) 15 TanggalCair Datetime 8 CreatedBy Integer 4 CreatedTime Datetime 8 UpdatedBy Integer 4 UpdatedTime Datetime 8
Total size (byte) : 122
154
Tabel 3.26 Perkiraan kebutuhan disk space pada tabel PODetail
Table Field Data Type Size (byte) PODetail NoPO Integer 4
IdBarang Varchar(50) 50 Jumlah Integer 4 Harga Money 8
Total size (byte) : 66
Tabel 3.27 Perkiraan kebutuhan disk space pada tabel MsCustomer
Table Field Data Type Size (byte) MsCustomer IdCustomer Integer 4
NamaCustomer Varchar(50) 50 ShortNamaCustomer Varchar(10) 10 AlamatCustomer Varchar(100) 100 CPCustomer Varchar(30) 30
Total size (byte) : 194
Tabel 3.28 Perkiraan kebutuhan disk space pada tabel TeleponCustomer
Table Field Data Type Size (byte) TeleponCustomer IdCustomer Integer 4
NoTeleponCustomer Varchar(15) 15 Total size (byte) : 19
Tabel 3.29 Perkiraan kebutuhan disk space pada tabel FaxCustomer
Table Field Data Type Size (byte) FaxCustomer IdCustomer Integer 4
NoFaxCustomer Varchar(15) 15 Total size (byte) : 19
155
Tabel 3.30 Perkiraan kebutuhan disk space pada tabel SJ
Table Field Data Type Size (byte) SJ NoSJ Integer 4
TanggalSJ Datetime 8 IdCustomer Integer 4 Batal Char 1 AlamatTujuan Varchar(100) 100 NoFaktur Integer 4 CreatedBy Integer 4 CreatedTime Datetime 8 UpdatedBy Integer 4 UpdatedTime Datetime 8
Total size (byte) : 145
Tabel 3.31 Perkiraan kebutuhan disk space pada tabel SJDetail
Table Field Data Type Size (byte) SJDetail NoSJ Integer 4
IdBarang Integer 4 IdBarangPrint Integer 4 Jumlah Integer 4
Total size (byte) : 16
156
Tabel 3.32 Perkiraan kebutuhan disk space pada tabel Faktur
Table Field Data Type Size (byte) Faktur NoFaktur Integer 4
TanggalFaktur Datetime 8 OngkosKirim Money 8 Catatan Varchar(200) 200 IdCustomer Integer 4 TanggalLunas Datetime 8 TanggalJatuhTempo Datetime 8 IdJenisPembayaran Integer 4 IdBank Integer 4 NoGiro Varchar(15) 15 TanggalCair Datetime 8 CreatedBy Integer 4 CreatedTime Datetime 8 UpdatedBy Integer 4 UpdatedTime Datetime 8
Total size (byte) : 295
Tabel 3.33 Perkiraan kebutuhan disk space pada tabel FakturDetail
Table Field Data Type Size (byte) FakturDetail NoFaktur Integer 4
IdBarang Integer 4 IdBarangPrint Integer 4 Jumlah Integer 4 Harga Money 8
Total size (byte) : 24
157
Tabel 3.34 Perkiraan kebutuhan disk space keseluruhan tabel
Table Size per row (byte)
Initial Row Row Growth per Year
Size (byte)
MsRole 54 8 - 432 MsUser 88 17 12 2552 MsJenisPembayaran 54 3 - 162 MsBank 54 10 12 1188 MsJenisBarang 38 21 2 874 MsSatuan 19 2 - 38 MsBarang 85 412 12 36040 MsGudang 124 1 - 124 TeleponGudang 19 3 - 57 FaxGudang 19 2 - 38 MsSupplier 184 25 24 9016 TeleponSupplier 19 75 72 2793 FaxSupplier 19 50 48 1862 PO 122 - 5200 634400 PODetail 66 - 15600 1029600 MsCustomer 194 20 24 8536 TeleponCustomer 19 60 72 1428 FaxCustomer 19 40 48 1672 SJ 145 - 5200 754000 SJDetail 16 - 15600 249600 Faktur 295 - 5200 1534000 FakturDetail 24 - 15600 374400
Total size (byte) 4,642,812 Total space yang dibutuhkan dalam satu tahun adalah 4,642,812 bytes
3.3.3.6 Merancang mekanisme keamanan
Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan
untuk basis data yang ditentukan user selama tahap requirements dan
collections pada database systems development lifecycle.
158
Tabel 3.35 Hak akses yang dimiliki oleh admin
Admin Table/Permissions Select Insert Update Delete MsRole ✓ ✓ ✓ ✓
MsUser ✓ ✓ ✓ ✓
MsJenisPembayaran ✓ ✓ ✓ ✓
MsBank ✓ ✓ ✓ ✓
MsJenisBarang ✓ ✓ ✓ ✓
MsSatuan ✓ ✓ ✓ ✓
MsBarang ✓ ✓ ✓ ✓
MsGudang ✓ ✓ ✓ ✓
TeleponGudang ✓ ✓ ✓ ✓
FaxGudang ✓ ✓ ✓ ✓
MsSupplier ✓ ✓ ✓ ✓
TeleponSupplier ✓ ✓ ✓ ✓
FaxSupplier ✓ ✓ ✓ ✓
PO ✓ ✓ ✓ ✓
PODetail ✓ ✓ ✓ ✓
MsCustomer ✓ ✓ ✓ ✓
TeleponCustomer ✓ ✓ ✓ ✓
FaxCustomer ✓ ✓ ✓ ✓
SJ ✓ ✓ ✓ ✓
SJDetail ✓ ✓ ✓ ✓
Faktur ✓ ✓ ✓ ✓
FakturDetail ✓ ✓ ✓ ✓
159
Tabel 3.36 Hak akses yang dimiliki oleh General Manager
General Manager Table/Permissions Select Insert Update Delete MsRole ✓ MsUser ✓ MsJenisPembayaran ✓ MsBank ✓ MsJenisBarang ✓ MsSatuan ✓ MsBarang ✓ MsGudang ✓ TeleponGudang ✓ FaxGudang ✓ MsSupplier ✓ TeleponSupplier ✓ FaxSupplier ✓ PO ✓ PODetail ✓ MsCustomer ✓ TeleponCustomer ✓ FaxCustomer ✓ SJ ✓ SJDetail ✓ Faktur ✓ FakturDetail ✓
160
Tabel 3.37 Hak akses yang dimiliki oleh Finance
Finance Table/Permissions Select Insert Update Delete MsRole MsUser MsJenisPembayaran ✓ MsBank ✓ ✓ ✓ ✓
MsJenisBarang ✓ MsSatuan ✓ MsBarang ✓ MsGudang TeleponGudang FaxGudang MsSupplier ✓ TeleponSupplier ✓ FaxSupplier ✓ PO ✓ ✓ PODetail ✓ MsCustomer ✓ TeleponCustomer ✓ FaxCustomer ✓ SJ ✓ SJDetail ✓ Faktur ✓ ✓ FakturDetail ✓
161
Tabel 3.38 Hak akses yang dimiliki oleh Purchasing
Purchasing Table/Permissions Select Insert Update Delete MsRole MsUser MsJenisPembayaran MsBank MsJenisBarang ✓ ✓ ✓ MsSatuan ✓ ✓ ✓ MsBarang ✓ ✓ ✓ MsGudang TeleponGudang FaxGudang MsSupplier ✓ ✓ ✓ ✓
TeleponSupplier ✓ ✓ ✓ ✓
FaxSupplier ✓ ✓ ✓ ✓
PO ✓ ✓ ✓ PODetail ✓ ✓ ✓ MsCustomer TeleponCustomer FaxCustomer SJ SJDetail Faktur FakturDetail
162
Tabel 3.35 Hak akses yang dimiliki oleh Marketing
Marketing Table/Permissions Select Insert Update Delete MsRole MsUser MsJenisPembayaran MsBank MsJenisBarang ✓ ✓ MsSatuan ✓ ✓ MsBarang ✓ ✓ MsGudang TeleponGudang FaxGudang MsSupplier TeleponSupplier FaxSupplier PO PODetail MsCustomer ✓ ✓ ✓ ✓
TeleponCustomer ✓ ✓ ✓ ✓
FaxCustomer ✓ ✓ ✓ ✓
SJ ✓ ✓ ✓ SJDetail ✓ ✓ ✓ Faktur ✓ ✓ ✓ FakturDetail ✓ ✓ ✓
3.4 Perancangan Aplikasi
Pada tahap ini, dilakukan beberapa perancangan yang akan digunakan
pada aplikasi. Perancangan-perancangan tersebut meliputi perancangan struktur
menu, perancangan layar input, dan perancangan layar output.
163
3.4.1 Struktur Menu
Gambar 3.12 Struktur menu
3.4.2 Statte Transitionn Diagram (
Gam
(STD)
Gambar 3.
mbar 3.14 S
13 STD logi
STD menu m
in
master
164
Gamba
Gamb
r 3.15 STD
bar 3.16 ST
menu purch
TD menu sur
hase order
at jalan
165
Recommended