bab 4 perancangan dan implementasi -...
TRANSCRIPT
63
BAB 4
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan Basisdata
4.1.1 Perancangan Basisdata Konseptual
4.1.1.1 Mengidentifikasi Tipe Entiti
Tabel 4.1 Tabel identifikasi entiti
No. Entity Name Description Aliases Occurrence
1 item Memuat informasi tentang data barang dan persediaan barang
stok_barang persediaan inventory
Item dibuat karena adanya permintaan dari customer dan satu item bisa dipesan banyak customer
2 customer Berisi data seseorang atau perusahaan yang pernah melakukan pemesanan barang
debitur pelanggan
customer dapat membeli satu atau lebih item, customer hanya dilayani oleh satu sales
3 pegawai Memuat data pegawai yang ada dalam perusahaan
karyawan
Pegawai digolongkan menjadi staff dan sales. Dimana staff ada terdiri dari supir, kenek dan penjaga gudang. Sales melayani banyak customer. Supir dan kenek mengatur masalah pengantaran barang
4 order_barang
Berisi informasi tentang transaksi pemesanan barang oleh customer
sales_order pemesanan
Customer bisa memesan banyak barang, dan setelah barang dipesan maka akan segera dikirim ke customer
5 faktur Memuat informasi barang yang dibeli oleh customer
invoice Setiap satu faktur dibuat berdasarkan satu surat jalan. Dari satu sales order bisa menghasilkan banyak faktur
6 surat_jalan Berisi informasi tentang pengiriman barang dari perusahaan ke customer
delivery_order Satu surat jalan akan menghasilkan satu faktur dan dari satu sales order dapat menghasilkan lebih dari satu surat jalan.
7 retur Memuat informasi barang yang diretur atau
pengembalian_barang
Retur yang dilakukan bisa berupa perbaikan atau diganti (barang). Barang
64
dikembalikan oleh customer
yang diretur bisa hanya sebagian saja atau seluruhnya
8 pembayaran Berisi informasi tentang pembayaran tagihan dari customer
Jumlah yang harus dibayarkan customer bisa dilihat dari data order
4.1.1.2 Mengidentifikasi Tipe Relasional
itempegawai
order_barangretur
pembayaran
customer
1..*
1..*0..* 0..*1..1
1..*
1..*
0..*
1..1
1..1
1..11..1
mengurangi
Mengembalikanbarang dari
membuat
melayani
melakukan
melakukan
surat_jalanfaktur
0..*
1..* menambah
1..*
1..*
berdasarkan pada
1..1 1..1berdasarkan
pada
1..1
0..*
membuat
1..1
1..*
berdasarkanpada
1..*
1..*
mengurangi
Gambar 4.1 ERD yang menunjukkan entiti dan relasional
65
Tabel 4.2 Tabel identifikasi relasional
Entity Name Multiplicity Relationship Entitiy Name Multiplicity
item 1..*
1..*
1..*
dikurangi dari
ditambah dari
dikurangi dari
order_barang
retur
surat_jalan
1..*
0..*
1..*
customer 1..1
1..1
0..*
melakukan
melakukam
dilayani
order_barang
pembayaran
pegawai
1..*
1..*
1..1
pegawai 1..1
1..1
1..1
membuat
melayani
membuat
order_barang
customer
surat_jalan
0..*
0..*
0..*
order_barang 0..*
1..*
1..1
1..1
1..*
dibuat
mengurangi
dikembalikan dari
menentukan
dilakukan
pegawai
item
retur
surat_jalan
customer
1..1
1..*
0..*
1..*
1..1
faktur 1..1
1..*
berdasarkan pada
menentukan
surat_jalan
pembayaran
1..1
1..*
surat_jalan 1..1
0..*
1..*
1..*
menentukan
dibuat
menentukan
dikurangi dari
faktur
pegawai
order_barang
item
1..1
1..1
1..1
1..*
retur 0..*
0..*
mengembalikan barang dari
menambah
order_barang
item
1..1
1..*
pembayaran 1..*
1..*
berdasarkan pada
dilakukan
faktur
customer
1..*
1..1
4.1.1.3 Identifikasi dan Asosiasi Atribut Suatu Entiti
Tabel 4.3 Tabel identifikasi dan asosiasi atribut entiti
Entity Name Attributes Description Data type
& length
Nulls Multi-
valued
item item _id Atribut unik dari item int No No
66
gauge
kode
nama_brg
harga_kode
bulat
belah
gramase1
gramase2
pot_pinggir
cost_print
special_soft
cm
warna
atas_nama
tgl_warna
stok
krg
m
hrg_warna
add
putih
gross
disc
Menunjukkan ukuran jarum
dari mesin yang dipakai
Kode barang yang terdiri
dari 7 sumber yaitu dari
benang, knitting, dyeing,
finishing, kimia, umum,
bunga
Nama dari barang
Harga tiap-tiap kode barang
Ukuran lebar kain
Ukuan kain yang dipotong
Range awal untuk berat
Range akhir untuk berat
Berapa persen yang mau
dipotong dari pinggir
Biaya-biaya tambahan
Biaya-biaya tambahan
Color matching, kode dari
warna
Nama warna
Orang yang memasukkan
warna
Tanggal pembuatan warna
Banyaknya barang yang
ada dalam stok
Ukuran kain
Ukuran kain
Harga warna
Biaya-biaya tambahan
Harga dari tiap jenis barang
sebelum di dye
Harga barang sebenarnya
Selisih antara gross dengan
hrg_satuan
int
27 char
text
currency
float
float
float
float
float
currency
currency
10 char
30 char
20 char
date
float
float
float
currency
currency
currency
currency
currency
No
No
No
No
Yes
Yes
No
No
Yes
Yes
Yes
No
No
No
No
Yes
Yes
Yes
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
67
hrg_satuan Harga yang ditetapkan per
kg
currency No No
customer customer_id
nama
contact
alamat
telepon
fax
kota
NPWP
Atribut unik dari customer
Nama customer /
perusahaan
Nama orang yang bisa
dihubungi
Alamat customer
Nomor telepon customer
Nomor faksimili customer
Kota tempat customer
berada
Nomor Penduduk Wajib
Pajak
12 char
30 char
20 char
text
15 char
20 char
20 char
20 char
No
No
No
No
No
No
No
Yes
No
No
No
No
Yes
Yes
No
No
pegawai peg_id
nama_peg
alamat
telepon
jns_klmn
jabatan
Atribut unik dari pegawai
Nama pegawai
Alamat dari pegawai
Nomor telepon pegawai
Jenis kelamin pegawai
Jabatan pegawai
12 char
20 char
text
15 char
1 char
20 char
No
No
No
No
No
No
No
No
No
Yes
No
No
order_barang order_id
tgl_order
app_date
del_date
jenis
kode
Atribut unik dari
order_barang
Tanggal saat surat order
dibuat
Tanggal saat surat order
diterima
Tanggal saat barang akan
dikirim
Jenis dari order
Kode barang yang terdiri
dari 7 sumber yaitu dari
benang, knitting, dyeing,
finishing, kimia, umum,
bunga
12 char
date
date
date
15 char
27 char
No
No
No
No
No
No
No
No
No
No
No
No
68
gauge
gramase1
gramase2
bulat
belah
krg
m
cm
warna
kg
putih
hrg_satuan
lama
persen
dp
esfs
berat
unit
party
status
Menunjukkan ukuran jarum
dari mesin yang dipakai
Range awal untuk berat
Range akhir untuk berat
Ukuran lebar kain
Ukuan kain yang dipotong
Ukuran kain
Ukuran kain
Kode untuk warna
Nama warna
Banyaknya barang yang
dipesan
Harga dari tiap jenis barang
sebelum di dye
Harga yang ditetapkan per
kg
Tenggang waktu
pembayaran
Denda yang kenakan jika
melewati lama
Besar uang muka yang
dibayar
Jenis pewarnaan
Jenis berat barang
Jenis ukuran yang dipakai
Dibuat untuk tujuan apa
Status dari pengiriman
int
float
float
float
float
float
float
12 char
30 char
float
currency
currency
int
float
currency
2 char (es
or fs)
5 char
(bruto 0r
netto)
5 char (cm
or inch)
10 char
(lokal,
ekspor or
lain-lain)
10 char
No
No
No
Yes
Yes
Yes
Yes
No
No
No
No
No
Yes
Yes
Yes
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
69
keterangan
Keterangan tambahan SO
(OK, sales,
di pos,
pending or
ditinggal)
text
Yes
No
surat_jalan krm_brg_id
kode
so_lama
tgl_sjalan
tujuan
no_polisi
nama_mobil
kg_kirim
roll
Atribut unik dari
pengiriman_barang
Kode barang yang terdiri
dari 7 sumber yaitu dari
benang, knitting, dyeing,
finishing, kimia, umum,
bunga
Atribut yang timbul karena
barang retur
Tanggal saat surat jalan
dibuat
Nama tujuan pengiriman
Atribut unik dari mobil
Nama jenis mobil yang
dipakai
Berat barang yang dikirim
Banyak roll barang
12 char
27 char
12 char
date
20 char
12 char
15 char
float
int
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
faktur faktur_id
tgl_entry
tgl_faktur
tgl_serah
tgl_ctk_fak
lokasi
dpp
ppn
jml_penj
Atribut unik dari retur
Tanggal faktur dimasukkan
Tanggal faktur dibuat
Tanggal faktur diserahkan
ke customer
Tanggal saat faktur dicetak
Nama lokasi pembuatan
faktur
Penjualan setelah pajak
Besarnya pajak
pertambahan nilai
Jumlah penjualan sebelum
12 char
date
date
date
date
10 char
currency
float
currency
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
70
pajak
retur retur_id
tgl_cet_rtr
kg_retur
roll_retur
tgl_retur
tgl_entry
jenis
keterangan
ppn
jml_penj
grand_total
Atribut unik dari retur
Tanggal retur dicetak
Berat barang yang diretur
Banyak roll barang retur
Tanggal retur dibuat
Tanggal retur dimasukkan
Jenis dari order
Keterangan tambahan untuk
retur
Besarnya pajak
pertambahan nilai
Merupakan hasil akumulasi
dari total
Total akhir yang diperoleh
dari jml_penj ditambah ppn
12 char
date
float
int
date
date
15 char
text
float
currency
currency
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
pembayaran tt_id
tgl_tt
tgl_fak_rtr
dpp
ppn
jenis_bayar
bank
no_gi_card
jatuh_tempo
tot_byr
ket_bayar
Atribut unik untuk tanda
terima
Tanggal dibuatnya tanda
terima
Tanggal faktur dibuat
Jumlah DPP
Besarnya pajak
pertambahan nilai
Cara pembayaran tagihan
Nama bank
Nomor giro atau kartu
Tanggal jatuh_tempo
Jumlah uang yang
diberikan untuk membayar
tagihan
Keterangan tentang
12 char
date
date
currency
float
5 char(atm,
nota, giro
or cash)
30 char
20 char
date
currency
text
No
No
No
No
No
No
Yes
Yes
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
71
denda
pembayaran
Denda yang harus
dibayarkan jika lewat dari
tanggal jatuh tempo
currency
Yes
No
4.1.1.4 Identifikasi Kandidat dan Primary Key setiap Entiti
Tabel 4.4 Tabel identifikasi kandidat dan primary key entiti
Entity Name Candidate Key Primary key
item cm
item _id
kode
item_id
customer customer_id customer_id
pegawai pegawai_id pegawai_id
order_barang order_id order_id
faktur faktur_id faktur_id
surat_jalan krm_brg_id krm_brg_id
retur retur_id retur_id
pembayaran tt_id tt_id
72
4.1.1.5 Validasi Transaksi User
itempegawai
order_barangretur
pembayaran
customer
1..*
1..*0..* 0..*1..1
1..*
1..*
0..*
1..1
1..1
1..11..*
mengurangi
Mengembalikanbarang dari
membuat
melayani
melakukan
melakukan
surat_jalanfaktur
0..*
1..* menambah
1..*
1..*
berdasarkan pada
1..1 1..1berdasarkan
pada
1..1
0..*
membuat
1..1
1..*
berdasarkanpada
1..*
1..*
mengurangi
a
b
c
d
e, i f
g
h
j
k
l
Gambar 4.2 pathway yang digunakan untuk memudahkan validasi transaksi
Berikut adalah transaksi yang dilakukan berdasarkan gambar 4.2
a. pegawai memasukkan data pegawai baru
b. pegawai mencatat data baru dari customer
c. menunjukkan data barang yang dipesan oleh customer
d. menunjukkan data tagihan yang harus dilunasi oleh customer
e. mencatat besar tagihan yang harus dibayar
f. mendata barang yang dikembalikan
73
g. menampilkan stok dari barang yang masih ada
h. menunjukkan data barang yang dikirim dari data barang yang telah
dipesan
i. menunjukkan besar biaya yang dihasilkan setiap kali pengiriman melalui
faktur
j. memasukkan data pesanan pelanggan oleh pegawai
k. membuat data pesanan yang harus dikirim yang terdapat dalam surat
jalan oleh pegawai
l. membuat data barang yang harus dibayar setiap kali pengiriman
dilakukan oleh pegawai
4.1.2 Perancangan Basisdata Logikal
4.1.2.1 Penghilangan feature yang tidak kompatible
Ada beberapa langkah yang dilakukan untuk menghilangkan feature
yang tidak kompatible dari model data konseptual.
Ganbar 4.8 (a) eatiti pzgawai dengan atribut rndtivalue telepon dinn fax; (b)
dekoli~posisi telepon n~enjadi entiti baru bemama telepon-cus clan dekcmposisi
fax meujadi entiti barn benlma fm
77
4.1.2.2 Pembuatan Model Basisdata Lsgikal Lokd
Tujurrrm dari b h p ini addah meuyidentifikasi pr-inzary key &.fireigri
key &P-i d a s i temtama u..tuk mermgetafitai huhganparent dm child.
juga dikmjuTdcm bersama d q a n c m unt&
rnengkdhdasi atribut tunman tersebut. Berilnt adalah s
muz& mtuk reiasi ymg ada dalam dab model.
I. T i p hubwigan one to one (1.1)
Mubungan one to one yang terjdi adalah m o n d a ~ o ~ p a r t i c i p ~ o n
dari kedm pii~ak. Ddtm kmus hi m k a k d u a entiti tersebut
hams, digabmgkm m e ~ ~ j d i s;tlu relasi dengan satu primary key
dmi entiti asa4 sedmgkan primary key ymg satmnya lagi sebagspi
cifernate key.
n sj-Lk (km-brgid, item-@, fa!&#-!$, kode, so-lama, $1-
sia!kn, tujtlan, nojoiisi, namiimobi,~Q-kifim, mu, Ql-em, f :-famr, $1-serah, ig!-&; k!k, lokinsi. dpp, ppn, jurn~genjr,;) 1
i PPLrnaty b;5y !am,-brg-id \
2. Epe Izubmgul one to many (1 .*)
post peg-id mnik mods! 1." dmgen hubun+m m e ~ ~ f
(-8, mmasg, alsrnsl, telepm, ins-Umn, om3er-bBng (order-id, item-id, tgi-order, app-dzke, de!-data, @is, peg-a, kcde, ZeuGe: gnmasel, gramat&, butat, bebh, krg, in, cm, kg, warna,
Printaq? key m i d puBh, hq-satuad; Iama, persen, dp, esfs, benf. - une party, status; keterangan)
ePlrnaw [@Elf 0rdH-id Foreign key pq-id references pegawai (pm-id)
post m i d untuk nro*l1.* denpn hobzingan rnembual
a so-iama, tgl-sjakn. t!!;uan, nopl is i , nama-mmbll, kg-kilim, roll, @!-entry tglfaaktur. $hxrah,
Frimary key peg-id tgt-&K-fak, lokasi, dpp, ppn, f~m?_panj)
Psirnasl. key Bym-brg-id Famien key peg-id &rencas p e g m i (peg-Id)
post m&nrne:-ld unWk model 'i .* dengan RuSungan melakuken
1 s m b n e r (ursiwnsr-id, nsna. contact, alamd, Ldspon. orrdss-bmn8s {order-id, .kmmid, ig?prder, app-dab,
iax: kata, N W ) del-date, jenis, ?%-id, customer-id,lmde, gtuge. gamasel, gramase2, hulaf, be&, kig, m, an, kg,
P r h a ~ y key erstomerrid warna. putih, his_sa;eiar.. lam, penen, dp, esk, berg, snit, paw, siatus, keterangan)
Primary key order-id Fomign key rekrexzs ~ Q a w a i (peg-$) Forsign keg" wstoner-id refemcs arslomer (c*rstomer-id)
post mtcner-id untuk mod& I.' deman hubungan mlakukan
i l b w a i (peg-id, namagw, atamah Wepon, j n o r n n . customer (wstomer-id, peg-bi, nama, ccrtacl, alam~f,
jabatan) leiepn, fax, kota, N W )
Pcimary key pq-ib Pdmwjc Erqr cuslorneijd Fofdg~gn key peg-Id references pegawai (peg-id)
cusborner (wskcmer-idid, wLid, nama, corrtacl, alaM, yombayaran (Ud, @I-t?, cus:oms-id, fak-m-a, talepon, fa. kota, MIDIP) $I-hk-r&, ppn, ]enis-bayar, bank, nogiro. . jair;h_:emp. tot-byr, ket-bayar, denda:
Wmry k%y mtommAmAiid Fr~seign k y e y i d references pegwmi (peg-id) Primaby b y #-id
Fow$n key customw-id rekences wstornerjurstomr-id)
post odes-Id untuk &el 1 ." dsngzo hubcngen dikembai&m dan
i &-hmng (order-id, item-id, tgLoTde~. app-date: m k ~ (retuiid, item-id, order-8, Ql-ctk-er, kg-re?ur,
dei-date, jeliis. peg-id, mtcmer-id,k&e, gauge, di-r@ftur tg-rehr, $I-enirf, jenis, gramasel, grarnase2, bulal, hehh, krg, m. ani kg: heterangan; ppn, :rn!geni, gmnc-total: warn. pdh, 3b-g-satuan, iama, pemn, dp, esk. berat. unit: party, &&us, keferangan) Pdmaw key ieytur-id
Fore$n key order-id r~fms order-bareng (ofdecid) Prim? key order-id F a w n key prs-i_id referwms psgawai @Lid) Fomlgo key wtomer-id mfmraras 04stoomer (m@oaner_id)
past orEEer-iQl un@A model 1 ." dengan hwburgan menenfukan , sj-bk (km-brg-u, ilem-id, a*r-id, %Mu;-id, kode.
oam'sr-baraasg !otder-id. ifern$, $1-Mder, app-nate. so-lams, @l_sjaizn, iujuan, rtoi,&i, nan?_mabii, del-date, jenis, pzg-id, cc?stomer~i6,hode. Qawge, kg-kirirn, mil, igi-enw, $1-fakiur. $fL?erah, gramzsel, gramase2, buiat, beiah, lug, m, cm, kg, $l_dh_raic lokasi, dpp, ppn, jumigenj) wama, putih, h'9_satuan, lama, perjen, rip, es*, Dmt, unit, pam, sMus, kehrzwzn) Brimy b y km-big_ld
FomLgn key peg-ld d i e - pqawai (peg-id) primary key aordr-Id Femign hey M ~ r - i d reieiences order-barang (order-id) Foreign Grey p g _ H MEpnces m a w & (w-id) Farnun key customer-id refeencer, mstorner (wslomr-a)
3. Tipe hubwgan many to many (*.*I
8-h (km-brg-id. item-a, omer-id, fal&ir~id, kode. im (itern-id, orCer-Id, gauge, kcdc-, nama-b&, so-lama, t$-sja;an, bjwsn; no-polisi, nama-mobii, krga-We, bulat. belab, gramasel. (dnmasa2, k-Wdm, mh, Ql-enby, tg!-kMiir, $1-serah, tgl_dkk%b iokasi, dpp, ppn, juml-wnj) polginggir, mst-print spwi31-50R ~ m , warm,
r w key knn-brg-id atas-nema, @i-wr~rna, m, krg, rn, Ihrg-wzrna,
Fonign kcqv peg-id l e f e r e w s pegawai (peg-id) add, pM6, gross, disc, hw-szluani Foreign key odor-i refarems orderLkrang (order-kd)
pcimalqr hyitemid Foreign ksy m refenenccs wzrna (m)
krrInr-&mB (km-bq-id; iteim-td, Q-kMm, FOIL)
m a w Key km-bQ-iglid, i(em-id
Fcteign key krm_br~-Id refennces sLfak (Icmmbrorgid:
Fadan key i t en id rafemnces ii@m (item-id)
80
ilent (Itern-id, order-id, gage, kode, na=-bq, cder-bamng (wdei-id, item-id, tgioder app-date, del-dale, enis, m i d , msPomep-ia,kode, gauge,
hargaargakode, bulai k l a h , giamasel, g m e 2 . gmrnasel,gramse2: buhl, belah, kq, m, m, kg,
pot_pinggir, mst-print. spesiai-sun, m, warn, warn. wbh, hrg_atuan, kina, persen, dp, e&. berat, uni: party, status, keierangan)
atassname, Q.!-wama, stctok: kg, m, hmwarna,
add, pizzh, @~s, disc, hrg-sa!uan) ~ h i y key oder-td Foreign hey peg-8 referenes pegmi (p~fd)
PEBmry key .km-id Fo&gm key custom^-ki references wsbmer (mstcmer-id)
Forebn key cm r&remssama (an)
ode?-detail (order-Ld, item-id, kg)
Brimy key clder-@, item-id
Foreign by wderjd referenm crder-b8rarg (oder-itl)
Fmign key lternjd refe?ences itern (@em-,;d)
S-FiEL (h-brg-a, item-@, Falciur-id, pe&id, kode, pe*yamm (E-id, @4-t. wt3m-id. kk~P6-id, so-lane, tsi-sja!an, lujuan, no2001~, n a m o b i l : @l-F6kkriz, ppn, jenis-bayar. bank, nogim, Ikg-brim. mli, $1-me, tgl-fahuc Lgi-serah, jatuhmpo, tot-tyr: ket-bay%, hnda) tgI-d;<-fak, bkasi, dpp, ppn, juml-penj)
Pdrnrlf key Llid Primargr icey Lm-bq-E Foreign key ws@rner-id iekreras a;sforner(cusbner-S) Fw~ign hq w-td refererrcs pegwdei (pq-id)
Prim3.y key E-id, fakfxr-a
Foreign k q R - ~ ceferences pmbayaran (it-fd)
Foreign hsy iak-i~-iid references I a k r (fa!&-id)
Foreign key fak-,*-id refewnm w ~ i (~elwt-id)
Setelah menentalkan parent dm child nnt& std-hun- j7ang mungkin
n&a selanjukya &an dismpaLw tentang atxibut lwmm yzng &a
dm prose§ pe~G6dngm~ya.
Entiii item
put& Z l~rga-kede
poss put& + hrg-%ranra + special-cost + costgrint + add
disc gross - h ~ g - s a b m
Entiti order b a m g
C kmga-kode
82
ppn 10 % * jml_penj
jml_penj jumlah harga jual sebelum pajak
Entiti retur
ppn 10 % * jml_penj
jml_penj jumlah harga jual sebelum pajak
grand_total jumlah total dari jml_penj ditambah dengan ppn
Entiti pembayaran
dpp jumlah harga jual setelah pajak
ppn 10 % * jml_penj
tot_byr jumlah dari beberapa tagihan yang akan dibayar
sekaligus
denda dihitung berdasarkan besar persen denda yang
ditentukan berdasarkan negosiasi saat order
83
4.1.2.3 Normalisasi
Entiti item
Dari tahap konseptual sudah dalam bantuk 1NF, berikut ketergantungan
fungsional dari entiti item
fd1 item_id, order_id → kode, cm primary key
fd2 kode → nama_brg, harga_kode partial dependency
fd3 cm → warna, tgl_warna, atas_nama, hrg_warna partial dependency
fd4 order_id, kode, cm → item_id candidate key
Relasi untuk 2NF yang dihasilkan yaitu
item (item_id, gauge, kode, bulat, belah, gramase1, gramase2,
pot_pinggir, cost_print, spesial_soft, cm, stok, krg, m, add,
hrg_satuan)
color_match (cm, warna, atas_nama, tgl_warna, hrg_warna)
benang (id_benang, nama_brg, harga_kode)
knitting (id_knitting, nama_brg, harga_kode)
dyeing (id_dyeing, nama_brg, harga_kode)
finishing (id_finishing, nama_brg, harga_kode)
kimia (id_kimia, nama_brg, harga_kode)
umum (id_umum, nama_brg, harga_kode)
bunga (id_bunga, nama_brg, harga_kode)
Entiti customer
Entiti customer sudah dalam bentuk normal setelah penghilangan multi
value. Berikut adalah relasi yang dihasilkan.
84
customer (customer_id, peg_id, nama, contact, alamat, kota,
NPWP)
telepon_cus (customer_id, telepon)
fax (customer_id, fax)
Entiti pegawai
Entiti pegawai sudah dalam bentuk normal setelah penghilangan multi
value. Berikut adalah relasi yang dihasilkan.
pegawai (peg_id, nama_peg, alamat, jns_klmn, jabatan)
telepon_peg (peg_id, telepon)
Entiti order_barang
Untuk entiti order_barang dari tahap konseptual sudah dalam bentuk 1NF
dan berikut adalah ketergantungan fungsional dari entiti order_barang.
fd1 order_id → item_id primary key
fd2 order_id → tgl_order, app_date, del_date, partial dependency
jenis, customer_id, peg_id, lama, persen, esfs,
berat, dp, unit, party, status, keterangan
fd3 order_id, item_id → kg partial dependency
fd4 item_id → kode, bulat, belah, krg, partial dependency
m, gauge, gramase1,gramase2, cm, warna,
hrg_satuan
fd5 cm → warna transitive dependency
85
Dari ketergantungan fungsional diatas dihasilkan relasi untuk 2 NF yaitu
order_barang (order_id, tgl_order, app_date, del_date, jenis,
customer_id, peg_id, lama, persen, dp, esfs, berat, unit,
party, status, keterangan)
order_detail (item_id, order_id, kg)
item (item_id, gauge, kode, bulat, belah, gramase1, gramase2,
cm, warna, krg, m, hrg_satuan)
Dalam ketergantungan fungsional entiti order_barang terdapat
ketergantungan transitif, maka dilakukan normalisasi 3NF dan berikut
adalah relasi yang dihasilkan.
order_barang (order_id, tgl_order, app_date, del_date, jenis,
customer_id, peg_id, lama, persen, dp, esfs, berat, unit,
party, status, keterangan)
order_detail (item_id, order_id, kg)
item (item_id, gauge, kode, bulat, belah, gramase1, gramase2,
cm, krg, m, hrg_satuan)
color_match (cm, warna)
Entiti sj_fak
Dalam entiti sj_fak sudah dalam bentuk normal pertama dan berikut
adalah ketergantungan fungsional yang ada.
fd1 krm_brg_id → item_id, order_id, no_polisi primary key
fd2 no_polisi → nama_mobil partial dependency
fd3 krm_brg_id, item_id → kg_kirim, roll partial dependency
86
Dari ketergantungan yang ada maka dilakukan normalisasi bentuk 2
untuk menghilangkan ketergantungan partial. Berikut adalah relasi akhir
yang dihasilkan.
sj_fak ( krm_brg_id, order_id, kode, so_lama, tgl_sjalan,
peg_id, tujuan, no_polisi, faktur_id, tgl_entry, tgl_faktur,
tgl_serah, tgl_ctk_fak, lokasi)
mobil ( no_polisi, nama_mobil)
kirim_detail (krm_brg_id, item_id, kg_kirim, roll)
Entiti retur
Sama seperti entiti sebelumnya, entiti retur sudah dalam bentuk normal
1NF. Berikut adalah ketergantungan fungsional entiti retur.
fd1 retur_id → item_id, order_id primary key
fd2 order_id → jenis partial dependency
fd3 retur_id, item_id → kg_retur, roll_retur partial dependency
Dari ketergantungan fungsional diatas terdapat normalisasi 2NF yang
menghasilkan relasi sebagai berikut.
retur (retur_id, order_id, tgl_ctk_rtr, tgl_retur, tgl_entry,
keterangan)
order_barang (order_id, jenis)
retur_detail (retur_id, item_id, kg_retur, roll_retur)
87
Entiti pembayaran
Entiti pembayaran sudah dalam bentuk 1NF dan berikut adalah
ketergantungan fungsional dari entiti pembayaran.
fd1 tt_id → customer_id, fak_rtr_id primary key
fd2 tt_id → tgl_tt, bank, no_gi_card, ket_bayar partial dependency
fd3 tt_id, fak_rtr_id → tgl_fak_rtr partial dependency
Dari ketergantungan yang ada, dilakukan normalisasi sampai 2NF yang
menghasilkan relasi berikut ini.
pembayaran (tt_id, tgl_tt, customer_id, jenis_bayar, bank, no_gi_card,
ket_bayar)
byr_detail (tt_id, fak_rtr_id, tgl_fak_rtr)
4.1.2.4 Merancang integrity constraint
Tujuannya adalah untuk menghindari inkonsistensi dari basis data.
Ada 5 tipe integrity constraint yaitu :
o Required data, beberapa atribut harus selalu memiliki nilai
valid, atau tidak diperbolehkan untuk null. Constraint ini telah
diidentifikasi pada tahap 4.1.1.3 Identifikasi dan asosiasi
atribut suatu entiti.
o Attribute domain constraint, setiap atribut memiliki domain,
yang merupakan kumpulan nilai yang legal. Constraint ini pun
telah diidentifikasi pada tahap yang sama dalam menentukan
required data.
88
o Entity integrity, primary key dari suatu entiti tidak boleh
memiliki nilai null. Constraint ini menentukan dalam tahap
menentukan primary key yang bisa dilihat pada tahap 4.1.1.4
Identifikasi kandidat dan primary key setiap entiti.
o Referential integrity, mempengaruhi dalam menentukan strategi
yang tepat untuk foreign key.
o Enterprise constraint, biasa juga disebut aturan bisnis. Untuk
enterprise constraint akan dijelaskan pada bagian 4.1.3.2
Merancang constraint.
Berikut adalah referential integrity yang ada dari rancangan basis data
ini.
Tabel 4.5 Referential integrity untuk setiap relasi
item (item_id, gauge, kode, bulat, belah, gramase1, gramase2,
pot_pinggir, cost_print, spesial_soft, cm, stok, krg, m, add,
hrg_satuan)
Primary key item_id
Foreign key cm references color_match (cm)
ON UPDATE CASCADE ON DELETE NO ACTION
customer (customer_id, peg_id, nama, contact, alamat, kota, NPWP)
Primary key customer_id
Foreign key peg_id references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION
telepon_cus (telepon, customer_id)
Primary key telepon
Foreign key customer_id references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION
fax (fax, customer_id)
Primary key fax
89
Foreign key customer_id references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION
telepon_peg (telepon, peg_id)
Primary key telepon
Foreign key peg_id references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION
order_barang (order_id, tgl_order, app_date, del_ date, jenis, customer_id,
peg_id, lama, persen, dp, esfs, berat, unit, party, status,
keterangan)
Primary key order_id
Foreign key customer_id references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign key peg_id references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION
order_detail (order_id, item_id, kg)
Primary key order_id, item_id
Foreign key order_id references order_barang (order_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
Foreign key item_id references item (item_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
sj_fak (krm_brg_id, order_id, so_lama, tgl_sjalan, tujuan, peg_id,
no_polisi, faktur_id, tgl_entry, tgl_serah, tgl_faktur, tgl_ctk_fak,
lokasi)
Primary key krm_brg_id
Foreign key order_id references order_barang (order_id)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign key so_lama references order_barang (order_id)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign key no_polisi references mobil (no_polisi)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign key peg_id references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION
kirim_detail(item_id, krm_brg_id, kg_kirim, roll)
Primary key item_id, krm_brg_id
90
Foreign key item_id references item (item_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
Foreign key krm_brg_id references surat_jalan (krm_brg_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
pembayaran (tt_id, tgl_tt, customer_id, jenis_bayar, bank, no_gi_card,
ket_bayar)
Primary key tt_id
Foreign key customer_id references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION
byr_detail (tt_id, fak_rtr_id, tgl_fak_rtr)
Primary key tt_id, fak_rtr_id
Foreign key tt_id references pembayaran (tt_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
Foreign key fak_rtr_id references sj_fak (faktur_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
Foreign key fak_rtr_id references retur (retur_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
retur (retur_id, order_id, tgl_ctk_rtr, tgl_retur, tgl_entry, keterangan)
Primary key retur_id
Foreign key order_id references order_barang (order_id)
ON UPDATE CASCADE ON DELETE NO ACTION
retur_detail (retur_id, item_id, kg_retur, roll_retur)
Primary key retur_id, item_id
Foreign key retur_id references retur (retur_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
Foreign key item_id references item (item_id)
ON UPDATE NO ACTION ON DELETE NO ACTION
4.1.2.5 Pembuatan Model Basisdata Logikal Global
Untuk membuat basisdata logikal global perlu dilakukan
penggabungan lokal logikal data model yang telah dihasilkan dari
hasil normalisasi.
91
Yang perlu dilakukan penggabungan adalah untuk entiti customer
(yang berasal dari entiti customer, entiti order_barang, entiti retur dan
entiti pembayaran), entiti pegawai (yang berasal dari entiti pegawai
dan entiti pembayaran) dan entiti item (yang berasal dari entiti item
dan entiti order_barang). Berikut adalah hasil gabungan global untuk
entiti tersebut.
item (item_id, gauge, kode, bulat, belah, gramase1, gramase2,
pot_pinggir, cost_print, spesial_soft, cm, stok, krg, m, add,
hrg_satuan)
color_match (cm, warna, atas_nama, tgl_warna, hrg_warna)
order_barang (order_id, tgl_order, app_date, del_date, jenis,
customer_id, peg_id, lama, persen, dp, esfs, berat, unit,
party, status, keterangan)
Tabel 4.6 Relasi yang menunjukkan model data logikal global
item (item_id, gauge, kode, bulat,
belah, gramase1, gramase2,
pot_pinggir, cost_print,
spesial_soft, cm, stok, krg, m,
add, hrg_satuan)
Primary key item_id
Foreign key cm references color_match
(cm)
color_match (cm, warna, atas_nama,
tgl_warna, hrg_warna)
Primary key cm
benang (id_benang, nama_brg,
harga_kode)
knitting (id_knitting, nama_brg,
harga_kode)
92
Primary key id_benang Primary key id_knitting
dyeing (id_dyeing, nama_brg,
harga_kode)
Primary key id_dyeing
finishing (id_finishing, nama_brg,
harga_kode)
Primary key id_finishing
kimia (id_kimia, nama_brg,
harga_kode)
Primary key id_kimia
umum (id_umum, nama_brg,
harga_kode)
Primary key id_umum
bunga (id_bunga, nama_brg,
harga_kode)
Primary key id_bunga
customer (customer_id, peg_id, nama,
contact, alamat, kota,
NPWP)
Primary key customer_id
Foreign key peg_id references pegawai
(peg_id)
telepon_cus (telepon, customer_id)
Primary key telepon
Foreign key customer_id references
customer (customer_id)
fax (fax, customer_id)
Primary key fax
Foreign key customer_id references
customer (customer_id)
pegawai (peg_id, nama_peg, alamat,
jns_klmn, jabatan)
Primary key peg_id
telepon_peg (telepon, peg_id)
Primary key telepon
Foreign key peg_id references pegawai
(peg_id)
order_barang (order_id, tgl_order,
app_date, del_ date, jenis,
customer_id, peg_id, lama,
persen, dp, esfs, berat, unit,
party, status, keterangan)
Primary key order_id
Foreign key customer_id references
customer (customer_id)
Foreign key peg_id references pegawai
(peg_id)
order_detail (order_id, item_id, kg)
Primary key order_id, item_id
Foreign key order_id references
order_barang (order_id)
Foreign key item_id references item
(item_id)
sj_fak (krm_brg_id, order_id, so_lama,
tgl_sjalan, tujuan, peg_id,
no_polisi, faktur_id, tgl_entry,
kirim_detail(item_id, krm_brg_id,
kg_kirim, roll)
93
tgl_serah, tgl_faktur,
tgl_ctk_fak, lokasi)
Primary key krm_brg_id
Foreign key order_id references
order_barang (order_id)
Foreign key so_lama references
order_barang (order_id)
Foreign key no_polisi references mobil
(no_polisi)
Foreign key peg_id references pegawai
(peg_id)
Primary key item_id, krm_brg_id
Foreign key item_id references item
(item_id)
Foreign key krm_brg_id references
surat_jalan (krm_brg_id)
byr_detail (tt_id, faktur_id,
tgl_faktur)
Primary key tt_id, faktur_id
Foreign key tt_id references pembayaran
(tt_id)
Foreign key faktur_id references sj_fak
(faktur_id)
pembayaran (tt_id, tgl_tt,
customer_id, jenis_bayar,
bank, no_gi_card, ket_bayar)
Primary key tt_id
Foreign key customer_id references
customer (customer_id)
retur (retur_id, order_id, tgl_ctk_rtr,
tgl_retur, tgl_entry,
keterangan)
Primary key retur_id
Foreign key order_id references
order_barang (order_id)
retur_detail (retur_id, item_id,
kg_retur, roll_retur)
Primary key retur_id, item_id
Foreign key retur_id references retur
(retur_id)
mobil (no_polisi, nama_mobil)
Primary key no_polisi
95
4.1.3 Perancangan Basisdata Fisikal
4.1.3.1 Perancangan Relasional Basisdata
Tujuannya untuk menentukan cara merepresentasikan relasi dasar
yang diidentifikasikan dalam data model logikal global pada DBMS
target. Berikut adalah relasi dasar dari program untuk PT. Jabatex.
item
Domain item_id integer, in the range 1-9999999999
Domain gauge integer, in the range 1-999
Domain kode character, length 27
Domain bulat float, in the range 0.00-999.99
Domain belah float, in the range 0.00-999.99
Domain gramase1 float, in the range 0.01-9999.99
Domain gramase2 float, in the range 0.01-9999.99
Domain pot_pinggir float, in the range 0.00-99.99
Domain cost_print integer in the range 0.00-999999
Domain special_soft integer, in the range 0.00-999999
Domain cm character, length 12
Domain stok float, in the range 0.01-9999.99
Domain krg float, in the range 0.01-999.99
Domain m float, in the range 0.01-999.99
Domain add integer, in the range 1.00-999999
Domain hrg_satuan integer, in the range 1.00-999999
item(
item_id NOT NULL,
gauge NOT NULL,
kode NOT NULL,
bulat NULL,
belah NULL,
gramase1 NOT NULL,
gramase2 NOT NULL,
pot_pinggir NULL,
cost_print NULL,
96
special_soft NULL,
cm NOT NULL,
stok NULL,
krg NOT NULL,
m NOT NULL,
add NULL,
hrg_satuan NOT NULL,
PRIMARY KEY (item_id),
FOREIGN KEY (cm) references color_match (cm)
ON UPDATE CASCADE ON DELETE NO ACTION );
color_match
Domain cm character, length 12
Domain warna character, length 30
Domain atas_nama character, length 20
Domain tgl_warna date
Domain hrg_warna integer, in the range 1.00-999999
color_match(
cm NOT NULL,
warna NOT NULL,
atas_nama NOT NULL,
tgl_warna NOT NULL,
hrg_warna NOT NULL,
PRIMARY KEY (cm) );
benang
Domain id_benang character, length 2
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
benang(
id_benang NOT NULL,
nama_brg NOT NULL,
harga_kode NOT NULL,
PRIMARY KEY (id_benang) );
97
knitting
Domain id_knitting character, length 6
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
knitting(
id_knitting NOT NULL,
nama_brg NOT NULL,
harga_kode NOT NULL,
PRIMARY KEY (id_knitting) );
dyeing
Domain id_dyeing character, length 6
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
dyeing (
id_dyeing NOT NULL,
nama_brg NOT NULL,
harga_kode NOT NULL,
PRIMARY KEY (id_dyeing) );
finishing
Domain id_finishing character, length 4
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
finishing(
id_finishing NOT NULL,
nama_brg NOT NULL,
harga_kode NOT NULL,
PRIMARY KEY (id_finishing) );
kimia
Domain id_kimia character, length 1
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
kimia(
id_kimia NOT NULL,
nama_brg NOT NULL,
98
harga_kode NOT NULL,
PRIMARY KEY (id_kimia) );
umum
Domain id_umum character, length 1
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
umum(
id_umum NOT NULL,
nama_brg NOT NULL,
harga_kode NOT NULL,
PRIMARY KEY (id_umum) );
bunga
Domain id_bunga character, length 1
Domain nama_brg text
Domain harga_kode integer, in the range 1.00-999999
bunga(
id_bunga NOT NULL,
nama_brg NOT NULL,
harga_kode NOT NULL,
PRIMARY KEY (id_bunga) );
customer
Domain customer_id character, length 12
Domain peg_id character, length 12
Domain nama character, length 30
Domain contact character, length 20
Domain alamat text
Domain telepon character, length 15
Domain fax character, length 20
Domain kota character, length 20
Domain NPWP character, length 20
customer(
customer_id NOT NULL,
peg_id NOT NULL,
nama NOT NULL,
99
contact NOT NULL,
alamat NOT NULL,
telepon NOT NULL,
fax NOT NULL,
kota NOT NULL,
NPWP NULL,
PRIMARY KEY (customer_id)
FOREIGN KEY (peg_id) references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
telepon_cus
Domain telepon character, length 15
Domain customer_id character, length 12
telepon_cus(
telepon NOT NULL,
customer_id NOT NULL,
PRIMARY KEY (telepon),
FOREIGN KEY (customer_id) references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
fax
Domain fax character, length 20
Domain customer_id character, length 12
fax(
fax NOT NULL,
customer_id NOT NULL,
PRIMARY KEY (fax),
FOREIGN KEY (customer_id) references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
pegawai
Domain peg_id character, length 12
Domain nama_peg character, length 20
Domain alamat text
Domain telepon character, length 15
Domain jns_klmn character, length 1, must be one of ‘L’ or ‘P’
Domain jabatan character, length 20
100
pegawai(
peg_id NOT NULL,
nama NOT NULL,
alamat NOT NULL,
telepon NOT NULL,
jns_klmn NOT NULL,
jabatan NOT NULL,
PRIMARY KEY (peg_id) );
telepon_peg
Domain telepon character, length 15
Domain peg_id character, length 12
telepon_peg(
telepon NOT NULL,
peg_id NOT NULL,
PRIMARY KEY (telepon),
FOREIGN KEY (peg_id) references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
order_barang
Domain order_id character, length 12
Domain tgl_order date
Domain app_date date
Domain del_date date
Domain jenis character, length 15
Domain customer_id character, length 12
Domain peg_id character, length 12
Domain lama integer, in the range 0-99
Domain persen float, in the range 0.00-0.99
Domain dp integer, in the range 0.00-99999999
Domain esfs character, length 2, must one of ‘es’ or ‘fs’
Domain berat character, length 5, must one of ‘bruto’ or ‘netto’
Domain unit character, length 4, must one of ‘cm’ or ‘inch’
Domain party character, length 10, must one of ‘lokal’, ‘ekspor’, or
‘lain-lain’
101
Domain status character, length 10, must one of ‘OK’, ‘sales’, ‘dipos’,
‘pending’, or ‘ditinggal’
Domain keterangan text
order_barang(
order_id NOT NULL,
tgl_order NOT NULL,
app_date NOT NULL,
del_date NOT NULL,
jenis NOT NULL,
customer_id NOT NULL,
peg_id NOT NULL,
lama NULL,
persen NULL,
dp NULL,
esfs NOT NULL,
berat NOT NULL,
unit NOT NULL,
party NULL,
status NOT NULL,
keterangan NULL,
PRIMARY KEY (order_id),
FOREIGN KEY (customer_id) references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (peg_id) references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
order_detail
Domain order_id character, length 12
Domain item_id character, length 12
Domain kg float, in the range 0.01-9999.99
order_detail(
order_id NOT NULL,
item_id NOT NULL,
kg NOT NULL,
PRIMARY KEY (order_id, item_id),
102
FOREIGN KEY (order_id) references order_barang (order_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
FOREIGN KEY (item_id) references item (item_id)
ON UPDATE NO ACTION ON DELETE NO ACTION);
sj_fak
Domain krm_brg_id character, length 12
Domain order_id character, length 12
Domain so_lama character, length 12
Domain tgl_sjalan date
Domain tujuan character, length 20
Domain peg_id character, length 12
Domain no_polisi character, length 12
Domain faktur_id character, length 12
Domain tgl_entry date
Domain tgl_serah date
Domain tgl_faktur date
Domain tgl_ctk_fak date
Domain lokasi character, length 10
sj_fak(
krm_brg_id NOT NULL,
order_id NOT NULL,
so_lama NULL,
tgl_sjalan NOT NULL,
tujuan NOT NULL,
peg_id NULL,
no_polisi NOT NULL,
faktur_id NOT NULL,
tgl_entry NOT NULL,
tgl_serah NOT NULL,
tgl_faktur NOT NULL,
tgl_ctk_fak NOT NULL,
lokasi NOT NULL,
PRIMARY KEY (krm_brg_id),
103
FOREIGN KEY (order_id) references order_barang (order_id)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (so_lama) references order_barang (order_id)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (no_polisi) references mobil (no_polisi)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (peg_id) references pegawai (peg_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
kirim_detail
Domain item_id character, length 12
Domain krm_brg_id character, length 12
Domain kg_kirim float, in the range 0.01-9999.99
Domain roll integer, in the range 1-99
kirim_detail(
item_id NOT NULL,
krm_brg_id NOT NULL,
kg_kirim NOT NULL,
roll NOT NULL,
PRIMARY KEY (item_id, krm_brg_id),
FOREIGN KEY (item_id) references item (item_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
FOREIGN KEY (krm_brg_id) references surat_jalan (krm_brg_id)
ON UPDATE NO ACTION ON DELETE NO ACTION);
pembayaran
Domain tt_id character, length 12
Domain tgl_tt date
Domain customer_id character, length 12
Domain jenis_bayar character, length 5, must one of ‘atm’, ‘nota’, ‘giro’, or
‘cash’
Domain bank character, length 30
Domain no_gi_card character, length 20
Domain ket_bayar text
pembayaran(
tt_id NOT NULL,
104
tgl_tt NOT NULL,
customer_id NOT NULL,
jenis_bayar NOT NULL,
bank NULL,
no_gi_card NULL,
ket_bayar NULL,
PRIMARY KEY (tt_id),
FOREIGN KEY (customer_id) references customer (customer_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
bayar_detail
Domain tt_id character, length 12
Domain fak_rtr_id character, length 12
Domain tgl_fak_rtr date
bayar_detail(
tt_id NOT NULL,
fak_rtr_id NOT NULL,
tgl_fak_rtr NOT NULL,
PRIMARY KEY (tt_id, sj_fak),
FOREIGN KEY (tt_id) references pembayaran (tt_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
FOREIGN KEY (fak_rtr_id) references sj_fak (faktur_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
FOREIGN KEY (fak_rtr_id) references retur (retur_id)
ON UPDATE NO ACTION ON DELETE NO ACTION);
retur
Domain retur_id character, length 12
Domain order_id character, length 12
Domain tgl_ctk_rtr date
Domain tgl_retur date
Domain tgl_entry date
Domain keterangan text
retur(
retur_id NOT NULL,
order_id NOT NULL,
105
tgl_ctk_rtr NOT NULL,
tgl_retur NOT NULL,
tgl_entry NOT NULL,
keterangan NULL,
PRIMARY KEY (retur_id),
FOREIGN KEY (order_id) references order_barang (order_id)
ON UPDATE CASCADE ON DELETE NO ACTION);
retur_detail
Domain retur_id character, length 12
Domain item_id character, length 12
Domain kg_retur float, in the range 0.01-9999.99
Domain roll_retur integer, in the range 1-99
retur_detail(
retur_id NOT NULL,
item_id NOT NULL,
kg_retur NOT NULL,
roll_retur NOT NULL,
PRIMARY KEY (retur_id, item_id),
FOREIGN KEY (retur_id) references retur (retur_id)
ON UPDATE NO ACTION ON DELETE NO ACTION,
FOREIGN KEY (item_id) references item (item_id)
ON UPDATE NO ACTION ON DELETE NO ACTION);
mobil
Domain no_polisi character, length 12
Domain nama_mobil character, length 15
mobil(
no_polisi NOT NULL,
nama_mobil NOT NULL,
PRIMARY KEY (no_polisi) );
106
4.1.3.2 Merancang Constraints
Tujuannya adalah untuk membatasi update yang dilakukan agar
sesuai dengan aturan yang ditetapkan dari perusahaan dan yang
disesuaikan dengan ‘real world’.
o Denda yang diberikan untuk customer maksimal sebesar 3 %.
CONSTRAINT dendaInvalid
CHECK (NOT EXIST(SELECT order_id
FROM order_barang
WHERE persen > 3))
o Lama waktu yang diberikan untuk batas pembayaran
maksimal 50 hari dari tanggal pengiriman barang.
CONSTRAINT lamaInvalid
CHECK (NOT EXIST(SELECT order_id
FROM order_barang
WHERE lama > 50))
o Jika customer melakukan pembayaran lebih dari tanggal jatuh
tempo maka akan menerima denda.
CONSTRAINT jatuhTempo
CHECK (NOT EXIST(SELECT o.customer_id
FROM order_barang o join surat_jalan s
join faktur f
107
WHERE o.order_id = s.order_id AND
s.krm_brg_id = f.krm_brg_id AND now() <
(o.del_date+o.lama) ))
4.1.3.3 Analisis Transaksi
Analisis transaksi ini merupakan lanjutan dari tahap 4.1.1.5 Validasi
transaksi user. Untuk mempermudah analisa akan digunakan
transaction/relation cross-reference matrix. Langkah-langkah dalam
menganalisa transaksi yaitu:
1. memetakan semua jalur transaksi dalam relasi
2. menentukan relasi mana yang paling sering diakses oleh transaksi
3. menganalisa penggunaan data dari relasi yang dipilih dari langkah
sebelumnya.
Berikut adalah transaksi yang dilakukan
a. pegawai memasukkan data pegawai baru
b. pegawai mencatat data baru dari customer
c. menunjukkan data barang yang dipesan oleh customer
d. menunjukkan data tagihan yang harus dilunasi oleh customer
berdasarkan faktur yang sudah ada
e. mencatat besar tagihan yang harus dibayar
f. mendata barang yang dikembalikan
g. menampilkan stok dari barang yang masih ada
108
h. menunjukkan data barang yang dikirim dari data barang yang
telah dipesan
i. menunjukkan besar biaya yang dihasilkan setiap kali
pengiriman melalui faktur
j. memasukkan data pesanan pelanggan oleh pegawai
k. membuat data pesanan yang harus dikirim yang terdapat
dalam surat jalan oleh pegawai
l. membuat data barang yang harus dibayar setiap kali
pengiriman dilakukan oleh pegawai
109
Tabel 4.7 Referensi silang transaksi
a b c d Transaksi /
relasi I R U D I R U D I R U D I R U D
order_barang x
order_detail x
customer x x x
telepon_cus x
fax x
pegawai x
telepon_peg x
pembayaran x
bayar_detail x
item x
color_match x
benang x
knitting x
dyeing x
finishing x
kimia x
umum x
bunga x
surat_jalan
kirim_detail
retur
retur_detail
faktur x
mobil
I = Insert U = Update R = Read D = Delete
110
Tabel 4.7 referensi silang transaksi (lanjutan)
e f g h Transaksi /
relasi I R U D I R U D I R U D I R U D
order_barang x x
order_detail x
customer x
telepon_cus
fax
pegawai
telepon_peg
pembayaran x
bayar_detail x
item x x x
color_match x x x
benang x x x
knitting x x x
dyeing x x x
finishing x x x
kimia x x x
umum x x x
bunga x x x
surat_jalan x x
kirim_detail x x
retur x
retur_detail x
faktur x
mobil x x
I = Insert U = Update R = Read D = Delete
111
Tabel 4.7 referensi silang transaksi (lanjutan)
i j k l Transaksi /
relasi I R U D I R U D I R U D I R U D
order_barang x
order_detail x
customer x x x x
telepon_cus
fax
pegawai x x x
telepon_peg
pembayaran
bayar_detail
item x x x
color_match x x x
benang x x x
knitting x x x
dyeing x x x
finishing x x x
kimia x x x
umum x x x
bunga x x x
surat_jalan x x x
kirim_detail x x x
retur
retur_detail
faktur x x
mobil x x x
I = Insert U = Update R = Read D = Delete
112
4.1.3.4 Pembuatan Index setiap entiti
Tujuan dari adanya index adalah untuk mempermudah dalam
melokasikan sejumlah record file dengan lebih cepat atau dalam
proses pencarian.
Tabel 4.8 Pembuatan index setiap entiti
Nama Entiti Nama index
item item_id {PK}
hrg_satuan
color_match cm {PK}
warna
tgl_warna
harga_warna
benang id_benang {PK}
nama_brg
harga_kode
knitting id_knitting {PK}
nama_brg
harga_kode
dyeing id_dyeing {PK}
nama_brg
harga_kode
finishing id_finishing {PK}
nama_brg
harga_kode
kimia id_kimia {PK}
nama_brg
harga_kode
113
umum id_umum {PK}
nama_brg
harga_kode
bunga id_bunga {PK}
nama_brg
harga_kode
customer customer_id {PK}
nama
peg_id {FK}
telepon_cus customer_id {FK}
fax customer_id {FK}
pegawai peg_id {PK}
nama_peg
telepon_peg peg_id {FK}
order_barang order_id {PK}
tgl_order
order_detail order_id {PK}
item_id {PK}
kg
sj_fak krm_brg_id {PK}
tgl_sjalan
faktur_id
tgl_faktur
kirim_detail item_id {PK}
krm_brg_id {PK}
kg_kirim
pembayaran tt_id {PK}
tgl_tt
byr_detail tt_id {PK}
fak_rtr_id {PK}
tgl_fak_rtr
114
retur retur_id {PK}
tgl_retur
retur_detail retur_id {PK}
item_id {PK}
kg_retur
mobil no_polisi {PK}
nama_mobil
4.1.3.5 Mengestimasi Kapasitas Penyimpanan yang Dibutuhkan
Tabel 4.9 Perbandingan Database
Berdasarkan SQL server 2000 MySQL 4.1
Platform Berbasiskan windows, seperti Windows
9x,Windows NT, Windows 2000 and
Windows CE
Di semua platform seperti Windows-
based platforms, AIX-based systems,
HP-UX systems, Linux Intel, Sun
Solaris dan lainnya
Kebutuhan
Hardware
Butuh resource haedware yang lebih
besar. Berikut adalah perinciannya.
Processor Pentium 166 MHz or higher
Memory
32 MB RAM (minimum for Desktop Engine),64 MB RAM (minimum for all other editions),128 MB RAM or more recommended
Hard disk space
270 MB (full installation),250 MB (typical),95 MB (minimum),Desktop Engine: 44 MBAnalysis Services: 50 MB minimum and 130 MB typical English Query: 80 MB
Mysql menggunakan resource
hardware yang lebih sedikit. Untuk
menginstal Mysql membutuhkan
kurang lebih 32 MB RAM dan 60 MB
kapasitas hard disk.
Kebutuhan Berikut adalah kebutuhan software dari Berikut adalah kebutuhan software dari
115
Software SQL server 2000 yang terdiri dari 6
edisi.
Operating System
Enterprise Edition
Standard Edition
Personal Edition
Windows CE No No No
Windows 9x No No Yes
Windows NT 4.0 Workstation with Service Pack 5
No No Yes
Windows NT 4.0 Server with Service Pack 5
Yes Yes Yes
Windows NT 4.0 Server Enterprise Edition with Service Pack 5
Yes Yes Yes
Windows 2000 Professional
No No Yes
Windows 2000 Server
Yes Yes Yes
Windows 2000 Advanced Server
Yes Yes Yes
Windows 2000 DataCenter
Yes Yes Yes
Windows No No Yes
Mysql
Platform Operating System Version
Windows-based Windows 95/98/NT/2000/XP/2003
Sun Solaris Solaris 8 (SPARC)
FreeBSD FreeBSD 4.x (x86)
Mac OS X Mac OS X v10.2
HP-UX
HP-UX 10.20 (RISC 1.0), HP-UX 11.11 (PA-RISC 1.1 and 2.0), HP-UX 11.11 (PA-RISC 2.0, 64-bit only)
AIX-Based
AIX 5.1 (RS6000), AIX 4.3.2 (RS6000), AIX 4.3.3 (RS6000)
QNX QNX 6.2.1 (x86) SGI Irix SGI Irix 6.5
Dec OSF Dec OSF 5.1 (Alpha)
116
XP Professional
Operating System
Developer Edition
Desktop Engine
SQL Server CE
Windows CE No No Yes
Windows 9x No Yes No
Windows NT 4.0 Workstation with Service Pack 5
Yes Yes No
Windows NT 4.0 Server with Service Pack 5
Yes Yes No
Windows NT 4.0 Server Enterprise Edition with Service Pack 5
Yes Yes No
Windows 2000 Professional
Yes Yes No
Windows 2000 Server
Yes Yes No
Windows 2000 Advanced Server
Yes Yes No
Windows 2000 DataCenter
Yes Yes No
117
Windows XP Professional
Yes Yes No
Harga Ada 2 jenis license dari SQL server
yaitu processor license dan server / per
seat client access license (CAL).
Processor license digunakan untuk tiap
CPU dan akses client tidak terbatas.
Processor license lebih murah dari
CAL.
Server / CAL digunakan untuk server
dan tiap client dibatasi.
Licensing Options
SQL Server 2000 Standard Edition
SQL Server 2000 Enterprise Edition
Processor $4,999 per processor
$19,999 per processor
Server/Per-Seat CAL
with 5 CALs - $1,489 with 10 CALs - $2,249
with 25 CALs - $11,099
MySQL memiliki 2 license yaitu
MySQL software sebagai open source /
Free software dari GNU General
Public License atau standard
commercial license dari MySQL AB.
MySQL AB license nya untuk tiap
database server. Berikut adalah
harganya
Number of licenses
Price per copy (EUR)
Price per copy (USD)
1 .. 9 440.00 495.00 10 .. 49 315.00 360.00 50 .. 99 255.00 290.00 100 .. 249 195.00 220.00 250 .. 499 155.00 175.00
500 + ask for quote, [email protected]
Limitation
berdasarkan
Feature SQL Server 2000 MySQL v4.1 column name length 128 64 index name length 128 64 table name length 128 64 max indexes per table 250 32 index length 900 1024 max index column length 900 255 columns per index 16 16 max char() size 8000 1048543 max varchar() size 8000 1048543 max blob size 2147483647 1048543 max number of columns in GROUP BY
Limited only by number of bytes (8060) 64
max number of columns in Limited only by number of 64
118
ORDER BY bytes (8060) tables per SELECT statement 256 31
max columns per table 1024 2599 max table row length 8036 65534 longest SQL statement 16777216 1048574 constant string size in SELECT 16777207 1048565
T-SQL
dengan
MySQL
dialect
Feature T-SQL MySQL dialect
Views
General Views, Indexed Views, Distributed Partitioned Views
Not Supported
Triggers AFTER triggers, INSTEAD OF triggers Not Supported
Stored Procedures T-SQL statements Not Supported
User-defined functions
Scalar functions, Inline table-valued functions, Multistatement table-valued functions
C, C++ external libraries
Foreign Keys Supported Supported for only InnoDB tables
Cursors Supported Not Supported Arrays Not Supported Supported
Keuntungan • Secara umum diterima karena
mudah diinstal, udah dipakai dan
diatur.
• Bahasa Transact-SQL lebih
powerful dibanding MySQL
dialect.
• Dapat men support platform lain
tidak hanya berdasarkan platform
windows.
• Butuh hardware yang lebih sedikit
• Bisa tanpa melakukan pembayaran
karena merupakan software open
source / free software.
Dalam beberapa entiti terdapat data yang tetap dan perubahan yang
terjadi sangat jarang dilakukan. Entiti tersebut adalah entiti benang,
knitting, dyeing, finishing, bunga, umum dan kimia. Sehingga ukuran
dari entiti ini tetap. Oleh karena itu untuk penghitungan kapasitas
penyimpanan dari data transaksi, tidak dimasukkan.
119
Berikut akan dijelaskan tentang menghitung perkiraan kapasitas
penyimpanan data transaksi yang dilakukan.
Tabel 4.10 Estimasi penyimpanan
total per tahun (30
hari x 12 bulan)
(dalam bytes)
entiti keterangan Ukuran
tiap satu
record
(bytes) data index
data + index
item Diperkirakan setiap
harinya memiliki 120
transaksi
95 4104000 3072 4107072
color_match Diperkirakan setiap
harinya memiliki 120
transaksi
78 3369600 5120 3374720
customer Diperkirakan setiap
tahunnya memiliki 50
transaksi. Dengan asumsi
isi dari atribut text
sepanjang 30 character
116 5800 4096 9896
telepon_cus Dengan asumsi tiap
customer rata-rata
memiliki 2 nomor. Tiap
tahunnya terdapat 50
transaksi
28 2800 2048 4848
fax Dengan asumsi tiap
customer rata-rata
memiliki 2 nomor. Tiap
tahunnya terdapat 50
transaksi
28 2800 2048 4848
pegawai Diperkirakan setiap
tahunnya memiliki 20
60 2400 3072 5472
120
transaksi. Dengan asumsi
isi dari atribut text
sepanjang 30 character
telepon_peg Dengan asumsi tiap
customer rata-rata
memiliki 2 nomor. Tiap
tahunnya terdapat 20
transaksi
28 1120 2048 3168
order_barang Diperkirakan setiap
harinya memiliki 20
transaksi. Dengan asumsi
isi dari atribut text
sepanjang 20 character
104 748800 3072 751872
order_detail Diperkirakan setiap
harinya memiliki 20
transaksi.
25 180000 5120 185120
sj_fak Diperkirakan setiap
tahunnya memiliki 60
transaksi.
117 2527200 5120 2532320
kirim_detail Diperkirakan setiap
harinya memiliki 60
transaksi.
35 756000 5120 761120
pembayaran Diperkirakan setiap
harinya memiliki 30
transaksi. Dengan asumsi
isi dari atribut text
sepanjang 20 character
84 907200 3072 910272
bayar_detail Diperkirakan setiap
harinya memiliki 30
transaksi.
32 345600 5120 350720
retur Diperkirakan setiap
harinya memiliki 10
transaksi. Dengan asumsi
isi dari atribut text
56 201600 3072 204672
121
sepanjang 20 character
retur_detail Dengan asumsi isi dari
atribut text sepanjang 10
character
37 133200 5120 143440
Total kapasitas penyimpanan yang dibutuhkan untuk transaksi per tahun adalah 13349560
bytes atau
13036,68 KB
atau
12,731 MB
4.1.3.6 Merancang Mekanisme Keamanan
Basis data merepresentasikan informasi penting bagi perusahaan dan
keamanan dari informasi merupakan faktor penting. Dalam keamanan
ada dua tipe yaitu keamanan sistem dan keamanan data.
Keamanan sistem mengatur pengaksesan dan penggunaan basis data.
Caranya adalah dengan membuat halaman login sebelum masuk ke
halaman utama dari sistem. Dalam halaman login, user diminta untuk
memasukkan username dan password.
Sedangkan untuk keamanan data, berhubungan dengan objek basis
data (tabel atau relasi) dan aksi yang user lakukan terhadap objek
tersebut, misalnya aksi penghapusan atau pemilihan.
Berikut adalah perancangan untuk keamanan data.
Admin = superuser
grant all on jabatex.* to admin with grant option;
122
Maksud dari diatas, admin superuser bisa melakukan semua aksi
yaitu delete, update, select, insert. Untuk pengaturan aksi user lain
diatur oleh admin superuser tadi karena perintah with grant option.
4.2 Perancangan Aplikasi
4.2.1 Bagan Terstruktur (Structure Chart)
Proses order
Read record Search data Insert recordorder
Calculate totalitem Show detail
Select data
Dataorder
Nomororder
Dataorder
Selectnomororder
Readrecord
Showrecord
Nomororder Select
dataDataorder
Dataorder
Insertrecorditem
inputorder
Dataorder
Validate Updaterecord
Deleterecord
Yes /No
Updatedata Data
detail Deletedata
Datadetail
Showprinting
inputitem
Dataitem
DataorderData
item
Dataprinting
Datadetail
Datadetail
Validateprinting
Printdata
Yes /No
Dataprinting
Gambar 4.10 Structure chart proses order
123
Proses suratjalan
Insert recordsurat jalan
Selectnomor order
Generatedata
Insert recordkg & roll
Updaterecord stok
Readrecord
Showrecord
Selectdata
Dataorder
Dataorder
Showprinting
Validateprinting
Printdata
Yes /No
Dataprinting
Insert data
Datasuratjalan
Nomororder
Selectdata
Dataorder
Insertkg & roll
Datakg & roll
UpdatestokData
stok
Datasuratjalan
Dataprinting
Gambar 4.11 Structure chart proses surat jalan
124
Proses Faktur
Selectnomor surat
jalan
Generatedata Insert record Calculate
data
Readrecord
Showrecord
Selectdata
Datasuratjalan
Datasuratjalan
Showprinting
Validateprinting
Printdata
Yes /No
Dataprinting
Selectdata
Datasuratjalan
Insertdatafaktur
Datafaktur
Hargasatuan,
kg
Total, hargajual, dasarkena pajak,
ppn, dpp
Datafaktur
Dataprinting
Nomorsuratjalan
Gambar 4.12 Structure chart proses faktur
125
Proses Retur
Selectnomor order
Generatedata Insert record Calculate
data
Readrecord
Showrecord
Selectdata
Dataorder
Dataorder
Showprinting
Validateprinting
Printdata
Yes /No
Dataprinting
Selectdata
Dataorder
Insertdataretur
Dataretur
Hargasatuan,
kg
Dasar kenapajak, ppn,
dpp
Dataretur
Dataprinting
Nomororder
Gambar 4.13 Structure chart proses retur
126
Prosespembayaran
Selectnomor
customer
Generatedata Insert record Calculate
data
Readrecord
Showrecord
Selectdata
Selectdata
Datasurat jalan,order, faktur
Insert datapembayaran
Datapembayaran
Total
Nomorcustomer
Datasurat jalan,order, faktur
Datasurat jalan,order, faktur
Hargafaktur &
retur
Updaterecord stok
Showprinting
Validateprinting
Printdata
Yes /No
Dataprinting
Updatestok
Datastok
Dataprinting
Datapembayaran
Gambar 4.14 Structure chart proses pembayaran
pembayaran \\\ a customer
1 lnsert record
7 ? o\n9 1. d S h u ~ i '
record I I I i 1 1 nama 1
4.15 StmGture chart data customer
Data pegawai 1 .,'
Gmbx 4.16 S . l r u a e chmi data pegawai
Data inventcry
Select data 0 #\+ 1 2; \ m
Nornor Rem 1 kDde item
Gambrar 4.18 Struktur menu prosam PT. Jsnbatex
4.2.3 State Transifion Diagram (STD)
I j I
I TampJkan kerntali I I I
halaman login
Pihh Subnt Mewbah sum jalan
PIlih No X)
1 4 M e r w =mi Jdan ' 1 1 I Kembli ke M a m n Menu
Pikh OK Tampilkan halaman
t deta sutilt Jalan r- 7- 7 I I
A I
1 MenuFaMw List No. Sirrat
i I Menu Fakiur
i Prn OK Tampilkan ha%man &ti1 Retw I
I / WlenuRetor rpq lk4 No. M e r
. a J 1
i 1 I + Cancel Kembafi ke habman Menu FaMor
Aih Submii
I / Meogubah Retw meFjadi i Hahman deiii 1 Pembayaran
Re:ur I
I Piiih generate
Menu Pemhayaran
PB~I subma Mengubah Fletur menjad
Submit 1
1 i
Pirth back Kernbali Ire Maman detil Pembkdaran
Gafllbar 4.25 STD Itdarnan pembayvan
ID atau berdasarkan nama)
Nwv Cuitcmer
Tampilkzn halaman pngisian data custcmer bani
I
Piliii Search Tampilkan iist barang (biia berdasatkan ID atau 1 1 berdasarkan mma barang)
Menu lmntory 1
Pilih Seanh Tzrnpiikan liit cusfomer (Ksa berdasarkan I
I ID *tau bem¶asar%an nama pegawai) Search
i
I 1 Menu Pegavai 'J I
! i Input Pegawai _ I ' Pilih M e m LnDut Penawai Earn Baru
Tampilkan k&rnan-pngiskn data pegawai hem
/ Mcmr input j I PegaWi k r u i Wih Confirm
Confirm L I
I 7 Menu Pegawai
, / Menyimpan data pagawaij i baru
Garnbar 4.28 STD halaman pegawai
MuIai Modul m u h Data User Name Masukan Data Password Peririksa ap&& User Name dan Password Bemr Jika User Name dan Password tidak benar m&
Tampilkan Pman "Please Check Again'~our Username and Password" Selain itu
Masuk ke Utama Akhk jika Akhir modut
134
Modul Menu Utama Mulai Modul Jika dipilih Menu Home maka Tampilkan halaman Home Akhir jika Jika dipilih Menu Order maka Tampilkan halaman Order Akhir jika Jika dipilih Menu Surat Jalan maka Tampilkan halaman Surat Jalan Akhir jika Jika dipilih Menu Faktur maka Tampilkan halaman Faktur Akhir jika Jika dipilih Menu Retur maka Tampilkan halaman Retur Akhir jika Jika dipilih Menu Pembayaran maka Tampilkan halaman Pembayaran Akhir jika Jika dipilih Menu Customer maka Tampilkan halaman Customer Akhir jika Jika dipilih Menu Inventory maka Tampilkan halaman Inventory Akhir jika Jika dipilih Menu Pegawai maka Tampilkan halaman Pegawai Akhir jika Jika dipilih Menu Logout maka Tampillkan halaman Login Akhir jika Akhir Modul Modul Menu Order Mulai modul Jika dipilih Menu “New Order” Maka Tampilkan form New Order Pilih Data “Jenis” Masukan Data “Aprrove Date” Masukan Data “Delivery” Pilih Data “Customer” Masukan Data “Lama” Pilih Data “Party” Pilih Data “Status Kirim” Masukan Data “DP” Pilih Data “ESFS”
135
Pilih Data “Berat” Pilih Data “Unit” Masukan Data “Keterangan” Pilih Data “Kode” Pilih Data “Gauge” Masukan Data “Bulat” Masukan Data “Belah” Masukan Data “Gramase” Masukan Data “Potong pinggir” Masukan Data “Cost Print” Masukan Data “Special Soft” Pilih Data “Warna” Pilih Data “Mesin” Masukan Data “KG” Masukan Data “Krg/M” Masukan Data “Add” Masukan Data “Total” Jika dipilih tombol “Submit” Maka Simpan data Pada Database Order
Akhir jika Akhir jika Jika dipilih satu No. SO pada table Maka Tampilkan data detail SO pada table sesuai No. SO yang dipilih Akhir jika Akhir modul Modul Search pada Menu Order Mulai modul Masukan Data “No.So” yang mau disearch Jika dipilih tombol “search” Maka Tampilkan data SO sesuai dengan No.So yang dimasukkan Akhir jika Akhir modul Modul Menu Surat Jalan Mulai modul Pilih Data “Tujuan” Pilih Data “Mobil” Pilih Data “Sopir” Masukkan Data “Satuan” Jika dipilih “No.Order” Maka Tampilkan halaman detail surat jalan Jika dipilih tombol “Submit” Maka Simpan data surat jalan Pada Table surat_jalan dan kirim_detail Tampilkan halaman home
Akhir jika Jika dipilih Menu “back” Maka
136
Tampilkan halaman Surat Jalan Akhir jika Akhir jika Akhir modul Modul Menu Faktur Mulai modul Jika dipilih Data “No. Surat Jalan” Maka Tampilkan halaman detail dari faktur Masukan Data “Tanggal Entry” Masukan Data “Tanggal Serah” Masukan Data “Tanggal Cetak” Pilih Data “Lokasi” Jika dipilih tombol “Submit” Maka
Simpan semua data faktur Pada table faktur Tampilkan halaman home
Akhir jika Akhir jika Akhir modul Modul Menu Retur Mulai modul Jika dipilih Data “No. Order” Maka Tampilkan halaman detail dari retur Masukan Data “Tanggal Entry Masukan Data “Tanggal Cetak Retur” Jika dipilih tombol “Submit” Maka Simpan semua data retur Pada table retur Tampilan halaman home Akhir jika Jika dipilih menu “back” Tampilkan halaman Menu Retur Akhir jika Akhir jika Akhir modul Modul Menu Pembayaran Mulai modul Masukan Data “Customer ID” Jika dipilih tombol “generate” Tampilkan halaman detail pembayaran Pilih Data “Cara Pembayaran” Masukan Data “Bank” Masukan Data “No. cek/giro” Masukan Data “Jatuh Tempo Cek/Giro” Masukan Data “Keterangan”
137
Jika dipilih tombol “Submit” Maka Simpan semua data pembayaran Pada table pembayaran Tampilkan halaman home Akhir jika Jika dipilih menu “back”Maka Tampilkan halaman Menu Pembayaran Akhir jika Akhir jika Akhir modul Modul Customer Mulai modul Jika dipilih menu “New Customer” Maka Tampilkan halaman Input New Customer Masukan Data “Nama Customer” Masukan Data “Contact Person” Masukan Data “Alamat”
Masukan Data “Kota” Masukan Data “NPWP” Masukan Data “Telepon” Masukan Data “Fax” Pilih Data “Sales” Jika dipilih tombol “Confirm” Maka Simpan semua data customer Pada table customer, telepon_cus,
dan fax Tampilkan halaman Menu Customer Akhir jika
Akhir jika Jika dipilih satu customer id pada table Maka Tampilkan halaman detail customer Jika dipilih tombol “back” Tampilkan halaman Menu Customer Akhir jika Akhir jika Akhir modul Modul Search pada Customer Mulai modul Masukan data customer yang mau disearch Jika dipilih tombol “Search”
Jika data customer dimasukan berdasarkan ID Tampilkan data customer sesuai dengan ID yang dimasukan
Akhir jika Jika data customer dimasukan berdasarkan nama
Tampilkan data customer sesuai dengan nama yang dimasukan Akhir jika
Akhir jika
138
Akhir modul Modul Search pada Inventory Mulai modul Masukan data barang yang mau disearch Jika dipilih tombol “Search”
Jika data barang dimasukan berdasarkan ID Tampilkan data barang sesuai dengan ID yang dimasukan
Akhir jika Jika data customer dimasukan berdasarkan nama
Tampilkan data barang sesuai dengan nama yang dimasukan Akhir jika
Akhir jika Akhir modul Modul Pegawai Mulai modul Jika dipilih menu “Input Pegawai Baru” Maka Tampilkan halaman Input New Pegawai Masukan Data “Nama Pegawai” Masukan Data “Alamat” Pilih Data “Jenis Kelamin” Pilih Data “Jabatan” Masukan Data “Telepon” Jika dipilih tombol “Confirm” Simpan semua data pegawai pada table pegawai dan telepon_peg Tampilkan halaman Menu Pegawai
Akhir jika Akhir jika Akhir modul Modul Search pada Pegawai Mulai modul Masukan data pegawai yang mau disearch Jika dipilih tombol “Search”
Jika data pegawai dimasukan berdasarkan ID Tampilkan data pegawai sesuai dengan ID yang dimasukan
Akhir jika Jika data pegawai dimasukan berdasarkan nama
Tampilkan data pegawai sesuai dengan nama yang dimasukan Akhir jika
Akhir jika Akhir modul
4.3 Perancqan Input dm Output
C m s - Peowai- lwmtmy
Hme-bder-SmJsLm-Fwr-ReWr-Pembavaran
SO tist
7-
a r c h W. SO : i
&wbx 44.9 Ranmgian input Mman order
Jenis: n x c a x Aapoye Dab: m-~l-13( Llaery : mx-xx-rr
I I D e w : x m - r n Ssks: rmri-
i Lana: a I* Dada:& C E x
G n s s : n m D'm:axnx T-I : n;rux
-- I C s w : u M&:n M : x %,?lase: x - x
M : -*. nmr W3LOXcXXam:
-
Eanmbar 4.31 bncmgan input Maman detg surat order
1 --
1 m n a - F ' W B G ~ ~ V i
h ~ - S ~ a t J a l M - F ~ - R & - P e m ~ m
Scar@ J* bd i
I !
No.Sirrai J a b : T a m : xx-xx-nrr Sjao-
I
L
I T ~ ~ : ' MOM: 'fl am: / man:- 7 j
I I I
- 2
-bar 4.32 Rancangm input halaman st~ratjalan
T & m r = r u x MOM mmoar Sop:: ma-mmn %bimarmu
k k -- ---
ar 4.33 lhcangan input detif surat jdan
I No. Swat Jam: /- - 1
A I
I --- I i
I I
I
I I I I
NO. Fda: FlOorns;axrmax T a ~ l F a L h l ; - r r - x r - n u
No. Smt J~I~D-
iaw&calmTY: /F/-il Cuilmer : ClaDcrn.00murrx IIw: TxXI.Xm.TUM
sale..romm-rmnam .I-.a..amm irnagal Ssra'1:
i : 'M 1 Lzma:nhaii 3enda:xB D P x ---
Raeur
No. Ra:. RTxrjaroaoouua, i a m ! V x r - x x - r m
Garnbar 4.36 Rancangan input halaman r&
I
Retur I
I No. R e r : R T m n a r a n n T w d : r x - u - x m I
U* h d a b a n g
N m s ham
Uux-m-m
Garbar 4.38 Rmcangm input h a l a m pembayran
ci*ner-mWmd- lrwe Hme-omei- -.,.an . d R F m b s y a r a n
i n w new cuotmar
H a m a C u N m n - / / 1 Contact PRILl, :
, A m a t : 1-
x i
ar 4.41 h m g a n input new customer
Gambar 4 42 Rancmgan input h a l a m inventov
Pegawai List
Waasl13 1 K a m a F z r m s u I *at JBMs Kemmin &batan TdepoO
i arm---
- - 1
i L 1
I 1
Gamba 4.44 Rrancmgm input halarntasl input pegawai baru
148
Sales Order
No SO : xxxxxxxxxxxx
Customer :
Alamat :
Jenis Order :
Tgl Order :
Delivery :
Keterangan :
xxxxxxxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxxx
dd-mm-yyyy
dd-mm-yyyy
xxxxxxxxxxxxx
Lama Bayar :
Bunga :
Party :
Berat : xxxxxxxxxxxxx
xxxxxxxxxxxxx
99
99
hari
%
Nama Barang GramaseColor Matching
Color Approvaljumlah (kg) Harga Jual
Dye Putih
Harga cash(per kg)
xxxxxxxxxxxxx 999 - 999 xxxxxxxdd/mm/yyyy
xxxxxxx 9999.99 9999 99999 99999
999 - 999 xxxxxxxdd/mm/yyyy
xxxxxxx 9999.99 9999 99999 99999
__________, dd mm yyyy
PEMBELI
( )
PENJUAL
( )Control Dept.
( )Sales Dept.
Kode sales : xxxxxxxxxxxx
xxxxxxx
Gambar 4.45 Rancangan output surat order
Nama I No mu: xxxxxxx I xr 9999 xr supir .XILlXXXX I XLKXxiX
TOT& : 99 5999.55
SUPIR ADY. PENJ
e m b a r 4.46 R a n w g m output wrat jalan
Fakbr Penjmian NO SO : mmma
NO :awa : mnnxm~u N O S : X X X X n r X U U X
Nana m. JWTM
Alens : J1. Raya Fasa- Kernis D s a Gem&: T m
N W 01.12D.43?.0.4SZOW
T $ ~ k u l a n W : ZZA&isf989
Tgi Kiiim I went% : d d l l m / w
WmMi B a r
Kode - Kode WPS :XXXXXXXXXXU
Nama ~ a ~ ~ m a ~ a (
A l a d P
NPIW q.xxx.xxx.xm.xx
i 3 Nama Siw j W m 1 Rdl / KG 1 Hawsdm! / Heigajilal
L! ADM SALES
i
Gambar 4.47 EPancangan output hktur
Kewda Nama m. JABATE4
Alarnat : JL Raya Fasai Kemis Desa Gernbor Teanwmmg
NPWP :OI.120.43$.0.402.0U~ Tgl Pengukuhan PKP : 22 ~ g ~ ~ & 1989
Riama brang 1 Roil / KG 1 ttarga Satuan 1 Total I
i Dasar Rngonaan Pajak 1 99989999 { PPN = $0 % X Daser Pengenaan Pajak I _.I
L 1 1
Gambar 4.48 b m g m output retw
Nota Pembayaran No Pemhyaran z x-xrr
Tgi pembayarrn : ddlmmlyyyy
Jenb pernbayaian : x m x x m
Bank - No celr I g b s?B99999999
Jatuh tempo girolce5i : a6 mm yWy
I
, Total
Mysql versi 4.1 ke atas menggumkan resource hardware yang lebih
d u t . Untuk nrenginskal Mysql membuhhkan kurang iebih 32
U B A dan 60 MB bpasitas hard disk.