99
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 logikal: merupakan pembuatan model berdasarkan informasi dari perusahaan dengan 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.
Tabel 4.1 Tabel Identifikasi Tipe-Tipe Entitas
Nama Entitas Deskripsi Alias Occurence
Mskaryawan Berisi data mengenai karyawan di CPI yang berhubungan dengan proses penjualan, pengiriman dan retur barang. Staff Karyawan menangani proses penjualan, pengiriman dan retur barang.
Mscustomer Berisi data mengenai pelanggan yang
membeli barang di CPI
Pelanggan Pelanggan membeli
barang baik dalam kapasitas kecil maupun besar. Msbarang Berisi data mengenai
barang yang dijual oleh CPI
Produk Penjualan barang
atas permintaan pelanggan. Salesorder Berisi data tentang
barang-barang yang dibeli oleh pelanggan
SO Satu sales order
dibuat oleh satu karyawan sales admin.
Deliveryorder Berisi data tentang barang-barang yang dibeli oleh pelanggan
DO Delivery order akan dibuat setelah ada persetujuan dari
berdasarkan SO yang telah dibuat.
credit control.
Invoice Berisi data tentang barang-barang yang dibeli oleh pelanggan berdasarkan SO yang telah dibuat.
Inv Invoice berupa tagihan kepada pelanggan atas barang yang telah dipesan.
Fakturpajak Berisi data tentang pajak dari barang-barang yang dipesan oleh pelanggan berdasarkan SO yang telah dibuat.
FP Faktur pajak berupa
tagihan pajak kepada pelanggan atas barang yang telah dipesan.
Bprp Berisi data tentang Bukti Persetujuan Retur Penjualan atas barang yang diretur oleh pelanggan.
- Bprp dibuat setelah
ada persetujuan dari sales, technical service atau quality control.
Tbpk Berisi data tentang Tanda Bukti
Penerimaan Kembali atas barang yang diretur oleh pelanggan.
- TBPK dibuat oleh
bagian gudang berdasarkan bukti timbang yang telah ada.
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
entitas
Nama entitas Multiplicity
Mskaryawan 1..1 1..1 1..1 1..1 1..1 1..1 membuat membuat membuat membuat membuat membuat Salesorder Deliverorder Invoice Fakturpajak Bprp Tbpk 0..* 0..* 0..* 0..* 0..* 0..* Mscustomer 1..1 1..1 1..1 1..1 1..1 1..1 memesan mendapatkan mendapatkan mendapatkan mengajukan mendapatkan Salesorder Deliveryorder Invoice Fakturpajak BPRP TBPK 1..* 1..* 1..* 1..* 0..* 0..* Msbarang 1..* 1..* dipesan dicantumkan Salesorder Deliveryorder 0..* 0..*
1..* 1..* 1..* 1..* dicantumkan dicantumkan dicantumkan dicantumkan Invoice Fakturpajak Bprp Tbpk 0..* 0..* 0..* 0..* Salesorder 1..1 digunakan untuk Deliveryorder 1..* Deliveryorder 1..1 1..1 1..1 digunakan untuk digunakan untuk digunakan untuk Bprp Invoice Fakturpajak 1..* 1..1 1..1 Bprp 1..1 digunakan untuk Tbpk 1..* Gambar 4.1 Diagram ER
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
entitas
Atribut Deskripsi Tipe dan
Panjang Data Nulls Multi value d Mskaryawan kdkaryawan namakaryawan jeniskelamin alamat gambar telepon email namajabatan
Kode untuk tiap karyawan Nama karyawan Jenis kelamin Alamat karyawan Foto karyawan Telepon karyawan Email karyawan Jabatan karyawan 9 varchar 50 varchar 1 int 50 varchar 50 varchar 20 varchar 30 varchar 20 varchar No No No No Yes No Yes No No No No No No Yes Yes No Mscustomer kdcustomer namacustomer npwp
Kode untuk tiap pelanggan Nama pelanggan NPWP pelanggan 9 varchar 50 varchar 50 varchar No No No No No No
alamat telepon email Alamat pelanggan Telepon pelanggan Email pelanggan 50 varchar 20 varchar 30 varchar No No Yes No Yes Yes Msbarang kdbarang namabarang jumlahstok harga namajenisbarang namasatuan
Kode untuk tiap barang
Nama barang Jumlah stok barang Harga jual barang Jenis barang Satuan barang 9 varchar 50 varchar 11 int 11 int 50 varchar 50 varchar No No No No No No No No No No No No Salesorder kdso namakaryawan telepon namacustomer alamat telepon tanggalso jangkawaktu catatan tanggalkirim
Kode untuk tiap SO Nama karyawan yang menanganinya Telepon karyawan Nama pelanggan yang memesan Alamat pelanggan Telepon pelanggan Tanggal SO dibuat Jangka waktu untuk pembayaran Catatan untuk SO Tanggal barang 21 varchar 50 varchar 20 varchar 50 varchar 50 varchar 20 varchar 10 varchar 2 int 50 varchar 10 varchar No No No No No No No No No No No No Yes No No Yes No No No No
kdbarang namabarang namajenisbarang harga qty total subtotal ppn grandtotal dikirimkan Kode dari barang yang dipesan Nama barang yang dipesan
Nama jenis barang yang dipesan Harga barang Jumlah barang yang dipesan
Dari harga dikali qty Jumlah dari total Total dikali ppn subtotal ditambah ppn 5 varchar 50 varchar 50 varchar 11 int 11 int 11 int 11 int 11 int 11 int No No No No No No No No No No No No No No No No No No Deliveryorder kddo kdso namacustomer alamat telepon tanggaldo
Kode untuk tiap DO Kode dari SO yang mau dibuat DO-nya Nama pelanggan yang memesan Alamat pelanggan Telepon pelanggan Tanggal Do dibuat 21 varchar 21 varchar 50 varchar 50 varchar 20 varchar 10 varchar No No No No No No No No No No Yes No
keterangan nokendaraan namabarang qty Keterangan untuk DO No plat kendaraan yang mengirim barang
Nama barang yang dipesan
Jumlah barang yang dipesan 50 varchar 10 varchar 50 varchar 11 int No No No No No No No No Invoice kdinv tanggalinv kddo tanggaldo tanggalkirim namabarang qty harga
Kode untuk tiap invoice
Tanggal inv dibuat Kode dari DO yang mau dibuat inv-nya Tanggal DO dibuat Tanggal barang dikirim
Nama barang yang dipesan
Jumlah barang yang dipesan
Harga barang yang dipesan 22 varchar 10 varchar 21 varchar 10 varchar 10 varchar 50 varchar 11 int 11 int No No No No No No No No No No No No No No No No
total subtotal ppn grandtotal namacustomer alamat telepon
Dari harga dikali qty Jumlah dari total Total dikali ppn subtotal ditambah ppn Nama pelanggan Alamat pelanggan Telepon pelanggan 11 int 11 int 11 int 11 int 50 varchar 50 varchar 20 varchar No No No No No No No No No No No No No Yes Fakturpajak kdfp kdso namakaryawan namabarang qty tanggalfp total subtotal ppn grandtotal
Kode untuk tiap FP Kode dari SO yang mau dibuat fp-nya Nama karyawan yang membuat FP Nama barang yang dipesan
Jumlah barang yang dipesan
Tanggal FP dibuat Dari harga dikali qty Jumlah dari total Total dikali ppn subtotal ditambah ppn 7 varchar 21 varchar 50 varchar 50 varchar 11 int 10 varchar 11 int 11 int 11 int 11 int No No No No No No No No No No No No No No No No No No No No
Bprp kdbprp tanggalbprp kddo namakaryawan namacustomer alamat telepon kdbarang namabarang qty sebabpengembalian
Kode untuk tiap BPRP
Tanggal BPRP dibuat
Kode dari Do yang mau dibuat BPRP-nya Nama karyawan yang membuat BPRP Nama pelanggan Alamat pelanggan Telepon pelanggan Kode barang yang diretur Nama barang Jumlah barang Sebab retur 21 varchar 10 varchar 21 varchar 50 varchar 50 varchar 50 varchar 20 varchar 5 varchar 50 varchar 11 int 50 varchar No No No No No No No No No No No No No No No No No Yes No No No No Tbpk kdtbpk tanggaltbpk kdbprp
Kode untuk tiap TBPK Tanggal TBPK dibuat Kode BPRp yang 21 varchar 10 varchar 21 varchar No No No No No No
namakaryawan namacustomer alamat telepon kdbarang namabarang qty sebabpengembalian mau dibuat TBPK-nya Nama karyawan yang membuat TBPK Nama pelanggan Alamat pelanggan Telepon pelanggan Kode barang Nama barang Jumlah barang Sebab pengembalian 50 varchar 50 varchar 50 varchar 20 varchar 5 varchar 50 varchar 11 int 50 varchar No No No No No No No No No No No Yes No No 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
namakaryawan
jeniskelamin
Berupa 9 karakter dengan format [yyyy][mm][000-999].
M aksimal 50 karakter yang berisi nama karyawan, termasuk spasi.
alamat gambar telepon email namajabatan
‘0’ untuk Perempuan, ’ 1’ untuk laki-laki, ‘2’ untuk tidak diketahui.
M aksimal 50 karakter yang berisi alamat karyawan, termasuk spasi.
M aksimal 50 karakter yang berisi alamat tempat image tersebut disimpan.
M aksimal 20 karakter yang berisi telepon karyawan, yang harus diisi dengan angka.
M aksimal 30 karakter yang berisi email karyawan dengan format xxxxx@yyyy.zzz
M aksimal 20 karakter yang berisi kabatan karyawan, termasuk spasi.
Mscustomer kdcustomer namacustomer npwp alamat telepon email
Berupa 9 karakter dengan format [yyyy][mm][000-999].
M aksimal 50 karakter yang berisi nama pelanggan, termasuk spasi.
M aksimal 50 karakter yang berisi NPWP
pelanggan, termasuk titik(.) dan garis miring (/). M aksimal 50 karakter yang berisi alamat pelanggan, termasuk spasi.
M aksimal 20 karakter yang berisi telepon pelanggan, yang harus diisi dengan angka.
dengan format xxxxx@yyyy.zzz Msbarang kdbarang namabarang jumlahstok harga namajenisbarang namasatuan
Berupa 9 karakter dengan format [yyyy][mm][000-999].
M aksimal 50 karakter yang berisi nama barang, termasuk spasi.
Berupa angka yang berisi jumlah stok barang dengan maksimal 11 angka.
Berupa angka yang berisi harga barang dengan maksimal 11 angka.
M aksimal 50 karakter yang berisi nama jenis barang, termasuk spasi.
M aksimal 50 karakter yang berisi nama satuan, termasuk spasi.
Salesorder kdso
namakaryawan
telepon
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.
M aksimal 50 karakter yang berisi nama karyawan yang menangani, termasuk spasi.
namacustomer alamat telepon tanggalso jangkawaktu catatan tanggalkirim kdbarang namabarang namajenisbarang
yang menangani, dan harus diisi dengan angka. M aksimal 50 karakter yang berisi nama pelanggan yang memesan, termasuk spasi.
M aksimal 50 karakter yang berisi alamat pelanggan yang memesan, termasuk spasi.
M aksimal 20 karakter yang berisi telepon pelanggan yang memesan, dan harus diisi dengan angka. 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. Berupa angka yang berisi jangka waktu untuk pembayaran dengan maksimal 2 angka. M aksimal 50 karakter yang berisi catatan SO. 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. Berupa 9 karakter dengan format [yyyy][mm][000-999].
M aksimal 50 karakter yang berisi nama barang yang dipesan, termasuk spasi.
harga qty total subtotal ppn grandtotal
yang dipesan, termasuk spasi.
Berupa angka yang berisi harga barang yang dipesan dengan maksimal 11 angka.
Berupa angka yang berisi kwantum dari barang yang dipesan dengan maksimal 11 angka. Berupa angka yang berisi total harga dari barang yang dipesan, didapat dari qty dikali harga, dengan maksimal 11 angka.
Berupa angka yang berisi jumlah total harga dari barang yang dipesan dengan maksimal 11 angka. Berupa angka yang berisi ppn, yang nilainya 10% dikali sub total, dengan maksimal 11 angka. Berupa angka yang berisi grand total harga dari barang yang dipesan, didapat dari subtotal ditambah ppn, dengan maksimal 11 angka.
Deliveryorder kddo
kdso
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.
namacustomer alamat telepon tanggaldo keterangan nokendaraan namabarang qty
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.
M aksimal 50 karakter yang berisi nama pelanggan yang memesan, termasuk spasi.
M aksimal 50 karakter yang berisi alamat pelanggan yang memesan, termasuk spasi.
M aksimal 20 karakter yang berisi telepon pelanggan yang memesan, dan harus diisi dengan angka. 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.
M aksimal 50 karakter yang berisi keterangan DO. M aksimal 10 karakter yang berisi no plat kendaraan yang mengirim barang.
M aksimal 50 karakter yang berisi nama barang yang dikirim, termasuk spasi.
Berupa angka yang berisi kwantum dari barang yang dikirim dengan maksimal 11 angka.
Invoice kdinv
tanggalinv
kddo
tanggaldo
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.
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. 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.
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.
tanggalkirim namabarang qty harga total subtotal ppn grandtotal namacustomer alamat
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. M aksimal 50 karakter yang berisi nama barang yang dipesan, termasuk spasi.
Berupa angka yang berisi kwantum dari barang yang dipesan dengan maksimal 11 angka. Berupa angka yang berisi harga barang yang dipesan dengan maksimal 11 angka.
Berupa angka yang berisi total harga dari barang yang dipesan, didapat dari qty dikali harga, dengan maksimal 11 angka.
Berupa angka yang berisi jumlah total harga dari barang yang dipesan dengan maksimal 11 angka. Berupa angka yang berisi ppn, yang nilainya 10% dikali sub total, dengan maksimal 11 angka. Berupa angka yang berisi grand total harga dari barang yang dipesan, didapat dari subtotal ditambah ppn, dengan maksimal 11 angka.
M aksimal 50 karakter yang berisi nama pelanggan yang memesan, termasuk spasi.
telepon
yang memesan, termasuk spasi.
M aksimal 20 karakter yang berisi telepon pelanggan yang memesan, dan harus diisi dengan angka. Fakturpajak kdfp kdso namakaryawan namabarang qty tanggalfp total
Berupa 7 karakter dengan format xxxxxxx, dimana 7 karakter menunjukkan nomor urutan faktur pajak. 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.
M aksimal 50 karakter yang berisi nama karyawan yang membuat faktur pajak, termasuk spasi. M aksimal 50 karakter yang berisi nama barang yang dipesan, termasuk spasi.
Berupa angka yang berisi kwantum dari barang yang dipesan dengan maksimal 11 angka.
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.
subtotal
ppn
grandtotal
yang dipesan, didapat dari qty dikali harga, dengan maksimal 11 angka.
Berupa angka yang berisi jumlah total harga dari barang yang dipesan dengan maksimal 11 angka. Berupa angka yang berisi ppn, yang nilainya 10% dikali sub total, dengan maksimal 11 angka. Berupa angka yang berisi grand total harga dari barang yang dipesan, didapat dari subtotal ditambah ppn, dengan maksimal 11 angka.
Bprp kdbprp
tanggalbprp
kddo
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.
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. Berupa 21 karakter dengan format
DO/abcde/ddmmyyyy/xxx, dimana 2 karakter depan berupa huruf ‘DO’, diikuti 5 karakter
namakaryawan namacustomer alamat telepon kdbarang namabarang qty sebabpengembalian
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.
M aksimal 50 karakter yang berisi nama karyawan yang membuat BPRP, termasuk spasi.
M aksimal 50 karakter yang berisi nama pelanggan, termasuk spasi.
M aksimal 50 karakter yang berisi alamat pelanggan, termasuk spasi.
M aksimal 20 karakter yang berisi telepon pelanggan, dan harus diisi dengan angka.
Berupa 9 karakter dengan format [yyyy][mm][000-999].
M aksimal 50 karakter yang berisi nama barang, termasuk spasi.
Berupa angka yang berisi kwantum dari barang yang diretur dengan maksimal 11 angka. M aksimal 50 karakter yang berisi sebab retur, termasuk spasi.
Tbpk kdtbpk Berupa 21 karakter dengan format
tanggaltbpk kdbprp namakaryawan namacustomer alamat telepon
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.
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. 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. M aksimal 50 karakter yang berisi nama karyawan yang membuat TBPK, termasuk spasi.
M aksimal 50 karakter yang berisi nama pelanggan, termasuk spasi.
M aksimal 50 karakter yang berisi alamat pelanggan, termasuk spasi.
kdbarang
namabarang
qty
sebabpengembalian
pelanggan, dan harus diisi dengan angka.
Berupa 9 karakter dengan format [yyyy][mm][000-999].
M aksimal 50 karakter yang berisi nama barang, termasuk spasi.
Berupa angka yang berisi kwantum dari barang yang diretur dengan maksimal 11 angka. 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 namakaryawan
telepon email
Mscustomer kdcustomer namacustomer npwp telepon email Kdcustomer Msbarang Kdbarang namabarang Kdbarang Salesorder kdso tanggalso tanggalkirim Kdso Deliveryorder kddo kdso tanggaldo Kddo Invoice kdinv tanggalinv kddo tanggaldo tanggalkirim Kdinv Fakturpajak kdfp kdso tanggalfp kdfp Bprp kdbprp kdbprp
tanggalbprp kddo Tbpk kdtbpk kdbprp tanggalbprp kdtbpk Gambar 4.2 Diagram ER Dengan Primary Key Yang Telah Ditambahkan
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.
Seperti yang telah dijelaskan di bagian a, Deliveryorder berhubungan dengan Salesorder, yang berhubungan dengan M scustomer.
d ica n tu m ka n di c a nt um k a n d igun ak a n d ip e sa n d ic ant um k a n me mb u a t me mb u a t me mb u a t me m b u a t d ic ant um k a n d ica n tu m ka n di gu nak a n
Langkah 1.8 Validasi model konseptual lokal terhadap transaksi
user
Sasarannya : untuk meyakinkan bahwa local conceptual model mendukung transaksi pada sistem ini.
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.
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.
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.
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..*
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..*
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..*
d. . Hubungan Fakturpajak dengan M sbarang
Msbarang kdbaran g{PK} Fakturp ajak kd fp{P K} dipesan 1..* 0 ..* qty Msb arang kd barang{ PK} (a) Detailfakturp ajak qty Faktu rpajak kdfp{PK} dibutuhkan 0..* 1..* pe rlu 1..1 1..1 (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 Multiplicity
Msbarang 1..1 dibutuhkan Detailfakturpajak 0..* Fakturpajak 1..1 Perlu Detailfakturpajak 1..*
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..*
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..*
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
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.
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
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,
namakaryawan, jeniskelamin, alamat, gambar, telepon, email, namajabatan)
Primary key: kdkaryawan
S alesorder (kdso, kdkaryawan, namakaryawan, telepon,
namacustomer, alamat, telepon, tanggalso, jangkawaktu, catatan, tanggalkirim, kdbarang, namabarang, namajenisbarang, harga, qty, total, subtotal, ppn, grandtotal)
Primary key: kdso
Foreign key: kdkaryawan references
b. Relasi 1:* M skaryawan dengan Deliveryorder adalah satu karyawan dapat membuat satu atau banyak Delivery order.
Mskaryawan (kdkaryawan,
namakaryawan, jeniskelamin, alamat, gambar, telepon, email, namajabatan) Primary key: kdkaryawan
Deliveryorder (kddo, kdso,
kdkaryawan, namacustomer, alamat, telepon, tanggaldo, keterangan, 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,
namakaryawan, jeniskelamin, alamat, gambar, telepon, email, namajabatan)
Primary key: kdkaryawan
Invoice (kdinv, kdkaryawan, tanggalinv, kdso,
tanggalso, tanggalkirim, jangkawaktu, namabarang, qty, harga, total, subtotal, ppn, grandtotal, terbilang, keterangan, namacustomer, alamat, telepon)
Primary key: kdinv
Mskaryawan (kdkaryawan)
d. Relasi 1:* M skaryawan dengan Faktur pajak adalah satu karyawan dapat membuat satu atau banyak Faktur pajak.
Mskaryawan (kdkaryawan,
namakaryawan, jeniskelamin, alamat, gambar, telepon, email, namajabatan)
Primary key: kdkaryawan
Fakturpajak (kdfp, kdso, kdkaryawan, namakaryawan, namabarang, qty, tanggalfp, total, 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,
namakaryawan, jeniskelamin, alamat, gambar, telepon, email, namajabatan)
Primary key: kdkaryawan
Bprp (kdbprp, tanggalbprp, kddo, kdkaryawan, namakaryawan, namacustomer, alamat, telepon, kdbarang, namabarang, qty, sebabpengembalian)
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,
namakaryawan, jeniskelamin, alamat, gambar, telepon, email, namajabatan) Primary key: kdkaryawan
Tbpk (kdtbpk, tanggaltbpk, kdbprp, kdkaryawan, namakaryawan,
namacustomer, alamat, telepon, 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,
namacustomer, npwp, alamat, telepon, email)
Primary key: kdcustomer
S alesorder (kdso, kdkaryawan, namakaryawan, telepon, kdcustomer, namacustomer, alamat, telepon, tanggalso, jangkawaktu, catatan, tanggalkirim, kdbarang, namabarang,
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, namakaryawan, telepon, kdcustomer, namacustomer, alamat, telepon, tanggalso, jangkawaktu, catatan, tanggalkirim, kdbarang, namabarang, namajenisbarang, harga, qty, total, subtotal, ppn, grandtotal)
Primary key: kdso
Deliveryorder (kddo, kdso, kdkaryawan, kdcustomer, namacustomer, alamat, telepon, tanggaldo, keterangan, nokendaraan, namabarang, qty)
Primary key: kddo
Foreign key: kdso references
Salesorder (kdso)
i. Relasi 1:* BPRP dengan TBPK adalah satu BPRP dapat dibuatkan satu atau banyak TBPK.
kdkaryawan, namakaryawan, namacustomer, alamat, telepon, kdbarang, namabarang, qty, sebabpengembalian)
Primary key: kdbprp
kdkaryawan, namakaryawan, namacustomer, alamat, telepon, kdbarang, namabarang, qty, sebabpengembalian)
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, kdkaryawan, kdcustomer, namacustomer, alamat, telepon, tanggaldo, keterangan, nokendaraan, namabarang, qty)
Primary key: kddo
Bprp (kdbprp, tanggalbprp, kddo, kdkaryawan, namakaryawan, namacustomer, alamat, telepon, kdbarang, namabarang, qty, sebabpengembalian)
Primary key: kdbprp
Foreign key: kddo references
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, kdkaryawan, kdcustomer, namacustomer, alamat, telepon, tanggaldo, keterangan, nokendaraan, namabarang, qty)
Primary key: kddo
Invoice (kdinv, kdkaryawan, kdcustomer, tanggalinv, kddo,
tanggalso, tanggalkirim, jangkawaktu, namabarang, qty, harga, total, subtotal, ppn, grandtotal, terbilang, keterangan, 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, kdkaryawan, kdcustomer, namacustomer, alamat, telepon, tanggaldo, keterangan, nokendaraan, namabarang, qty)
Fakturpajak (kdfp, kdkaryawan, kdcustomer, kddo, namakaryawan, namabarang, qty, tanggalfp, total, subtotal, ppn, grandtotal)
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)
namasatuan)
Primary key: kdbarang
S alesorder (kdso, kdkaryawan, namakaryawan, telepon, kdcustomer, namacustomer, alamat, telepon, tanggalso, jangkawaktu, catatan, tanggalkirim, kdbarang, namabarang, namajenisbarang, harga, qty, total, subtotal, ppn, grandtotal)
Primary key: kdso
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Foreign key: kdcustomer references Mscustomer (kdcustomer)
Foreign key: kdbarang references Msbarang (kdbarang)
Detailsalesorder (kdso, kdbarang, qty) Primary key: kdso
Foreign key: kdso references Salesorder (kdso)
Foreign key: kdbarang references Msbarang (kdbarang)
Deliveryorder (kddo, kdso, kdkaryawan, kdcustomer, namacustomer, alamat, telepon, tanggaldo, keterangan, nokendaraan, namabarang, qty)
Primary key: kddo
Foreign key: kdkaryawan references
Detaildeliveryorder (kddo, kdbarang, qty)
Primary key: kddo
Foreign key: kddo references Deliveryorder (kddo)
Foreign key: kdbarang references Msbarang (kdbarang)
Mskaryawan (kdkaryawan)
Foreign key: kdcustomer references Mscustomer (kdcustomer)
Foreign key: kdso references Salesorder (kdso)
Invoice (kdinv, kdkaryawan, kdcustomer, tanggalinv, kddo,
tanggalso, tanggalkirim, jangkawaktu, namabarang, qty, harga, total, subtotal, ppn, grandtotal, terbilang, keterangan, namacustomer, alamat, telepon) Primary key: kdinv
Foreign key: kddo references Deliveryorder (kddo)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Foreign key: kdcustomer references Mscustomer (kdcustomer)
Detailinvoice (kdinv, kdbarang, qty) Primary key: kdiv
Foreign key: kdinv references Invoice (kdinv)
Foreign key: kdbarang references Msbarang (kdbarang)
Fakturpajak (kdfp, kdkaryawan, kdcustomer, kddo, namakaryawan, namabarang, qty, tanggalfp, total, subtotal, ppn, grandtotal)
Primary key: kdfp
Detailfakturpajak (kdfp, kdbarang, qty) Primary key: kdfp
Foreign key: kdfp references Fakturpajak (kdfp)
Foreign key: kddo references Deliveryorder (kddo)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Foreign key: kdcustomer references Mscustomer (kdcustomer)
Msbarang (kdbarang)
Bprp (kdbprp, tanggalbprp, kddo, kdkaryawan, namakaryawan, namacustomer, alamat, telepon, kdbarang, namabarang)
Primary key: kdbprp
Foreign key: kddo references Deliveryorder (kddo)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Detailbprp (kdbprp, kdbarang, qty, sebabpengembalian)
Primary key: kdbprp
Foreign key: kdbprp references Bprp (kdbprp)
Foreign key: kdbarang references Msbarang (kdbarang)
Tbpk (kdtbpk, tanggaltbpk, kdbprp, kdkaryawan, namakaryawan,
namacustomer, alamat, telepon, kdbarang, namabarang)
Primary key: kdtbpk
Foreign key: kdbprp references Bprp (kdbprp)
Foreign key: kdkaryawan references
Detailtbpk (kdtbpk, kdbarang, qty, sebabpengembalian)
Primary key: kdtbpk
Foreign key: kdtbpk references Tbpk (kdtbpk)
Foreign key: kdbarang references Msbarang (kdbarang)
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 +
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
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
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
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 +
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 +
157 E m ailkaryawan P K e ma il F K1 kdkaryawan Mskaryawan P K kdkaryaw an F K1 kdj abata n namakaryawan jeniskelam in alam at gamba r M sjabat an P K kd jab atan nam ajabat an P K telep on F K 1 kdkaryawan Sal esorder P K kdso F K1 kd karyawan F K2 kd cust omer tangga lso jangkawaktu ca tat an tangga lkirim Del iveryorder P K kddo F K1 kd karyawan F K2 kd so tangga ldo ke terangan nokendaraan Msbarang PK kdb aran g FK 1 kdjeni sbarang nam abarang jum lahst ok harga FK 2 kdsatuan F akturpajak P K kd fp FK 1 kddo FK 2 kdkarya wa n t anggalf p Invoice PK kdi nv FK 1 kdkaryawan FK 2 kddo ta nggalinv Detai lsalesorder P K, FK1 kdso F K 2 kdbarang qty M sj enisbarang P K kdj eni sbaran g nama jenisbarang M ssat uan P K kdsatu an
nam asa tuan
Mscustom er P K kd customer nam acustom er npwp al amat B prp P K kd bpr p FK 1 kddo FK 2 kdkaryawan t anggalbp rp Detai lbprp PK, FK1 kdb prp FK 2 kdbarang qt y sebabpengem bali an T bpk PK kdtb pk FK 1 kdbprp FK 2 kdkaryawa n t anggalt bpk Det ailt bpk PK, FK1 kd tb pk FK 2 kdbarang sebabpen gembal ian qt y
FK 1 kdcust om er F K1 kdcust omer
Det aildeli veryorder
PK, FK1 kd do kdddo FK 2 kdbarang qt y 1..* 1..1 1..1 1..* 1..1 0..* 1..1 1..* 1..1 1..* 1..1 1..1 1..1 0..* 1..1 1..* 1..* 1..1 1..1 0..* 1..1 1..* 1..1 1..1 1..1 1..1 1..1 1..1 1..1 0..* 1..1 1..1 1..1 1..* 1..1 0..* 1..1 0..* 1..1 1..* 1..* 1..1 1..* 1..1 1..1 0..* 1..1 0..* 0..* 1..1 1..1 0..* puny a puny a puny a m em buat m embuat per lu puny a puny a di gun ak an Pe rl u dibut uhkan puny a m emesan p unya di butuhkan perlu 1..1 1..* di gunak an digu naka n di but uhk an di guna k a n dibut uhkan perlu me mb u at m em buat m e m buat di gunak an mem buat Det ail FakturP ajak
P K,F K1 k dfp FK 2 kdbarang q ty 1..* 1..1 pe rl u
Det ailI nvoice
P K,F K1 kd in v FK 2 kdbarang qt y 1..1 1..* perlu
Gambar 4.13 ERD Logical 157
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
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.
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.
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.
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)
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
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
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
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
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.
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.
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.
Gambar 4.17 DFD Level 1
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,
kdcustomer, tanggalso, jangkawaktu, catatan, tanggalkirim)
Primary key: kdso
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Foreign key: kdcustomer references Mscustomer (kdcustomer)
Detailsalesorder (kdso, kdbarang, qty) Primary key: kdso
Foreign key: kdso references Salesorder (kdso)
Foreign key: kdbarang references Msbarang (kdbarang)
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)
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,
tanggaldo, keterangan, nokendaraan)
Detaildeliveryorder (kddo, kdbarang, qty) Primary key: kddo
Primary key: kddo
Foreign key: kdso references Salesorder (kdso)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Foreign key: kddo references Deliveryorder (kddo)
Invoice (kdinv, tanggalinv, kddo, kdkaryawan)
Primary key: kdinv
Foreign key: kddo references Deliveryorder (kddo)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Detailinvoice (kdinv, kdbarang, qty) Foreign key: kdinv references Invoice (kdinv)
Foreign key: kdbarang references Msbarang (kdbarang)
Fakturpajak (kdfp, kddo, kdkaryawan, tanggalfp)
Primary key: kdfp
Foreign key: kddo references Deliveryorder (kddo)
Foreign key: kdkaryawan references Mskaryawan (kdkaryawan)
Detailfakturpajak (kdfp, kdbarang, qty) Primary key: kdfp
Foreign key: kdfp references Fakturpajak (kdfp)
Foreign key: kdbarang references Msbarang (kdbarang)
Bprp (kdbprp, tanggalbprp, kddo, kdkaryawan)
Primary key: kdbprp
Foreign key: kddo references
Detailbprp (kdbprp, kdbarang, qty, sebabpengembalian)
Primary key: kdbprp