BAB 4 PEMBAHAS AN, IMPLEMENTAS I, DAN EVALUAS I
4.1
Metode Perancangan Basis Data Pada metode ini, terdapat tiga fase utama yaitu: a.
Perancangan basis data konseptual: merupakan proses pembuatan basis data dari informasi yang digunaan oleh perusahaan.
b.
Perancangan
basis
data
berdasarkan
informasi
logikal: dari
merupakan
perusahaan
pembuatan
dengan
model
menambahkan
hubungannya. c.
Perancangan basis data fisikal: merupakan deskripsi dari implementasi basis data pada secondary storage, pendeskripsian relasi dasar, organisasi file, dan mendesain indeks yang digunakan untuk mencapai akses yang efisien terhadap data dan batasan integritas lainnya yang masih berhubungan serta ukuran-ukuran keamanan.
4.1.1
Perancangan Basis Data Konseptual Langkah 1 Membangun model data konseptual untuk Setiap View Langkah 1.1 Mengidentifikasi Tipe Entitas Hal ini dilakukan agar dapat menidentifikasi entiti-entiti apa saja yang akan diperlukan untuk sistem yang akan dibangun.
99
100
Tabel 4.1 Tabel Identifikasi Tipe-Tipe Entitas Nama Entitas
Deskripsi
Alias
Occurence
Mskaryawan
Berisi data mengenai
Staff
Karyawan
karyawan di CPI yang
menangani proses
berhubungan dengan
penjualan,
proses penjualan,
pengiriman dan
pengiriman dan retur
retur barang.
barang. Mscustomer
Berisi data mengenai
Pelanggan
Pelanggan membeli
pelanggan yang
barang baik dalam
membeli barang di CPI
kapasitas kecil maupun besar.
Msbarang
Salesorder
Berisi data mengenai
Produk
Penjualan barang
barang yang dijual oleh
atas permintaan
CPI
pelanggan.
Berisi data tentang
SO
Satu sales order
barang-barang yang
dibuat oleh satu
dibeli oleh pelanggan
karyawan sales admin.
Deliveryorder
Berisi data tentang
DO
Delivery order akan
barang-barang yang
dibuat setelah ada
dibeli oleh pelanggan
persetujuan dari
101
berdasarkan SO yang
credit control.
telah dibuat. Invoice
Fakturpajak
Berisi data tentang
Inv
Invoice berupa
barang-barang yang
tagihan kepada
dibeli oleh pelanggan
pelanggan atas
berdasarkan SO yang
barang yang telah
telah dibuat.
dipesan.
Berisi data tentang
FP
Faktur pajak berupa
pajak dari barang-
tagihan pajak
barang yang dipesan
kepada pelanggan
oleh pelanggan
atas barang yang
berdasarkan SO yang
telah dipesan.
telah dibuat. Bprp
Tbpk
Berisi data tentang
-
Bprp dibuat setelah
Bukti Persetujuan Retur
ada persetujuan dari
Penjualan atas barang
sales, technical
yang diretur oleh
service atau quality
pelanggan.
control.
Berisi data tentang
-
TBPK dibuat oleh
Tanda Bukti
bagian gudang
Penerimaan Kembali
berdasarkan bukti
atas barang yang diretur
timbang yang telah
oleh pelanggan.
ada.
102
Langkah 1.2 Mengidentifikasi Tipe-Tipe Hubungan Langkah ini dilakukan untuk meidentifikasi hubungan-hubungan penting yang ada di antara entiti yang telah diidentifikasi pada langkah 1.1.
Tabel 4.2 Tabel Identifikasi Tipe-tipe Hubungan Antar Entitas Nama entitas
Multiplicity
Hubungan antar
Nama entitas
Multiplicity
entitas Mskaryawan
Mscustomer
Msbarang
1..1
membuat
Salesorder
0..*
1..1
membuat
Deliverorder
0..*
1..1
membuat
Invoice
0..*
1..1
membuat
Fakturpajak
0..*
1..1
membuat
Bprp
0..*
1..1
membuat
Tbpk
0..*
1..1
memesan
Salesorder
1..*
1..1
mendapatkan
Deliveryorder
1..*
1..1
mendapatkan
Invoice
1..*
1..1
mendapatkan
Fakturpajak
1..*
1..1
mengajukan
BPRP
0..*
1..1
mendapatkan
TBPK
0..*
1..*
dipesan
Salesorder
0..*
1..*
dicantumkan
Deliveryorder
0..*
103
1..*
dicantumkan
Invoice
0..*
1..*
dicantumkan
Fakturpajak
0..*
1..*
dicantumkan
Bprp
0..*
1..*
dicantumkan
Tbpk
0..*
Salesorder
1..1
digunakan untuk
Deliveryorder
1..*
Deliveryorder
1..1
digunakan untuk
Bprp
1..*
1..1
digunakan untuk
Invoice
1..1
1..1
digunakan untuk
Fakturpajak
1..1
1..1
digunakan untuk
Tbpk
1..*
Bprp
Gambar 4.1 Diagram ER
104
Langkah 1.3 Mengidentifikasi Dan Mengumpulkan Atribut-atribut Dengan Entitas Atau Tipe-tipe Hubungan Hal ini perlu dilakukan untuk mendata atribut mana saja yang diperlukan untuk sistem ini berdasarkan entiti dan hubungan yang telah diidentifikasi.
Tabel 4.3 Tabel Atribut Untuk Tiap-tiap Entitas Atau Hubungan Antar Entitas Nama
Atribut
Deskripsi
entitas
Mskaryawan
kdkaryawan
Kode untuk tiap
Tipe dan
Nulls
Multi
Panjang
value
Data
d
9 varchar
No
No
karyawan
Mscustomer
namakaryawan
Nama karyawan
50 varchar
No
No
jeniskelamin
Jenis kelamin
1 int
No
No
alamat
Alamat karyawan
50 varchar
No
No
gambar
Foto karyawan
50 varchar
Yes
No
telepon
Telepon karyawan
20 varchar
No
Yes
email
Email karyawan
30 varchar
Yes
Yes
namajabatan
Jabatan karyawan
20 varchar
No
No
kdcustomer
Kode untuk tiap
9 varchar
No
No
pelanggan namacustomer
Nama pelanggan
50 varchar
No
No
npwp
NPWP pelanggan
50 varchar
No
No
105
Msbarang
alamat
Alamat pelanggan
50 varchar
No
No
telepon
Telepon pelanggan
20 varchar
No
Yes
email
Email pelanggan
30 varchar
Yes
Yes
kdbarang
Kode untuk tiap
9 varchar
No
No
barang
Salesorder
namabarang
Nama barang
50 varchar
No
No
jumlahstok
Jumlah stok barang
11 int
No
No
harga
Harga jual barang
11 int
No
No
namajenisbarang
Jenis barang
50 varchar
No
No
namasatuan
Satuan barang
50 varchar
No
No
kdso
Kode untuk tiap SO
21 varchar
No
No
namakaryawan
Nama karyawan
50 varchar
No
No
yang menanganinya telepon
Telepon karyawan
20 varchar
No
Yes
namacustomer
Nama pelanggan
50 varchar
No
No
yang memesan alamat
Alamat pelanggan
50 varchar
No
No
telepon
Telepon pelanggan
20 varchar
No
Yes
tanggalso
Tanggal SO dibuat
10 varchar
No
No
jangkawaktu
Jangka waktu untuk
2 int
No
No
pembayaran catatan
Catatan untuk SO
50 varchar
No
No
tanggalkirim
Tanggal barang
10 varchar
No
No
106
dikirimkan kdbarang
Kode dari barang
5 varchar
No
No
50 varchar
No
No
50 varchar
No
No
yang dipesan namabarang
Nama barang yang dipesan
namajenisbarang
Nama jenis barang yang dipesan
harga
Harga barang
11 int
No
No
qty
Jumlah barang yang
11 int
No
No
dipesan total
Dari harga dikali qty
11 int
No
No
subtotal
Jumlah dari total
11 int
No
No
ppn
Total dikali ppn
11 int
No
No
grandtotal
subtotal ditambah
11 int
No
No
ppn Deliveryorder
kddo
Kode untuk tiap DO
21 varchar
No
No
kdso
Kode dari SO yang
21 varchar
No
No
50 varchar
No
No
mau dibuat DO-nya namacustomer
Nama pelanggan yang memesan
alamat
Alamat pelanggan
50 varchar
No
No
telepon
Telepon pelanggan
20 varchar
No
Yes
tanggaldo
Tanggal Do dibuat
10 varchar
No
No
107
keterangan
Keterangan untuk
50 varchar
No
No
10 varchar
No
No
50 varchar
No
No
11 int
No
No
22 varchar
No
No
DO nokendaraan
No plat kendaraan yang mengirim barang
namabarang
Nama barang yang dipesan
qty
Jumlah barang yang dipesan
Invoice
kdinv
Kode untuk tiap invoice
tanggalinv
Tanggal inv dibuat
10 varchar
No
No
kddo
Kode dari DO yang
21 varchar
No
No
mau dibuat inv-nya tanggaldo
Tanggal DO dibuat
10 varchar
No
No
tanggalkirim
Tanggal barang
10 varchar
No
No
50 varchar
No
No
11 int
No
No
11 int
No
No
dikirim namabarang
Nama barang yang dipesan
qty
Jumlah barang yang dipesan
harga
Harga barang yang dipesan
108
total
Dari harga dikali qty
11 int
No
No
subtotal
Jumlah dari total
11 int
No
No
ppn
Total dikali ppn
11 int
No
No
grandtotal
subtotal ditambah
11 int
No
No
ppn
Fakturpajak
namacustomer
Nama pelanggan
50 varchar
No
No
alamat
Alamat pelanggan
50 varchar
No
No
telepon
Telepon pelanggan
20 varchar
No
Yes
kdfp
Kode untuk tiap FP
7 varchar
No
No
kdso
Kode dari SO yang
21 varchar
No
No
50 varchar
No
No
50 varchar
No
No
11 int
No
No
mau dibuat fp-nya namakaryawan
Nama karyawan yang membuat FP
namabarang
Nama barang yang dipesan
qty
Jumlah barang yang dipesan
tanggalfp
Tanggal FP dibuat
10 varchar
No
No
total
Dari harga dikali qty
11 int
No
No
subtotal
Jumlah dari total
11 int
No
No
ppn
Total dikali ppn
11 int
No
No
grandtotal
subtotal ditambah
11 int
No
No
ppn
109
Bprp
kdbprp
Kode untuk tiap
21 varchar
No
No
10 varchar
No
No
21 varchar
No
No
50 varchar
No
No
BPRP tanggalbprp
Tanggal BPRP dibuat
kddo
Kode dari Do yang mau dibuat BPRPnya
namakaryawan
Nama karyawan yang membuat BPRP
namacustomer
Nama pelanggan
50 varchar
No
No
alamat
Alamat pelanggan
50 varchar
No
No
telepon
Telepon pelanggan
20 varchar
No
Yes
kdbarang
Kode barang yang
5 varchar
No
No
diretur
Tbpk
namabarang
Nama barang
50 varchar
No
No
qty
Jumlah barang
11 int
No
No
sebabpengembalian
Sebab retur
50 varchar
No
No
kdtbpk
Kode untuk tiap
21 varchar
No
No
10 varchar
No
No
21 varchar
No
No
TBPK tanggaltbpk
Tanggal TBPK dibuat
kdbprp
Kode BPRp yang
110
mau dibuat TBPKnya namakaryawan
Nama karyawan
50 varchar
No
No
yang membuat TBPK namacustomer
Nama pelanggan
50 varchar
No
No
alamat
Alamat pelanggan
50 varchar
No
No
telepon
Telepon pelanggan
20 varchar
No
Yes
kdbarang
Kode barang
5 varchar
No
No
namabarang
Nama barang
50 varchar
No
No
qty
Jumlah barang
11 int
No
No
sebabpengembalian
Sebab pengembalian
50 varchar
No
No
Langkah 1.4 Menentukan Domain Atribut Di sini akan diketahui format inputan dari atribut tertentu.
Tabel 4.4 Tabel identifikasi domain dari tiap atribut Nama entitas
Atribut
Domain
Mskaryawan
kdkaryawan
Berupa 9 karakter dengan format [yyyy][mm][000999].
namakaryawan
M aksimal 50 karakter yang berisi nama karyawan, termasuk spasi.
jeniskelamin
Berupa karakter tunggal yang hanya diisi dengan
111
‘0’ untuk Perempuan, ’ 1’ untuk laki-laki, ‘2’ untuk tidak diketahui. alamat
M aksimal 50 karakter yang berisi alamat karyawan, termasuk spasi.
gambar
M aksimal 50 karakter yang berisi alamat tempat image tersebut disimpan.
telepon
M aksimal 20 karakter yang berisi telepon karyawan, yang harus diisi dengan angka.
email
M aksimal 30 karakter yang berisi email karyawan dengan format
[email protected]
namajabatan
M aksimal 20 karakter yang berisi kabatan karyawan, termasuk spasi.
Mscustomer
kdcustomer
Berupa 9 karakter dengan format [yyyy][mm][000999].
namacustomer
M aksimal 50 karakter yang berisi nama pelanggan, termasuk spasi.
npwp
M aksimal 50 karakter yang berisi NPWP pelanggan, termasuk titik(.) dan garis miring (/).
alamat
M aksimal 50 karakter yang berisi alamat pelanggan, termasuk spasi.
telepon
M aksimal 20 karakter yang berisi telepon pelanggan, yang harus diisi dengan angka.
email
M aksimal 30 karakter yang berisi email pelanggan
112
dengan format
[email protected] Msbarang
kdbarang
Berupa 9 karakter dengan format [yyyy][mm][000999].
namabarang
M aksimal 50 karakter yang berisi nama barang, termasuk spasi.
jumlahstok
Berupa angka yang berisi jumlah stok barang dengan maksimal 11 angka.
harga
Berupa angka yang berisi harga barang dengan maksimal 11 angka.
namajenisbarang
M aksimal 50 karakter yang berisi nama jenis barang, termasuk spasi.
namasatuan
M aksimal 50 karakter yang berisi nama satuan, termasuk spasi.
Salesorder
kdso
Berupa 21 karakter dengan format SO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘SO’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan sales order.
namakaryawan
M aksimal 50 karakter yang berisi nama karyawan yang menangani, termasuk spasi.
telepon
M aksimal 20 karakter yang berisi telepon karyawan
113
yang menangani, dan harus diisi dengan angka. namacustomer
M aksimal 50 karakter yang berisi nama pelanggan yang memesan, termasuk spasi.
alamat
M aksimal 50 karakter yang berisi alamat pelanggan yang memesan, termasuk spasi.
telepon
M aksimal 20 karakter yang berisi telepon pelanggan yang memesan, dan harus diisi dengan angka.
tanggalso
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal SO dibuat.
jangkawaktu
Berupa angka yang berisi jangka waktu untuk pembayaran dengan maksimal 2 angka.
catatan
M aksimal 50 karakter yang berisi catatan SO.
tanggalkirim
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal barang dikirim.
kdbarang
Berupa 9 karakter dengan format [yyyy][mm][000999].
namabarang
M aksimal 50 karakter yang berisi nama barang yang dipesan, termasuk spasi.
namajenisbarang
M aksimal 50 karakter yang berisi nama jenis barang
114
yang dipesan, termasuk spasi. harga
Berupa angka yang berisi harga barang yang dipesan dengan maksimal 11 angka.
qty
Berupa angka yang berisi kwantum dari barang yang dipesan dengan maksimal 11 angka.
total
Berupa angka yang berisi total harga dari barang yang dipesan, didapat dari qty dikali harga, dengan maksimal 11 angka.
subtotal
Berupa angka yang berisi jumlah total harga dari barang yang dipesan dengan maksimal 11 angka.
ppn
Berupa angka yang berisi ppn, yang nilainya 10% dikali sub total, dengan maksimal 11 angka.
grandtotal
Berupa angka yang berisi grand total harga dari barang yang dipesan, didapat dari subtotal ditambah ppn, dengan maksimal 11 angka.
Deliveryorder
kddo
Berupa 21 karakter dengan format DO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘DO’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan delivery order.
kdso
Berupa 21 karakter dengan format
115
SO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘SO’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan sales order, sesuai dengan SO yang dipilih. namacustomer
M aksimal 50 karakter yang berisi nama pelanggan yang memesan, termasuk spasi.
alamat
M aksimal 50 karakter yang berisi alamat pelanggan yang memesan, termasuk spasi.
telepon
M aksimal 20 karakter yang berisi telepon pelanggan yang memesan, dan harus diisi dengan angka.
tanggaldo
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal DO dibuat.
keterangan
M aksimal 50 karakter yang berisi keterangan DO.
nokendaraan
M aksimal 10 karakter yang berisi no plat kendaraan yang mengirim barang.
namabarang
M aksimal 50 karakter yang berisi nama barang yang dikirim, termasuk spasi.
qty
Berupa angka yang berisi kwantum dari barang yang dikirim dengan maksimal 11 angka.
116
Invoice
kdinv
Berupa 22 karakter dengan format INV/abcde/ddmmyyyy/xxx, dimana 3 karakter depan berupa huruf ‘INV’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan invoice.
tanggalinv
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal Invoice dibuat.
kddo
Berupa 21 karakter dengan format DO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘DO’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, vulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan delivery order, sesuai dengan DO yang dipilih.
tanggaldo
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal DO yang dipilih.
117
tanggalkirim
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal barang dikirim.
namabarang
M aksimal 50 karakter yang berisi nama barang yang dipesan, termasuk spasi.
qty
Berupa angka yang berisi kwantum dari barang yang dipesan dengan maksimal 11 angka.
harga
Berupa angka yang berisi harga barang yang dipesan dengan maksimal 11 angka.
total
Berupa angka yang berisi total harga dari barang yang dipesan, didapat dari qty dikali harga, dengan maksimal 11 angka.
subtotal
Berupa angka yang berisi jumlah total harga dari barang yang dipesan dengan maksimal 11 angka.
ppn
Berupa angka yang berisi ppn, yang nilainya 10% dikali sub total, dengan maksimal 11 angka.
grandtotal
Berupa angka yang berisi grand total harga dari barang yang dipesan, didapat dari subtotal ditambah ppn, dengan maksimal 11 angka.
namacustomer
M aksimal 50 karakter yang berisi nama pelanggan yang memesan, termasuk spasi.
alamat
M aksimal 50 karakter yang berisi alamat pelanggan
118
yang memesan, termasuk spasi. telepon
M aksimal 20 karakter yang berisi telepon pelanggan yang memesan, dan harus diisi dengan angka.
Fakturpajak
kdfp
Berupa 7 karakter dengan format xxxxxxx, dimana 7 karakter menunjukkan nomor urutan faktur pajak.
kdso
Berupa 21 karakter dengan format SO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘SO’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan sales order, sesuai dengan SO yang dipilih.
namakaryawan
M aksimal 50 karakter yang berisi nama karyawan yang membuat faktur pajak, termasuk spasi.
namabarang
M aksimal 50 karakter yang berisi nama barang yang dipesan, termasuk spasi.
qty
Berupa angka yang berisi kwantum dari barang yang dipesan dengan maksimal 11 angka.
tanggalfp
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal FP dibuat.
total
Berupa angka yang berisi total harga dari barang
119
yang dipesan, didapat dari qty dikali harga, dengan maksimal 11 angka. subtotal
Berupa angka yang berisi jumlah total harga dari barang yang dipesan dengan maksimal 11 angka.
ppn
Berupa angka yang berisi ppn, yang nilainya 10% dikali sub total, dengan maksimal 11 angka.
grandtotal
Berupa angka yang berisi grand total harga dari barang yang dipesan, didapat dari subtotal ditambah ppn, dengan maksimal 11 angka.
Bprp
kdbprp
Berupa 21 karakter dengan format BP/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘BP’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan BPRP dibuat.
tanggalbprp
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal BPRP dibuat.
kddo
Berupa 21 karakter dengan format DO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘DO’, diikuti 5 karakter
120
berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan delivery order, sesuai dengan DO yang dipilih. namakaryawan
M aksimal 50 karakter yang berisi nama karyawan yang membuat BPRP, termasuk spasi.
namacustomer
M aksimal 50 karakter yang berisi nama pelanggan, termasuk spasi.
alamat
M aksimal 50 karakter yang berisi alamat pelanggan, termasuk spasi.
telepon
M aksimal 20 karakter yang berisi telepon pelanggan, dan harus diisi dengan angka.
kdbarang
Berupa 9 karakter dengan format [yyyy][mm][000999].
namabarang
M aksimal 50 karakter yang berisi nama barang, termasuk spasi.
qty
Berupa angka yang berisi kwantum dari barang yang diretur dengan maksimal 11 angka.
sebabpengembalian
M aksimal 50 karakter yang berisi sebab retur, termasuk spasi.
Tbpk
kdtbpk
Berupa 21 karakter dengan format TB/abcde/ddmmyyyy/xxx, dimana 2 karakter depan
121
berupa huruf ‘TB’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan TBPK dibuat. tanggaltbpk
Berupa 10 karakter dengan format dd-mm-yyyy, dimana yyyy berupa tahun, mm berarti bulan, dan dd berarti tanggal, dengan tanda (-) sebagai pemisah, yang berisi tanggal TBPK dibuat.
kdbprp
Berupa 21 karakter dengan format BP/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘BP’, diikuti 5 karakter berikutnya adalah kode dari pelanggan, 8 karakter selanjutnya merupakan tanggal, bulan dan tahun transaksi, serta 3 karakter selanjutnya menunjukkan nomor urutan BPRP dibuat, sesuai dengan BPRP yang dipilih.
namakaryawan
M aksimal 50 karakter yang berisi nama karyawan yang membuat TBPK, termasuk spasi.
namacustomer
M aksimal 50 karakter yang berisi nama pelanggan, termasuk spasi.
alamat
M aksimal 50 karakter yang berisi alamat pelanggan, termasuk spasi.
telepon
M aksimal 20 karakter yang berisi telepon
122
pelanggan, dan harus diisi dengan angka. kdbarang
Berupa 9 karakter dengan format [yyyy][mm][000999].
namabarang
M aksimal 50 karakter yang berisi nama barang, termasuk spasi.
qty
Berupa angka yang berisi kwantum dari barang yang diretur dengan maksimal 11 angka.
sebabpengembalian
M aksimal 50 karakter yang berisi sebab retur, termasuk spasi.
Langkah 1.5 Menentukan atribut candidate key dan primary key Pada langkah ini, akan didata semua candidate key yang mungkin untuk tiap entiti. Bila hanya ada satu candidate key, sudah pasti itu akan menjadi primary key. Tapi bila ada banyak candidate key, maka dipilih salah satu yang paling unik.
Tabel 4.5 Tabel Candidate Dan Primary Key Nama entitas
Candidate key
Primary key
Mskaryawan
kdkaryawan
Kdkaryawan
namakaryawan telepon email
123
Mscustomer
kdcustomer
Kdcustomer
namacustomer npwp telepon email Msbarang
Kdbarang
Kdbarang
namabarang Salesorder
kdso
Kdso
tanggalso tanggalkirim Deliveryorder
kddo
Kddo
kdso tanggaldo Invoice
kdinv
Kdinv
tanggalinv kddo tanggaldo tanggalkirim Fakturpajak
kdfp
kdfp
kdso tanggalfp Bprp
kdbprp
kdbprp
124
tanggalbprp kddo Tbpk
kdtbpk
kdtbpk
kdbprp tanggalbprp
Gambar 4.2 Diagram ER Dengan Primary Key Yang Telah Ditambahkan
125
Langkah 1.6 Mempertimbangkan penggunaan konsep enhanced modeling (Optional Step) Dalam perancangan ini tidak menggunakan konsep enhanced modeling karenanya langkah ini dilewati saja.
Langkah 1.7 Periksa Model terhadap Redudancy 1.
M engecek ulang hubungan one-to-one (1:1) Seperti yang dapat kita lihat pada gambar, terdapat hubungan one-to-one, tetapi karena hubungan ini bukan mengacu kepada entiti yang sama, atau dengan kata lain satu entiti menunjuk entiti aliasnya. M aka hubungan one-to-one pada gambar, dapat dikatakan benar. Kedua entitas tidak dapat digabungkan.
2. M enghilangkan hubungan yang tidak perlu. a. Hubungan antara M scustomer dengan Deliveryorder, Invoice, Fakturpajak. Hubungan ini dihilangkan karena untuk mengetahui data pelanggan
dan
transaksinya,
cukup
melalui hubungan
Mscustomer dengan Salesorder. Dari Salesorder dapat diketahui hubungan data ke DeliveryOrder, Invoice dan Fakturpajak. b. Hubungan antara M scustomer dengan BPRP dan TBPK. Hubungan ini dihilangkan karena untuk mengetahui data pelanggan dan transaksi returnya, cukup melalui hubungan Deliveryorder dan BPRP. BPRP akan berhubungan dengan TBPK.
126
Seperti yang telah dijelaskan di bagian a, Deliveryorder berhubungan
me mbu at
dican tum kan
dip esan
d igun aka n
dengan Salesorder, yang berhubungan dengan M scustomer.
m emb ua t
m em bua t
d icant umka n
dica ntum kan
me mb uat
d icant umk an
dican tum kan digu naka n
Gambar 4.3 Diagram ER yang sudah tidak redundancy
127
Langkah 1.8 Validasi model konseptual lokal terhadap transaksi user Sasarannya : untuk meyakinkan bahwa local conceptual model mendukung transaksi pada sistem ini.
Gambar 4.4 Pathway Untuk Model Konseptual Lokal
128
Keterangan pathway: 1. Daftar data pelanggan berdasarkan kode customer. 2. Daftar data sales order berdasarkan kode sales order. 3. Daftar data tentang karyawan berdasarkan kode karyawan. 4. Daftar data tentang delivery order berdasarkan kode delivery order. 5. Daftar data tentang invoice berdasarkan kode invoice. 6. Daftar data tentang barang berdasarkan kode barang. 7. Daftar data tentang faktur pajak berdasarkan kode faktur pajak. 8. Daftar data tentang BPRP berdasarkan kode BPRP. 9. Daftar data tentang TBPK berdasarkan kode TBPK. 10. Informasi tentang sales order yang dipesan oleh seorang pelanggan. Informasi tentang pelanggan yang memesan suatu sales order. 11. Informasi tentang delivery order yang dibuat dari sales order yang telah disetujui oleh Credit Control. Informasi tentang sales order yang dibuatkan delivery ordernya. 12. Informasi tentang barang yang akan dicantumkan pada delivery order. Informasi tentang delivery order yang mencantumkan suatu barang. 13. Informasi tentang karyawan yang membuat delivery order. Informasi tentang delivery order yang dibuat oleh karyawan. 14. Informasi tentang delivery order yang dibuatkan invoicenya. Informasi tentang invoice yang dibuat dari delivery order yang telah disetujui oleh Credit Control. 15. Informasi tentang delivery order yang dibuatkan faktur pajaknya.
129
Informasi tentang faktur pajak yang dibuat dari delivery order yang telah disetujui oleh Credit Control. 16. Informasi tentang BPRP yang dibuat dari delivery order yang diajukan pelanggan. Informasi tentang delivery order yang mendasari pembuatan BPRP. 17. Informasi tentang barang yang dicantumkan pada invoice. Informasi tentang invoice yang mencantumkan suatu barang. 18. Informasi tentang karyawan yang membuat invoice. Informasi tentang invoice yang dibuat oleh karyawan. 19. Informasi tentang barang yang dicantumkan pada sales order. Informasi tentang sales order yang mencantumkan suatu barang. 20. Informasi tentang barang yang dicantumkan pada TBPK. Informasi tentang TBPK yang mencantumkan suatu barang. 21. Informasi tentang barang yang dicantumkan pada faktur pajak. Informasi tentang faktur pajak yang mencantumkan suatu barang. 22. Informasi tentang barang yang dicantumkan pada BPRP. Informasi tentang BPRP yang mencantumkan suatu barang. 23. Informasi tentang karyawan yang membuat faktur pajak. Informasi tentang faktur pajak yang dibuat oleh karyawan. 24. Informasi tentang karyawan yang membuat BPRP. Informasi tentang BPRP yang dibuat oleh karyawan. 25. Informasi tentang karyawan yang membuat TBPK. Informasi tentang TBPK yang dibuat oleh karyawan.
130
26. Informasi tentang BPRP yang dibuatkan TBPKnya. Informasi TBPK yang dibuat berdasarkan BPRP yang dimaksud. 27. Informasi tentang karyawan yang membuat sales order. Informasi tentang sales order yang dibuat oleh karyawan.
Langkah 1.9 Tinjau kembali model data konseptual lokal bersama dengan user. M odel data konseptual lokal merupakan representasi sebenarnya dari transaksi user. M odel data konseptual ini termasuk Entity Relationship
Diagram
dan
dokumentasi
pendukung
yang
mendeskripsikan model data.
4.1.2
Perancangan Basis Data Logikal untuk Model Relational Langkah 2 Membuat dan Validasi Data Model Logikal untuk setiap view Untuk membangun sebuah local logical data model harus diketahui apa saja view-nya (pada perancangan ini hanya ada view dari sisi karyawan). Kemudian akan divalidasi menggunakan normalisasi.
Langkah 2.1 Hilangkan fitur-fitur yang tidak kompatibel dengan model relasional (Optional Step) Pada langkah ini, akan dilakuan penyederhanaan dan pembenaran pada local conceptual data agar sesuai dengan relational model.
131
1. M enghilangkan hubungan many-to-many a. Hubungan antara Salesorder dengan M sbarang
Gambar 4.5 Hubungan Antara S alesorder Dengan Msbarang Pada gambar (a) terlihat relasi yang belum dipecah, gambar (b) sebagai hasilnya.
Tabel 4.6 Tabel Hubungan Antara S alesorder Dengan Msbarang Nama entitas
Multiplicity
Relationship
Nama entitas
Multiplicity
Msbarang
1..1
dibutuhkan
Detailsalesorder
0..*
Salesorder
1..1
Perlu
Detailsalesorder
1..*
132
b. Hubungan Deliveryorder dengan M sbarang
Gambar 4.6 Hubungan Deliveryorder Dengan Msbarang Pada gambar (a) terlihat relasi yang belum dipecah, gambar (b) sebagai hasilnya.
Tabel 4.7 Tabel Hubungan Deliveryorder Dengan Msbarang Nama entitas
Multiplicity
Relationship Nama entitas
Multiplicity
Msbarang
1..1
dibutuhkan
Detaildeliveryorder
0..*
Deliveryorder
1..1
Perlu
Detaildeliveryorder
1..*
133
c. Hubungan Invoice dengan M sbarang
Gambar 4.7 Hubungan Invoice Dengan Msbarang Pada gambar (a) terlihat relasi yang belum dipecah, gambar (b) sebagai hasilnya.
Tabel 4.8 Tabel Hubungan Invoice Dengan Msbarang Nama entitas
Multiplicity Relationship
Nama entitas Multiplicity
Msbarang
1..1
dibutuhkan
Detailinvoice
0..*
Invoice
1..1
Perlu
Detailinvoice
1..*
134
d. . Hubungan Fakturpajak dengan M sbarang Msbarang kdbaran g{PK}
1..*
dipesan
Fakturp ajak 0 ..* kd fp{P K}
qty
(a)
Msb arang
1..1
dibutuhkan
kd barang{ PK}
0..* Detailfakturp ajak
1..*
pe rlu
1..1 Faktu rpajak
qty
kdfp{PK}
(b)
Gambar 4.8 Hubungan Fakturpajak Dengan Msbarang Pada gambar (a) terlihat relasi yang belum dipecah, gambar (b) sebagai hasilnya.
Tabel 4.9 Tabel Hubungan Fakturpajak Dengan Msbarang Nama entitas
Multiplicity Relationship
Nama entitas
Msbarang
1..1
dibutuhkan
Detailfakturpajak 0..*
Fakturpajak
1..1
Perlu
Detailfakturpajak 1..*
Multiplicity
135
e. Hubungan Bprp dengan M sbarang
Gambar 4.9 Hubungan Bprp Dengan Msbarang Pada gambar (a) terlihat relasi yang belum dipecah, gambar (b) sebagai hasilnya.
Tabel 4.10 Tabel Hubungan Bprp Dengan Msbarang Nama entitas
Multiplicity Relationship
Nama entitas
Multiplicity
Msbarang
1..1
dibutuhkan
Detailbprp
0..*
Bprp
1..1
Perlu
Detailbprp
1..*
136
f. Hubungan Tbpk dengan M sbarang
Gambar 4.10 Hubungan Tbpk Dengan Msbarang Pada gambar (a) terlihat relasi yang belum dipecah, gambar (b) sebagai hasilnya.
Tabel 4.11 Tabel Hubungan Tbpk Dengan Msbarang Nama entitas
Multiplicity Relationship
Nama entitas
Multiplicity
Msbarang
1..1
dibutuhkan
Detailtbpk
0..*
Tbpk
1..1
Perlu
Detailtbpk
1..*
137
2. M enghilangkan atribut yang mempunyai banyak nilai. a. Hubungan M scustomer dengan Teleponcustomer dan Emailcustomer.
Gambar 4.11 Mscustomer
Keterangan: Jadi karena telepon dan email mempunyai banyak nilai, maka akan lebih baik bila dibuat entiti sendiri, yaitu Teleponcustomer dan Emailcustomer.
138
b. Hubungan antara M skaryawan dengan Teleponkaryawan dan Emailkaryawan
Gambar 4.12 Mskaryawan
Keterangan: Begitu pula dengan M skaryawan karena telepon dan email mengandung banyak nilai maka sebaiknya dipisahkan menjadi entiti tersendiri, yaitu Teleponkaryawan dan Emailkaryawan.
139
Langkah 2.2 Dapatkan relasi untuk Model Data Logikal Lokal Untuk membuat hubungan-hubungan dari local logical data model untuk menampilkan entiti, hubungan, dan atribut yang telah diidentifikasi. 1. Strong Entity Types Strong entity adalah entity asal dari weak entity. Yang merupakan strong entity dalam basis data CPI ini adalah: a. Mskaryawan dengan primary key: kdkaryawan. b. Mscustomer dengan primary key: kdcustomer. c. Msbarang dengan primary key: kdbarang. d. Salesorder dengan primary key: kdso. e. Deliveryorder dengan primary key: kddo. f. Invoice dengan primary key: kdinv. g. Fakturpajak dengan primary key: kdfp. h. Bprp dengan primary key: kdbprp. i. Tbpk dengan primary key: kdtbpk.
2. Weak Entity Types Weak entity pada mulanya belum mempunyai primary key. Primary key didapat dari strong entity. Weak entity dalam basis data CPI adalah: a. Detailsalesorder b. Detaildeliveryorder
140
c. Detailinvoice d. Detailfakturpajak e. Detailbprp f. Detailtbpk
3. One-to-many (1:*) Binary Relationship Types a. Relasi 1:* M skaryawan dengan Salesorder adalah satu karyawan dapat membuat satu atau banyak sales order.
Mskaryawan (kdkaryawan,
S alesorder (kdso, kdkaryawan,
namakaryawan, jeniskelamin, alamat,
namakaryawan, telepon,
gambar, telepon, email, namajabatan)
namacustomer, alamat, telepon,
Primary key: kdkaryawan
tanggalso, jangkawaktu, catatan, tanggalkirim, kdbarang, namabarang, namajenisbarang, harga, qty, total, subtotal, ppn, grandtotal) Primary key: kdso Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
141
b. Relasi 1:* M skaryawan dengan Deliveryorder adalah satu karyawan dapat membuat satu atau banyak Delivery order.
Mskaryawan (kdkaryawan,
Deliveryorder (kddo, kdso,
namakaryawan, jeniskelamin, alamat,
kdkaryawan, namacustomer, alamat,
gambar, telepon, email, namajabatan)
telepon, tanggaldo, keterangan,
Primary key: kdkaryawan
nokendaraan, namabarang, qty) Primary key: kddo Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
c. Relasi 1:* M skaryawan dengan Invoice adalah satu karyawan dapat membuat satu atau banyak Invoice.
Mskaryawan (kdkaryawan,
Invoice (kdinv, kdkaryawan,
namakaryawan, jeniskelamin, alamat,
tanggalinv, kdso,
gambar, telepon, email, namajabatan)
tanggalso, tanggalkirim, jangkawaktu,
Primary key: kdkaryawan
namabarang, qty, harga, total, subtotal, ppn, grandtotal, terbilang, keterangan, namacustomer, alamat, telepon) Primary key: kdinv Foreign key: kdkaryawan references
142
Mskaryawan (kdkaryawan)
d. Relasi 1:* M skaryawan dengan Faktur pajak adalah satu karyawan dapat membuat satu atau banyak Faktur pajak.
Mskaryawan (kdkaryawan,
Fakturpajak (kdfp, kdso,
namakaryawan, jeniskelamin, alamat,
kdkaryawan, namakaryawan,
gambar, telepon, email, namajabatan)
namabarang, qty, tanggalfp, total,
Primary key: kdkaryawan
subtotal, ppn, grandtotal) Primary key: kdfp Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
e. Relasi 1:* M skaryawan dengan Bprp adalah satu karyawan dapat membuat satu atau banyak Bukti Persetujuan Retur Penjualan.
Mskaryawan (kdkaryawan,
Bprp (kdbprp, tanggalbprp, kddo,
namakaryawan, jeniskelamin, alamat,
kdkaryawan, namakaryawan,
gambar, telepon, email, namajabatan)
namacustomer, alamat, telepon,
Primary key: kdkaryawan
kdbarang, namabarang, qty, sebabpengembalian) Primary key: kdbprp
143
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
f. Relasi 1:* M skaryawan dengan Tbpk adalah satu karyawan dapat membuat satu atau banyak Tanda Bukti Penerimaan Kembali.
Mskaryawan (kdkaryawan,
Tbpk (kdtbpk, tanggaltbpk, kdbprp,
namakaryawan, jeniskelamin, alamat,
kdkaryawan, namakaryawan,
gambar, telepon, email, namajabatan)
namacustomer, alamat, telepon,
Primary key: kdkaryawan
kdbarang, namabarang, qty, sebabpengembalian) Primary key: kdtbpk Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
g. Relasi 1:* M scustomer dengan Salesorder adalah satu karyawan dapat memesan satu atau banyak Sales order.
Mscustomer(kdcustomer,
S alesorder (kdso, kdkaryawan,
namacustomer, npwp, alamat, telepon,
namakaryawan, telepon, kdcustomer,
email)
namacustomer, alamat, telepon,
Primary key: kdcustomer
tanggalso, jangkawaktu, catatan, tanggalkirim, kdbarang, namabarang,
144
namajenisbarang, harga, qty, total, subtotal, ppn, grandtotal) Primary key: kdso Foreign key: kdcustomer references Mscustomer (kdcustomer)
h. Relasi 1:* Salesorder dengan Deliveryorder adalah satu salesorder dapat dibuatkan satu atau banyak deliveryorder.
S alesorder (kdso, kdkaryawan,
Deliveryorder (kddo, kdso,
namakaryawan, telepon, kdcustomer,
kdkaryawan, kdcustomer,
namacustomer, alamat, telepon,
namacustomer, alamat, telepon,
tanggalso, jangkawaktu, catatan,
tanggaldo, keterangan, nokendaraan,
tanggalkirim, kdbarang, namabarang,
namabarang, qty)
namajenisbarang, harga, qty, total,
Primary key: kddo
subtotal, ppn, grandtotal)
Foreign key: kdso references
Primary key: kdso
Salesorder (kdso)
i. Relasi 1:* BPRP dengan TBPK adalah satu BPRP dapat dibuatkan satu atau banyak TBPK.
Bprp (kdbprp, tanggalbprp, kddo,
Tbpk (kdtbpk, tanggaltbpk, kdbprp,
145
kdkaryawan, namakaryawan,
kdkaryawan, namakaryawan,
namacustomer, alamat, telepon,
namacustomer, alamat, telepon,
kdbarang, namabarang, qty,
kdbarang, namabarang, qty,
sebabpengembalian)
sebabpengembalian)
Primary key: kdbprp
Primary key: kdtbpk Foreign key: kdbprp references BPRP (kdbprp)
j. Relasi 1:* Deliveryorder dengan Bprp adalah delivery order digunakan untuk satu Bukti Persetujuan Retur Penjualan.
Deliveryorder (kddo, kdso,
Bprp (kdbprp, tanggalbprp, kddo,
kdkaryawan, kdcustomer,
kdkaryawan, namakaryawan,
namacustomer, alamat, telepon,
namacustomer, alamat, telepon,
tanggaldo, keterangan, nokendaraan,
kdbarang, namabarang, qty,
namabarang, qty)
sebabpengembalian)
Primary key: kddo
Primary key: kdbprp Foreign key: kddo references Deliveryorder (kddo)
146
4. One-to-one (1:1) Binary Relationship Types Mandatory participation on one side of 1:1 relationship a. Relasi 1:1 Deliveryorder dengan Invoice adalah satu delivery order digunakan untuk satu invoice.
Deliveryorder (kddo, kdso,
Invoice (kdinv, kdkaryawan,
kdkaryawan, kdcustomer,
kdcustomer, tanggalinv, kddo,
namacustomer, alamat, telepon,
tanggalso, tanggalkirim, jangkawaktu,
tanggaldo, keterangan, nokendaraan,
namabarang, qty, harga, total, subtotal,
namabarang, qty)
ppn, grandtotal, terbilang, keterangan,
Primary key: kddo
namacustomer, alamat, telepon) Primary key: kdinv Foreign key: kddo references Deliveryorder (kddo)
b. Relasi 1:1 Deliveryorder dengan Fakturpajak adalah delivery order digunakan untuk satu faktur pajak.
Deliveryorder (kddo, kdso,
Fakturpajak (kdfp, kdkaryawan,
kdkaryawan, kdcustomer,
kdcustomer, kddo, namakaryawan,
namacustomer, alamat, telepon,
namabarang, qty, tanggalfp, total,
tanggaldo, keterangan, nokendaraan,
subtotal, ppn, grandtotal)
namabarang, qty)
Primary key: kdfp
147
Primary key: kddo
Foreign key: kddo references Deliveryorder (kddo)
Tabel 4.12 Relasi-relasi dari View Karyawan Mskaryawan (kdkaryawan, namakaryawan, jeniskelamin, alamat, gambar, namajabatan) Primary key: kdkaryawan Teleponkaryawan (telepon, kdkaryawan) Primary key: telepon Foreign key: kdkaryawan references M skaryawan (kdkaryawan) Emailkaryawan (email, kdkaryawan) Primary key: email Foreign key: kdkaryawan references M skaryawan (kdkaryawan) Mscustomer (kdcustomer, namacustomer, npwp, alamat) Primary key: kdcustomer Teleponcustomer (telepon, kdcustomer) Primary key: telepon Foreign key: kdcustomer references M scutomer (kdcustomer) Emailcustomer (email, kdcustomer) Primary key: email Foreign key: kdcustomer references M scutomer (kdcustomer) Msbarang (kdbarang, namabarang, jumlahstok, harga, namajenisbarang,
148
namasatuan) Primary key: kdbarang S alesorder (kdso, kdkaryawan,
Detailsalesorder (kdso, kdbarang, qty)
namakaryawan, telepon, kdcustomer,
Primary key: kdso
namacustomer, alamat, telepon,
Foreign key: kdso references Salesorder
tanggalso, jangkawaktu, catatan,
(kdso)
tanggalkirim, kdbarang, namabarang,
Foreign key: kdbarang references
namajenisbarang, harga, qty, total,
Msbarang (kdbarang)
subtotal, ppn, grandtotal) Primary key: kdso Foreign key: kdkaryawan references Mskaryawan (kdkaryawan) Foreign key: kdcustomer references Mscustomer (kdcustomer) Foreign key: kdbarang references Msbarang (kdbarang) Deliveryorder (kddo, kdso,
Detaildeliveryorder (kddo, kdbarang,
kdkaryawan, kdcustomer,
qty)
namacustomer, alamat, telepon,
Primary key: kddo
tanggaldo, keterangan, nokendaraan,
Foreign key: kddo references
namabarang, qty)
Deliveryorder (kddo)
Primary key: kddo
Foreign key: kdbarang references
Foreign key: kdkaryawan references
Msbarang (kdbarang)
149
Mskaryawan (kdkaryawan) Foreign key: kdcustomer references Mscustomer (kdcustomer) Foreign key: kdso references Salesorder (kdso) Invoice (kdinv, kdkaryawan,
Detailinvoice (kdinv, kdbarang, qty)
kdcustomer, tanggalinv, kddo,
Primary key: kdiv
tanggalso, tanggalkirim, jangkawaktu,
Foreign key: kdinv references Invoice
namabarang, qty, harga, total, subtotal,
(kdinv)
ppn, grandtotal, terbilang, keterangan,
Foreign key: kdbarang references
namacustomer, alamat, telepon)
Msbarang (kdbarang)
Primary key: kdinv Foreign key: kddo references Deliveryorder (kddo) Foreign key: kdkaryawan references Mskaryawan (kdkaryawan) Foreign key: kdcustomer references Mscustomer (kdcustomer) Fakturpajak (kdfp, kdkaryawan,
Detailfakturpajak (kdfp, kdbarang, qty)
kdcustomer, kddo, namakaryawan,
Primary key: kdfp
namabarang, qty, tanggalfp, total,
Foreign key: kdfp references
subtotal, ppn, grandtotal)
Fakturpajak (kdfp)
Primary key: kdfp
Foreign key: kdbarang references
150
Foreign key: kddo references
Msbarang (kdbarang)
Deliveryorder (kddo) Foreign key: kdkaryawan references Mskaryawan (kdkaryawan) Foreign key: kdcustomer references Mscustomer (kdcustomer) Bprp (kdbprp, tanggalbprp, kddo,
Detailbprp (kdbprp, kdbarang, qty,
kdkaryawan, namakaryawan,
sebabpengembalian)
namacustomer, alamat, telepon,
Primary key: kdbprp
kdbarang, namabarang)
Foreign key: kdbprp references Bprp
Primary key: kdbprp
(kdbprp)
Foreign key: kddo references
Foreign key: kdbarang references
Deliveryorder (kddo)
Msbarang (kdbarang)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan) Tbpk (kdtbpk, tanggaltbpk, kdbprp,
Detailtbpk (kdtbpk, kdbarang, qty,
kdkaryawan, namakaryawan,
sebabpengembalian)
namacustomer, alamat, telepon,
Primary key: kdtbpk
kdbarang, namabarang)
Foreign key: kdtbpk references Tbpk
Primary key: kdtbpk
(kdtbpk)
Foreign key: kdbprp references Bprp
Foreign key: kdbarang references
(kdbprp)
Msbarang (kdbarang)
Foreign key: kdkaryawan references
151
Mskaryawan (kdkaryawan) Foreign key: kdbarang references Msbarang (kdbarang)
Langkah 2.3 Memvalidasikan Hubungan Menggunakan Normalisasi Langkah ini sangat berguna agar kita dapat menggunakan atribut yang efektif untuk sistem ini. Jangan sampai terdapat redundansi, dan agar sistem terjaga konsistensinya. UNF Pada langkah ini, harus di data apa saja atribut yang ada di output dari sistem. 1. S alesorder = kdso + namakaryawan + telepon + namacustomer + alamat + telepon + tanggalso + jangkawaktu + catatan + tanggalkirim + ( no + kdbarang + namabarang + namajenisbarang + harga + qty + total) + subtotal + ppn + grandtotal 2. Deliveryorder = kddo + kdso + namacustomer + alamat + telepon + tanggaldo + keterangan + nokendaraan + (namabarang + qty) 3. Invoice = kdinv + tanggalinv + kddo + tanggalso + tanggalkirim + jangkawaktu + (namabarang + qty + harga +
152
total ) + subtotal + ppn + grandtotal + terbilang + keterangan + namacustomer + alamat + telepon 4. Fakturpajak = kdfp + kddo + namakaryawan + tanggalfp + ( namabarang + qty + total ) + subtotal + ppn + grandtotal 5. Bprp = kdbprp + tanggalbprp + kddo + namakaryawan + namacustomer + alamat + telepon + ( kdbarang + namabarang + qty + sebabpengembalian ) 6. Tbpk = kdtbpk + tanggaltbpk + kdbprp + namakaryawan + namacustomer + alamat + telepon + ( kdbarang + namabarang + qty + sebabpengembalian )
1NF Pada langkah ini harus dihilangkan derived attribut, hilangkan perulangandan memberikan primary key. 1. S alesorder = @kdso + namakaryawan + telepon + namacustomer + alamat + telepon + tanggalso + jangkawaktu + catatan + tanggalkirim 2. Detailsalesorder = @kdso + kdbarang + namabarang + namajenisbarang + harga + qty 3. Deliveryorder = @kddo + kdso + namacustomer + alamat + telepon + tanggaldo + keterangan + nokendaraan 4. Detaildeliveryorder = @kddo + namabarang + qty
153
5. Invoice = @kdinv + tanggalinv + kddo + tanggalso + tanggalkirim + jangkawaktu + keterangan + namacustomer + alamat + telepon 6. Detailinvoice = @kdinv + namabarang + qty + harga 7. Fakturpajak = @kdfp + kddo + namakaryawan + tanggalfp 8. Detailfakturpajak = @kdfp + namabarang + qty 9. Bprp = @kdbprp + tanggalbprp + kddo + namakaryawan + namacustomer + alamat + telepon 10. Detailbprp = @kdbprp + kdbarang + namabarang + qty + sebabpengembalian 11. Tbpk = @ kdtbpk + tanggaltbpk + kdbprp + namakaryawan + namacustomer + alamat + telepon 12. Detailtbpk = @ kdtbpk + kdbarang + namabarang + qty + sebabpengembalian
2NF Akan dihilangkan ketergantungan parsial (ketergantungan non key ke key) pada langkah yang satu ini. 1. S alesorder = @kdso + namakaryawan + telepon + namacustomer + alamat + telepon + tanggalso + jangkawaktu + catatan + tanggalkirim 2. Detailsalesorder = @kdso + #kdbarang + qty
154
3. Msbarang = @kdbarang + namabarang + jumlahstok + harga + namajenisbarang + namasatuan 4. Deliveryorder = @kddo + kdso + namacustomer + alamat + telepon + tanggaldo + keterangan + nokendaraan 5. Detaildeliveryorder = @kddo + #kdbarang + qty 6. Invoice = @kdinv + tanggalinv + kddo + tanggalso + tanggalkirim + jangkawaktu + keterangan + namacustomer + alamat + telepon 7. Detailinvoice = @kdinv + #kdbarang + qty 8. Fakturpajak = @kdfp +kddo + namakaryawan + tanggalfp 9. Detailfakturpajak = @kdfp + #kdbarang + qty 10. Bprp = @kdbprp + tanggalbprp + kddo + namakaryawan + namacustomer + alamat + telepon 11. Detailbprp = @kdbprp + #kdbarang + qty + sebabpengembalian 12. Tbpk = @ kdtbpk + tanggaltbpk + kdbprp + namakaryawan + namacustomer + alamat + telepon 13. Detailtbpk = @ kdtbpk + #kdbarang + qty + sebabpengembalian
3NF Pada langkah ini akan dihilangkan ketergantungan transitif antara non key dengan non key. Dan karena data model ini cukup
155
sederhana, ini adalah langkah terakhir dari normalisasi yang dilakukan. 1. S alesorder = @kdso + #kdkaryawan + #kdcustomer + tanggalso + jangkawaktu + catatan + tanggalkirim 2. Detailsalesorder = @kdso + #kdbarang + qty 3. Msbarang = @kdbarang + namabarang + jumlahstok + harga + #kdjenisbarang + #kdsatuan 4. Msjenisbarang = @kdjenisbarang + namajenisbarang 5. Mssatuan = @kdsatuan + namasatuan 6. Mskaryawan = @kdkaryawan + namakaryawan + #kdjabatan + jeniskelamin + alamat + gambar 7. Msjabatan = @kdjabatan + namajabatan 8. Teleponkaryawan = @telepon + #kdkaryawan 9. Emailkaryawan = @email + #kdkaryawan 10. Mscustomer = @kdcustomer + namacustomer + npwp + alamat 11. Teleponcustomer = @telepon + #kdcustomer 12. Emailcustomer = @email + #kdcustomer 13. Deliveryorder = @kddo + #kdso + #kdkaryawan + tanggaldo + keterangan + nokendaraan 14. Detaildeliveryorder = @kddo + #kdbarang + qty 15. Invoice = @kdinv + tanggalinv + #kddo + keterangan + #kdkaryawan
156
16. Detailinvoice = @kdinv + #kdbarang + qty 17. Fakturpajak = @kdfp + #kddo +#kdkaryawan + tanggalfp 18. Detailfakturpajak = @kdfp + #kdbarang + qty 19. Bprp = @kdbprp + tanggalbprp + #kddo + #kdkaryawan 20. Detailbprp = @kdbprp + #kdbarang + qty + sebabpengembalian 21. Tbpk = @ kdtbpk + tanggaltbpk + #kdbprp + #kdkaryawan 22. Detailtbpk = @ kdtbpk + #kdbarang + qty + sebabpengembalian
T eleponcust omer T eleponkaryawan PK
telep on
F K1
kdkaryawan
tel epo n
PK
emai l
F K1
kdcust omer
FK 1
kdcust om er
m embuat
1..*
B prp
0..*
1..*
PK
kd bpr p
FK 1 FK 2
kddo kdkaryawan t anggalbp rp
1..1
1..* M sjabat an E m ailkaryawan
kdkaryawan
1..1 P K
1..1 F K1
kdj abata n namakaryawan jeniskelam in alam at gamba r
1..1
1..1
0..* F K1 F K2 m em buat
1..1
m em buat
1..1
1..1
digunakan
m embuat
1..*
P K, FK1
kdso
F K2
kdbarang qty
kd do
FK 2
kdddo kdbarang qt y
M sj enisbarang
perlu
1..1
PK
1..1
kd karyawan kd so tangga ldo ke terangan nokendaraan
kdb prp
FK 2
kdbarang qt y sebabpengem bali an
kdj eni sbaran g nama jenisbarang
0..* 1..1
1..1
0..*
m em buat
1..* T bpk M ssat uan
PK
kdb aran g
FK 1
kdjeni sbarang nam abarang jum lahst ok harga kdsatuan
FK 2
1..1
1..1
p unya
1..1 P K
0..*
kdsatu an nam asa tuan
1..1
PK
kdtb pk
FK 1 FK 2
kdbprp kdkaryawa n t anggalt bpk
1..1
di butuhkan
1..1
1..*
Det ailt bpk dibut uhkan
0..*
PK, FK1
kd tb pk
FK 2
kdbarang sebabpen gembal ian qt y
dibut uhkan
0..*
Invoice
1..1
PK
kdi nv
FK 1 FK 2
kdkaryawan kddo ta nggalinv
Det ailI nvoice perlu
1..1 mem buat
Detai lbprp PK, FK1
Msbarang
1..1
F akturpajak PK
1..*
PK, FK1
1..*
1..1
1..* Det aildeli veryorder
kddo
digunakan
0..*
kdbarang q ty
1..1
Del iveryorder
F K1 F K2
nam acustom er npwp al amat
Detai lsalesorder
1..*
perlu
Det ail FakturP ajak
kd karyawan kd cust omer tangga lso jangkawaktu ca tat an tangga lkirim
1..1
0..* P K
kd customer
kdso
punya
1..1 1..1
PK
kdkaryaw an
1..1
Mscustom er
digunakan
PK
dibutuhkan
Mskaryawan
1..1
Sal esorder
di gunakan
punya
1..* 1..1
1..1 1..1
P K,F K1 k dfp
1..1
m emesan
punya
punya
1..1
e ma il
F K1
perlu
nam ajabat an
PK
Perlu
1..* kd jab atan
1..*
punya
punya
digu naka n
PK
FK 2
Em ail cu st om er
PK
0..*
P K,F K1 kd in v
1..* FK 2
kdbarang qt y
kd fp
1..1 FK 1 kddo FK 2 pe rl u
kdkarya wa n t anggalf p
157
157
Gambar 4.13 ERD Logical
158
Langkah 2.4 Validasi Relasi terhadap Transaksi Pengguna Sasarannya: untuk meyakinkan bahwa local logical data model mendukung transaksi-transaksi yang dibutuhkan oleh sistem.
Gambar 4.14 U ser Transactions
159
Keterangan : 1. Daftar data tentang karyawan berdasarkan kode karyawan 2. Daftar data tentang telepon karyawan berdasarkan kode karyawan. 3. Daftar data tentang email karyawan berdasarkan kode karyawan. 4. Daftar data jabatan berdasarkan kode jabatan. 5. Daftar data pelanggan berdasarkan kode customer. 6. Daftar data tentang email pelanggan berdasarkan kode customer. 7. Daftar data tentang telepon pelanggan berdasarkan kode customer. 8. Daftar data sales order berdasarkan kode sales order. 9. Daftar data tentang kode barang dan kuantitas berdasarkan kode sales order. 10. Daftar data tentang BPRP berdasarkan kode BPRP. 11. Daftar data tentang perincian dari BPRP berdasarkan kode BPRP. 12. Daftar data tentang delivery order berdasarkan kode delivery order. 13. Daftar data tentang invoice berdasarkan kode invoice. 14. Daftar data tentang TBPK berdasarkan kode TBPK. 15. Daftar data tentang faktur pajak berdasarkan kode faktur pajak. 16. Daftar data tentang perincian dari faktur pajak berdasarkan kode faktur pajak. 17. Daftar data tentang perincian dari delivery order berdasarkan kode delivery order. 18. Daftar data tentang perincian dari invoice berdasarkan kode invoice. 19. Daftar data tentang perincian dari TBPK berdasarkan kode TBPK. 20. Daftar data tentang barang berdasarkan kode barang.
160
21. Daftar data tentang satuan berdasarkan kode satuan. 22. Daftar data tentang jenis barang berdasarkan kode jenis barang. 23. Informasi tentang karyawan yang memiliki telepon. Informasi tentang telepon yang dimiliki oleh karyawan 24. Informasi tentang karyawan yang memiliki email. Informasi tentang email yang dimiliki oleh karyawan. 25. Informasi tentang jabatan yang dimiliki karyawan. 26. Informasi tentang karyawan yang membuat sales order. Informasi tentang sales order yang dibuat oleh karyawan. 27. Informasi tentang karyawan yang membuat BPRP Informasi tentang BPRP yang dibuat oleh karyawan. 28. Informasi tentang karyawan yang membuat TBPK. Informasi tentang TBPK yang dibuat oleh karyawan. 29. Informasi tentang karyawan yang membuat delivery order. Informasi tentang delivery order yang dibuat oleh karyawan. 30. Informasi tentang karyawan yang membuat invoice. Informasi tentang invoice yang dibuat oleh karyawan. 31. Informasi tentang karyawan yang membuat faktur pajak. Informasi tentang faktur pajak yang dibuat oleh karyawan. 32. Informasi tentang pelanggan yang memiliki email. Informasti tentang email yang dimiliki oleh pelanggan. 33. Informasi tentang pelanggan yang memiliki telepon. Informasi tentang telepon yang dimiliki oleh pelanggan.
161
34. Informasi tentang pelanggan yang memesan sales order. Informasi tentang sales order yang dipesan oleh pelanggan. 35. Informasi tentang sales order beserta perincian datanya. Informasi tentang perincian data yang dimiliki sales order. 36. Informasi tentang delivery order yang dibuat dari sales order yang telah disetujui oleh credit control. Informasi tentan sales order yang dibuatkan delivery ordernya. 37. Informasi tentang BPRP beserta perincian datanya. Informasi tentang perincian data yang dimiliki oleh BPRP. 38. Informasi tentang BPRP yang dibuatkan TBPKnya. Informasi TBPK yang dibuat berdasarkan BPRP yang dimaksud. 39. Informasi tentang BPRP yang dibuat dari delivery order yang diajukan pelanggan. Informasi tentang delivery order yang mendasari pembuatan BPRP. 40. Informasi
tentang
sales
order
yang
dibuatkan
faktur
pajaknya.
Informasi tentang faktur pajak yang dibuat dari sales order yang telah disetujui oleh Credit Control. 41. Informasi tentang delivery order beserta data perinciannya. Informasi tentang data perincian yang dimiliki oleh delivery order. 42. Informasi tentang sales order yang dibuatkan invoicenya. Informasi tentang invoice yang dibuat dari sales order yang telah disetujui oleh Credit Control. 43. Informasi tentang TBPK beserta data perinciannya.
162
Informasi tentang data perincian yang dimiliki oleh TBPK. 44. Informasi tentang invoice beserta data perinciannya. Informasi tentang data perincian yang dimiliki oleh invoice. 45. Informasi tentang faktur pajak beserta perincian datanya. Informasi tentang perincian data yang dimiliki faktur pajak. 46. Informasi tentang barang apa saja yang terdapat di sebuah delivery order. 47. Informasi mengenai satuan setiap barang. 48. Informasi tentang barang Informasi tentang jenis barang yang dimiliki barang 49. Informasi tentang barang yang belum dikirim berdasarkan kode barangnya. 50. Informasi tentang barang apa saja yang terdapat di sebuah tanda bukti penerimaan kembali. 51. Informasi mengenai barang yang di retur, berdasarkan kode BPRP. 52. Informasi mengenai barang apa saja yang dipesan dalam sales order. 53. Informasi mengenai barang apa saja yang dipesan dalam invoice.
Langkah 2.5 Definisikan Integrity Constraints Sasarannya: untuk mengidentifikasi integrity constraint yang diperlukan untuk perancangan ini. 1. S alesorder ( kdso, kdkaryawan, kdcustomer, tanggalso, jangkawaktu, catatan, tanggalkirim)
163
Primary key: kdso Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdcustomer references M scustomer (kdcustomer) ON UPDATE CASCADE ON DELETE CASCADE 2. Detailsalesorder (kdso, kdbarang, qty) Primary key: kdso Foreign key: kdso references Salesorder (kdso) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdbarang references M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE 3. Msbarang (kdbarang, namabarang, jumlahstok, harga, kdjenisbarang, kdsatuan) Primary key: kdbarang Foreign key: kdjenisbarang references M sjenisbarang ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdsatuan refernces Mssatuan ON UPDATE CASCADE ON DELETE CASCADE 4. Msjenisbarang (kdjenisbarang, namajenisbarang) Primary key: kdjenisbarang 5. Mssatuan (kdsatuan, namasatuan) Primary key: kdsatuan
164
6. Mskaryawan (kdkaryawan, namakaryawan, kdjabatan, jeniskelamin, alamat, gambar) Primary key: kdkaryawan Foreign key: kdjabatan references M sjabatan (kdjabatan) ON UPDATE CASCADE ON DELETE CASCADE 7. Msjabatan (kdjabatan, namajabatan) Primary key: kdjabatan 8. Teleponkaryawan (telepon, kdkaryawan) Primary key: telepon Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE 9. Emailkaryawan (email, kdkaryawan) Primary key: email Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE 10. Mscustomer (kdcustomer, namacustomer, npwp, alamat) Primary key: kdcustomer 11. Teleponcustomer (telepon, kdcustomer) Primary key: telepon Foreign key: kdcustomer references M scustomer (kdcustomer) ON UPDATE CASCADE ON DELETE CASCADE 12. Emailcustomer (email, kdcustomer) Primary key: email
165
Foreign key: kdcustomer references M scustomer (kdcustomer) ON UPDATE CASCADE ON DELETE CASCADE 13. Deliveryorder (kddo, kdso, kdkaryawan, tanggaldo, keterangan, nokendaraan) Primary key: kddo Foreign key: kdso references Salesorder (kdso) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE 14. Detaildeliveryorder (kddo, kdbarang, qty) Primary key: kddo Foreign key: kddo references Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE 15. Invoice (kdinv, tanggalinv, kddo, kdkaryawan) Primary key: kdinv Foreign key: kddo references Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE Detailinvoice (kdinv, kdbarang, qty) Foreign key: kdinv references Invoice (kdinv) ON UPDATE CASCADE ON DELETE CASCADE
166
Foreign key: kdbarang references M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE 16. Fakturpajak (kdfp, kddo, kdkaryawan, tanggalfp) Primary key: kdfp Foreign key: kddo references Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE 17. Detailfakturpajak (kdfp, kdbarang, qty) Primary key: kdfp Foreign key: kdfp references Fakturpajak (kdfp) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdbarang references M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE 18. Bprp (kdbprp, tanggalbprp, kddo, kdkaryawan) Primary key: kdbprp Foreign key: kddo references Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE 19. Detailbprp (kdbprp, kdbarang, qty, sebabpengembalian) Primary key: kdbprp Foreign key: kdbprp references Bprp (kdbprp) ON UPDATE
167
CASCADE ON DELETE CASCADE Foreign key: kdbarang references M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE 20. Tbpk (kdtbpk, tanggaltbpk, kdbprp, kdkaryawan) Primary key: kdtbpk Foreign key: kdbprp references Bprp (kdbprp) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdkaryawan references M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE 21. Detailtbpk (kdtbpk, kdbarang, qty, sebabpengembalian) Primary key: kdtbpk Foreign key: kdtbpk references Tbpk (kdtbpk) ON UPDATE CASCADE ON DELETE CASCADE Foreign key: kdbarang references M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE
Langkah 2.6 Tinjau Kembali Model Data Logikal Lokal dengan user Sasarannya: untu meyakinkan bahwa local logical data model dan dokumen pendukung yang mendeskripsikan model, benar-benar merepresentasikan view.
168
Gambar 4.15 Diagram Konteks
Pada gambar diagram konteks , dapat dilihat bahwa transaksi dimulai oleh pelanggan yang akan memberikan order dan data retur beserta barang yang diretur pada pihak perusahaan. Kemudian informasi ini diolah oleh karyawan perusahaan di dalam sistem penjualan. Saat mengeluarkan barang dari pabrik, maka poskolah yang melakukan pengecekan terakhir, menyesuaikan barang yang akan dikirim dengan DO yang telah dibuat. Dan akhirnya semua proses penjualan ini akan mengeluarkan laporan yang berguna untuk pihak manajer dalam mengambil keputusan demi kemajuan perusahaan.
169
Gambar 4.16 DFD Level 0
Pada gambar DFD level 0 ini, kita bisa melihat lebih detail semua proses yang terjadi. Terdapat 5 proses besar dalam DFD ini yaitu: Register, Pemesanan Barang, Pengiriman Barang, Retur Barang dan Laporan Penjualan.
170
171
Gambar 4.17 DFD Level 1
172
Pada gambar DFD level 1, dikupas lebih lanjut tentang proses apa saja yang terjadi di bagian pengiriman barang dan retur barang.
Langkah 2.7 Menggabungkan model data logikal ke dalam global Sasarannya: Untuk mengkombinasikan individual local logical data model ke singel global logical data model yang merepresentasikan perusahaan. S alesorder ( kdso, kdkaryawan,
Detailsalesorder (kdso, kdbarang, qty)
kdcustomer, tanggalso, jangkawaktu,
Primary key: kdso
catatan, tanggalkirim)
Foreign key: kdso references Salesorder
Primary key: kdso
(kdso)
Foreign key: kdkaryawan references
Foreign key: kdbarang references
Mskaryawan (kdkaryawan)
Msbarang (kdbarang)
Foreign key: kdcustomer references Mscustomer (kdcustomer) Msbarang (kdbarang, namabarang, jumlahstok, harga, kdjenisbarang, kdsatuan) Primary key: kdbarang Foreign key: kdjenisbarang references Foreign key: kdsatuan references M ssatuan Msjenisbarang (kdjenisbarang, namajenisbarang) Primary key: kdjenisbarang Foreign key: kdbarang references M sbarang (kdbarang) Mssatuan (kdsatuan, namasatuan)
173
Primary key: kdsatuan Mskaryawan (kdkaryawan, namakaryawan, kdjabatan, jeniskelamin, alamat, gambar) Primary key: kdkaryawan Foreign key: kdjabatan references M sjabatan (kdjabatan) Msjabatan (kdjabatan, namajabatan) Primary key: kdjabatan Teleponkaryawan (telepon, kdkaryawan) Primary key: telepon Foreign key: kdkaryawan references M skaryawan (kdkaryawan) Emailkaryawan (email, kdkaryawan) Primary key: email Foreign key: kdkaryawan references M skaryawan (kdkaryawan) Mscustomer (kdcustomer, namacustomer, npwp, alamat) Primary key: kdcustomer Teleponcustomer (telepon, kdcustomer) Primary key: telepon Foreign key: kdcustomer references M scustomer (kdcustomer) Emailcustomer (email, kdcustomer) Primary key: email Foreign key: kdcustomer references M scustomer (kdcustomer) Deliveryorder (kddo, kdso, kdkaryawan,
Detaildeliveryorder (kddo, kdbarang, qty)
tanggaldo, keterangan, nokendaraan)
Primary key: kddo
174
Primary key: kddo
Foreign key: kddo references
Foreign key: kdso references Salesorder
Deliveryorder (kddo)
(kdso) Foreign key: kdkaryawan references Mskaryawan (kdkaryawan) Invoice (kdinv, tanggalinv, kddo,
Detailinvoice (kdinv, kdbarang, qty)
kdkaryawan)
Foreign key: kdinv references Invoice
Primary key: kdinv
(kdinv)
Foreign key: kddo references
Foreign key: kdbarang references
Deliveryorder (kddo)
Msbarang (kdbarang)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan) Fakturpajak (kdfp, kddo, kdkaryawan,
Detailfakturpajak (kdfp, kdbarang, qty)
tanggalfp)
Primary key: kdfp
Primary key: kdfp
Foreign key: kdfp references Fakturpajak
Foreign key: kddo references
(kdfp)
Deliveryorder (kddo)
Foreign key: kdbarang references
Foreign key: kdkaryawan references
Msbarang (kdbarang)
Mskaryawan (kdkaryawan) Bprp (kdbprp, tanggalbprp, kddo,
Detailbprp (kdbprp, kdbarang, qty,
kdkaryawan)
sebabpengembalian)
Primary key: kdbprp
Primary key: kdbprp
Foreign key: kddo references
Foreign key: kdbprp references Bprp
175
Deliveryorder (kddo)
(kdbprp)
Foreign key: kdkaryawan references
Foreign key: kdbarang references
Mskaryawan (kdkaryawan)
Msbarang (kdbarang)
Tbpk (kdtbpk, tanggaltbpk, kdbprp,
Detailtbpk (kdtbpk, kdbarang, qty,
kdkaryawan)
sebabpengembalian)
Primary key: kdtbpk
Primary key: kdtbpk
Foreign key: kdbprp references Bprp
Foreign key: kdtbpk references Tbpk
(kdbprp)
(kdtbpk)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
4.1.3
Perancangan Basis Data Fisikal untuk Relational Database Langkah 3 Menterjemahkan Model Data Logikal Global untuk DBMS yang telah ditentukan Sasarannya: Untuk menghasilkan sebuah skema hubungan database dari global logical data model yang bisa diimplementasikan di target DBM S. Langkah 3.1 Merancang Dasar Relasi Sasarannya: Untuk memutuskan bagaimana merepresentasi hubungan dasar diidentifikasi ke global logical data model dalam target DBM S.
176
1. Tabel S alesorder Domain kdso:
variable length character string, length 21, format [SO]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Domain kdcustomer:
variable length character string, length 9, format [yyyymm][000-999]
Domain tanggalso:
variable length character string, length 10, format dd-mm-yyyy
Domain jangkawaktu:
integer, in the range 1-60
Domain catatan:
variable length character string, length 50
Domain tanggalkirim:
variable length character string, length 10, format dd-mm-yyyy
Salesorder( kdso
kdso
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
kdcustomer
kdcustomer
NOT NULL,
tanggalso
tanggalso
NOT NULL,
jangkawaktu
jangkawaktu
NOT NULL,
catatan
catatan
NOT NULL,
tanggalkirim
tanggalkirim
NOT NULL,
PRIM ARY KEY (kdso),
177
FOREIGN KEY (kdkaryawan) REFERENCES Mskaryawan(kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (kdcustomer) REFERENCES M scustomer(kdcustomer) ON UPDATE CASCADE ON DELETE CASCADE );
2. Detailsalesorder Domain kdso:
variable length character string, length 21, format [SO]/[kdcustomer]/[ddmyyyy]/[000-999]
Domain kddso:
integer
Domain kdbarang:
variable length character string, length 9, format [yyyymm][000-999]
Domain qty:
integer
Detailsalesorder( kdso
kdso
NOT NULL,
kddso
kddso
NOT NULL Auto_Increment
kdbarang
kdbarang
NOT NULL,
qty
qty
NOT NULL,
PRIM ARY KEY (kdso), FOREIGN KEY (kdso) REFERENCES Salesorder (kdso) ON UPDATE CASCADE ON DELETE CASCADE);
178
3. Msbarang Domain kdbarang:
variable length character string, length 9, format [yyyymm][000-999]
Domain namabarang:
variable length character string, length 50
Domain jumlahstok:
integer
Domain harga:
integer
Domain kdjenisbarang:
variable length character string, length 9, format [yyyymm][000-999]
Domain kdsatuan:
variable length character string, length 9, format [yyyymm][000-999]
Msbarang( kdbarang
kdbarang
NOT NULL,
namabarang
namabarang
NOT NULL,
jumlahstok
jumlahstok
NOT NULL,
harga
harga
NOT NULL,
kdjenisbarang
kdjenisbarang
NOT NULL,
kdsatuan
kdsatuan
NOT NULL,
PRIM ARY KEY (kdbarang), FOREIGN KEY (kdsatuan) REFERENCES M ssatuan (kdsatuan) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY (kdjenisbarang) REFERENCES M sjenisbarang (kdjenisbarang) ON UPDATE CASCADE ON DELETE CASCADE);
179
4. Msjenisbarang Domain kdjenisbarang:
variable length character string, length 9, format [yyyymm][000-999]
Domain namajenisbarang:
variable length character string, length 50
Msjenisbarang( kdjenisbarang
kdjenisbarang
NOT NULL,
namajenisbarang
namajenisbarang
NOT NULL,
PRIM ARY KEY (kdjenisbarang) );
5. Mssatuan Domain kdsatuan:
variable length character string, length 9, format [yyyymm][000-999]
Domain namasatuan:
variable length character string, length 50
Mssatuan( kdsatuan
kdsatuan
NOT NULL,
namasatuan
namasatuan
NOT NULL,
PRIM ARY KEY (kdsatuan) );
180
6. Mskaryawan Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Domain namakaryawan:
variable length character string, length 50
Domain kdjabatan:
variable length character string, length 9, format [yyyymm][000-999]
Domain jeniskelamin:
single charachter, must be one of ‘0’, ‘1’,’2’
Domain alamat:
variable length character string, length 50
Domain gambar:
variable length character string, length 50
Mskaryawan( kdkaryawan
kdkaryawan
NOT NULL,
namakaryawan
namakaryawan
NOT NULL,
kdjabatan
kdjabatan
NOT NULL,
jeniskelamin
jeniskelamin
NOT NULL,
alamat
alamat
NOT NULL,
gambar
gambar
NOT NULL.
PRIM ARY KEY (kdkaryawan), FOREIGN KEY (kdjabatan) REFERENCES M sjabatan (kdjabatan) ON UPDATE CASCADE ON DELETE CASCADE );
181
7. Msjabatan Domain kdjabatan:
variable length character string, length 9, format [yyyymm][000-999]
Domain namajabatan:
variable length character string, length 20
Msjabatan( kdjabatan
kdjabatan
NOT NULL,
namajabatan
namajabatan
NOT NULL,
PRIM ARY KEY (kdjabatan) );
8. Teleponkaryawan Domain telepon:
variable length character string, length 20
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Teleponkaryawan( telepon
telepon
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
PRIM ARY KEY (telepon), FOREIGN KEY (kdkaryawan) REFERENCES M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE );
182
9. Emailkaryawan Domain email:
variable length character string, length 30
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Emailkaryawan( email
email
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
PRIM ARY KEY (email), FOREIGN KEY (kdkaryawan) REFERENCES M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE );
10. Mscustomer Domain kdcustomer:
variable length character string, length 9, format [yyyymm][000-999]
Domain namacustomer:
variable length character string, length 50
Domain npwp:
variable length character string, length 50
Domain alamat:
variable length character string, length 50
Mscustomer( kdcustomer
kdcustomer
NOT NULL,
namacustomer
namacustomer
NOT NULL,
183
npwp
npwp
NOT NULL,
alamat
alamat
NOT NULL,
PRIM ARY KEY (kdcustomer) );
11. Teleponcustomer Domain telepon:
variable length character string, length 20
Domain kdcustomer:
variable length character string, length 9, format [yyyymm][000-999]
Teleponcustomer( telepon
telepon
NOT NULL,
kdcustomer
kdcustomer
NOT NULL,
PRIM ARY KEY (telepon), FOREIGN KEY (kdcustomer) REFERENCES M scustomer (kdcustomer) ON UPDATE CASCADE ON DELETE CASCADE );
12. Emailcustomer Domain email:
variable length character string, length 30
Domain kdcustomer:
variable length character string, length 9, format [yyyymm][000-999]
Emailcustomer(
184
email
email
NOT NULL,
kdcustomer
kdcustomer
NOT NULL,
PRIM ARY KEY (email), FOREIGN KEY (kdcustomer) REFERENCES M scustomer (kdcustomer) ON UPDATE CASCADE ON DELETE CASCADE );
13. Deliveryorder Domain kddo:
variable length character string, length 21, format [DO]/[kdcustomer]/[ddmmyyy]/[000999]
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Domain kdso:
variable length character string, length 21, format [SO]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain tanggaldo:
variable length character string, length 10, format dd-mm-yyyy.
Domian keterangan:
variable length character string, length 50
Domain nokendaraan:
variable length character string, length 10
Deliveryorder( kddo
kddo
NOT NULL,
185
kdkaryawan
kdkaryawan
NOT NULL,
kdso
kdso
NOT NULL,
tanggaldo
tanggaldo
NOT NULL,
keterangan
keterangan
NOT NULL,
nokendaraan
nokendaraan
NOT NULL,
PRIM ARY KEY (kddo), FOREIGN KEY (kdkaryawan) REFERENCES M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY (kdso) REFERENCES Salesorder (kdso) ON UPDATE CASCADE ON DELETE CASCADE );
14. Detaildeliveryorder Domain kddo:
variable length character string, length 21, format [DO]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kdddo:
integer
Domain kdbarang:
variable length character string, length 5, format [yyyymm][000-999]
Domain qty:
integer
Detaildeliveryorder( kddo
kddo
NOT NULL,
186
kdddo
kdddo
NOT NULL
kdbarang
kdbarang
NOT NULL,
qty
qty
NOT NULL,
Auto_Increment
PRIM ARY KEY (kddo), FOREIGN KEY (kddo) REFERENCES Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY (kdbarang) REFERENCES M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE );
15. Invoice Domain kdinv:
variable length character string, length 22, format [INV]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain tanggalinv:
variable length character string, length 10, format dd-mm-yyyy
Domain kddo:
variable length character string, length 21, format [DO]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Invoice( kdinv
kdinv
NOT NULL,
187
tanggalinv
tanggalinv
NOT NULL,
kddo
kddo
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
PRIM ARY KEY (kdinv), PRIM ARY KEY (kddo), FOREIGN KEY (kddo) REFERENCES Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (kdkaryawan) REFERENCES M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE );
16. Fakturpajak Domain kdfp:
variable length character string, length 7, format [0000000-9999999]
Domain kddo:
variable length character string, length 21, format [DO]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Domain tanggalfp:
variable length character string, length 10, format dd-mm-yyyy
Fakturpajak(
188
kdfp
kdfp
NOT NULL,
kddo
kddo
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
tanggalfp
tanggalfp
NOT NULL,
PRIM ARY KEY (kdfp), PRIM ARY KEY (kddo), FOREIGN KEY (kddo) REFERENCES Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (kdkaryawan) REFERENCES M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE );
17. BPRP Domain kdbprp:
variable length character string, length 21, format [BP]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain tanggalbprp variable length character string, length 10, format dd-mm-yyyy Domain kddo:
variable length character string, length 21, format [DO]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kdkaryawan: variable length character string, length 9, format [yyyymm][000-999] Bprp(
189
kdbprp
kdbprp
NOT NULL,
tanggalbprp
tanggalbprp
NOT NULL,
kddo
kddo
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
PRIM ARY KEY (kdbprp), FOREIGN KEY (kddo) REFERENCES Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY (kdkaryawan) REFERENCES Deliveryorder (kddo) ON UPDATE CASCADE ON DELETE CASCADE );
18. Detailbprp Domain kdbprp
variable length character string, length 21, format [BP]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kddbprp
integer
Domain kdbarang
variable length character string, length 9, format [yyyymm][000-999]
Domain qty
integer
Domain sebabpengembalian: variable length character string, length 50 Detailbprp( kdbprp
kdbprp
NOT NULL,
kddbprp
kddbprp
NOT NULL,
190
kdbarang
kdbarang
NOT NULL,
qty
qty
NOT NULL,
sebabpengembalian
sebabpengembalian
NOT NULL,
PRIM ARY KEY (kdbprp), FOREIGN KEY (kdbprp) REFERENCES Bprp (kdbprp) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (kdbarang) REFERENCES M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE );
19. TBPK Domain kdtbpk
variable length character string, length 21, format [TB]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain tanggaltbpk
variable length character string, length 10, format dd-mm-yyyy
Domain kdbprp:
variable length character string, length 21, format [BP]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kdkaryawan:
variable length character string, length 9, format [yyyymm][000-999]
Tbpk( kdtbpk
kdtbpk
NOT NULL,
191
tanggaltbpk
tanggaltbpk
NOT NULL,
kdbprp
kdbprp
NOT NULL,
kdkaryawan
kdkaryawan
NOT NULL,
PRIM ARY KEY (kdtbpk), FOREIGN KEY (kdbprp) REFERENCES Bprp (kdbprp) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (kdkaryawan) REFERENCES M skaryawan (kdkaryawan) ON UPDATE CASCADE ON DELETE CASCADE );
20. Detailtbpk Domain kdtbpk:
variable length character string, length 21, format [TB]/[kdcustomer]/[ddmmyyyy]/[000-999]
Domain kddtbpk
integer
Domain kdbarang:
variable length character string, length 9, format [yyyymm][000-999]
Domain qty
integer
Domain sebabpengembalian variable length character string, length 50 Detailtbpk( kdtbpk
kdtbpk
NOT NULL,
kddtbpk
kddtbpk
NOT NULL,
192
kdbarang
kdbarang
NOT NULL,
qty
qty
NOT NULL,
sebabpengembalian
sebabpengembalian
NOT NULL,
PRIM ARY KEY (kdtbpk), FOREIGN KEY (kdtbpk) REFERENCES Tbpk (kdtbpk) ON UPDATE CASCADE ON DELETE CASCADE FOREIGN KEY (kdbarang) REFERENCES M sbarang (kdbarang) ON UPDATE CASCADE ON DELETE CASCADE );
Langkah 3.2 Merancang Representasi dari Data yang telah Didapat Pada data model ini memang akan bermunculan derived data seperti total, subtotal, ppn, grandtotal dan lain-lain. Tetapi semuanya ini tidak akan dimasukkan dalam DBM S. Hanya akan diperhitungkan lewat program yang dibuat. Karena bila disimpan akan ada harga untuk penyimpanan, penjagaan konsistensi dan harga tiap kali derived data ini diperhitungkan.
Langkah 3.3 Merancang Enterprise Constraints Langkah
ini dilakukan
dengan
tujuan
untuk
membatasi
merancang batasan perusahaan pada DBM S yang akan digunakan.
193
a. Tanggal pengiriman barang ke pelanggan tidak boleh lebih kecil dari tanggal pemesanan barang CONSTRAINT tanggalkirim CHECK (tanggalkirim > tanggalso)
b. Tanggal retur penjualan barang dari pelanggan tidak boleh lebih kecil dari tanggal faktur penjualan CONSTRAINT tanggalbprp CHECK (tanggalbprp > tanggalfp)
c. Tanggal retur penjualan dari pelanggan tidak boleh lebih kecil dari tanggal penemerimaan kembali CONSTRAINT tanggalbprp CHECK (tanggalbprp > tanggaltbpk)
Langkah 4 Merancang Representasi Fisikal Langkah ini sangat penting untuk mencari pengorganisasian file dan pemberian index karena rancangan data model ini akan diterapkan di secondary storage. Langkah 4.1 Analisa Transaksi Sasarannya: Untuk mengerti fungsi dari transaksi yang akan dijalankan dalam database dan untuk menganalisa transasi yang penting.
Transaction/ Relation
Mskaryawan Mscustomer
1
2 I
R
U
D
X
X
X
X
I
X
3 R
X
U
X
D
I
4 R
U
D
I
X
Msbarang
X
X
X
X
5 R
U
D
I
R
X
X
X
X
X
X
U
D
X
X
Msjabatan Salesorder
X
Detailsalesorder
X
X
X
X
X
Deliveryorder
X
Detaildeliveryorder
X X
Invoice Fakturpajak Bprp Detailbprp Tbpk Detailtbpk
Tabel 4.13 Tabel Cross Referencing Tran saction Dan Relations. 194
194
Transaction/ Relation 6
7
8
9
10
11
I R U D I R U D I R U D I R U D I R U D I R U D Mskaryawan
X
X
X
X
Mscustomer
X
X
X
X
X
Msbarang
X
X
X
X
X
Msjabatan
X
X X X X
Salesorder
X
Detailsalesorder Deliveryorder
X
X
X
Detaildeliveryorder
X
X
X
Invoice Fakturpajak Bprp Detailbprp
X X X X
X X X X X X X X X X
Tbpk
X X X X X X
Detailtbpk
X X
X
195
195
Tabel 4.14 Tabel Cross Referencing Tran saction Dan Relations (lanjutan)
I = Insert; R = Read; U = Update; D = Delete Keterangan: 1. M eng-input data karyawan, bila terjadi kesalahan bisa di-edit. 2. M eng-input data pelanggan, bila terjadi kesalahan bisa di-edit. 3. M eng-input data barang, bila terjadi kesalahan bisa di-edit. 4. M endokumentasikan order dari pelanggan dalam bentuk sales order. Dilakukan oleh karyawan bagian sales admin, bila terjadi kesalahan bisa di-edit. 5. Pembuatan delivery order oleh karyawan bagian sales admin sesuai dengan keinginan pelanggan untuk barang mana saja yang ingin dikirim. 6. Proses pembuatan invoice oleh karyawan bagian sales admin sesuai dengan delivery order yang telah dibuat. 7. Proses pembuatan faktur pajak oleh karyawan bagian sales admin sesuai dengan delivery order yang telah dibuat. 8. Penanganan retur dari pelanggan, yang apabila disetujui akan dibuatkan Bukti Persetujuan Retur Penjualan berdasarkan delivery order dari pelanggan. 9. Penanganan barang retur yang telah dikirimkan kembali oleh pelanggan ke bagian gudang. Bila barang telah diterima, akan dikeluarkan Tanda Bukti Penerimaan Kembali berdasarkan Bukti Persetujuan Retur Penjualan yang telah ada. 10. Pengumpulan semua informasi yang akan dibuat laporan untuk manajer. 11. M eng-input data jabatan bila terjadi kesalahan bisa di-edit.
196
197
Langkah 4.2 Pilih Organisasi File Sasarannya: Untuk mencari mana file organization yang paling efisien untuk tiap base relation. Pengorganisasian file akan dilakukan secara sequential (ordered) files. Sehingga dalam penjarian data, dapat dilakukan binary search. Seperti pada contoh di buku Connolly: S ELECT * FROM Staff WHERE staffno = ‘SG37’;
Langkah 4.3 Pilih Index Sasarannya: Untuk menentukan cara peng-index-an mana yang paling mendukung kemajuan performa untuk rancangan ini. Karena menggunakan pengorganissian file secara sequential files maka yang dijadikan indexnya menggunakan primary index.
Tabel 4.15 Tabel Index Yang Digunakan Tabel
Index
Mskaryawan
Kdkaryawan
Teleponkaryawan
Kdkaryawan
Emailkaryawan
Kdkaryawan
Msjabatan
Kdjabatan
Mscustomer
Kdcustomer
Teleponcustomer
Kdcustomer
198
Emailcustomer
Kdcustomer
Msbarang
Kdbarang
Mssatuan
Kdsatuan
Msjenisbarang
Kdjenisbarang
Salesorder
Kdso
Detailsalesorder
Kdso
Deliveryorder
Kddo
Detaildeliveryorder Kddo Invoice
Kdinv
Fakturpajak
Kdfp
Bprp
Kdbprp
Detailbprp
Kdbprp
Tbpk
Kdtbpk
Detailtbpk
Kdtbpk
Langkah 4.4 Perkirakan Kebutuhan Disk Space Sasarannya: untuk memperkirakan besar disk yang diperlukan untuk basis data. 1. Tabel Mskaryawan kdkaryawan
9 varchar
namakaryawan 50 varchar jeniskelamin
1 int
199
alamat
50 varchar
gambar
50 varchar
kdjabatan
5 varchar
Kapasitas : 165 bytes; Transaksi : 10 kali sebulan Pertumbuhan tabel dalam 1 tahun : 165 * 10 * 12 bulan = 19800 bytes 2. Tabel Teleponkaryawan kdkaryawan
9 varchar
telepon
20 varchar
Kapasitas : 29 bytes; Transaksi : 10 kali sebulan Pertumbuhan tabel dalam 1 tahun : 29 * 10 * 12 bulan = 3480bytes 3.
Tabel Emailkaryawan kdkaryawan
9 varchar
email
30 varchar
Kapasitas : 39 bytes; Transaksi : 10 kali sebulan Pertumbuhan tabel dalam 1 tahun : 39 * 10 * 12 bulan = 4680bytes
200
4. Tabel Msjabatan kdjabatan
9 varchar
namajabatan 20 varchar
Kapasitas : 29 bytes; Transaksi : 1 kali setahun Pertumbuhan tabel dalam 1 tahun : 29 * 1tahun = 29 bytes 5. Tabel Mscustomer kdcustomer
9 varchar
namacustomer 50 varchar npwp
50 varchar
alamat
50 varchar
Kapasitas : 159 bytes; Transaksi : 10 kali sebulan Pertumbuhan tabel dalam 1 tahun : 159 * 10 * 12 bulan = 19080 bytes 6. Tabel Teleponcustomer kdcustomer
9 varchar
telepon
20 varchar
Kapasitas : 29 bytes; Transaksi : 10 kali sebulan Pertumbuhan tabel dalam 1 tahun : 29 * 10 * 12 bulan = 3480 bytes
201
7. Tabel Emailcustomer kdcustomer
9 varchar
email
30 varchar
Kapasitas : 39 bytes; Transaksi : 10 kali sebulan Pertumbuhan tabel dalam 1 tahun : 39* 10 * 12 bulan = 4680 bytes 8. Tabel Msbarang kdbarang
9 varchar
kdjenisbarang 9 varchar kdsatuan
9 varchar
namabarang
50 varchar
jumlahstok
11 int
harga
11 int
Kapasitas : 99 bytes; Transaksi : 1 kali setahun Pertumbuhan tabel dalam 1 tahun : 99 * 1 = 99 bytes 9. Tabel Msjenisbarang kdjenisbarang
9 varchar
namajenisbarang 50 varchar
Kapasitas : 59 bytes; Transaksi : 1 kali setahun Pertumbuhan tabel dalam 1 tahun : 59 * 1 = 59 bytes
202
10. Tabel Mssatuan kdsatuan
9 varchar
namasatuan
50 varchar
Kapasitas : 59 bytes; Transaksi : 1 kali setahun Pertumbuhan tabel dalam 1 tahun : 59 * 1 = 59 bytes 11. Tabel S alesorder kdso
21 varchar
kdkaryawan
9 varchar
kdcustomer
9 varchar
tanggalso
10 varchar
jangkawaktu
3 int
catatan
50 varchar
tanggalkirim
10 varchar
Kapasitas : 112 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 112 * 10 * 365 hari = 408800 bytes 12. Tabel Detailsalesorder kdso
21 varchar
kddso
11 int
kdbarang
9 varchar
qty
11 int
203
Kapasitas : 52bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 52 * 10 * 365 hari = 189800 bytes 13. Tabel Deliveryorder kddo
21 varchar
kdkaryawan
9 varchar
kdso
21 varchar
tanggaldo
10 varchar
keterangan
50 varchar
nokendaraan
10 varchar
Kapasitas : 121 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 121 * 10 * 365 hari = 441650 bytes 14. Tabel Detaildeliveryorder kddo
21 varchar
kdbarang
9 varchar
kdddo
5 varchar
qty
11 int
Kapasitas : 46 bytes; Transaksi : 10 kali sehari
204
Pertumbuhan tabel dalam 1 tahun : 46 * 10 * 365 hari = 167900 bytes 15. Tabel Invoice kddo
21 varchar
kdinv
22 varchar
tanggalinv
10 varchar
kdkaryawan
9 varchar
Kapasitas : 62 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 62 * 10 * 365 hari = 226300 bytes 16. Tabel Fakturpajak kddo
21 varchar
kdkaryawan
9 varchar
kdfp
7 varchar
tanggalfp
10 varchar
Kapasitas :47 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 47 * 10 * 365 hari = 171550 bytes 17. Tabel Bprp kdbprp
21 varchar
kddo
21 varchar
205
kdkaryawan
9 varchar
tanggalbprp
10 varchar
Kapasitas : 61 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 61 * 10 * 365 hari = 222650 bytes 18. Tabel Detailbprp kdbprp
21varchar
kddbprp
11 int
kdbarang
9 varchar
qty
11 int
sebabpengembalian 50 varchar
Kapasitas : 102 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 102 * 10 * 365 hari = 372300 bytes 19. Tabel Tbpk kdtbpk
21 varchar
kdbprp
21 varchar
kdkaryawan
9 varchar
tanggaltbpk
10 varchar
206
Kapasitas : 61 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 61 * 10 * 365 hari = 222650 bytes 20. Tabel Detailtbpk kdtbpk
21 varchar
kddtbpk
11 int
kdbarang
9 varchar
sebabpengembalian 50 varchar qty
11 int
Kapasitas : 102 bytes; Transaksi : 10 kali sehari Pertumbuhan tabel dalam 1 tahun : 102 * 10 * 365 hari = 372300 bytes
Total Estimasi Nama Tabel Mskaryawan
Pertumbuhan Tabel 19800
Teleponkaryawan
3480
Emailkaryawan
4680
Msjabatan Mscustomer
29 19080
Teleponcustomer
3480
Emailcustomer
4680
207
Msbarang
99
Mssatuan
59
Msjenisbarang
59
Salesorder
408800
Detailsalesorder
198800
Deliveryorder
441650
Detaildeliveryorder
167900
Invoice
226300
Fakturpajak
171550
Bprp
222650
Detailbprp
372300
Tbpk
222650
Detailtbpk
372300
Total dalam 1 tahun
2.851.346 byte
208
Gambar 4.18 Diagram ERD Physical 208
209
Langkah 5 Merancang User View CREATE VIEW data_karyawan AS S ELECT a.kdkaryawan, a.namakaryawan, a.alamat, d.namajabatan, b.telepon, c.email FROM M skaryawan a, Teleponkaryawan b, Emailkaryawan c, M sjabatan d WHERE a.kdkaryawan= b.kdkaryawan AND a.kdkaryawan= c.kdkaryawan AND a.kdjabatan=d.kdjabatan
CREATE VIEW data_customer AS S ELECT a.kdcustomer, a.namacustomer, a.alamat, a.npwp, b.telepon, c.email FROM M scustomer a, Teleponcustomer b, Emailcustomer c WHERE a.kdkaryawan= b.kdkaryawan AND a.kdkaryawan= c.kdkaryawan
CREATE VIEW data_barang AS S ELECT a.kdbarang, a.namabarang, b.namajenisbarang, c.namasatuan, a.harga, a.jumlahstok FROM M sbarang a, M sjenisbarang b, M ssatuan c WHERE a.kdjenisbarang=b.kdjenisbarang AND a.kdsatuan=c.kdsatuan
210
CREATE VIEW lap_penjualan AS S ELECT kdso,tanggalso, namabarang, qty, harga FROM M sbarang a, Salesorder b, Detailsalesorder c WHERE a. kdbarang=c.kdbarang AND b.kdso=c.kdso
CREATE VIEW lap_retur AS S ELECT kdbprp, tanggalbprp, namabarang, qty FROM M sbarang a, Bprp b, Detailbprp c WHERE a. kdbarang=c.kdbarang AND b.kdbprp=c.kdbprp
Langkah 6 Merancang Mekanisme Keamanan Sasarannya: Untuk mendesain ukuran keamanan untuk basis data dispesifikasikan oleh user.
211
Transaction/ Relation
S ales admin I
Mskaryawan Mscustomer
X
Msbarang
R
U
X
X
X
X
Admin D
X
X
Msjabatan Salesorder
X
Detailsalesorder Deliveryorder
X
X
X
X X
Detaildeliveryorder
X
X
X
X
Credit control
I
R
U
D
X
X
X
X
X
X
I
Quality control D
I
R
U
X
X
Factory admin
R
U
D
I
R
U
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
D
X
Invoice
X
X
X
X
X
X
X
X
Fakturpajak
X
X
X
X
X
X
X
X
Bprp
X
X
X
X
X
X
X
X
X
X
X
X
Detailbprp
X
X
X
X
X
Tbpk
X
X
X
X
X
X
Detailtbpk
X
X
X
X
X
X
I = Insert; R = Read; U = Update; D = Delete Tabel 4.16 Tabel Hak Akses 211
212
Transaction/ Relation
Gudang I
Truck scale
R
U
Mskaryawan
X
X
Mscustomer Msbarang
D
I
R
Posko U
D
I
Manajer R
U
D
I
R
U X
X
X
X
X
X
X
X
X
X
X
X
Msjabatan
D
X
Salesorder
X
X
Detailsalesorder
X
X
Deliveryorder
X
X
X
Detaildeliveryorder
X
X
X
Bprp
X
X
X
Detailbprp
X
X
X
Invoice Fakturpajak
Tbpk Detailtbpk
X
X
X
X
X
I = Insert; R = Read; U = Update; D = Delete Tabel 4.17 Tabel Hak Akses (Lanjutan) 212
213
4.2
Perancangan Program Aplikasi 4.2.1
Perancangan S truktur Menu
Gambar 4.19 S truktur Menu
4.2.2
S tate Transition Diagram Diagram ini menjelaskan tentang alur dari aksi dan reaksi. Diagram STD digunakan untuk memberi gambaran tentang reaksi yang akan diberikan oleh sistem yang dirancang ketika menerima aksi dari user.
214
Gambar 4.20 S TD Halaman Login
Gambar 4.21 S TD Menu Logout
215 Halaman Utama (ADMIN)
Klik Kary awan Tampilkan menu dari karyawan
Menu Karyawan
Klik J abatan Tampilkan menu dari jabatan Menu Jabatan
Klik Pelanggan Tampilkan menu dari pelanggan
Menu Pelanggan
Klik Pes an Tampilkan menu dari pesan Menu Pesan
Klik Barang T ampilkan menu dari barang Menu Barang
Klik Sales Tampilkan menu dari s ales Menu Sales
Klik Retur Tampilkan menu dari retur Menu Retur
Klik Laporan Tampilkan menu dari laporan Menu Laporan
Klik Logout Kembali ke halaman Login Menu Logout
Halaman Login
Gambar 4.22 S TD Menu Utama
216
Gambar 4.23 S TD Menu Karyawan
Gambar 4.24 S TD Halaman Registrasi
217
Gambar 4.25 S TD Halaman Tambah Karyawan
Gambar 4.26 S TD Halaman Pengisian Telepon Karyawan STD ini hampir sama dengan STD Halaman Pengisian Telepon Pelanggan, STD Halaman Ubah Telepon Karyawan, STD Halaman Ubah Telepon Profil, STD Halaman Ubah Telepon Pelanggan
218 Klik Hapus Menghapus email karyawan Halaman Tambah Karyawan
Pengisian Email
Klik Tambah
Klik Tambah Penambahan Sukses, email disimpan
Validasi salah, memunculkan pesan error Cek Validasi Pengisian Email
Klik Kembali Kembali ke halaman tambah karyawan
Gambar 4.27 S TD Halaman Pengisian Email Karyawan STD ini hampir sama dengan STD Halaman Pengisian Email Pelanggan, STD Halaman Ubah Email Karyawan, STD Halaman Ubah Email Profil, STD Halaman Ubah Email Pelanggan
Gambar 4.28 S TD Halaman Daftar Karyawan
219
Gambar 4.29 S TD Halaman Ubah Karyawan
Gambar 4.30 S TD Halaman Lihat Profil
220
Gambar 4.31 S TD Halaman Ubah Profil
Gambar 4.32 S TD Menu Jabatan
221
Gambar 4.33 S TD Halaman Tambah Jabatan
Gambar 4.34 S TD Halaman Daftar Jabatan
222
Gambar 4.35 S TD Halaman Ubah Jabatan
Gambar 4.36 S TD Menu Pelanggan
223
Gambar 4.37 S TD Halaman Tambah Pelanggan
Gambar 4.38 S TD Halaman Daftar Pelanggan
224
Gambar 4.39 S TD Halaman Ubah Pelanggan
Gambar 4.40 S TD Menu Barang
225
Gambar 4.41 S TD Halaman Tambah Barang
Gambar 4.42 S TD Halaman Daftar Barang
226
Gambar 4.43 S TD Halaman Ubah Barang
Gambar 4.44 S TD Menu Pesan
227
Gambar 4.45 S TD Halaman Pesan Masuk
Gambar 4.46 S TD Halaman Judul Pesan Masuk
228 Menu Pesan
Halaman Pesan Keluar
Klik Hapus Meng hapus Pesan Keluar
Klik Judul Melihat isi pesan yang keluar Halaman Judul Pesan Keluar
Gambar 4.47 S TD Halaman Pesan Keluar
Gambar 4.48 S TD Halaman Judul Pesan Keluar
229
Gambar 4.49 S TD Halaman Tulis Pesan
Gambar 4.50 S TD Menu Sales
230
Gambar 4.51 S TD Halaman S ales Order
Gambar 4.52 S TD Halaman Penyimpanan Sales Order
231
Gambar 4.53 S TD Halaman Daftar S ales Order
Gambar 4.54 S TD Halaman Lihat S ales Order
232
Gambar 4.55 S TD Halaman Ubah S ales Order
Gambar 4.56 S TD Halaman Ubah Isi S ales Order
233
Gambar 4.57 S TD Halaman Delivery Order
Gambar 4.58 S TD Halaman Buat Delivery Order
234
Gambar 4.59 S TD Halaman Isi Delivery Order
Gambar 4.60 S TD Halaman Daftar Delivery Order
235
Gambar 4.61 S TD Halaman Lihat Delivery Order
Gambar 4.62 S TD Halaman Print Delivery Order STD ini hampir sama dengan STD Halaman Print Invoice, STD Halaman Print Faktur Pajak, STD Halaman Print BPRP, STD Halaman Print TBPK
Gambar 4.63 S TD Halaman Buat Invoice
236
Gambar 4.64 S TD Halaman Buat Faktur Pajak
Gambar 4.65 S TD Halaman Daftar Invoice
237
Gambar 4.66 S TD Halaman Lihat Invoice
Gambar 4.67 S TD Halaman Daftar Faktur Pajak
Gambar 4.68 S TD Halaman Lihat Faktur Pajak
238 Menu Retur
Klik Buat BPRP BPRP s udah pernah dibuat
Halaman Buat BPRP
Cek Validasi Buat BPRP
Klik Buat BPRP
Halaman Buat Isi BPRP
Menampilkan halaman buat isi BPRP
Klik Kode Delivery Order Melihat isi delivery order Halaman Lihat Delivery Order
Gambar 4.69 S TD Halaman Buat BPRP
Halaman Buat BPRP
Klik Nama Barang Memilih nama barang
Klik Hapus Menghapus isi yang sudah dipilih pada BPRP
Halaman Buat Isi BPRP
Klik Simpan Validasi salah, tampilkan pesan error
Klik Simpan Validasi benar, menampilkan barang yang dipilih beserta keterangannya Cek Validasi Buat Isi BPRP
Klik Selesai BPRP disimpan, menampilkan halaman Daftar BPRP H alaman D aftar BPRP
Gambar 4.70 S TD Halaman Buat Isi BPRP
239
Gambar 4.71 S TD Halaman Daftar BPRP
Gambar 4.72 S TD Halaman Lihat BPRP
240
Gambar 4.73 S TD Halaman Ubah BPRP
Gambar 4.74 S TD Halaman Buat TBPK
241
Gambar 4.75 S TD Halaman Buat Isi TBPK
Menu Retur
Halaman Daftar TBPK
K lik Hapus Mengh apus TBP K
K lik Kod e TBPK Melih at isi da ri TBP K Halaman Lihat TBPK
Gambar 4.76 S TD Halaman Daftar TBPK
242 Halaman Daftar TBPK
Klik Print Menampilkan halaman print Halaman Lihat TBPK
Halaman Print T BPK
Gambar 4.77 S TD Halaman Lihat TBPK
Gambar 4.78 S TD Halaman Laporan Penjualan STD halaman ini hampir sama dengan STD Halaman Laporan Retur
4.2.3
Perancangan Layar Berikut ini adalah perancangan layar yang akan digunakan dalam program aplikasi dan sistem basis data PT. CPI:
243
Gambar 4.79 Perancangan Layar Halaman Log In
Gambar 4.80 Perancangan Layar Halaman Utama
244
Gambar 4.81 Perancangan Layar Registrasi
Gambar 4.82 Perancangan Layar Daftar Karyawan
245
Gambar 4.83 Perancangan Layar Lihat Profil
Gambar 4.84 Perancangan Layar Ubah Profil
246
Gambar 4.85 Perancangan Layar Tambah Pelanggan
Gambar 4.86 Perancangan Layar Daftar Pelanggan
247
Gambar 4.87 Perancangan Layar Lihat Barang
Gambar 4.88 Perancangan Layar Tambah Barang
248
Gambar 4.89 Perancangan Layar Pesan Masuk
Gambar 4.90 Perancangan Layar Pesan Keluar
249
Gambar 4.91 Perancangan Layar Lihat View Pesan Masuk dan Keluar
Gambar 4.92 Perancangan Layar Tulis Pesan
250
Gambar 4.93 Perancangan Layar S ales Order 1
Gambar 4.94 Perancangan Layar S ales Order 2
251
Gambar 4.95 Perancangan Layar Daftar S ales Order
Gambar 4.96 Perancangan Layar View S ales Order
252
Gambar 4.97 Perancangan Layar Ubah S ales Order 1
Gambar 4.98 Perancangan Layar Ubah S ales Order 2
253
Gambar 4.99 Perancangan Layar Daftar Delivery Order
Gambar 4.100 Perancangan Layar Buat Delivery Order
254
Gambar 4.101 Perancangan Layar Buat Delivery Order 2
Gambar 4.102 Perancangan Layar Buat Delivery Order 3
255
Gambar 4.103 Perancangan Layar Buat In voice
Gambar 4.104 Perancangan Layar Buat Faktur Pajak
256
Gambar 4.105 Perancangan Layar Buat BPRP
Gambar 4.106 Perancangan Layar Buat TBPK
257
Gambar 4.107 Perancangan Layar Laporan Penjualan
Gambar 4.108 Perancangan Layar Laporan Retur
258
4.2.4. S pesifikasi Proses Berikut ini adalah spesifikasi proses yang telah dirancang pada program aplikasi dan sistem basis data untuk PT. CPI: Modul Halaman Log In M ulai Tampilkan halaman log in Buka koneksi ke database cpi IF teks username dan password tidak diisi atau salah Tampilkan pesan kesalahan usernam atau password tidak terdaftar ELSE M asuk ke halaman home Akhir Modul Halaman Home Admin IF user adalah Admin M ulai Tampilkan halaman utama Klik “Home” untuk menampilkan halaman utama Klik “Registrasi” untuk menampilkan halaman regitrasi Klik “Tambah Karyawan” untuk menampilkan halaman tambah karyawan Klik “Daftar Karyawan” untuk menampilkan halaman daftar karyawan Klik “Lihat Profil” untuk menampilkan halaman lihat profil Klik “Ubah Profil” untuk menampilkan halaman ubah profil Klik “Tambah Jabatan” untuk menampilkan halaman tambah jabatan Klik “Daftar Jabatan” untuk menampilkan halaman daftar jabatan Klik “Tambah Pelanggan” untuk menampilkan halaman tambah pelanggan Klik “Daftar Pelanggan” untuk menampilkan halaman daftar pelanggan Klik “Tambah Barang” untuk menampilkan halaman tambah barang Klik “Daftar Barang” untuk menampilkan halaman daftar barang Klik “Pesan M asuk” untuk menampilkan halaman pesan masuk Klik “Pesan Keluar” untuk menampilkan halaman pesan keluar Klik “Tulis Pesan” untuk menampilkan halaman tulis pesan Klik “Sales Order” untuk menampilkan halaman sales order Klik “Daftar Sales Order” untuk menampilkan halaman daftar sales order
259
Klik “Delivery Order” untuk menampilkan halaman delivery order Klik “Daftar Delivery Order” untuk menampilkan halaman daftar delivery order Klik “Daftar Invoice” untuk menampilkan halaman daftar invoice Klik “Daftar Faktur Pajak” untuk menampilkan halaman faktur pajak Klik “Laporan Data Pelanggan” untuk menampilkan halaman laporan data pelanggan Klik “Laporan Data Barang” untuk menampilkan halaman laporan data barang Klik “Laporan Data Karyawan” untuk menampilkan halaman laporan data karyawan Klik “Laporan Penjualan” untuk menampilkan halaman laporan penjualan Klik “Laporan Retur” untuk menampilkan halaman laporan retur Akhir Modul Halaman Registrasi Admin M ulai Tampilkan halaman Registrasi Buka koneksi ke database CPI IF kode karyawan tidak diisi Tampilkan pesan kesalahan isi kode karyawan ELSE IF kode karyawan salah Tampilkan pesan kesalahan kode tidak terdaftar ELSE Tampilkan halaman dengan form registrasi karyawan Akhir Modul Form Registrasi Karyawan Admin M ulai Tampilkan form Registrasi Karyawan Buka koneksi ke database CPI IF username tidak diisi Tampilkan pesan kesalahan username harus diisi ELSE IF username sama dengan yang ada dalam database Tampilkan pesan kesalahan username telah terdaftar ELSE IF kata sandi tidak diisi Tampilkan pesan kesalahan kata sandi harus diisi ELSE IF kata sandi < 6 karakter atau > 30 karakter Tampilkan pesan kesalahan kata sandi min 6 maks 30 char ELSE IF konfirmasi kata sandi tidak diisi Tampilkan pesan kesalahan konfirmasi kata sandi harus diisi ELSE IF konfirmasi kata sandi tidak sama dengan kata sandi Tampilkan pesan kesalahan konfirmasi kata sandi harus sama dengan kata sandi ELSE
260
Tampilkan halaman registrasi karyawan dengan pesan registrasi berhasil Akhir Modul Tambah Karyawan Admin M ulai Tampilkan halaman tambah karyawan Buka koneksi ke database cpi IF teks nama tidak diisi Tampilkan pesan kesalahan nama karyawan harus diisi ELSE IF teks jenis kelamin tidak dipilih Tampilkan pesan kesalahan jenis kelamin harus diisi ELSE IF jabatan tidak dipilih Tampilkan pesan kesalahan jabatan harus diisi ELSE IF email diklik Tampilkan halaman untuk tambah email ELSE IF telepon diklik Tampilkan halaman untuk tambah telepon ELSE IF alamat tidak diisi Tampilkan pesan kesalahan alamat harus diisi ELSE Tampilkan pesan data telah disimpan Akhir Modul Tambah Email Karyawan Admin M odul pada halaman ini hampir sama dengan modul ubah email karyawan, modul ubah email profil, modul tambah email pelanggan, modul ubah email pelanggan. M ulai Tampilkan halaman tambah email Buka koneksi ke database cpi IF teks email tidak diisi Tampilkan pesan kesalahan email harus diisi ELSE IF teks email diisi tidak sesuai format Tampilkan pesan kesalahan format email salah ELSE IF email diisi sudah ada dalam database Tampilkan pesan kesalahan email sudah ada ELSE IF hapus diklik Hapus email yang dipilih ELSE IF kembali diklik Tampilkan halaman tambah karyawan ELSE Tampilkan email yang sudah disimpan Akhir Modul Tambah Telepon Karyawan Admin M odul pada halaman ini hampir sama dengan modul ubah telepon karyawan, modul ubah telepon profil, modul tambah telepon pelanggan, modul ubah telepon pelanggan.
261
M ulai Tampilkan halaman tambah telepon Buka koneksi ke database cpi IF teks telepon tidak diisi Tampilkan pesan kesalahan telepon harus diisi ELSE IF teks telepon diisi bukan numerik Tampilkan pesan kesalahan telepon harus numerik ELSE IF telepon diisi sudah ada dalam database Tampilkan pesan kesalahan telepon sudah ada ELSE IF hapus diklik Hapus telepon yang dipilih ELSE IF kembali diklik Tampilkan halaman tambah karyawan ELSE Tampilkan telepon yang sudah disimpan Akhir Modul Daftar Karyawan Admin M ulai Tampilkan halaman daftar karyawan Buka koneksi ke database cpi IF cari nama karyawan kosong Fungsi cari karyawan tidak dijalankan ELSE IF cari nama karyawan telah diisi Cari data dalam database ELSE IF data yang dicari tidak ada Tampilkan tabel kosong ELSE IF data ada dalam database Tampilkan data sesuai tabel ELSE IF ubah diklik Tampilkan halaman ubah data karyawan ELSE IF hapus diklik Hapus data karyawan bersangkutan dari database Akhir Modul Ubah Data Karyawan Admin M ulai Tampilkan halaman ubah data karyawan Buka koneksi ke database cpi IF teks nama tidak diisi Tampilkan pesan kesalahan nama karyawan harus diisi ELSE IF teks jenis kelamin tidak dipilih Tampilkan pesan kesalahan jenis kelamin harus diisi ELSE IF jabatan tidak dipilih Tampilkan pesan kesalahan jabatan harus diisi ELSE IF email diklik Tampilkan halaman untuk ubah email ELSE IF telepon diklik
262
Tampilkan halaman untuk ubah telepon ELSE IF alamat tidak diisi Tampilkan pesan kesalahan alamat harus diisi ELSE IF kembali diklik Tampilkan halaman daftar karyawan ELSE Tampilkan pesan data telah disimpan Akhir Modul Lihat Profil Admin M ulai Tampilkan Halaman Lihat Profil Buka koneksi ke database cpi Tampilkan data profil Akhir Modul Ubah Profil Admin M ulai Tampilkan halaman ubah profil Buka koneksi ke database cpi IF nama karyawan tidak diisi Tampilkan pesan kesalahan nama karyawan harus diisi ELSE IF password tidak diisi Tampilkan pesan kesalahan password harus diisi ELSE IF konfirmasi password tidak diisi Tampilkan pesan kesalahan konfirmasi password harus diisi ELSE IF konfirmasi password tidak sama dengan password Tampilkan pesan kesalahan konfirmasi password harus sama dengan password ELSE IF jenis kelamin tidak dipilih Tampilkan pesan kesalahan jenis kelamin harus dipilih ELSE IF email diklik Tampilkan halaman ubah email profil ELSE IF telepon diklik Tampilkan halaman ubah telepon profil ELSE Tampilkan pesan data telah disimpan Akhir Modul Tambah Jabatan Admin M ulai Tampilkan halaman tambah jabatan Buka koneksi ke database cpi IF teks jabatan tidak diisi Tampilkan pesan kesalahan isi nama jabatan ELSE IF isi jabatan sama dengan yang ada dalam database Tampilkan pesan kesalahan jabatan sudah ada ELSE Tampilkan halaman daftar jabatan
263
Akhir Modul Daftar Jabatan Admin M ulai Tampilkan halaman daftar jabatan Buka koneksi ke database cpi IF ubah diklik Tampilkan halaman ubah jabatan ELSE IF hapus diklik Hapus jabatan yang dipilih Akhir Modul Ubah Jabatan Admin M ulai Tampilkan halaman ubah jabatan Buka koneksi ke database cpi IF teks jabatan tidak diisi Tampilkan pesan kesalahan isi nama jabatan ELSE IF isi jabatan sama dengan yang ada dalam database Tampilkan pesan kesalahan jabatan sudah ada ELSE Tampilkan halaman daftar jabatan Akhir Modul Tambah Pelanggan Admin M ulai Tampilkan halaman tambah pelanggan Buka koneksi ke database cpi IF teks nama pelanggan tidak diisi Tampilkan pesan kesalahan nama pelanggan harus diisi ELSE IF teks NPWP tidak diisi Tampilkan pesan kesalahan NPWP harus diisi ELSE IF telepon diklik Tampilkan halaman tambah telepon pelanggan ELSE IF email diklik Tampilkan halaman tambah email pelanggan ELSE IF alamat tidak diisi Tampilkan pesan kesalahan alamat harus diisi ELSE Tampilkan pesan data telah disimpan Akhir Modul Daftar Pelanggan Admin M ulai Tampilkan halaman daftar pelanggan Buka koneksi ke database cpi IF cari nama pelanggan kosong Fungsi cari pelanggan tidak dijalankan ELSE IF cari nama pelanggan telah diisi Cari data dalam database
264
ELSE IF data yang dicari tidak ada Tampilkan tabel kosong ELSE IF data ada dalam database Tampilkan data sesuai tabel ELSE IF ubah diklik Tampilkan halaman ubah data pelanggan ELSE IF hapus diklik Hapus data pelanggan bersangkutan dari database Akhir Modul Ubah Pelanggan Admin M ulai Tampilkan halaman ubah pelanggan Buka koneksi ke database cpi IF teks nama pelanggan tidak diisi Tampilkan pesan kesalahan nama pelanggan harus diisi ELSE IF teks NPWP tidak diisi Tampilkan pesan kesalahan NPWP harus diisi ELSE IF telepon diklik Tampilkan halaman ubah telepon pelanggan ELSE IF email diklik Tampilkan halaman ubah email pelanggan ELSE IF alamat tidak diisi Tampilkan pesan kesalahan alamat harus diisi ELSE Tampilkan pesan data telah disimpan Akhir Modul Tambah Barang Admin M ulai Tampilkan halaman tambah barang Buka koneksi ke database cpi IF nama barang tidak diisi Tampilkan pesan kesalahan nama barang harus diisi ELSE IF jenis barang tidak dipilih Tampilkan pesan kesalahan jenis barang harus dipilih ELSE IF jumlah stok tidak diisi Tampilkan pesan kesalahan jumlah stok harus diisi ELSE IF harga tidak diisi Tampilkan pesan kesalahan harga harus diisi ELSE IF satuan tidak dipilih Tampilkan pesan kesalahan satuan harus dipilih ELSE Tampilkan pesan data telah disimpan Akhir Modul Daftar Barang Admin M ulai Tampilkan halaman daftar barang
265
Buka koneksi ke database cpi IF cari nama barang kosong Fungsi cari barang tidak dijalankan ELSE IF cari nama barang telah diisi Cari data dalam database ELSE IF data yang dicari tidak ada Tampilkan tabel kosong ELSE IF data ada dalam database Tampilkan data sesuai tabel ELSE IF ubah diklik Tampilkan halaman ubah data barang ELSE IF hapus diklik Hapus data barang bersangkutan dari database Akhir Modul Ubah Barang Admin M ulai Tampilkan halaman ubah barang Buka koneksi ke database cpi IF nama barang tidak diisi Tampilkan pesan kesalahan nama barang harus diisi ELSE IF jenis barang tidak dipilih Tampilkan pesan kesalahan jenis barang harus dipilih ELSE IF jumlah stok tidak diisi Tampilkan pesan kesalahan jumlah stok harus diisi ELSE IF harga tidak diisi Tampilkan pesan kesalahan harga harus diisi ELSE IF satuan tidak dipilih Tampilkan pesan kesalahan satuan harus dipilih ELSE IF kembali diklik Tampilkan halaman daftar barang ELSE Tampilkan pesan data telah disimpan Akhir Modul Pesan Masuk M ulai Tampilkan halaman pesan masuk Buka koneksi ke database cpi IF judul pesan diklik Tampilkan halaman untuk melihat isi pesan masuk ELSE IF hapus diklik Pesan yang bersangkutan dalam pesan masuk akan dihapus Akhir Modul Isi Pesan Masuk M ulai Tampilkan halaman isi pesan masuk Buka koneksi ke database cpi
266
Tampilkan isi pesan sesuai dengan pesan masuk yang dipilih Akhir Modul Pesan Keluar M ulai Tampilkan halaman pesan keluar Buka koneksi ke database cpi IF judul pesan diklik Tampilkan halaman untuk melihat isi pesan keluar ELSE IF hapus diklik Pesan yang bersangkutan dalam pesan keluar akan dihapus Akhir Modul Isi Pesan Keluar M ulai Tampilkan halaman isi pesan keluar Buka koneksi ke database cpi Tampilkan isi pesan sesuai dengan pesan keluar yang dipilih Akhir Modul Tulis Pesan M ulai Tampilkan halaman tulis pesan Buka koneksi ke database cpi IF kode karyawan tidak diisi Tampilkan pesan kesalahan kode karyawan salah ELSE IF kode karyawan tidak terdaftar Tampilkan pesan kesalahan kode karyawan tidak terdaftar ELSE IF judul tidak diisi Tampilkan pesan kesalahan judul pesan harus diisi ELSE IF pesan tidak diisi Tampilkan pesan kesalahan pesan harus diisi ELSE Tampilkan pesan pesan berhasil dikirim Akhir Modul S ales Order M ulai Tampilkan halaman sales order Buka koneksi ke database cpi IF nama pelanggan tidak dipilih Tampilkan pesan kesalahan nama pelanggan harus dipilih ELSE IF jatuh tempo tidak diisi Tampilkan pesan kesalahan jatuh tempo harus diisi ELSE IF tanggal kirim tidak dipilih Tampilkan pesan kesalahan tanggal kirim harus dipilih ELSE Tampilkan halaman penyimpanan sales order Akhir
267
Modul Penyimpanan Sales Order M ulai Tampilkan halaman penyimpanan sales order Buka koneksi ke database cpi IF nama barang tidak dipilih Tampilkan pesan kesalahan nama barang harus dipilih ELSE IF kuantiti tidak diisi Tampilkan pesan kesalahan kuantiti harus diisi ELSE IF hapus diklik M enghapus isi dari sales order yang telah dipilih ELSE Tampilkan halaman daftar sales order Akhir Modul Daftar S ales Order M ulai Tampilkan halaman daftar sales order Buka koneksi ke database cpi IF kode sales order diklik Tampilkan halaman untuk melihat isi sales order ELSE IF hapus diklik Hapus sales order yang dipilih dari database Akhir Modul Lihat S ales Order M ulai Tampilkan halaman untuk melihat isi sales order Buka koneksi ke database cpi IF ubah diklik Tampilkan halaman ubah SO ELSE IF status SO dipilih Tampilkan halaman daftar SO dengan status yang telah diubah Akhir Modul Ubah S ales Order M ulai Tampilkan halaman untuk ubah sales order Buka koneksi ke database cpi IF teks jatuh tempo tidak diisi Tampilkan pesan kesalahan jatuh tempo harus diisi ELSE IF tanggal kirim tidak dipilih Tampilkan pesan kesalahan tanggal kirim harus dipilih ELSE Tampilkan halaman ubah isi sales order Akhir Modul Ubah Isi S ales Order M ulai Tampilkan halaman untuk ubah isi sales order Buka koneksi ke database cpi
268
IF nama barang tidak dipilih Tampilkan pesan kesalahan nama barang harus dipilih ELSE IF kuantiti tidak diisi Tampilkan pesan kesalahan kuantiti harus diisi ELSE IF hapus diklik M enghapus isi dari sales order yang telah dipilih Akhir Modul Buat Delivery Order M ulai Tampilkan halaman buat delivery order Buka koneksi ke database cpi IF kode sales order diklik Tampilkan halaman lihat sales order ELSE IF buat delivery order diklik Tampilkan halaman delivery order Akhir Modul Delivery Order M ulai Tampilkan halaman delivery order Buka koneksi ke database cpi IF delivery order untuk sales order yang dipilih sudah dibuat Tampilkan link kembali dan pesan DO sudah dibuat IF kembali di klik Tampilkan halaman buat delivery order ELSE IF delivery order untuk sales order yang dipilih belum dibuat IF pengiriman tidak dipilih Tampilkan pesan kesalahan pengiriman harus dipilih ELSE Tampilkan halaman isi delivery order Akhir Modul Isi Delivery Order M ulai Tampilkan halaman isi delivery order Buka koneksi ke database cpi IF simpan diklik Tampilkan halaman daftar delivery order Akhir Modul Daftar Delivery Order M ulai Tampilkan halaman isi delivery order Buka koneksi ke database cpi IF kode delivery order diklik Tampilkan halaman lihat delivery order ELSE IF buat invoice diklik Tampilkan halaman buat invoice
269
ELSE IF buat faktur pajak diklik Tampilkan halaman buat faktur pajak ELSE IF hapus diklik M enghapus delivery order yang dipilih Akhir Modul Lihat Delivery Order M ulai Tampilkan halaman isi delivery order Buka koneksi ke database cpi IF kembali diklik Tampilkan halaman daftar delivery order ELSE IF print diklik Tampilkan yang hendak di print Akhir Modul Buat Invoice M ulai Tampilkan halaman buat invoice Buka koneksi ke database cpi IF DO yang dipilih sudah dibuat Invoice nya M enampilkan pesan Invoice sudah pernah dibuat ELSE M enampilkan pembuatan invoice sesuai DO yang dipilih IF Simpan diklik Invoice disimpan, tampilkan halaman daftar DO Akhir Modul Buat Faktur Pajak M ulai Tampilkan halaman buat faktur pajak Buka koneksi ke database cpi IF DO yang dipilih sudah dibuat Faktur Pajak nya M enampilkan pesan Faktur Pajak sudah pernah dibuat ELSE M enampilkan pembuatan faktur pajak sesuai DO yang dipilih IF Simpan diklik Faktur Pajak disimpan, tampilkan halaman daftar DO Akhir Modul Daftar Invoice M ulai Tampilkan halaman daftar invoice Buka koneksi ke database cpi IF kode invoice diklik M enampilkan halaman lihat invoice ELSE IF hapus diklik M enghapus invoice yang dipilih Akhir Modul Lihat Invoice
270
M ulai Tampilkan halaman lihat invoice Buka koneksi ke database cpi IF kembali diklik Kembali ke halaman daftar invoice ELSE IF print diklik Print invoice Akhir Modul Daftar Faktur Pajak M ulai Tampilkan halaman daftar faktur pajak Buka koneksi ke database cpi IF kode faktur pajak diklik M enampilkan halaman lihat faktur pajak ELSE IF hapus diklik M enghapus faktur pajak yang dipilih Akhir Modul Lihat Faktur Pajak M ulai Tampilkan halaman lihat faktur pajak Buka koneksi ke database cpi IF kembali diklik Kembali ke halaman daftar faktur pajak ELSE IF print diklik Print faktur pajak Akhir Modul Buat BPRP M ulai Tampilkan halaman buat BPRP Buka koneksi ke database cpi IF kode delivery order diklik Tampilkan halaman lihat delivery order ELSE IF buat bprp diklik Tampilkan halaman buat isi bprp Akhir Modul Buat Isi BPRP M ulai Tampilkan halaman buat isi BPRP Buka koneksi ke database cpi IF DO yang dipilih sudah dibuat BPRP nya M enampilkan pesan BPRP sudah pernah dibuat ELSE M enampilkan pembuatan BPRP sesuai DO yang dipilih IF nama barang tidak dipilih Tampilkan pesan kesalahan nama barang harus dipilih ELSE IF banyaknya tidak diisi
271
Tampilkan pesan kesalahan banyaknya barang harus diisi ELSE IF simpan diklik Tampilkan keterangan barang yang hendak di retur ELSE IF selesai diklik Tampilkan halaman daftar BPRP Akhir Modul Daftar BPRP M ulai Tampilkan halaman daftar BPRP Buka koneksi ke database cpi IF kode BPRP diklik Tampilkan halaman lihat BPRP ELSE IF hapus diklik M enghapus BPRP yang dipilih Akhir Modul Lihat BPRP M ulai Tampilkan halaman lihat BPRP Buka koneksi ke database cpi IF ubah diklik Tampilkan halaman ubah BPRP ELSE IF print diklik Print BPRP Akhir Modul Ubah BPRP M ulai Tampilkan halaman ubah BPRP Buka koneksi ke database cpi M enampilkan BPRP yang hendak dirubah IF nama barang tidak dipilih Tampilkan pesan kesalahan nama barang harus dipilih ELSE IF banyaknya tidak diisi Tampilkan pesan kesalahan banyaknya barang harus diisi ELSE IF simpan diklik Tampilkan keterangan barang yang hendak di retur ELSE IF selesai diklik Simpan perubahan BPRP, tampilkan halaman daftar BPRP Akhir Modul Buat TBPK M ulai Tampilkan halaman buat TBPK Buka koneksi ke database cpi IF kode BPRP diklik Tampilkan halaman lihat BPRP ELSE IF buat TBPK diklik Tampilkan halaman buat isi TBPK
272
Akhir Modul Buat Isi TBPK M ulai Tampilkan halaman buat isi TBPK Buka koneksi ke database cpi IF BPRP yang dipilih sudah dibuat TBPK nya M enampilkan pesan TBPK sudah pernah dibuat ELSE M enampilkan pembuatan TBPK sesuai BPRP yang dipilih IF selesai diklik Simpan TBPK, tampilkan halaman daftar TBPK Akhir Modul Daftar TBPK M ulai Tampilkan halaman daftar TBPK Buka koneksi ke database cpi IF kode TBPK diklik Tampilkan halaman lihat TBPK ELSE IF hapus diklik M enghapus TBPK yang dipilih Akhir Modul Lihat TBPK M ulai Tampilkan halaman lihat TBPK Buka koneksi ke database cpi IF print diklik Print TBPK Akhir Modul Laporan Penjualan M odul ini hampir sama dengan modul Laporan Retur M ulai Tampilkan halaman laporan penjualan Buka koneksi ke database cpi IF cari laporan kosong Fungsi cari laporan tidak dijalankan ELSE IF jangka waktu cari laporan telah dipilih Cari data dalam database ELSE IF data yang dicari tidak ada Tampilkan tabel kosong ELSE IF data ada dalam database Tampilkan data sesuai tabel ELSE IF print diklik Print laporan penjualan Akhir
273
4.3
Implementasi Dan Evaluasi 4.3.1
Jadwal Implementasi Program aplikasi dan sistem basis data yang telah dibuat akan diimplementasikan ke dalam perusahaan untuk percobaan sebelum digunakan untuk menggantikan sistem yang lama. Berikut adalah jadwal implementasi yang direncanakan: Tabel 4.18 Jadwal Implementasi Program Aplikasi
No
Kegiatan
M inggu 1
1
M engadakan
perangkat
2
3
4
5
X
X
X
X
X
6
7
8
X
X
X
keras dan perangkat lunak 2
Instalasi perangkat keras
X
3
Instalasi perangkat lunak
X
4
M elakukan
pengujian
terhadap aplikasi dan sistem basis data 5
M engadakan pelatihan bagi
X
para pengguna 6
M engadakan
evaluasi
terhadap aplikasi program dan sistem basis data
274
4.3.2
S pesifikasi Perangkat Keras Dalam pengimplementasian program aplikasi dan sistem basis data pada PT. CPI dibutuhkan spesifikasi perangkat keras sebagai berikut: Tabel 4.19 S pesifikasi Perangkat Keras
Perangkat Keras
Server
Client
Proccessor
CORE 2 DUO 6400
Intel Celeron 2.26GHz
Memory
DDR2 3 GB
DDR 256 M B
Harddisk
SATA II 320 GB
SATA 40 GB
Graphic Card
On board VGA
On Board VGA
Monitor
LCD 19″Wide Screen
SVGA 15”
View Sonic Printer
Ya
Ya
Keyboard
Ya
Ya
Mouse
Ya
Ya
CD-ROM Drive
Ya
Ya
UPS
Ya
Tidak diharuskan
Switch
Ya
Ya
Kabel LAN
Ya
Ya
275
4.3.3
S pesifikasi Perangkat Lunak Dalam pengimplementasian program aplikasi dan sistem basis data pada PT. CPI dibutuhkan spesifikasi perangkat lunak sebagai berikut: Tabel 4.20 S pesifikasi Perangkat Lunak
Perangkat Lunak
Server
Client
Sistem Operasi
M icrosoft Windows Server
M icrosoft Windows XP
2003 SP2
SP2
Aplikasi Program
M ozilla Firefox 3.5.7
M ozilla Firefox 3.5.7
Pendukung
PHPmyadmin ApacheFriends XAMPP (basic package) version 1.6.7 Adobe Dreamweaver CS 3
DBM S
M YSQL 5
Antivirus
Kapersky Internet Security
4.3.4
AVG Free Edition
Kebutuhan Personil Dalam proses pengimplementasian sistem ini, diperlukan tenaga dari:
276
1.
Technical support Bertanggungjawab sebagai pembangun jaringan yang diperlukan
untuk
sistem ini.
Diharapkan
dapat mengatasi
permasalahan dengan jaringan dan hardware. 2.
Admin Bertanggung diperlukan
untuk
jawab
memasukkan
mendukung sistem.
data-data
yang
Berwewenang dalam
manipulasi data yaitu insert, update, dan delete. 3.
Database administrator Bertanggung jawab atas basis data yang ada pada sistem serta pemrosesan datanya.
4.3.5 Evaluasi Sistem Evaluasi diperoleh melalui kuesioner yang dilakukan dengan karyawan PT. Charoen Pokphand Indonesia (hasil kuesioner dapat dilihat pada bagian lampiran). Berikut ini yang dapat disimpulkan dari hasil kuesioner: i.
Sistem basis data ini merupakan sistem yang baru, tetapi memberikan tampilan yang baik.
ii.
Sistem basis data ini membantu sebagian besar pekerjaan yang ada, dan cukup mudah digunakan.
iii.
Sistem basis data ini mempermudah dalam mengakses informasi yang dibutuhkan dan fasilitas yang ada sudah cukup memadai.
277
4.3.6
Konversi Data Konversi data yang dimaksud adalah dilakukan konversi data dari sistem yang pada mulanya merupakan sistem manual ke sistem yang terkomputerisasi. Data-data pada perusahaan dikonversikan menjadi data di dalam basis data untuk dapat digunakan dalam prosedur penjualan yang berlangsung.
4.3.7
Backup Data Backup Data yang akan dilakukan disesuaikan dengan kebutuhan perusahaan. Perencanaannya backup akan dilakukan secara berkala yaitu harian, mingguan, bulanan, dan tahunan. Backup data yang dilakukan adalah mengekspor semua data-data yang ada di dalam basis data. Backup harian dan mingguan akan disimpan di dalam harddisk, sedangkan untuk backup jangka waktu bulanan dan tahunan akan disimpan ke dalam CD.
4.3.8
Recovery Data Untuk menghindari adanya kehilangan data baik yang disengaja ataupun yang tidak,
maka dapat
digunakan
program ‘MySQL
Administrator’. Program ini biasanya berguna dalam penjadwalan backup data MySQL secara otomatis, selain juga untuk recovery data pada MySQL.