BAB 3 METODOLOGI
3.1. Metodologi 3.1.1. Database Planning Database Planning yaitu aktivitas manajemen yang memungkinkan tahapan dari Database System Development Lifecycle untuk direalisasikan seefisien dan seefektif mungkin. Menganalisis proses bisnis jasa konstruksi, merancang basis data yang mendukung masalah – masalah yang ada pada proses bisnis, dan merancang aplikasi yang dapat mendukung pengolahan basis data merupakan tujuan dari pembuatan database ini. Terdapat dua langkah dalam tahapan perencaanan basis data, yaitu: 3.1.1.1. Mission Statement Mission statement dari perencanaan basis data ini yaitu menghasilkan sistem basis data yang dapat memasukkan, menyimpan, mengubah, dan menampilkan data untuk proses penerimaan proyek, pemesanan, tagihan, persediaan dan pembelian material serta pembayaran secara terstruktur dan terintegrasi dengan baik. 3.1.1.2. Mission Objective Mission objective dari perencanaan basis data ini yaitu: 1.
Memelihara (insert, update) data Staff
2.
Memelihara (insert, update) data Client
3.
Memelihara (insert, update) data Supplier
4.
Memelihara (insert, update) data Material
5.
Memelihara (insert, update) data Bank
6.
Memelihara (insert, update) data Account
7.
Memelihara (insert, update) data Payment Type
8.
Membuat Laporan dan rancangan biaya yang berkaitan dengan proyek
9.
Membuat Laporan yang berkaitan dengan order proyek
10.
Membuat Laporan yang berkaitan dengan penambahan proyek (addendum) 47
48 11.
Membuat order pembelian material dan laporan order pembelian material
12.
Membuat Laporan penagihan dan pembayaran pembelian material
13.
Membuat laporan yang berkaitan dengan penerimaan material
14.
Membuat laporan yang berkaitan dengan penggunaan material
15.
Membuat laporan yang berkaitan dengan penyesuaian stok
16.
Membuat laporan yang berkaitan dengan pembayaran pembelian, proyek dan addendum.
3.1.2. System Definition System definition mendeskripsikan jangkauan dan batasan dari batasan aplikasi basis data dan pandangan-pandangan utama para pengguna. Ruang lingkup untuk aplikasi basis data yang akan dirancang sudah didefinisikan pada Bab 1.3 dan user views bagi para staff dalam mengakses aplikasi basis data juga didefinisikan berdasarkan tugas dan wewenang dan pembahasannya secara lengkap pada point 3.4.1.3.4.(Desain Mekanisme Keamanan). 3.1.3. Requirement Collection and Analysis Requirement collection and analysis yaitu proses mengumpulkan dan menganalisa informasi tentang bagian dari perusahaan yang akan didukung oleh sistem basis data dan menggunakan informasi ini untuk mengidentifikasi kebutuhan pemakai terhadap sistem baru. Proses pengumpulan informasi-informasi yang diperlukan dilakukan dengan cara dan penjelasan berikut: 3.1.3.1. Wawancara Kegiatan wawancara dilakukan beberapa kali dengan Direktur PT Multi Sarana Kita dan Staff Bagian Procurement & Project Adm pada tanggal dan tujuan berikut: 1.
Wawancara pada tanggal 14 Oktober 2013 untuk memahami proses bisnis yang sedang berjalan pada PT Multi Sarana Kita.
2.
Wawancara pada 09 September 2013 untuk membahas secara rinci mengenai proses bisnis yang sedang berjalan.
3.
Wawancara pada tanggal 11 November 2013 untuk membahas mengenai dokumen-dokumen bisnis.
49 3.1.3.2. Memeriksa Dokumen Beberapa contoh dokumen penting seperti Rancangan Anggaran Biaya (RAB), Surat Perintah Kerja, faktur pemesanan dan pembayaran material, serta faktur pembayaran proyek dan laporan lainnya yang diberikan oleh pihak PT Multi Sarana Kita pada tanggal – Desember 2013 demi mendukung kelancaran dalam menganalisa transaksi dalam sistem. 3.1.4. Database Design Database design yaitu proses pembuatan desain yang mendukung mission statement dan mission objective perusahaan untuk keperluan sistem basis data. Tiga fase dalam perancangan basis data yaitu: 3.1.4.1. Peracangan Basis Data Koseptual Pada perancangan basis data konseptual akan dibangun model data konseptual yang terdiri dari sembilan langkah dan akan dirancang pada sub Bab 3.3.1.1. 3.1.4.2. Peracangan Basis Data Logikal Pada perancangan basis data logikal akan dibangun dan divalidasi model data logikal yang terdiri dari tujuh langkah dan akan dirancang pada sub Bab 3.3.1.2. 3.1.4.3. Peracangan Basis Data Fisikal Peracangan basis data fisikal terdiari dari enam langkah, yang meliputi perancangan file organization, indexes, space, user views, security, dan pertimbangan yang lainnya. Tahapan ini akan dibahas pada sub Bab 3.3.1.3. 3.1.5. DBMS Selection DMBS selection yaitu proses pemilihan DBMS yang tepat yang mendukung sistem basis data dan merupakan langkah optional. Proses pemilihan DBMS ini dilakukan pada Bab 3.3.2. 3.1.6. Application Design Application design yaitu proses merancang user interface dan program aplikasi yang digunakan dan diproses oleh basis data. Terdapat dua aspek dalam merancang aplikasi, yaitu: 3.1.6.1. Transaction Design Transaction design meliputi penentuan transaksi-transaksi yang diperlukan dan akan ditentukan pada Bab 3.2.
50 3.1.6.2. User Interface Design User interface design meliputi perancangan State Transition Diagram, layar input, output. Peracangan user interface juga didesain mengikuti Eight Golden Rules. Peracangan user interface akan dibahas secara lebih detil dengan gambar-gambar rancangan pada Bab 3.4.
51 3.1.7.Sejarah Perusahaan Sebuah bisnis bersama yang sudah lama berakar di Indonesia, dari mayoritas proyek-proyek unggulan yang telah kami kerjakan di Jakarta dan beranjak dari pengalaman tersebut sangat bermanfaat menjadikan keahlian tersendiri bagi PT. MULTI SARANA KITA. Dengan dedikasi untuk memahami kebutuhan klien, analisis yang cermat dari arah masa depan dan kemampuan untuk memberikan pengalaman dan nasihat, perusahaan telah berjalan dan semakin kuat selama 2 tahun terakhir.Keberhasilan PT. MULTI SARANA KITA. didasarkan pada perhatian yang diberikan untuk kesejahteraan karyawan dan staf, memastikan bahwa karyawan dan staf dibawah Perusahaan akan mendapat pelatihan skill secara terus menerus. Secara khusus, orang-orang kami terlibat dalam setiap aspek proyek dan kami mendorong dan mendukung ide-ide untuk meningkatkan keamanan, efisiensi dan memberikan hasil akhir yang sangat baik. Kami memiliki contoh besar yang telah menghasilkan karya besar yaitu cara berpikir yang sama sekali baru. Pendekatan inklusif telah menghasilkan sebuah tim yang stabil dari 25 karyawan denganberbagai keterampilan dan pengetahuan khusus dalam mendukung pekerjaan konstruksi. Dengan kepercayaan dan kerjasama yang baik, kami adalah perusahaan konstruksi yang siap untuk mengerjakan proyek-proyek pada masa depan yang lebih baik.
52
3.1.8. Struktur Organisasi PT Multi Sarana Kita
Direktur Utama
Head Technic
Project Manager
Surveyor
Head HRD
Engineer
Procurement
Head Finance
General Affair
Quantity Enginer
Gambar 3.1 Struktur Organisasi
Logistic
Finance
53 3.1.9. Tanggung Jawab danWewenang 1) Direktur Utama • Bertanggung jawab atas komitmen terhadap pelaksanaan prinsip-prinsip Manajemen yang efektif agar dapat dicapai tujuan Perusahaan baik tujuan jangka pendek maupun program jangka panjang • Menetapkan Kebijakan Mutu dan Sasaran Mutu, menetapkan Struktur organisasi, menetapkan tugas, tanggung jawab dan wewenang (Job Descriptions). • Sebagai pengambil keputusan tertinggi Kepala Manajerial • Direktur Utama berwenang mengangkat dan memberhentikan Manajer/Kabag. dan Kepala Seksi serta memberikan peringatan apabila dianggap menyimpang dari kebijakan dan peraturan yang telah ditetapkan oleh pihak Manajemen. 2) Head Technic • Membantu pelaksana kegiatan dalam mengendalikan proyek sejak awal kegiatan sampai pelaksaan kegiatan. • Membantu
mengevaluasi
pekerjaan-pekerjaan
yang
dilaksanakan sehingga sesuai dengan yang direncanakan. • Memberikan saran-saran teknis kepada pelaksanaan kegiatan. • Mengambil keputusan yang berhubungan dengan proyek atas persetujuan pelaksana kegiatan. • Mengumpulkan, meneliti dan mengelola data yang berhubungan dengan pelaksanaan proyek. 3) Head HRD • Mengkoordinasikan perumusan perencanaan dan pemberdayaan pegawai • Mengkoordinasikan perumusan sistem pengadaan, penempatan dan pengembangan pegawai. • Menyiapkan laporan kegiatan secara benar dan tepat waktu. • Menindaklanjuti hasil penilaian kinerja seluruh pegawai. 4) Head Finance • Mematuhi peraturan-peraturan serta ketentuan-ketentuan yang
54 berlaku bagi pelaksanaan keuangan Daerah dan Negara. • Membuat buku kas umum beserta buku penunjangnya. • Mengadakan data yang bersifat kearsipan yang menyangkut dengan pembukuan. • Bertanggung jawab atas uang kas proyek. • Menyelenggarakan
pengurusan
keuangan
baik
bersifat
penerimaan, penyimpanan dan pengeluaran serta bertanggung jawab sepenuhnya atas pengolahan keuangan proyek. 5) Project Manajer • Menyampaikan laporan pertanggungjawaban kegiatan bulanan kepada Direktur Utama / Direktur Utama / Direktur dengan format Laporan Bulanan atau dengan menggunakan catatan mutu
bagian
Operasional
yang
telah
ditetapkan
dalam
dokumentasi SMM ISO 9001 : 2008 • Berwenang memberikan peringatan dan teguran kepada staffstaff dan administrasi yang berada di bagiannya apabila dipandang menyimpang dari perencanaan maupun kebijakan yang telah ditetapkan oleh Direktur Utama / Direktur Utama / Direktur 6) Engineer • Menyusun Rencana Anggaran Pekerjaan / RAP dan Rencana Anggaran Biaya / RAB • Menyusun Rencana Kebutuhan Material / Material Staat, Kebutuhan SDM dan Tenaga Ahli dan Kebutuhan Mesin / Peralatan. 7) Procurement • Bertanggung jawab atas semua realisasi kegiatan pembelian yang telah telah dilakukan 8) General Affair • Bertanggung jawab atas keselamatan pekerja sesuai dengan standarisasi K3 yang berlaku di lapangan • Sebagai perwakilan perusahaan untuk menjalin hubungan baik kepada pihak eksternal
55 • Memenuhi
semua
kebutuhan
operasional
pada
internal
perusahaan, seperti penyediaan ATK untuk karyawan, pengajuan perawatan kendaraan dan lain-lain • Menjaga, mendata dan merawat seluruh aset perusahaan • Pengurusan dokumen-dokumen untuk kepentingan internal perusahaan 9) Logistic • Bertanggung jawab di lapangan atas ketidaksesuaian bahan / material proyek yang dipesan 10) Finance • Mempersiapkan daftar biaya berkaitan dengan rancangan dalam bentuk batas biaya dan target biaya untuk setiap bagian pekerjaan. • Menyelenggarakan sistem administrasi umum dan teknis dalam rangka memperlancar pengelolaan proyek. • Membuat pembukuan arsip-arsip yang berhubungan dengan pelaksanaan proyek • Melaksanakan pengendalian biaya selama pelaksanaan proyek. 11) Surveyor • Bertanggung jawab langsung kepada Quantity Engineer • Melakukan pengawasan ketelitian pengukuran oleh kontraktor terhadap titik-titik penting sehingga tidak terjadi selisih dimensi maupun elevasi • Mengumpulkan semua data pekerjaan yang dilaksanakan di lapangan dan bertanggung jawab atas ketelitian yang didapat. 12) Quantity Enginer • Bertanggung jawab kepada Project Manager. • Melakukan pengawasan terhadap pekerjaan kontraktor apakah sesuai dengan kuantitas yang telah ditentukan. • Menolak pekerjaan kontraktor yang kuantitasnya tidak sesuai dengan ketentuan. • Memberikan laporan tertulis pada pelaksanaan kegiatan atas halhal yang menyangkut masalah pengendalian kuantitas.
56 3.2.
Analisis Sistem yang Berjalan PT Multi Sarana Kita selama ini menjalankan proses bisnisnya dengan menggunakan data-data yang disimpan dalam Microsoft Office Excel. Tapi, belum ada sistem informasi yang terintegrasi dalam kantor perusahaan ini. Data-data yang dibutuhkan dalam proses bisnis yang ada mencakup data proyek, data harga material, dan lain-lain. Tahap-tahap yang ada dalam proses bisnis PT Multi Sarana Kita ini adalah sebagai berikut : 3.2.1.1.
Persetujuan Awal Penerimaan Proyek Tahap-tahap yang dilakukan dalam persetujuan awal penerimaan proyek yaitu: • Penerimaan permintaan penawaran pekerjaan proyek dari klien. • Melakukan penawaran harga dengan membuat pengajuan Rencana Anggaran Biaya (RAB) dari pihak PT Multi Sarana Kita kepada klien. • Jika klien menyetujui RAB yang diajukan oleh PT Multi Sarana Kita, maka penanganan proyek sudah bisa dilakukan setelah klien memberikan Surat Perintah Kerja (SPK) kepada pihak PT Multi Sarana Kita.
57 PROSEDUR STANDAR OPERASI Penanggung Jawab (Person in Charge /PIC) Klien
Technician
Finance
Start
Penawaran Kerja (proyek)
Pembuatan RAB
RAB YA RAB Diterima
TIDAK
Pembuatan Ulang RAB
YA
TIDAK
Finish Penerimaan SPK
1
Gambar 3.2 Flowchart Persetujuan awal penerimaan Proyek
3.2.1.2.
Persiapan Proyek Penanganan proyek diawali dengan penerimaan gambaran lahan dari klien. Setelah itu, pihak PT Multi Sarana kita dapat melakukan survey lahan yang akan dibangun. PT Multi Sarana kita membuat perhitungan jumlah bahan material yang dibutuhkan.
58 PROSEDUR STANDAR OPERASI Penanggung Jawab (Person in Charge /PIC) Project Manager
Surveyor
Finance
1
SPK Penunjuk kan Tim Proyek
Klarifikasi lahan [mengacu pada SPK] Perhitungan material dan pengajuan Pembelian bahan
Material yang dibutuhkan serta jumlah kebutuhan
Menuju pembelian Material
Gambar 3.3 Flowchart Perhitungan kebutuhan Material
59
PROSEDUR STANDAR OPERASI Penanggung Jawab (Person in Charge /PIC) Logistik
Procurement
Finance
Pembuatan Purchase Order
PO
Penerimaan Barang
Penerimaan tagihan PO Bukti Penerimaan Barang Bukti pembayaran tagihan PO
Gambar 3.4 Flowchart Perhitungan Material
Setelah perhitungan material dilakukan, staff bagian procurement membuat order pemesanan material (purchase order) yang ditujukan kepada pihak pemasok hingga proses penerimaan material dari pemasok ke PT Multi Sarana Kita, staff bagian keuangan menerima penagihan purchase order sesuai material yang diterima.
60 Dalam 1 proyek konstruksi, dapat terjadi adanya permintaan kerja tambah serta adanya pertambahan biaya yang disebut dengan addendum. Oleh karena itu, pencatatan kemajuan proyek bersifat dinamis. Engineer
Client
Start
SPK
Pembuatan Adendum
YA
Permintaan Penambahan Kerja (Adendeum)
TIDAK FINISH
Adendum
Gambar 3.5 Flowchart Pengajuan Addendum
61 3.2.1.3.
Penagihan dan Pembayaran Proyek
Bagian Keuangan
Start
SPK
Pembuatan Tagihan Awal
Tagihan Awal
Penerimaan Pembayaran Tagihan awal
Data Pembayaran Tagihan awal
3
Gambar 3.6 Flowchart Pembayaran Tagihan awal
Selanjutnya, pihak PT Multi Sarana Kita akan mengirim tagihan secara berkala disertai laporan kemajuan kerja kepada klien. Sedangkan penagihan dan pembayaran addendum (jika ada addendum) dilakukan setelah proyek konstruksi dinyatakan selesai. Setelah proyek konstruksi selesai, pihak perusahaan tidak dibayar secara penuh, tapi ada persentase biaya jaminan pemeliharaan yang baru dibayarkan setelah proyek konstruksi
62 dinyatakan tidak bermasalah. Bagian Keuangan
Bagian Lapangan
3
Pembuatan Tagihan Berkala
Tagihan Berkala
Penerimaan Pembayaran Tagihan Berkala
TIDAK
Data Pembayaran tagihan berkala
Proyek Selesai
YA Pembuatan Tagihan Addendum
YA
Addendum
Tagihan Addendum TIDAK
Penerimaan Pembayaran Tagihan Addendum
Data Pembayaran tagihan Addendum
Pemeliharaan Proyek Konstruksi
Pembuatan Tagihan Pemeliharaan
Tagihan Addendum
Penerimaan Pembayaran Tagihan Addendum
Data Pembayaran tagihan Addendum
Finish
Gambar 3.7 Flowchart Pembayaran Tagihan Berkala
63 Untuk pembayaran kerja proyek, klien dapat melakukan pembayaran lewat transfer (antar Bank), rekening maupun secara tunai (biasa dilakukan pada proyek-proyek kecil).
3.2.2. Analisis Kebutuhan User 3.2.2.1.
Kebutuhan Transaksi • Entry data Surat Perintah Kerja (SPK) Setelah SPK diterima dari klien, Staff Engineer akan melakukan
pencatatan
SPK,
tanggal
dimulai
dan
berakhirnya kesepakatan proyek, jumlah tahap pembayaran serta data-data perusahaa klien. • Entry RAB RAB (Rancangan Anggaran Biaya) dibuat dalam rangka perancangan anggaran proyek, kebutuhan bahan material yang sebelum nya telah dicek dari pemasok di list secara lengkap apa saja yang dibutuhkan dalam pembangunan proyek. • Ubah RAB Bagian technician melakukan perubahan RAP dan RAB. Perubahan RAP dan RAB terjadi bila ada perubahan terhadap harga atau perubahan rancangan pekerjaan yang sebelumnya. • Pembelian bahan Material Setelah SPK (Surat Perintah Kerja) keluar dari pihak klien. Bagian procurement melakukan entry data berapa jumlah kebutuhan penggunaan material, setelah itu dilakukan pembelian bahan material yang dibutuhkan kepada pemasok bahan material dan entry data berapa banyak bahan material yang di beli, nama bahan material, harga serta total harga. Bahan yang di beli nantinya akan dikirim ke lapangan dan di terima dan dilakukan cek alat dan bahan oleh bagian logistik.
64
• Entry progress proyek Bagian
technician
melakukan
entry
data
progress
pembangunan proyek konstruksi. • Entry data addendeum Bila proyek konstruksi yang di bangun lebih dari waktu yang di tentukan karena proyek belum mencapai target, bagian technician melakukan entry data - data addendeum yang nanti nya akan di berikan kepada pihak kilen. Setelah itu pihak klien akan konfirmasi ke perusahaan diterima atau tidaknya addendeum • Entry pembayaran awal Sebelum pembangunan proyek dilakukan, pihak klien melakukan pembayaran awal kepada perusahaan. Bagian keuangan melakukan entry data pembayaran awal proyek konstruksi • Entry pembayaran berkala Pada saat pembangunan proyek berjalan, perusahaan melakukan pembayaran sesuai progress pekerjaan. Bagian keuangan melakukan entry data pembayaran berkala proyek setelah melakukan perhitungan dari pembayaran uang muka. • Entry pembayaran addendeum Bagian keuangan melakukan entry pembayaran addendum setelah pembangunan proyek konstruksi selesai.
3.2.2.2. Kebutuhan Informasi • Bagian marketing Membutuhkan informasi data klien dan proyek konstruksi yang akan di bangun •
Bagian Procurement membutuhkan informasi list harga bahan material dari pemasok.
65 •
Bagian Technician o Membutuhkan informasi list harga bahan material yang di dapat dari bagian procurement per harga, per nama bahan material untuk pembuatan RAB o Membutuhkan
informasi
progress
pembangunan
proyek konstruksi untuk memastikanada atau tidaknya pembuatan addendeum per tanggal dan per progress o Membutuhkan informasi data-data addendeum. •
Bagian Keuangan o Membutuhkan informasi SPK (Surat Perintah Kerja) yang di keluarkan oleh pihak kilen. o Membutuhkan informasi PO (Purchase Order) bahan material yang telah di beli dari pemasok untuk melakukan pembayaran. Per-berapa banyak bahan material yang di beli, nama bahan material, harga dan total harga. o Membutuhkan informasi uang muka untuk penagihan pembayaran awal sebelum pembangunan proyek di lakukan. o Membutuhkan
informasi
progress
pembangunan
proyek untuk penagihan pembayaran berkala per tanggal dan per progress. o Membutuhkan informasi data addendeum untuk penagihan pembayaran addendeum kepada klien. •
Bagian Logistik o Membutuhkan informasi alat dan bahan material untuk melakukan cek apakah barang yang tiba di lapangan sesuai dengan yang di pesan
•
Bagian Surveyor o Membutuhkan informasi ketersedian alat berat yang tersedia per jumlah alat berat dan nama alat berat.
66 3.2.2.3.
Kebutuhan Integritas Data • Dibutuhkan integrasi data antara bagian procurement dan bagian technician, sehingga bagian technician dapat mengetahui list harga alat dan bahan material untuk pembuatan RAP dan RAB. • Dibutuhkan integrasi data antara bagian procurement dan bagian
surveyor,
sehingga
bagian
surveyor
dapat
mengetahui kondisi terkini dari stok alat berat. • Dibutuhkan integrasi data antara bagian procurement dan bagian logistik, sehingga bagian logistik dapat mengetahui apa saja alat dan bahan material yang di pesan dan melakukan cek barang yang datang di lapangan untuk pembangunan proyek. • Dibutuhkan integrasi data antara bagian procurement dan bagian keuangan, sehingga bagian keuangan dapat mengatasi penagihan ataupun pembayaran kepada client dan pemasok baik penagihan pembayaran awal,penagihan pembayaran berkala, penagihan pembayaran addendeum, dan pembayaran PO alat dan bahan. • Dibutuhkan integrasi data bagian technician dan bagian keuangan, sehingga bagian keuangan mengetahui kondisi terkini progres pembangunan proyek untuk melakukan penagihan pembayaran berkala
3.2.2.4. Kebutuhan atas Keamanan Data • Data klien hanya dapat di akses oleh bagian marketing sesuai dengan batasan haknya. • Data RAP dan RAB, data addendeum dan data progress pembangunan proyek hanya dapat di akses oleh bagian technician sesuai dengan batasan hak akses nya. • Data persediaan alat berat hanya dapat di akses oleh bagian surveyor. • Data pembayaran hanya dapat di akses oleh bagian keuangan.
67 • Data progress proyek hanya dapat di akses oleh bagian technician dan keuangan sesuai denga batasan haknya • Data hanya bisa diakses melalui aplikasi yang tersedia bagi pengguna sesuai dengan tugas dan wewenang masingmasing.
3.2.3. Identifikasi Masalah Permasalahan-permasalahan yang dihadapi oleh PT Multi Sarana Kita saat ini, antara lain : 1. Tidak adanya pencatatan kwitansi keluar, tagihan masuk, dan tagihan tambah kerja (addendum) secara komputerisasi, sehingga sering kali beberapa pembayaran terlupakan karena catatan yang hilang dan sebagainya. 2. Belum tersedianya aplikasi basis data untuk bagian penanganan proyek (pengerjaan proyek konstruksi dan pembayaran proyek) dan pembelian material sehingga proses bisnis membutuhkan waktu yang lambat dan kurang optimal. 3. Aplikasi yang digunakan pada bagian keuangan tidak terintegrasi dengan proses bisnis.format pencatatan bagian keuangan tidak seragam dengan proses bisnis yang lain sehingga butuh waktu tambahan untuk konversi data. 3.2.4. Usulan Pemecahan Masalah Pemecahan masalah yang diajukan adalah dengan merancang sebuah basis data yang sesuai dengan proses bisnis PT Multi Sarana Kita. Basis data tersebut nantinya akan saling terintegrasi antara proses bisnis yang satu dengan yang lain. Pemecahan masalah selanjutnya yang diajukan yakni merancang aplikasi yang menjadi media interaksi transaksi antara pengguna dan basis data tersebut. Program aplikasi yang dirancang juga akan mendukung pembuatan laporan-laporan perusahaan, sehingga dapat digunakan secara efektif dan efisien oleh pihak-pihak terkait dalam perusahaan dalam mendukung proses bisnis yang sedang berjalan.
68 3.3. Perancangan 3.3.1. Perancangan Basis Data Metodologi perancangan basis data dibagi ke dalam tiga tahapan utama, yaitu: 1. Perancangan basis data konseptual 2. Perancangan basis data logikal 3. Perancangan basis data fisikal
3.3.1.1.Perancangan Basis Data Konseptual Perancangan basis data konseptual
merupakan
proses
pembentukan model dari informasi yang digunakan dalam perusahaan, independen terhadap semua pertimbangan fisik. Adapun langkah-langkah dalam perancangan basis data konseptual yaitu: 1. Mengidentifikasi tipe entitas 2. Mengidentifikasi tipe relasi 3. Mengidentifikasi dan mengasosiasikan atribut suatu entitas 4. Mengidentifikasi domain atribut 5. Mengidentifikasi atribut candidate key dan primary key 6. Mempertimbangkan konsep pemodelan enhanced (optional) 7. Memeriksa model terhadap redundansi 8. Memvalidasi model konseptual terhadap transaksi pengguna 9. Meninjau kembali model data konseptual dengan pengguna
69 1. Mengidentifikasi tipe entitas Tabel 3.1 Identifikasi Tipe Entitas Entity Name
Description
Staff
Semua
Aliases
yang Karyawan
Occurrence Karyawan
berperan
melakukan
dalam proses
penerimaan
bisnis
proyek,
perusahaan
pembuatan RAP dan
RAB,
pembelian dan
alat bahan,
keuangan
dan
logistik Client
Semua
Pelanggan
Pelanggan
pelanggan
mengajukan
yang
proyek untuk di
menawarkan
kerjakan
pengerjaan proyek Project
Semua proyek
ProjectOrder
Proyek yang
Proyek
diawali
negosiasi dengan
ditawarkan
pembuatan RAP
pelanggan
dan RAB
Semua proyek
Surat yang Perintah
SPK dibuat ketika RAP dan RAB di
telah
Kerja ( SPK setujui
disepakati
)
oleh pelanggan dan
pihak
perusahaan
da
proyek dimulai
n
70
Entity Name
Description
Aliases
Occurrence
ProjectAddendum
Semua proyek Addendum
Memperbarui
yang
SPK yang telah
membutuhkan
disepakati
oleh
penambahan
pelanggan
dan
atau
pihak
penguranagan
perusahaan
waktu Supplier
Semua
Pemasok
Supplier
supplier yang
menerima
memasok
dari perusahaan
bahan
dan
material
ke
PO
supplier
mengirimkan
perusahaan
barang
sesuai
dengan yang di beli PurchaseOrder
Semua barang PO
Perusahaan
yang di pesan
melakukan
oleh
PurchaseOrder
perusahaan ke
kepada supplier
supplier
untuk memenuhi bahan
material
yang dibutuhkan dalam proyek PurchaseOrderReceipt Semua penerimaan
Penerimaan
Menunjukan
pembelian
material yang di
material yang
terima
di beli
perusahaan berdasarkan PO yang di ajukan perusahaan
71 Entity Name
Description
Aliases
Occurrence
Material
Semua bahan material
Material
material yang
melalu PO dan
dibutuhkan
digunakan sesuai
dalam
SPK
dibeli
pengerjaan proyek PurchaseBill
Semua tagihan
Tagihan atas pembelian
Menunjukan jumlah
tagihan
pembelian
pembelian sesuai
material oleh
dengan PO yang
supplier
di
ajukan
perusahaan PurchasePayment
Semua
Pembayaran
Menunjukan
pembayaran
pembelian
jumlah
dari
pengeluaran
pembelian
perusahaan
material
dengan
kepada
pembayaran
supplier
pembelian material
ProjectBill
Semua
Tagihan
Menunjukan
tagihan yang proyek
jumlah
tagihan
harus di bayar
proyek
yang
oleh
akan dikeluarkan
pelanggan
secara
berkala
berdasarkan perkembangan pengerjaan proyek
72 Entity Name
Description
Aliases
Occurrence
ProjectPayment
Semua
Pembayaran
Menunjukan
penerimaan
proyek
pendapatan
dari
perusahaan
pembayaran
berdasarkan
proyek
tagihan proyek
oleh
pelanggan berdasarkan tagihan proyek AddendumBill
Semua
Tagihan
Penagihan
tagihan
addendum
addendum
proyek
dilakukan
addendum
akhir
yang harus di
Pengerjaan
bayar
proyek.
oleh
di
pelanggan AddendumPayment
MaterialUsed
Semua
Pembayaran
Menunjukan
penerimaan
proyek
pendapatan
dari
addendum
perusahaan
pembayaran
berdasarkan
proyek
tagihan
addendum
addendum
material yang Material
Menunjukan
akan
material
guna
proyek
yang
digunakan
akan digunakan
dalam
dalam
pengerjaan
pengerjaan
proyek
proyek
dilapangan
dilapangan
73 Entity Name
Description
Aliases
Occurrence
StockAdjustment
Penyesuaian
Penyesuaian Penyesuaian stok
stok material
stok
jika
terjadi
selisih antara di workshop dan di sistem AccountBank
Semua
Rekening
Rekening tujuan
rekening bank bank
pembayaran
yang dimiliki
pelanggan
perusahaan
kepada perusahaan rekening
dan yang
digunakan perusahaan untuk membayar supplier
2. Mengidentifikasi Tipe Relasi Tujuan dari tahap ini adalah untuk mengidentifikasi hubungan antar entitas-entitas yang ada. Berikut ini adalah Entity Relationship Diagram(ERD) Konseptual yang memuat nama entitas, multiplicity beserta nama relasi antar entitas.
74
Gambar 3.8 ERD Konseptual
75 Tabel 3.2 Identifikasi Tipe Relasi
Entity Name
Multi plicity
Relationship
Entity Name
Multi plicity
Klien
1..1
Memiliki
Project
1..*
Staff
1..1
Menerima
Project
1..*
Staff
1..1
Mengajukan
PurchaseOrder
1..*
Staff
1..1
Menerima
POReceipt
1..*
Staff
1..1
Menerima
PurchaseBill
1..*
Staff
1..1
Melunasi
PurchasePayment
1..*
Staff
1..1
Mengirim
MaterialUsed
1..*
Staff
1..1
Melakukan
StockAdjusment
1..*
Staff
1..1
Mencatat
AddendumPayment
1..*
Staff
1..1
Mencatat
ProjectPayment
1..*
Staff
1..1
Mengajukan
ProjectBill
1..*
Staff
1..1
Menangani
ProjectAddendum
1..*
Staff
1..1
Mengajukan
AddendumBill
1..*
Staff
1..1
Menangani
ProjectOrder
1..*
Supplier
1..1
Menerima
PurchaseOrder
1..*
PurchaseOrder
1..1
Memiliki
PurchaseBill
1..1
POReceipt
1..1
Menerima
PurchaseOrder
1..1
Material
1..*
Merinci
POReceipt
1..*
Material
1..*
Merinci
PurchaseOrder
1..*
Material
1..*
Merinci
MaterialUsed
1..*
Material
1..*
Merinci
StockAdjusment
1..*
Material
1..*
Merinci
ProjectAddendum
1..*
Material
1..*
Merinci
Project
1..*
AccountBank
1..1
Membayar
PurchasePayment
1..*
AccountBank
1..1
Menerima
AddendumPayment
1..*
AccountBank
1..1
Menerima
ProjectPayment
1..*
76
Entity Name
Multi plicity
Relationship
Entity Name
Multi plicity
Project
1..1
Menjadi
ProjectOrder
1..0
ProjectOrder
1..1
Memiliki
ProjectBill
1..*
ProjectOrder
1..1
Memiliki
ProjectAddendum
0..*
ProjectOrder
1..1
Memerlukan
MaterialUsed
1..*
ProjectBill
1..1
Menagih
ProjectPayment
1..1
ProjectAddendum
1..1
Memiliki
AddendumBill
1..1
AddendumBill
1..1
Menagih
AddendumPayment
1..1
PurchaseBill
1..1
Menagih
PurchasePayment
1..1
3. Mengidentifikasi dan mengasosiasikan atribut suatu entitas Tujuan dari tahap ini adalah mengidentifikasi dan menggabungkan atribut yang digunakan dalam suatu entitas beserta tipe data atribut masingmasing yg digunakan. Tabel 3.3 Asosiasi Atribut Entitas Staff Attribute
Description
StaffID
Secara unik
Data
Type
and Length
Null
Multi valued
Char (4)
No
No
mengidentifikasi staff StaffName
Nama staff
Varchar (30)
No
No
Address
Alamat staff
Varchar (50)
No
No
Phone
No telpon staff
Varchar (15)
No
No
Email
Email staff
Varchar (30)
No
No
Password
Password staff
Char(32)
No
No
Role
Nama bagian
Varchar (30)
No
No
77 Tabel 3.4 Asosiasi Atribut Entitas Client Attribute
Description
ClientID
Secara unik
Data
Type
and Length
Null
Multi valued
Char (4)
No
No
mengidentifikasi client ClientName
Nama client
Varchar (30)
No
No
Address
Alamat client
Varchar (50)
No
No
Phone
No telp client
Varchar (15)
No
No
Email
Email client
Varchar (30)
Yes
No
Fax
No fax client
Varchar (15)
Yes
No
Tabel 3.5 Asosiasi Atribut Entitas Project Attribute
Description
ProjectID
Secara unik
Data
Type
and Length
Null
Multi valued
Char (4)
No
No
mengidentifikasi proyek ProjectName
Nama Proyek
Varchar (30)
No
No
ProjectAddress
Alamat Proyek
Varchar (50)
No
No
ClientName
Nama klien
Varchar (30)
No
No
Phone
Telepon klien
Varchar(15)
No
No
Email
Email Klien
Varchar(30)
Yes
No
Fax
Fax Klien
Varchar(15)
Yes
No
RAB_date
Tanggal
No
No
No
No
pengajuan Datetime
RAB SubRAB_Name
Nama Sub anggaran Varchar(50) RAB
MaterialName
Nama Material
Varchar(30)
No
No
Qty
Jumlah Material
Integer
No
No
Unit
Satuan Material
Varchar(5)
No
No
UnitPrice
Harga Satuan Material
Numeric(12,
No
No
2)
78 RAB_Amount
SubTotal
Jumlah
harga
per- Numeric(12,
material
2)
Total harga material
Numeric(12,
No
No
No
No
No
No
No
No
No
No
No
No
2) PPN
Pajak Proyek
Integer
GrandTotal
Harga proyek setelah Numeric(12, kena PPN
RoundPrice
StaffName
2)
Pembulatan
harga Numeric(12,
proyek
2)
Nama Staff
Varchar(30)
Tabel 3.6 Asosiasi Atribut Entitas ProjectOrder Attribute
Description
ProjectOrderID
Secara unik
Data
Type
and Length Char(6)
Null
Multi valued
No
No
No
No
No
No
mengidentifikasi Project Order ProjectOrderDocNu
Nomor Surat Perintah Varchar(20)
mber
Kerja (SPK)
ProjectOrderDate
Tanggal SPK keluar
ProjecttOrderNote
Catatan
Datetime
tambahan Varchar(100) Yes
No
pada SPK StartDate
Tanggal mulai proyek
Datetime
No
No
EndDate
Tanggal
berakhir Datetime
No
No
tahapan Integer
No
No
No
No
proyek TotalTerm
Total pembayaran
StaffName
Nama Staff
Varchar(30)
79 Tabel 3.7 Asosiasi Atribut Entitas ProjectAddendum Attribute
Description
ProjectAddID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(5)
No
No
Varchar(20)
No
No
No
No
mengidentifikasi Addendum proyek ProjectAddDocNum
Nomor Referensi
ber
surat addendum
ProjectAddDate
Tanggal
diterima Datetime
addendum ProjectAddNote
Catatan
tambahan Varchar(100) Yes
No
addendum ProjectOrderDocNu
Nomor proyek yang Varchar(20)
No
No
mber
diberi addendum
MaterialName
Nama Material
Varchar(30)
No
No
Qty
Jumlah Material
Integer
No
No
Unit
Satuan Material
Varchar(5)
No
No
UnitPrice
Harga satuan material Numeric(12,
No
No
No
No
No
No
No
No
No
No
No
No
No
No
2) Status
Status
Penambahan/ Char(7)
pengurangan material Amount
Subtotal
Jumlah
harga
per Numeric(12,
material
2)
Total harga material
Numeric(12, 2)
PPN
Nilai
Pajak
pada Integer
addendum GrandTotal
StaffName
Total harga setelah Numeric(12, kena pajak
2)
Nama Staff
Varchar(30)
80 Tabel 3.8 Asosiasi Atribut Entitas Supplier Attribute
Description
SupplierID
Secara unik
Data
Type
and Length
Null
Multi valued
Char (4)
No
No
mengidentifikasikan supplier SupplierName
Nama supplier
Varchar (30)
No
No
Address
Alamat supplier
Varchar (50)
No
No
Phone
No telpon supplier
Varchar (15)
No
No
Fax
No fax supplier
Varchar (15)
Yes
No
Email
Email supplier
Varchar (30)
Yes
No
SupplierTypeName
Nama jenis supplier
Varchar (30)
No
No
81 Tabel 3.9 Asosiasi Atribut Entitas PurchaseOrder Attribute
Description
POID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
No
No
Varchar(20)
No
No
Datetime
No
No
mengidentifikasi Purchase Order PODocNumber
Nomor referensi surat Purchase Order
PODate
Tanggal Purchase Order
PONote
Catatan tambahan
Varchar(100) Yes
No
Purchase Order ReceiptDate
Tanggal pengiriman
Datetime
No
No
SupplierName
Nama supplier
Varchar(30)
No
No
MaterialName
Nama material
Varchar(30)
No
No
Qty
Jumlah material
Integer
No
No
Unit
Satuan material
Varchar(5)
No
No
UnitPrice
Harga satuan material
Numeric(12,
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
2) Amount
TotalAmount
Jumlah
harga
per Numeric(12,
material
2)
Total harga material
Numeric(12, 2)
Discount
Diskon
Purchase Integer
Order SubTotal
Total
harga
diskon PPN
setelah Numeric(12, 2)
Nilai Pajak Purchase Integer Order
GrandTotal
StaffName
Total
harga
setelah Numeric(12,
kena pajak
2)
Nama staff
Varchar(30)
82 Tabel 3.10 Asosiasi Atribut Entitas PurchaseOrderReceipt Attribute
Description
POReceiptID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
No
No
Varchar(20)
No
No
Datetime
No
No
mengidentifikasi POReceipt POReceiptDocNum Nomor referensi ber
peneriman order
POReceiptDate
Tanggal terima material dari supplier
POReceiptNote
Catatan tambahan
Varchar(100) Yes
No
Varchar(20)
No
No
Plat nomor kendaraan Varchar(12)
No
No
penerimaan material PODocNumber
Nomor PurchaseOrder material yang dikirim
CarPlatNo
pengirim DriverName
Nama supir
Varchar(30)
No
No
MaterialName
Nama material
Varchar(30)
No
No
Qty
Jumlah material
Integer
No
No
Unit
Satuan material
Varchar(5)
No
No
StaffName
Nama staff
Varchar(30)
No
No
Tabel 3.11 Asosiasi Atribut Entitas Material Attribute
Description
MaterialID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(5)
No
No
mengidentifikasi material MaterialName
Nama material
Varchar(30)
No
No
Stock
Jumlah material
Integer
No
No
Unit
Satuan material
Varchar(5)
No
No
MaterialType
Jenis material
Varchar(30)
No
No
83 Tabel 3.12 Asosiasi Atribut Entitas PurchaseBill Attribute
Description
PurchaseBillID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
No
No
Varchar (20)
No
No
Datetime
No
No
mengidentifikasi Purchase Bill PurchaseBillDocNu Nomor referensi mber
tagihan pembelian
PurchaseBillDate
Tanggal terima tagihan pembelian
PurchaseBillNote
Catatan tambahan
Varchar(100) Yes
No
Datetime
No
No
Varchar(20)
No
No
Jumlah pembayaran
Numeric(12,
No
No
pembelian
2)
Diskon pada tagihan
Integer
Yes
No
Jumlah harga setelah
Numeric(12,
No
No
diskon
2)
Nilai pajak pada
Integer
No
No
Total pembayaran
Numeric(12,
No
No
tagihan setelah kena
2)
No
No
tagihan pembelian PurchaseBillDueDa
Tanggal jatuh tempo
te
pembayaran tagihan pembelian
PODocNumber
Nomor dokumen Purchase order
Bill_Amount
Discount
pembelian SubTotal
PPN
pembelian GrandTotal
pajak StaffName
Nama staff
Varchar(30)
84 Tabel 3.13 Asosiasi Atribut Entitas PurchasePayment Attribute
Description
PurchasePaymentID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
No
No
Varchar(20)
No
No
Datetime
No
No
mengidentifikasi Purchase Payment PurchasePaymentDoc
Nomor referensi
Number
dokumen pembayaran tagihan pembelian
PurchasePaymentDate
Tanggal pembayaran tagihan pembelian
PurchasePaymentNote
Catatan tambahan
Varchar(100) Yes
No
Varchar(20)
No
No
Varchar(15)
No
No
Varchar(15)
No
No
Varchar (10)
No
No
PurchasePayment_Am Jumlah pembayaran
Numeric(12,
No
No
ount
2) No
No
pembayaran tagihan PurchaseBillDocNum
Nomor dokumen
ber
tagihan pembelian yang dibayar
SupplierAccountNo
Nomor rekening supplier
AccountNo
Nomor rekening perusahaan
PaymentTypeName
Nama jenis pembayaran
StaffName
Nama staf
Varchar(30)
85 Tabel 3.14 Asosiasi Atribut Entitas ProjectBill Attribute
Description
ProjectBillID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
No
No
Varchar(20)
No
No
No
No
mengidentifikasi Project Bill ProjectBillDocNumbe
Nomor referensi
r
dokumen tagihan pengerjaan proyek
ProjectBillDate
Tanggal keluar tagihan Datetime pengerjaan proyek
ProjectBillNote
Catatan tambahan
Varchar(100) Yes
No
Datetime
No
No
Integer
No
No
Umlah harga belum
Numeric(12,
No
No
kena Pajak
2)
Nilai pajak tagihan
Integer
No
No
Jumlah harga setelah
Numeric(12,
No
No
kena pajak
2)
ProjectOrderDocNum
Nomor proyek yang
Varchar(20)
No
No
ber
ditagih
StaffName
Nama staff
Varchar(30)
No
No
tagihan proyek ProjectBillDueDate
Tanggal Jatuh Tempo Pembayaran tagihan proyek
TermOfPayment
Tahap pelunasan pembayaran
Bill_Amount
PPN
proyek GrandTotal
86 Tabel 3.15 Asosiasi Atribut Entitas ProjectPayment Attribute
Description
ProjectPaymentID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
No
No
Varchar(20)
No
No
Datetime
No
No
mengidentifikasi Project Payment ProjectPaymentDocNu Nomor referensi mber
kuitansi pembayaran proyek
ProjectPaymentDate
Tanggal penerimaan pembayaran
ProjectPaymentNote
Catatan tambahan
Varchar(100) Yes
No
Varchar(20)
No
No
Varchar(15)
Yes
No
No
No
pada kuitansi pembayaran ProjectBillDocNumbe
Nomor referensi
r
tagihan pembayaran
AccountNo
Nomor rekening perusahaan
ProjectPayment_Amo
Jumlah pembayaran
Numeric(12,
unt
yang dilakukan
2)
PaymentTypeName
Nama Jenis
Varchar(10)
No
No
Varchar(30)
No
No
pembayaran StaffName
Nama staff
87 Tabel 3.16 Asosiasi Atribut Entitas AddendumBill Attribute
Description
AddendumBillID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(8)
no
no
Varchar(20)
no
no
Datetime
no
no
mengidentifikasi tagihan Addendum AddendumBillDocNu
Nomor referensi
mber
tagihan Addendum
AddendumBillDate
Tanggal dikeluarkan tagihan Addendum
AddendumBillNote
Keterangan tambahan
Varchar(100) yes
no
Datetime
no
no
no
no
varchar(20)
no
no
integer
no
no
Total harga
numeric(12,2
no
no
Addendum setelah
)
no
no
tagihan Addendum AddendumBillDueDat
Tanggal jatuh tempo
e
pembayaran tagihan Addendum
AddendumBill_Amou
Jumlah yang ditagih
Numeric(12,
nt
sebelum dikenakan
2)
PPN ProjectAddDocNumbe Nomor referensi r
project Addendum yang ditagih
PPN
Nilai PPN untuk tagihan Addendum
GrandTotal
dikenakan PPN StaffName
Nama staff
varchar(30)
88 Tabel 3.17 Asosiasi Atribut Entitas AddendumPayment Attribute
Description
AddendumPayment
Secara unik
ID
mengidentifikasi
Data
Type
and Length
Null
Multi valued
char(8)
no
no
varchar(20)
no
no
datetime
no
no
varchar(100)
yes
no
varchar(20)
no
no
no
no
AddendumPayment AddendumPayment
Nomor referensi
DocNumber
kuitansi pembayaran addendum
AddendumPayment
Tanggal pembayaran
Date
diterima
AddendumPayment
Catatan tambahan
Note
pembayaran addendum
AddendumBillDoc
Nomor referensi
Number
tagihan pembayaran addendum
AddendumPayment
Jumlah pembayaran
numeric(12,2
_Amount
addendum
)
PaymentTypeName
Nama jenis
varchar(10)
no
no
varchar(15)
yes
no
varchar(30)
no
no
pembayaran AccountNo
Nomor rekening perusahaan
StaffName
Nama staff
89 Tabel 3.18 Asosiasi Atribut Entitas MaterialUsed Attribute
Description
MaterialUsedID
Secara unik
Data
Type
and Length
Null
Multi valued
char(8)
no
no
varchar(20)
no
no
datetime
no
no
varchar(100)
yes
no
varchar(12)
no
no
varchar(30)
no
no
varchar(20)
no
no
mengidentifikasi MaterialUsed MaterialUsedDocN
Nomor referensi surat
umber
jalan ke lapangan
MaterialUsedDate
Tanggal pengiriman material ke lapangan
MaterialUsedNote
Catatan tambahan MaterialUsed
CarNo
Nomor plat kendaraan pengirim material
DriverName
Nama supir
ProjectOrderDocNu Nomor referensi mber
proyek yang diantar materialnya
MaterialName
Nama material
varchar(30)
no
no
Qty
Jumlah material
integer
no
no
Unit
Satuan material
varchar(5)
no
no
StaffName
Nama staff
varchar(30)
no
no
90 Tabel 3.19 Asosiasi Atribut Entitas StockAdjusment Attribute
Description
StockAdjusmentID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(5)
No
No
Varchar(20)
No
No
Datetime
No
No
mengidentifikasi StockAdjusment StockAdusmentDoc Nomor referensi Number
dokumen penyesuaian stok
StockAdjusmentDa
Tanggal dilakukan
te
penyesuaian stok
StockAdjusmentNo
Catatan tambahan
te
penyesuaian stok
MaterialName
Varchar(100) Yes
No
Nama material
Varchar(30)
No
No
Qty
Jumlah material
Integer
No
No
Unit
Satuan material
Varchar(5)
No
No
StaffName
Nama staff
Varchar(30)
No
No
Tabel 3.6 Asosiasi Atribut Entitas AccountBank Attribute
Description
AccountID
Secara unik
Data
Type
and Length
Null
Multi valued
Char(5)
No
No
mengidentifikasi account AccountNumber
Nomor Rekening
Varchar(15)
No
No
BankName
Nama Bank
Varchar(15)
No
No
91 4. Mengidentifikasi domain atribut Tujuan dari tahap ini adalah menentukan domain dari atribut yang terdapat pada model data konseptual Tabel 3.21 Attribute Domain - Staff Attribute
Attribute Domain
StaffID
Format ‘S[0-9][0-9][0-9]’
StaffName
Diisi dengan huruf, maks 30 karakter
Address
Diisi dengan huruf dan angka, serta dapat mengandung spasi, maks 50 karakter
Phone
Diisi dengan angka, serta dapat mengandung tanda ‘-‘, maks 15 karakter
Email
Diisi dengan angka, serta dapat mengandung tanda ‘-‘, maks 30 karakter
Password
Diisi dengan huruf atau angka, maks 32 karakter
Role
Diisi dengan huruf, maks 30 karakter
Tabel 3.22 Attribute Domain – Client Attribute
Attribute Domain
ClientID
Format ‘C[0-9][0-9][0-9]’
ClientName
Diisi dengan huruf, maks 30 karakter
Address
Diisi dengan huruf dan angka, serta dapat mengandung spasi, maks 50 karakter
Phone
Diisi
dengan
angka,
serta
dapat
mengandung tanda ‘-‘, maks 15 karakter Email
Diisi dengan huruf atau angka, maks 30 karakter
Fax
Diisi dengan angka, seta dapat mengandung tanda ‘-‘, maks 15 karakter
92 Tabel 3.23 Attribute Domain – Project Attribute
Attribute Domain
ProjectID
Format’P[0-9][0-9][0-9]’
ProjectName
Diisi dengan huruf, maks 30 karakter
ProjectAddress
Diisi dengan huruf dan angka, serta dapat mengandung spasi, maks 50 karakter
ClientName
Diisi dengan huruf, maks 30 karakter
Phone
Diisi
dengan
angka,
serta
dapat
mengandung tanda ‘-‘, maks 15 karakter Email
Diisi dengan huruf atau angka, maks 30 karakter
Fax
Diisi
dengan
angka,
serta
dapat
mengandung tanda ‘-‘, maks 15 karakter RAB_date
Format ‘yyyy-MM-dd HH:mm:ss’
SubRAB_Name
Diisi dengan huruf, maks 50 karakter
MaterialName
Diisi dengan huruf atau angka, maks 30 karakter
Qty
Diisi dengan angka
Unit
Diisi dengan huruf, maks 5 karakter
UnitPrice
Diisi dengan angka
Amount
Diisi dengan angka
SubTotal
Diisi dengan angka
PPN
Diisi dengan angka
GrandTotal
Diisi dengan angka
RoundPrice
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
93 Tabel 3.24 Attribute Domain –ProjectOrder Attribute
Attribute Domain
ProjectOrderID
Format ‘POD[0-9][0-9][0-9]’
ProjectOrderDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
ProjectOrderDate
Format ‘yyyy-MM-dd HH:mm:ss’
ProjectOrderNote
Diisi dengan huruf, maks 100 karakter
StartDate
Format ‘yyyy-MM-dd HH:mm:ss’
EndDate
Format ‘yyyy-MM-dd HH:mm:ss’
TotalTerm
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.25 Attribute Domain –ProjectAddendum Attribute
Attribute Domain
ProjectAddID
Format ‘PA[0-9][0-9][0-9]’
AddDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
AddDate
Format ‘yyyy-MM-dd HH:mm:ss’
AddNote
Diisi dengan huruf, maks 100 karakter
ProjectOrderDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
MaterialName
Diisi dengan huruf atau angka, maks 30 karakter
Qty
Diisi dengan angka
Unit
Diisi dengan huruf, maks 5 karakter
UnitPrice
Diisi dengan angka
Status
Diisi dengan kata ‘Tambah’ atau ‘Kurang’
Amount
Diisi dengan angka
Subtotal
Diisi dengan angka
PPN
Diisi dengan angka
GrandTotal
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
94 Tabel 3.26 Attribute Domain –Supplier Attribute
Attribute Domain
SupplierID
Format ‘SU[0-9][0-9][0-9]’
SupplierName
Diisi dengan huruf, maks 30 karakter
Address
Diisi dengan huruf dan angka, serta dapat mengandung spasi, maks 50 karakter
Phone
Diisi dengan angka, serta dapat mengandung tanda ‘-‘, maks 15 karakter
Fax
Diisi dengan angka, serta dapat mengandung tanda ‘-‘, maks 15 karakter
Email
Diisi dengan huruf atau angka, maks 30 karakter
SupplierTypeName
Diisi dengan huruf, maks 30 karakter
95 Tabel 3.27 Attribute Domain –PurchaseOrder Attribute
Attribute Domain
POID
Format ‘PUO[0-9][0-9][0-9]’
PODocNumber
Diisi dengan huruf dan angka, maks 20 karakter
PODate
Format’yyyy-MM-dd HH:mm:ss’
PONote
Diisi dengan huruf, maks 100 karakter
ReceiptDate
Format ‘yyyy-MM-dd HH:mm:ss’
SupplierName
Diisi dengan huruf, maks 30 karakter
MaterialName
Diisi dengan huruf atau angka, maks 30 karakter
Qty
Diisi dengan angka
Unit
Diisi dengan huruf, maks 5 karakter
UnitPrice
Diisi dengan angka
Amount
Diisi dengan angka
TotalAmount
Diisi dengan angka
Discount
Diisi dengan angka
SubTotal
Diisi dengan angka
PPN
Diisi dengan angka
GrandTotal
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
96 Tabel 3.28 Attribute Domain –PurchaseOrderReceipt Attribute
Attribute Domain
POReceiptID
Format ‘POR[0-9][0-9][0-9]’
POReceiptDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
POReceiptDate
Format ‘yyyy-MM-dd HH:mm:ss’
POReceiptNote
Diisi dengan huruf, maks 100 karakter
PODocNumber
Diisi dengan huruf dan angka, maks 20 karakter
CarPlatNo
Format ‘yy xxxx yyy’ dimana berupa huruf dan x berupa angka
DriverName
Diisi dengan huruf, maks 30 karakter
MaterialName
Diisi dengan huruf atau angka, maks 30 karakter
Qty
Diisi dengan angka
Unit
Diisi dengan huruf, maks 5 karakter
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.29 Attribute Domain –Material Attribute
Attribute Domain
MaterialID
Format ‘M[0-9][0-9][0-9]’
MaterialName
Diisi dengan huruf atau angka, maks 30 karakter
Unit
Diisi dengan angka
Stock
Diisi dengan angka
MaterialType
Diisi dengan huruf, maks 30 karakter
97 Tabel 3.30 Attribute Domain –Purchase Bill Attribute
Attribute Domain
PurchaseBillID
Format ‘PUB[0-9][0-9][0-9][0-9][0-9]’
PurchaseBillDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
PurchaseBillDate
Format ‘yyyy-MM-dd HH:mm:ss’
PurchaseBillNote
Diisi dengan huruf, maks 100 karakter
PurchaseBillDueDate
Format ‘yyyy-MM-dd HH:mm:ss’
PODocNumber
Diisi dengan huruf dan angka, maks 20 karakter
Bill_Amount
Diisi dengan angka
Discount
Diisi dengan angka
SubTotal
Diisi dengan angka
PPN
Diisi dengan angka
GrandTotal
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.31 Attribute Domain –PurchasePayment Attribute
Attribute Domain
PurchasePaymentID
Format ‘PUP[0-9][0-9][0-9][0-9][0-9]’
PurchasePaymentDocNumber Diisi dengan huruf dan angka, maks 20 karakter PurchasePaymentDate
Format‘yyyy-MM-dd HH:mm:ss’
PurchasePaymentNote
Diisi dengan huruf, maks 100 karakter
PurchaseBillDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
SupplierAccountNo
Diisi dengan angka, maks 15 karakter
AccountNo
Diisi dengan angka, maks 15 karakter
PaymentTypeName
Diisi dengan huruf, maks 10 karakter
PurchasePayment_Amount
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
98 Tabel 3.32 Attribute Domain –ProjectBill Attribute
Attribute Domain
ProjectBillID
Format ‘POB[0-9][0-9][0-9][0-9][0-9]’
ProjectBillDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
ProjectBillDate
Format ‘yyyy-MM-dd HH:mm:ss’
ProjectBillNote
Diisi dengan huru, maks 100 karakter
ProjectBillDueDate
Format ‘yyyy-MM-dd HH:mm:ss’
TermOfPayment
Diisi dengan angka
Bill_Amount
Diisi dengan angka
PPN
Diisi dengan angka
GrandTotal
Diisi dengan angka
ProjectOrderDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.33 Attribute Domain –ProjectPayment Attribute
Attribute Domain
ProjectPaymentID
Format ‘PRP[0-9][0-9][0-9][0-9][0-9]’
ProjectPaymentDocNumber Diisi dengan huruf dan angka, maks 20 karakter ProjectPaymentDate
Format ‘yyyy-MM-dd HH:mm:ss’
ProjectPaymentNote
Diisi dengan huruf, maks 100 karakter
ProjectBillDocNumber
Diisi engan huruf dan angka, maks 20 karakter
AccountNo
Diisi dengan angka, maks 15 karakter
ProjectPayment_Amount
Diisi dengan angka
PaymentTypeName
Diisi dengan huruf, maks 10 karakter
StaffName
Diisi dengan huruf, maks 30 karakter
99 Tabel 3.34 Attribute Domain –AddendumBill Attribute
Attribute Domain
AddendumBillID
Format ‘ADB[0-9][0-9][0-9][0-9][0-9]’
AddendumBillDocNumber Diisi dengan huruf dan angka, maks 20 karakter AddendumBillDate
Format ‘yyyy-MM-dd HH:mm:ss’
AddendumBillNote
Diisi dengan huru, maks 100 karakter
AddendumBillDueDate
Format ‘yyyy-MM-dd HH:mm:ss’
AddendumBill_Amount
Diisi dengan angka
ProjectAddDocNumber
Diisi dengan angka
PPN
Diisi dengan angka
GrandTotal
Diisi dengan angka
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.35 Attribute Domain –AddendumPayment Attribute
Attribute Domain
AddendumPaymentID
Format ‘ADP[0-9][0-9][0-9][0-9][0-9]’
AddendumPaymentDocNu
Diisi dengan huruf dan angka, maks 20
mber
karakter
AddendumPaymentDate
Format ‘yyyy-MM-dd HH:mm:ss’
AddendumPaymentNote
Diisi dengan huruf, maks 100 karakter
AddendumBillDocNumber
Diisi engan huruf dan angka, maks 20 karakter
AddendumPayment_Amoun
Diisi dengan angka, maks 15 karakter
t PaymentTypeName
Diisi dengan angka
AccountNo
Diisi dengan huruf, maks 10 karakter
StaffName
Diisi dengan huruf, maks 30 karakter
100 Tabel 3.36 Attribute Domain –MaterialUsed Attribute
Attribute Domain
MaterialUsedID
Format ‘MU[0-9][0-9][0-9][0-9][0-9][0-9]’
MaterialUsedDocNumber
Diisi dengan huruf dan angka, maks 20 karakter
MaterialUsedDate
Format ‘yyyy-MM-dd HH:mm:ss’
MaterialUsedNote
Diisi dengan huruf, maks 100 karakter
CarNo
Diisi dengan format ‘XX YYYY XX’ dimana y berupa angka dan X berupa huruf
DriverName
Diisi dengan angka, maks 30 karakter
ProjectOrderDocNumber
Diisi dengan angka, maks 20 karakter
MaterialName
Diisi dengan huruf, maks 30 karakter
Qty
Diisi dengan angka
Unit
Diisi dengan huruf, maks 5 karakter
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.37 Attribute Domain –StockAdjusment Attribute
Attribute Domain
StockAdjusmentID
Format ‘SA[0-9][0-9][0-9]’
StockAdusmentDocNumber Diisi dengan huruf dan angka, maks 20 karakt er
StockAdjusmentDate
Format ‘yyyy-MM-dd HH:mm:ss’
StockAdjusmentNote
Diisi dengan huruf, maks 100 karakt er
MaterialName
Diisi dengan huruf at au angka, maks 30 karakt er
Qty
Diisi dengan angka
Unit
Diisi dengan huruf, maks 5 karakt er
101 Attribute
Attribute Domain
StaffName
Diisi dengan huruf, maks 30 karakter
Tabel 3.38 Attribute Domain – AccountBank Attribute
Attribute Domain
AccountID
Format‘A[0-9][0-9]’
AccountNumber
Diisidenganangka,maks15karakter
BankName
Diisidenganhuruf, maks15karakter
5. Mengidentifikasi atribut candidate key dan primary key Tujuan dari tahap ini adalah menentukan candidate key dan primary key untuk setiap entitas yang ada Tabel 3.39 Candidate dan Primary Key Entity Name
Candidat Key
Primary key
Staff
StaffID
StaffID
StaffName Client
ClientID
ClientID
ClientName Project
ProjectID
ProjectID
Email ProjectOrder
ProjectOrderID
ProjectOrderID
ProjectOrderDocNumber ProjectAddendum
ProjectAddID
ProjectAddID
ProjectAddDocNumber Supplier
SupplierID
SupplierID
PurchaseOrder
POID
POID
PODocNumber PurchaseOrderReceipt POReceiptID
POReceiptID
POReceiptDocNumber Material
MaterialID
MaterialID
PurchaseBill
PurchaseBillID
PurchaseBillID
PurchaseBillDocNumber
102 Entity Name PurchasePayment
Candidat Key PurchasePaymentID
Primary key PurchasePaymentID
PurchasePaymentDocNumber ProjectBill
ProjectBillID
ProjectBillID
ProjectBillDocNumber ProjectPayment
ProjectPaymentID
ProjectPaymentID
ProjectPaymentDocNumber AddendumBill
AddendumBillID
AddendumBillID
AddendumBillDocNumber AddendumPayment
AddPaymentID
AddPaymentID
AddPaymentDocNumber MaterialUsed
MaterialUsedID
MaterialUsedID
MaterialUsedDocNumber StockAdjusment
StockAdjusmentID
StockAdjusmentID
StockAdjusmentDocNumber AccountBank
AccountBankID
AccountBankID
AccountNo
Berikut ini adalah gambar ERD Konseptual yang telah dilangkapi dengan primary key:
103
Gambar 3.9 ERD Konseptual dengan Primary key
104 6. Mempertimbangkan konsep pemodelan enhanced (optional) Tujuan dari tahap ini adalah untuk mempertimbangkan penggunaan
konsep
pemodelan enhanced, seperti spesialisasi, generalisasi, agregasi, dan komposisi. Setelah melakukan pertimbangan, maka pada perancangan konseptual tidak menggunakan konsep pemodelan enhanced.
7. Memeriksa model terhadap redundansi Tujuan dari tahap ini adalah untuk memeriksa apakah terdapat model data yang redundan. Ada dua aktivitas yang dilakukan pada tahap ini, yaitu: 1. Memeriksa kembali relasi one-to-one (1:1) Pada ERD Konseptual yang dibuat tidak terdapat entitas yang menggambarkan obyek yang sama. 2. Menghilangkan relasi yang redundan Pada ERD Konseptual yang dibuat tidak terdapat redundansi karena tidak ada informasi yang sama yang dapat diperoleh dari relasi yang lain.
8. Memvalidasi model konseptual terhadap transaksi pengguna •
Menggunakan jalur transaksi
►membayar
►merinci
►merinci
Gambar 3.10 ER Konseptual terhadap Transaksi Pengguna
►menagih
1..1 1..1 1..1 1..1 1..1 1..1
◄ memiliki
◄mengajukan
1..1 1..1 1..1
◄ menjadi
105
106 •
Mendeskripsikan deskripsi 1. Memasukkan, mengubah, menampilkan data Staff. 2. Memasukkan, mengubah, menampilkan data Client. 3. Memasukkan dan menampilkan data Project. 4. Mendapatkan informasi Client yang dimiliki Project. 5. Mendapatkan informasi Staff yang dimiliki Project. 6. Memasukkan, mengubah, menampilkan data Material. 7. Mendapatkan informasi Material yang dimiliki Project. 8. Memasukkan dan menampilkan data ProjectOrder. 9. Mendapatkan informasi Project yang dimiliki ProjectOrder. 10. Mendapatkan informasi Staff yang dimiliki ProjectOrder 11. Memasukkan dan menampilkan data MaterialUsed. 12. Mendapatkan informasi ProjectOrder yang dimiliki MaterialUsed. 13. Mendapatkan informasi Staff yang dimiliki MaterialUsed. 14. Mendapatkan informasi Material yang dimiliki MaterialUsed. 15. Memasukkan dan menampilkan ProjectBill. 16. Mendapatkan informasi Staff yang dimiliki ProjectBill. 17. Mendapatkan informasi ProjectOrder yang dimiliki ProjectBill. 18. Memasukkan dan menampilkan data ProjectPayment. 19. Mendapatkan informasi Staff yang dimiliki ProjectPayment. 20. Mendapatkan
informasi
ProjectBill
yang
dimiliki
ProjectPayment. 21. Memasukkan, mengubah, menampilkan data AccountBank. 22. Mendapatkan
informasi
AccountBank
yang
dimiliki
ProjectPayment. 23. Memasukkan dan menampilkan data ProjectAddendum. 24. Menampilkan informasi Staff yang dimiliki ProjectAddendum. 25. Mendapatkan
informasi
ProjectOrder
yang
dimiliki
ProjectAddendum. 26. Mendapatkan
informasi
Material
yang
dimiliki
ProjectAddendum. 27. Memasukkan dan menampilkan data AddendumBill. 28. Menampilkan informasi Staff yang dimiliki AddendumBill. 29. Menampilkan
informasi
ProjectAddendum
yang
dimiliki
107 AddendumBill. 30. Memasukkan dan menampilkan data AddendumPayment. 31. Menampilkan informasi Staff yang dimiliki AddendumPayment. 32. Menampilan
informasi
AddendumBill
yang
dimiliki
AccountBank
yang
dimiliki
AddendumPayment. 33. Menampilkan
informasi
AddendumPayment. 34. Memasukkan, mengubah, menampilkan data Supplier. 35. Memasukkan dan menampilkan data PurchaseOrder. 36. Menampilkan informasi Supplier yang dimiliki PurchaseOrder. 37. Menampilkan informasi Staff yang dimiliki PurchaseOrder. 38. Memasukkan dan menampilkan data PurchaseOrderReceipt. 39. Menampilkan
informasi
Staff
yang
dimiliki
PurchaseOrderReceipt. 40. Menampilkan
informasi
PurchaseOrder
yang
dimiliki
PurhaseOrderReceipt. 41. Menampilan
informasi
Material
yang
dimiliki
PurchaseOrderReceipt. 42. Memasukkan dan menampilkan data PurchaseBill. 43. Menampilkan informasi Staff yang dimiliki PurchaseBill. 44. Menampilkan
informasi
PurchaseOrder
yang
dimiliki
PurchaseBill. 45. Memasukkan dan menampilkan data PurchasePayment. 46. Menampilkan informasi Staff yang dimiliki PurchasePayment. 47. Menampilkan
informasi
PurchaseBill
yang
dimiliki
AccountBank
yang
dimiliki
PurchasePayment. 48. Menampilkan
informasi
PurchasePayment. 49. Memasukkan dan menampilkan data StockAdjusment. 50. Menampilkan informasi Staff yang dimiliki StockAdjusment. 51. Menampilkan informasi Material yang dimiliki StockAdjusment. 52. Menampilkan informasi Material yang dimiliki PurchaseOrder.
108 9. Meninjau kembali model data konseptual dengan pengguna Tujuan dari tahap ini adalah untuk meninjau kembali model data konseptual yang dihasilkan dengan pengguna untuk memastikan bahwa model terebut benar – benar menggambarkan sistem perusahaan yang sebenarnya
3.3.1.1.
Perancangan Basis Data Logikal
Perancangan basis data logikal merupakan suatu proses membangun model informasi yang digunakan dalam perusahaan berdasakan model data yang spesifik, tetapi independen terhadap berbagai jenis DBMS dan pertimbangan fisikal lainnya. Adapun langkah – langkah dalam perancangan basis data logical, anatara lain: 1. Menghilangkan fitur yang tidak sesuai dengan model relational 2. Mendapatkan relasi untuk model data logikal lokal 3. Memvalidasi relasi menggunakan normalisasi 4. Memvalidasi relasi terhadap transaksi pengguna 5. Menentukan batasan integritas 6. Menggabungkan model data logikal ke dalam model data logikal global 7. Memeriksa terhadap pertumbuhan di masa mendatang
3.3.1.1.1. Menghilangkan fitur yang tidak sesuai dengan model relational Tujuan dari tahap ini adalah menghaluskan model data konseptual dengan menghilangkan beberapa fitur yang tidak kompatibel terhadap mpdel relational. Langkah – langkah yang dilakukan dalam tahap ini meliputi: • Menghilangkan tiperelasibiner many to many(*:*) • Menghilangkan tiperelasirekursif many to many(*:*) • Menghilangkan tiperelasikompleks • Menghilangkan tipe atributmultivalued
109 1. Menghilangkan tiperelasibiner many to many(*:*) a. Relasi MaterialUsed dengan Material
Gambar 3.11 Menghilangkan Relasi biner many to many MaterialUsed dengan Material b. Relasi ProjectAddendum dengan Material
Gambar 3.12 Menghilangkan Relasi biner many to many ProjectAddendum dengan Material
c. Relasi PurchaseOrder dengan Material
Gambar 3.13 Menghilangkan Relasi biner many to many PurchaseOrder dengan Material
110 d. Relasi POReceipt dengan Material
Gambar 3.14 Menghilangkan Relasi biner many to many POReceipt dengan material e. Relasi StockAdjustment dengan Material
StockAdjustmentDetail
StockAdjustmentHeader PK StockAdjustmentID 1..1 ◄ Memiliki 1..*
Material
1..* ►merinci 1..1 PK MaterialID MaterialName Qty Unit
Gambar 3.15 Menghilangkan Relasi biner many to many Stock adjustment dengan material f. Relasi Project dengan Material
Gambar 3.16 Menghilangkan Relasi biner many to many Project dengan Material
111
2. Menghilangkan tipe relasi rekursif many to many(*:*) Tahap ini tidak dilakukan karena pada model data konseptual yang telah diidentifikasi sebelumnya, tidak terdapat tipe relasi yang rekursif many-to-many (*.*) 3. MenghilangkanTipe Relasi Kompleks Tahap ini tidak dilakukan karena pada model konseptual yang telah diidentifikasi sebelumnya, tidak terdapat tipe relasi kompleks. 4. Menghilangkan Tipe Atribut Multivalued Tahap ini tidak dilakukan karena pada model data konseptual yang telah diidentifikasi sebelumnya, tidak terdapat tipe atribut multivalued.
3.3.1.1.2. Medapatkan relasi untuk model data logikal lokal Tujuan dari tahap ini adalah untuk membuat relasi dari model data logikal yang merepresentasikan Nama entitas, relasi dan atribut yang telah diidentifikasi. 1. Tipe entitas kuat Tabel 3.40 Entitas Kuat a.
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary keyStaffID
b.
Client (ClientID, ClientName, Address, Phone, Email, Fax) Primary keyClientID
c.
Project ( ProjectID, ProjectName, ProjectAddress, ClientName, Phone, Email, Fax) Primary keyProjectID
d.
ProjectOrder
(ProjectOrderID,
ProjectOrderDocNumber, ProjectOrderNote,
StartDate,
StaffName) Primary keyProjectOrderID
ProjectOrderDate, EndDate,
TotalTerm,
112
e.
ProjectAddendumHeader
(ProjectAddID,
ProjectAddDocNumber, ProjectAddNote,
ProjectAddDate,
ProjectOrderDocNumber,
SubTotal,
PPN, GrandTotal, StaffName) Primary keyProjectAddID f.
Supplier (SupplierID, SupplierName, Address, Phone, Fax, Email, SupplierTypeName) Primary keySupplierID
g.
PurchaseOrderHeader PODate,
PONote,
(POID,
PODocNumber,
ReceiptDate,
SupplierName,
TotalAmount, Discount, SubTotal, PPN, GrandTotal, StaffName) Primary keyPOID h.
POReceiptHeader
(POReceiptID,
POReceiptDocNumber, POReceiptDate, POReceiptNote, CarNo, DriverName, PODocNumber, StaffName) Primary keyPOReceiptID i.
Material (MaterialID, MaterialName, Volume, Unit, Stock, MaterialType) Primary keyMaterialID
j.
PurchaseBill (PurchaseBillID, PurchaseBillDocNumber, PurchaseBillDate, PurchaseBillDueDate,
PurchaseBillNote, PODocNumber,
Bill_Amount,
Discount, SubTotal, GrandTotal, StaffName) Primary keyPurchaseBillID k.
PurchasePayment
(PurchasePaymentID,
PurchasePaymentDocNumber, PurchasePaymentDate,PurchasePaymentNote, PurchaseBillDocNumber,
SupplierAccountNo,
113 AccountNo,
PaymentTypeName,
PurchasePayment_Amount, StaffName) Primary keyPurchasePaymentID l.
ProjectBill
(ProjectBillID,
ProjectBillDocNumber,
ProjectBillDate,
ProjectBillNote,
TermOfPayment,
Bill_Amount,
ProjectBillDueDate, PPN,
GrandTotal,
ProjectOrderDocNumber, StaffName) Primary keyProjectBillID m. ProjectPayment
(ProjectPaymentID,
ProjectPaymentDocNumber,
ProjectPaymentDate,
ProjectPaymentNote, AccountNo,
ProjectBillDocNumber, ProjectPayment_Amount,
PaymentTypeName, StaffName) Primary keyProjectPaymentID n.
AddendumBill
(AddendumBillID,
AddendumBillDocNumber, AddendumBillNote,
AddendumBillDate, AddendumBillDueDate,
AddendumBill_Amount, ProjectAddDocNumber, PPN, GrandTotal, StaffName) Primary keyAddendumBillID o.
AddendumPayment
(AddendumPaymentID,
AddendumPaymentDocNumber, AdendumPaymentDate, AddendumPaymentNote, AddendumBillDocNumber,AddendumPayment_Amount, PaymentTypeName, AccountNo, StaffName) Primary keyAddendumPaymentID p.
AccountBank
(AccountID,
AccountNumber,
BankName) Primary keyAccountID q.
RAB (RAB_ID, RAB_date, RAB_Amount, StaffName)
114 Primary keyRAB_ID r.
SubRABHeader
(SubRAB_ID,
SubRAB_Name,
SubTOtal, PPN, GrandTotal) Primary keySubRAB_ID s.
MaterialUsedHeader
(MaterialUsedID,
MaterialUsedDocNumber, MaterialUsedNote,
MaterialUsedDate, CarNo,
DriverName,
ProjectOrderDocNumber, StaffName) Primary keyMaterialUsedID t.
StockAdjusmentHeader
(StockAdjusmentID,
StockAdjusmentDocNumber,
StockAdjusmentDate,
StockAdjusmentNote, StaffName) Primary keyStockAdjusmentID
2. Tipe entitas lemah Tabel 3.41 Entitas Lemah a.
ProjectAddendumDetail (MaterialName, Qty, Unit, UnitPrice, Status, Amount) Primary key -
b.
PurchaseOrderDetail UnitPrice, Amount) Primary key -
c.
POReceiptDetail (MaterialName, Qty, Unit) Primary key -
d.
SubRABDetail (MaterialName, Qty, Unit, UnitPrice, Amount) Primary key -
e.
MaterialUsedDetail (MaterialName, Qty, Unit) Primary key -
f.
StockAdjustmentDetail (MaterialName, Qty, Unit) Primary key -
(MaterialName,
Qty,
Unit,
115 3. Tipe Relasi Biner One to Many (1:*) Untuk setiap relasi one to many, entitas pada ‘satu sisi’ dalam relasi disebut entitas parent dan entitas pada ‘sisi banyak’ disebut entitas child. Dalam merepresentasikan relasi ini, diletakkan salinan atribut primary key dari entitas parent ke dalam relasi yang merepresentasikan entitas child sebagai foreign key. •
Staff dengan RAB Letakkan StaffID ke RAB untuk model 1:* relasi ‘Menerima’ Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
•
RAB (RAB_ID, StaffID, RAB_Date, RAB_Amount, StaffName) Primary key RAB_ID Foreign Key StaffID references Staff (StaffID)
RAB dengan SubRABHeader Letakan RAB_ID ke SubRABHeader untuk model 1:* relasi ‘Memiliki’ RAB (RAB_ID, StaffID, RAB_date, RAB_Amount, StaffName) Primary key RAB_ID
SubRABHeader (SubRAB_ID,RAB_ID, SubRABName, SubTotal, GrandTotal) Primary key SubRAB_ID Foreign Key RAB_ID references RAB (RAB_ID)
116 •
Client dengan project Letakkan ClientID ke Project untuk model 1:* relasi ‘Memiliki’ Client (ClientID, ClientName, Address, Phone, Email, Fax) Primary key ClientID
•
Project (ProjectID, ClientID, ProjectName, ProjectAddress, ClientName, Phone, Email, Fax) Primary key ProjectID Foreign Key ClientID references Client (ClientID)
Project dengan RAB Letakkan ProjectID ke RAB untuk model 1:* relasi ‘Memiliki’ Project (ProjectID, ClientID, ProjectName, ProjectAddress, ClientName, Phone, Email, Fax) Primary key ProjectID
RAB (RAB_ID, StaffID, ProjectID, RAB_date, RAB_Amount, StaffName) PrimaryKey RAB_ID Foreign Key ProjectID reference Project (ProjectID)
117 •
Staff dengan ProjectOrder Letakkan StaffID ke ProjectOrder untuk model 1:* relasi ‘Menangani’ Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
•
ProjectOrder (ProjectOrderID, StaffID, ProjectOrderDocNumber, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName) Primary key ProjectOrderID ForeignKey StaffID references Staff (StaffID)
Staff dengan ProjectBill Letakkan StaffID ke ProjectBill untuk model 1:* relasi ‘Mengajukan’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
ProjectBill (ProjectBillID, StaffID, ProjectBillDocNumber, ProjectBillDate, ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount, PPN, GrandTotal, ProjectOrderDocNumber, StaffName) Primary keyProjectBillID Foreign Key StaffID references Staff(StaffID)
118 •
ProjectOrder dengan ProjectBill Letakkan ProjectOrderID ke ProjectBill untuk model 1:* untuk relasi ‘Memiliki’
ProjectOrder (ProjectOrderID, StaffID, ProjectOrderDocNumbe r, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName) Primary key ProjectOrderID
ProjectBill (ProjectBillID, ProjectOrderID, StaffID, ProjectBillDocNumber, ProjectBillDate, ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount, PPN, GrandTotal, ProjectOrderDocNumber, StaffName) Primary keyProjectBillID Foreign Key ProjectOrderID references ProjectOrder(ProjectOrderI D)
119 •
Staff dengan ProjectPayment Letakkan StaffID ke ProjectPayment untuk model 1:* untuk relasi ‘Mencatat’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
ProjectPayment (ProjectPaymentID, StaffID, ProjectPaymentDocNumber, ProjectPaymentDate, ProjectPaymentNote, ProjectBillDocNumber, AccountNo, ProjectPayment_Amount, PaymentTypeName, StaffName) Primary keyProjectPaymentID Foreign Key StaffID references Staff (StaffID)
120 •
AccountBank dengan ProjectPayment Letakkan AccountID ke ProjectPayment untuk model 1:* untuk relasi ‘Menerima’
AccountBank (AccountID, AccountNumber, BankName)
ProjectPayment (ProjectPaymentID, AccountID, StaffID, ProjectPaymentDocNumber, ProjectPaymentDate, Primary keyAccountID ProjectPaymentNote, ProjectBillDocNumber, AccountNo, ProjectPayment_Amount, PaymentTypeName, StaffName) Primary keyProjectPaymentID Foreign Key AccountID references AccountBank (AccountID)
121 •
Staff dengan MaterialUsedHeader Letakkan StaffID ke MaterialUsedHeader untuk model 1:* untuk relasi ‘Mengirim’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
MaterialUsedHeader (MaterialUsedID, StaffID, MaterialUsedDocNumber, MaterialUsedDate, MaterialUsedNote, CarNo, DriverName, ProjectOrderDocNumber, StaffName) Primary keyMaterialUsedID Foreign Key StaffID references Staff (StaffID)
122 •
ProjectOrder dengan MaterialUsedHeader Letakkan ProjectOrderID ke MaterialUsedHeader untuk model 1:* untuk relasi ‘Mengirim’
ProjectOrder (ProjectOrderID, StaffID, ProjectOrderDocNumber, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName) Primary key ProjectOrderID
MaterialUsedHeader (MaterialUsedID, ProjectOrderID, StaffID, MaterialUsedDocNumber, MaterialUsedDate, MaterialUsedNote, CarNo, DriverName, ProjectOrderDocNumber, StaffName) Primary keyMaterialUsedID Forein Key ProjectOrderID references ProjectOrder (ProjectOrderID)
•
Staff dengan ProjectAddendumHeader Letakkan StaffID ke ProjectAddendumHeader untuk model 1:* untuk relasi ‘Menangani’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
ProjectAddendumHeader (ProjectAddID, StaffID, ProjectAddDocNumber, ProjectAddDate, ProjectAddNote, ProjectOrderDocNumber, SubTotal, PPN, GrandTotal, StaffName) Primary keyProjectAddID Foreign Key StaffID references Staff (StaffID)
123
•
ProjectOrder dengan ProjectAddendumHeader Letakkan ProjectOrderID ke ProjectAddendumHeader untuk model 1:* untuk relasi ‘Memiliki’
ProjectOrder (ProjectOrderID, StaffID, ProjectOrderDocNumber, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName) Primary key ProjectOrderID
ProjectAddendumHeader (ProjectAddID, ProjectOrderID, StaffID, ProjectAddDocNumber, ProjectAddDate, ProjectAddNote, ProjectOrderDocNumber, SubTotal, PPN, GrandTotal, StaffName) Primary keyProjectAddID Foreign Key ProjectOrderID references ProjectOrder (ProjectOrderID)
124 •
Staff dengan AddendumBill Letakkan StaffID ke AddendumBill untuk model 1:* untuk relasi ‘Mengajukan’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
AddendumBill (AddendumBillID, StaffID, AddendumBillDocNumber, AddendumBillDate, AddendumBillNote, AddendumBillDueDate, AddendumBill_Amount, ProjectAddDocNumber, PPN, GrandTotal, StaffName) Primary keyAddendumBillID Foreign Key StaffID references Staff (StaffID)
•
Staff dengan AddendumPayment Letakkan StaffID ke AddendumPayment untuk model 1:* untuk relasi ‘Mencatat’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
AddendumPayment (AddendumPaymentID, StaffID, AddendumPaymentDocNu mber, AdendumPaymentDate, AddendumPaymentNote, AddendumBillDocNumber ,AddendumPayment_Amo unt, PaymentTypeName, AccountNo, StaffName) Primary keyAddendumPaymentID Foreign
Key
StaffID
125 references Staff (StaffID)
•
AccountBank dengan AddendumPayment Letakkan AccountID ke AddendumPayment untuk model 1:* untuk relasi ‘Menerima’
AccountBank
AddendumPayment
(AccountID,
(AddendumPaymentID,
AccountNumber,
AccountID,
BankName)
AddendumPaymentDocNu
Primary keyAccountID
StaffID,
mber, AdendumPaymentDate, AddendumPaymentNote, AddendumBillDocNumber ,AddendumPayment_Amo unt,
PaymentTypeName,
AccountNo, StaffName) Primary keyAddendumPaymentID Foreign Key AccountID references (AccountID)
AccountBank
126 •
Staff dengan PurchaseOrderHeader Letakkan StaffID ke PurchaseOrderHeader untuk model 1:* untuk relasi ‘Mengajukan’
Staff
(StaffID, PurchaseOrderHeader
StaffName,
Address, (POID,
StaffID,
Phone, Email, Password, PODocNumber, Role)
PONote,
Primary key StaffID
SupplierName,
PODate,
ReceiptDate,
TotalAmount,
Discount,
SubTotal,
PPN,
GrandTotal, StaffName) Primary keyPOID Foreign
Key
StaffID
references Staff (StaffID) •
Supplier dengan PurchaseOrderHeader Letakkan StaffID ke PurchaseOrderHeader untuk model 1:* untuk relasi ‘Mengajukan’
Supplier
(SupplierID, PurchaseOrderHeader
SupplierName, Address, (POID, Phone,
Fax,
Email, StaffID,
SupplierID, PODocNumber,
SupplierTypeName)
PODate,
Primary keySupplierID
ReceiptDate,
PONote,
SupplierName, TotalAmount,
Discount,
SubTotal,
PPN,
GrandTotal, StaffName) Primary keyPOID Foreign Key SupplierID references (SupplierID)
Supplier
127 •
Staff dengan POReceiptHeader Letakkan StaffID ke POReceiptHeader untuk model 1:* untuk relasi ‘Menerima’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
•
POReceiptHeader (POReceiptID, StaffID, POReceiptDocNumber, POReceiptDate, POReceiptNote, CarNo, DriverName, PODocNumber, StaffName) Primary keyPOReceiptID Foreign Key StaffID references Staff (StaffID)
PurchaseOrderHeader dengan POReceiptHeader Letakkan POID ke POReceiptHeader untuk model 1:* untuk relasi ‘Menerima’
PurchaseOrderHeader (POID, SupplierID, StaffID, PODocNumber, PODate, PONote, ReceiptDate, SupplierName, TotalAmount, Discount, SubTotal, PPN, GrandTotal, StaffName) Primary keyPOID
POReceiptHeader (POReceiptID, POID, StaffID, POReceiptDocNumber, POReceiptDate, POReceiptNote, CarNo, DriverName, PODocNumber, StaffName) Primary keyPOReceiptID Foreign Key POID references PurchaseOrderHeader (POID)
128 •
Staff dengan PurchaseBill Letakkan StaffID ke PurchaseBill untuk model 1:* untuk relasi ‘Menerima’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
•
PurchaseBill (PurchaseBillID, StaffID, PurchaseBillDocNumber, PurchaseBillDate, PurchaseBillNote, PurchaseBillDueDate, PODocNumber, Bill_Amount, Discount, SubTotal, GrandTotal, StaffName) Primary keyPurchaseBillID Foreign Key StaffID references Staff (StaffID)
Staff dengan PurchasePayment Letakkan StaffID ke PurchasePayment untuk model 1:* untuk relasi ‘Melunasi’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
PurchasePayment (PurchasePaymentID, StaffID, PurchasePaymentDocNumber, PurchasePaymentDate,Purchas ePaymentNote, PurchaseBillDocNumber, SupplierAccountNo, AccountNo, PaymentTypeName, PurchasePayment_Amount, StaffName) Primary keyPurchasePaymentID Foreign Key StaffID references Staff (StaffID)
129 •
AccountBank dengan PurchasePayment Letakkan AccountID ke PurchasePayment untuk model 1:* untuk relasi ‘Membayar’
AccountBank (AccountID, AccountNumber, BankName) Primary keyAccountID
•
PurchasePayment (PurchasePaymentID, AccountID, StaffID, PurchasePaymentDocNumber, PurchasePaymentDate,Purcha sePaymentNote, PurchaseBillDocNumber, SupplierAccountNo, AccountNo, PaymentTypeName, PurchasePayment_Amount, StaffName) Primary keyPurchasePaymentID Foreign Key AccountID references AccountBank (AccountID)
Staff dengan StockAdjustmentHeader Letakkan StaffID ke StockAdjustmentHeader untuk model 1:* untuk relasi ‘Melakukan’
Staff (StaffID, StaffName, Address, Phone, Email, Password, Role) Primary key StaffID
StockAdjusmentHeader (StockAdjusmentID, StaffID, StockAdjusmentDocNumber, StockAdjusmentDate, StockAdjusmentNote, StaffName) Primary keyStockAdjusmentID Foreign Key StaffID references Staff (StaffID)
130 4. Tipe Relasi Biner One to One (1:1) a. Relasi Project dengan ProjectOrder
Letakkan ProjectID ke ProjectOrder untuk model 1:1 untuk relasi ‘Menjadi’ Project(ProjectID, ClientID, ProjectName, ProjectAddress, ClientName, Phone,Fax,Email) Primary keyProjectID
ProjectOrder(ProjectOrderID, ProjectID, StaffID, ProjectOrderDocNumber, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName) Primary keyProjectOrderID Foreign Key ProjectID reference Project(ProjectID)
b. ProjectBill dengan ProjectPayment Letakkan ProjectBillID ke ProjectPayment untuk model 1:1 untuk relasi ‘Menagih’ ProjectBillID(ProjecBillID, ProjectOrderID, StaffID, ProjectBillDocNumber, ProjectBillDate, ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount, PPN, GrandTotal, ProjectOrderDocNumber, StaffName) Primary keyProjectBillID
ProjectPayment(ProjectPaymentID, ProjectBillID, AccountID, StaffID, ProjectPaymentDocNumber, ProjectPaymentDate, ProjectPaymentNote, ProjectBillDocNumber, AccountNo, ProjectPayment_Amount, PaymentTypeName, StaffName) Primary keyProjectPaymentID Foreign Key ProjectBillID reference ProjectBill(ProjectBillID)
131 c. ProjectAddendumHeader dengan AddendumBill Letakkan ProjectAddID ke AddendumBill untuk model 1:1 untuk relasi ‘Memiliki’ ProjectAddendumHeader AddendumBill(AddendumBillID, (ProjectAddID, ProjectOrderID,
ProjectAddID,
StaffID,
StaffID, AddendumBillDocNumber,
ProjectAddDocNumber,
AddendumBillDate,
ProjectAddDate,
AddendumBillNote,
ProjectAddNote,
AddendumBillDueDate,
ProjectOrderDocNumber,
AddendumBill_Amount,
Subtotal, PPN, GrandTotal, GrandTotal, StaffName)
PPN,
ProjectAddDocNumber,
StaffName)
Primary keyProjectAddID Primary keyAddendumBillID Foreign Key ProjectAddID references ProjectAddendumHeader(ProjectAddID)
132 d. AddendumBill dengan AddendumPayment Letakkan AddendumBillID ke AddendumPayment untuk model 1:1 untuk relasi ‘Menagih’ AddendumBill (AddendumBillID, ProjectAddID, StaffID, AddendumBillDocNumber , AddendumBillDate, AddendumBillNote, AddendumBillDueDate, AddendumBill_Amount, PPN, GrandTotal, ProjectAddDocNumber, StaffName) Primary keyAddendumBillID
AddendumPayment(AddendumPaym entID, AddendumBillID, AccountID, StaffID, AddendumPaymentDocNumber, AddendumPaymentDate, AddendumPaymentNote, ProjectAddDocNumber, AddendumPayment_Amount, PaymentTypeName, AccountNo, StaffName) Primary keyAddendumPaymentID Foreign Key (AddendumBillID) references AddendumBill(AddendumBillID)
e. PurchaseOrderHeader dengan PurchaseBill Letakkan POID ke PurchaseBill untuk model 1:1 untuk relasi ‘Memiliki’ PurchaseOrderHeader(POID, SupplierID, StaffID, PODocNumber, PODate, PONote, ReceiptDate, SupplierName, TotalAmount, Discount, SubTotal, PPN, GrandTotal, StaffName) Primary keyPOID
PurchaseBill(PurchaseBillID, POID, StaffID, PurchaseBillDocNumber, PurchaseBillDate, PurchaseBillNote, PurchaseBillDueDate, PODocNumber, Bill_Amount, Discount, SubTotal, PPN, GrandTotal, StaffName) Primary keyPurchaseBillID Foreign Key POID references PurchaseOrderHeader(POID)
133 f. PurchaseBill dengan PurchasePayment Letakkan PurchaseBillID ke PurchasePayment untuk model 1:1 untuk relasi ‘Memiliki’ PurchaseBill(PurchaseBill ID, POID, StaffID, PurchaseBillDocNumber, PurchaseBillDate, PurchaseBillNote, PurchaseBillDueDate, PODocNumber, Bill_Amount, Discount, SubTotal, PPN, GrandTotal, StaffName) Primary keyPurchaseBillID
PurchasePayment(PurchasePaymentI D, ProjectBillID, AccountID, StaffID, PurchasePaymentDocNumber, PurchasePaymentDate, PurchasePaymentNote, ProjectBillDocNumber, AccountNo, PurchasePayment_Amount, PaymentTypeName, StaffName) Primary keyPurchasePaymentID Foreign Key PurchaseBillID references PurchaseBill(PurchaseBillID)
134 5. Tipe Relasi Biner Many to Many (*:*) Salinan atribut primary keydari entitas diletakkan dalam relasi baru sebagai foreign key. Foreign key ini juga menjadi primary key dalam relasi baru tersebut. a. Relasi SubRAB dengan Material
Gambar 3.17 Relasi SubRAB dengan Material
b. Relasi Material dengan ProjectAddendum
Gambar 3.18 Relasi Material dengan ProjectAddendum
c. Relasi Material dengan StockAdjustment
Gambar 3.19 Relasi Material dengan StockAdjustment
135 d. Relasi Material dengan PurchaseOrder
Gambar 3.20 Relasi Material dengan PurchaseOrder
e. Relasi Material dengan MaterialUsed
Gambar 3.21 Relasi Material dengan MaterialUsed
f. Relasi Material dengan PurchaseOrderReceipt
Gambar 3.22 Relasi Material dengan MaterialUsed
136 3.3.1.1.3. Memvalidasi Relasi Menggunakan Normalisasi Untuk memvalidasi relasi-relasi dalam model data logikal lokal menggunakan teknik normalisasi. Teknik normalisasi bertujuan untuk menghasilkan model data yang konsisten, memiliki minimal redundansi (pengulangan data yang tidak perlu) dan maksimum stabilitas. Proses
normalisasi
dimulai
dengan
menentukan
functional dependency antar atribut dalam suatu relasi. Berikut ini adalah proses normalisasi untuk setiap entitas:
1. Staff Staff
StaffID StaffName Address Phone Email Password RoleName
Ketergantugan transitif Staff StaffID StaffName Address Phone Email Password RoleID
Role RoleID
RoleName
Staff (StaffID, StaffName, Address, Phone, Email, Password, RoleName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF.
137 3NF Dalam relasi terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi 3NF.
Staff (StaffID, StaffName, Address, Phone, Email, Password, RoleID) Role (RoleID, RoleName)
2. Client Client
ClientID
ClientName Address
Phone
Email
Fax
Client (ClientID, ClientName, Address, Phone, Email, Fax) 1NF Dalam relasi tidak terdapatrepeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berad pada kondisi 2NF. 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF. 3. Supplier Supplier
SupplierID
SupplierName Address Phone Fax Email SupplierTypeName
Ketergantungan transitif
138 Supplier SupplierID
SupplierName Address Phone Fax Email SupplierTypeID
SupplierType SupplierTypeID SupplierTypeName
Supplier (SupplierID, SupplierName, Address, Phone, Fax, Email, SupplierTypeName) 1NF Dalam relasi tidak terdapatrepeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi 3NF. Supplier (SupplierID, SupplierName, Address, Phone, Fax, Email, SupplierTypeID) SupplierType (SupplierTypeID, SupplierTypeName)
4. AccountBank
AccountBank
AccountID
AccountNumber
Ketergantungan transitif AccountBank
BankName
139 AccountID
AccountNumber
BankID
Bank BankID
BankName
AccountBank
(AccountID,
AccountNumber,
BankName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi 3NF. AccountBank (AccountID, AccountNumber, BankID) Bank (BankID, BankName)
140 5. Material
Material
MaterialID
MaterialName
Unit
Stock
MaterialTypeName
Ketergantungan transitif
Material MaterialID
MaterialName
Unit
Stock
MaterialTypeID
MaterialType MaterialTypeID MaterialTypeName
Material (MaterialID, MaterialName, Unit, Stock, MaterialTypeName) 1NF Dalam relasi tidak terdapatrepeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berad pada kondisi 2NF. 3NF Material (MaterialID, MaterialName, Unit, Stock, MaterialTypeID) MaterialType (MaterialTypeID, MaterialTypeName)
141 6. StockAdjustmentHeader StockAdjustmentHeader StockAdjus Staf tmentID
fID
StockAdjustmen
StockAdjust
StockAdjust
Staff
tDocNumber
mentDate
mentNote
Name
Ketergantungan transitif
StockAdjustmentHeader StockAdjust
Staff StockAdjustmentD
StockAdjustm
StockAdjustm
mentID
ID
entDate
entNote
ocNumber
StockAdjustmentHeader StaffID,
(StockAdjusmentID,
StockAdjusmentDocNumber,
StockAdjusmentDate,
StockAdjusmentNote,
StaffName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berad pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. StockAdjustmentHeader StaffID,
(StockAdjustmentID,
StockAdjustmentDocNumber,
StockAdjustmentDate, StockAdjustmentNote)
142 7. StockAdjustmentDetail
StockAdjustmentDetail StockAdjustmentID MaterialID
MaterialName Qty
Unit
Ketergantungan parsial StockAdjustmentDetail StockAdjustmentID MaterialID
Qty
StockAdjustmentDetail
(StockAdjusmentID,
MaterialID,
MaterialName, Qty, Unit) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi terdapat ketergantungan parsial sehingga perlu dilakukan normalisasi 2NF StockAdjustmentDetail
(StockAdjusmentID,
MaterialID, Qty) 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF
8. Project Project ProjectID ClientID ProjectName ProjectAddress ClientName Phone Email Fax
Ketergantungan transitif Project
143 ProjectID
ClientID
ProjectName
Project
ProjectAddress
(ProjectID,
ClientID,
ProjectName,
ProjectAddress, ClientName, Phone, Email, Fax) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berad pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. Project
(ProjectID,
ClientID,
ProjectName,
ProjectAddress) 9. RAB RAB RAB_ID
StaffID
ProjectID
RAB_date
RAB_Amount StaffName
Ketergantungan transitif RAB RAB_ID
StaffID
ProjectID
RAB
RAB_date
(RAB_ID,
RAB_Amount
StaffID,
ProjectID,
RAB_date,
RAB_Amount, StaffName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial
144 sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. RAB
(RAB_ID,
StaffID,
ProjectID,
RAB_date,
RAB_Amount) 10. SubRABHeader SubRABHeader SubRAB_ID
RAB_ID
SubRABName
SubTotal
GrandTotal
Derived attribute SubRABHeader SubRAB_ID
RAB_ID
SubRABName
SubRABHeader (SubRAB_ID, RAB_ID, SubRABName, SubTotal, GrandTotal) 1NF Dalamrelasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF. SubRABHeader
(SubRAB_ID,
RAB_ID,
SubRABName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF
145 11. SubRABDetail SubRABDetail SubRabID MaterialID MaterialName Qty
Unit
UnitPrice Amount
Unit
UnitPrice
Derived attribute
SubRABDetail SubRabID MaterialID MaterialName Qty
Ketergantungan parsial
SubRABDetail
(SubRAB_ID,
MaterialID,
MaterialName, Qty, Unit, UnitPrice, Amount) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF. SubRABDetail
(SubRAB_ID,
MaterialID,
MaterialName, Qty, Unit, UnitPrice) 2NF Dalam relasi ini terdapat ketergantungan parsial sehingga perlu dilakukan normalisasi 2NF. SubRABDetail
(SubRAB_ID,
MaterialID,
Qty,
UnitPrice) 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF. 12. ProjectOrder ProjectOrder Project
Proje Staf ProjectOrder
ProjectO
ProjectO
Start End
OrderI
ctID
rderDate
rderNote
Date Date Term Nam
fID
DocNumber
Total
Staff
e
D
Ketergantungan transitif
146 ProjectOrder ProjectO
Proje
Staf
ProjectOrderD
ProjectOr
ProjectOr
Start
End
Total
rderID
ctID
fID
ocNumber
derDate
derNote
Date
Date
Term
ProjectOrder(ProjectOrderID,
ProjectID,
ProjectOrderDocNumber,
StaffID,
ProjectOrderDate,
ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. ProjectOrder(ProjectOrderID,
ProjectID,
ProjectOrderDocNumber,
StaffID,
ProjectOrderDate,
ProjectOrderNote, StartDate, EndDate, TotalTerm) 13. MaterialUsedHeader MaterialUsedHeader Materi Projec Sta MaterialU alUsed tOrder ffI ID
ID
D
Materia Materia Ca Driv
ProjectOr
Staf
sedDocNu lUsedD lUsedN rN erNa
derDocNu fNa
mber
mber
ate
ote
o
me
me
Ketergantungan transitif MaterialUsedHeader Material
ProjectO Staf MaterialUsed
MaterialU MaterialU
Car Driver
147 UsedID
rderID
fID
DocNumber
sedDate
sedNote
MaterialUsedHeader
Name
(MaterialUsedID,
ProjectOrderID, StaffID, MaterialUsedDate,
No
MaterialUsedDocNumber,
MaterialUsedNote,
CarNo,
DriverName, ProjectOrderDocNumber, StaffName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. MaterialUsedHeader
(MaterialUsedID,
ProjectOrderID, StaffID, MaterialUsedDate,
MaterialUsedDocNumber,
MaterialUsedNote,
CarNo,
DriverName) 14. MaterialUsedDetail MaterialUsedDetail MaterialUsedID MaterialID
MaterialName
Qty
Unit
Ketergantungan parsial MaterialUsedDetail MaterialUsedID MaterialID
Qty
MaterialUsedDetail
(MaterialUsedID,
MaterialID,
MaterialName, Qty, Unit) 1NF Dalam relasi tidak terdapat repeating group, derived
148 attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi ini terdapat ketergantungan parsial sehingga perlu dilakukan normalisasi 2NF. MaterialUsedDetail
(MaterialUsedID,
MaterialID,
Qty) 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF.
15. ProjectBill ProjectBill Proj Proje
St
Project
Proje
Proje
Project Term
Bill_ P ProjectO
Staf
Amo P rderDoc
fNa
ecBi
ctOrd aff BillDoc
ctBill ctBill BillDu
OfPa
llID
erID
Date
yment unt
ID Number
Note
eDate
N Number
me
Ketergantungan transitif ProjectBill Projec
Project
Staff ProjectBill
BillID
OrderID ID
Project
Project
ProjectB
DocNumbe BillDat
BillNot
illDueDa ayment
Amou N
r
e
te
nt
e
ProjectBill(ProjecBillID,
TermOfP Bill_
ProjectOrderID,
ProjectBillDocNumber,
StaffID,
ProjectBillDate,
ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount,
PPN,
GrandTotal,
ProjectOrderDocNumber, StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu
PP
149 dilakukan normalisasi 1NF. ProjectOrderID,
ProjectBill(ProjecBillID, ProjectBillDocNumber,
StaffID,
ProjectBillDate,
ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount,
PPN,
ProjectOrderDocNumber,
StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. ProjectBill (ProjectBillID, ProjectOrderID, StaffID, ProjectBillDocNumber,
ProjectBillDate,
ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount, PPN, ProjectOrderDocNumber) 16. ProjectPayment ProjectPayment Proje Pro ctPa
Ac
ject co
St Project
Proje
Proje
Projec
Ac
Project Paym Sta
af Paymen ctPay
ctPay
tBillD
co
Payme
tDocNu ment
ment
ocNu
unt nt_Am
peNa
Na
mber
Note
mber
No ount
me
me
ymen Bill unt fI tID
ID
ID
D
Date
entTy ff
Derived Attribute ProjectPayment Projec Proj
Ac
St
tPaym ectB cou af entID
illID ntI D
fI D
Ketergantungan Transitif ProjectPayment
ProjectPa Project Project Project ymentDo
Acc Payme Sta
Payme Payme BillDoc oun ntTyp
cNumber ntDate
ntNote Numbe r
tNo eNam e
ffN am e
150 ProjectP
Projec
Acco
aymentI
tBillI
D
D
StaffID
ProjectPay ProjectPa
ProjectPa
Paymen
untI
mentDocN ymentDat
ymentNot
tTypeID
D
umber
e
e
PaymentType PaymentTypeID
PaymentTypeName
ProjectPayment(ProjectPaymentID, AccountID,
StaffID,
ProjectBillID,
ProjectPaymentDocNumber,
ProjectPaymentDate,
ProjectPaymentNote,
ProjectBillDocNumber,
AccountNo,
ProjectPayment_Amount,
PaymentTypeName,
StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF. ProjectPayment(ProjectPaymentID, AccountID,
StaffID,
ProjectBillID,
ProjectPaymentDocNumber,
ProjectPaymentDate,
ProjectPaymentNote,
ProjectBillDocNumber,
AccountNo,
PaymentTypeName, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. ProjectPayment(ProjectPaymentID, AccountID,
StaffID,
ProjectPaymentDate,
ProjectBillID,
ProjectPaymentDocNumber, ProjectPaymentNote,
PaymentTypeID) PaymentType(PaymentTypeID, PaymentTypeName).
151 17. ProjectAddendumHeader ProjectAddendumHeader Proje Proje
Sta ProjectAd ProjectAd
Project
Project
ctAd
ctOrd ffI
dDocNu dDate
AddNo
OrderD
dID
erID
mber
te
ocNum
D
Subtotal
PP
Grand
Staf
N
Total
fNa me
ber Derived Attribute ProjectAddendumHeader Project
Project
Staff
AddID
OrderID ID
ProjectAddD ProjectAddDa
ProjectAd
ProjectOrd Staff
ocNumber
dNote
erDocNum Name
te
ber
Ketergantungan Transitif
152 ProjectAddendumHeader Project
Project
Staff
AddID
OrderID ID
ProjectAddD ProjectAddDa
ProjectAd
ocNumber
dNote
te
ProjectAddendumHeader ProjectOrderID,
StaffID,
(ProjectAddID, ProjectAddDocNumber,
ProjectAddDate,
ProjectAddNote,
ProjectOrderDocNumber, Subtotal, PPN, GrandTotal, StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF. ProjectAddendumHeader ProjectOrderID,
StaffID,
(ProjectAddID, ProjectAddDocNumber,
ProjectAddDate,
ProjectAddNote,
ProjectOrderDocNumber, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. ProjectAddendumHeader ProjectOrderID,
StaffID,
(ProjectAddID, ProjectAddDocNumber,
ProjectAddDate,ProjectAddNote) 18. ProjectAddendumDetail ProjectAddendumDetail Project
Material Materia
AddID
ID
Qty
Unit
lName Derived Attribute
UnitPrice
Status
Amount
153 ProjectAddendumDetail Project
Material
Material Qty
AddID
ID
Name
Unit
UnitPrice
Status
Ketergantungan Parsial
ProjectAddendumDetail ProjectAddID
MaterialID
Qty
UnitPrice
Status
ProjectAddendumDetail (ProjectAddID, MaterialID, MaterialName, Qty, Unit, UnitPrice, Status, Amount) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF ProjectAddendumDetail (ProjectAddID, MaterialID, MaterialName, Qty, Unit, UnitPrice, Status) 2NF Dalam relasi ini terdapat ketergantungan parsial sehingga perlu dilakukan normalisasi 2NF. ProjectAddendumDetail (ProjectAddID, MaterialID, Qty, UnitPrice, Status) 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF.
154 19. AddendumBill AddendumBill Proje Sta AddendumBill Addendu
Add
endu ctAd
ffI
mBil dID
D
DocNumber
Adden
Adden
Addend PP
mBillDat
dumBi
dumBil umBill_ N
e
llNote
lDueD
Grand
Pro
Total
ject ffN
Amount
ate
lID
Sta
Ad
am
dD
e
oc Nu mb er Derived Attribute AddendumBill Adden Project Staf AddendumBillDoc AddendumB Addendu Addendu PPN dumB
AddID
fID
Number
illDate
illID
Proje Staff
mBillNot mBillDu
ctAd Nam
e
dDo
eDate
cNu mber
Ketergantungan Parsial AddendumBill Adden
Project
Staff AddendumBillDoc AddendumBill
Addendu
Addendu
dumBi
AddID
ID
mBillNote
mBillDue
Number
Date
PPN
Date
llID
AddendumBill
(AddendumBillID,
StaffID,
ProjectAddID,
AddendumBillDocNumber,
AddendumBillDate, AddendumBillDueDate,
AddendumBillNote, AddendumBill_Amount,
PPN, GrandTotal, ProjectAddDocNumber, StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF AddendumBill StaffID,
(AddendumBillID,
ProjectAddID,
AddendumBillDocNumber,
e
155 AddendumBillDate,
AddendumBillNote,
AddendumBillDueDate, PPN, ProjectAddDocNumber, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. AddendumBill
(AddendumBillID,
StaffID,
ProjectAddID,
AddendumBillDocNumber,
AddendumBillDate,
AddendumBillNote,
AddendumBillDueDate, PPN) 20. AddendumPayment AddendumPayment Add
Adde
Ac StaffID
endu ndum co
Addendu
Adden
Adden
Project
mPaymen dumPa
dumPa
AddDoc dumPa
ntType oun fNa
Number yment
Name
mPa
BillI
unt
tDocNum
yment
yment
yme
D
ID
ber
Date
Note
Adden
Payme
Acc Staf
tNo me
_Amo unt
ntID Derived Attribute
AddendumPayment Adde
Adden Ac
ndum dumBi cou Paym entID
llID
ntI D
StaffID
Addendum
Addend
PaymentDo umPay cNumber
Addend
ProjectA
umPay
ddDocNu tTypeN
mentDat mentNot mber e
e
Ketergantungan Transitif
Paymen Acc
ame
Staf
ount fNa No
me
156 AddendumPayment Addend
Addendu
umPaym mBillID
Acco
StaffID
untID
AddendumPaym AddendumP AddendumP PaymentTy entDocNumber
aymentDate
aymentNote
peID
entID
AddendumPayment(AddendumPaymentID, AddendumBillID,
AccountID,
StaffID,
AddendumPaymentDocNumber, AddendumPaymentDate,
AddendumPaymentNote,
ProjectAddDocNumber, AddendumPayment_Amount, PaymentTypeName, AccountNo, StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF AddendumPayment(AddendumPaymentID, AddendumBillID,
AccountID,
StaffID,
AddendumPaymentDocNumber, AddendumPaymentDate,
AddendumPaymentNote,
ProjectAddDocNumber,
PaymentTypeName,
AccountNo, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. AddendumPayment(AddendumPaymentID, AddendumBillID,
AccountID,
StaffID,
AddendumPaymentDocNumber, AddendumPaymentDate, PaymentTypeID)
AddendumPaymentNote,
157 21. PurchaseOrderHeader PurchaseOrderHeader POI
Supp
Sta PODoc PODate
D
lierI
ffI
D
D
PONote
Number
Receip
Supplie
TotalA Discou Sub PP
Gra Sta
tData
rName
mount
nd
ffN
Tot
am
al
e
nt
Tot
N
al
Derived Attribute
PurchaseOrderHeader POID
Supplie Staf rID
PODocNumber
PODate
PONote
fID
ReceiptD
SupplierN
ata
ame
PPN
Staff Nam e
Ketergantungan Transitif PurchaseOrderHeader POID
Supplier
Staff
PODocNu PODate
ID
ID
mber
PONote
ReceiptDate
Discount
PPN
PurchaseOrderHeader(POID, SupplierID, StaffID, PODocNumber,
PODate,
PONote,
ReceiptDate,
SupplierName, TotalAmount, Discount, SubTotal, PPN, GrandTotal, StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF PurchaseOrderHeader(POID, SupplierID, StaffID, PODocNumber,
PODate,
PONote,
ReceiptDate,
SupplierName, PPN, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF.
158 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi. PurchaseOrderHeader(POID, SupplierID, StaffID, PODocNumber,
PODate,
PONote,
ReceiptDate,
Discount, PPN) 22. PurchaseOrderDetail PurchaseOrderDetail POID
MaterialID MaterialName
Qty
Unit
UnitPrice
Amount
Derived Attribute PurchaseOrderDetail POID
MaterialID MaterialName
Qty
Unit
UnitPrice
Ketergantungan Parsial PurchaseOrderDetail POID
MaterialID
Qty
UnitPrice
PurchaseOrderDetail
(POID,
MaterialID,
MaterialName, Qty, Unit, UnitPrice, Amount) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF PurchaseOrderDetail
(POID,
MaterialID,
MaterialName, Qty, Unit, UnitPrice) 2NF Dalam relasi ini terdapat ketergantungan parsial sehingga perlu dilakukan normalisasi 2NF. PurchaseOrderDetail
(POID,
MaterialID,
Qty,
UnitPrice) 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga relasi telah berada pada kondisi 3NF.
159 23. POReceiptHeader POReceiptHeader POR POID
Staff
POReceipt PORecei
PORec Car Driver
PODoc StaffN
eceip
ID
DocNumbe ptDate
eiptNo
Numbe ame
r
te
tID
No
Name
r
POReceiptHeader PORec POID eiptID
StaffID POReceiptDoc POReceipt Number
Date
POReceiptHeader
PORecei
CarNo
ptNote
(POReceiptID,
POReceiptDocNumber,
POReceiptDate,
DriverNa me
POID,
StaffID,
POReceiptNote,
CarNo, DriverName, PODocNumber, StaffName) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF. 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi POReceiptHeader
(POReceiptID,
POID,
StaffID,
POReceiptDocNumber, POReceiptDate, POReceiptNote, CarNo, DriverName)
160 24. POReceiptDetail POReceiptDetail POReceiptID
MaterialID
MaterialName
Qty
Unit
Ketergantungan Parsial POReceiptDetail POReceiptID MaterialID
Qty
POReceiptDetail (POReceiptID, MaterialID, MaterialName, Qty, Unit) 1NF Dalam relasi tidak terdapat repeating group, derived attribute, dan sudah memiliki primary key sehingga relasi telah berada pada kondisi 1NF 2NF Dalam relasi terdapat ketergantungan parsial sehingga perlu dilakukan normalisasi 2NF POReceiptDetail (POReceiptID, MaterialID, Qty) 3NF Dalam relasi ini tidak terdapat ketergantungan transitif sehingga telah berada pada 3NF.
25. PurchaseBill PurchaseBill Pur POI StaffI
Purchase Purcha
Purc
Purc
POD
Bill_
Disc
SubT PPN
Gran
Staff
cha D
BillDocN seBillD hase
hase
ocNu Amo
ount
otal
dTot
Nam
al
e
seB illI D
D
umber
ate
BillN BillD mber ote
ueDa te
Derived Attribute
unt
161
PurchaseBill Purch
POID
StaffID
aseBill
PurchaseBillD PurchaseBill Purchase
Purchase
PODocN
StaffNa
ocNumber
BillDue
umber
me
Date
BillNote
Date
ID
Ketergantungan Parsial PurchaseBill Purchas eBillID
POID
StaffID
PurchaseBillDoc PurchaseBillDa PurchaseBil PurchaseBil Number
te
PurchaseBill
lNote
(PurchaseBillID,
PurchaseBillDocNumber, PurchaseBillNote,
lDueDate
POID,
StaffID,
PurchaseBillDate, PurchaseBillDueDate,
PODocNumber, Bill_Amount, Discount, SubTotal, PPN, GrandTotal, StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF PurchaseBill(PurchaseBillID, PurchaseBillDocNumber, PurchaseBillNote,
POID,
StaffID,
PurchaseBillDate, PurchaseBillDueDate,
PODocNumber, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi 3NF. PurchaseBill(PurchaseBillID, PurchaseBillDocNumber,
POID,
StaffID,
PurchaseBillDate,
PurchaseBillNote, PurchaseBillDueDate)
162 26. PurchasePayment PurchasePayment Pur
Purc Accou
cha
StaffID
Purchas
Purch Purch
Purch Suppl Acco
Paym
hase ntID
ePayme
asePa
asePa
aseBil ierAc
untN
entTy asePa
seP
BillI
ntDocN
ymen
yment lDoc
o
peNa
ymen
ay
D
umber
tDate
Note
me
t_Am
count
Numb No
Purch Staff
er
me
Name
ount
ntI D Derived Attribute PurchasePayment Pur
Purc Accou
cha
StaffID
Purchas
Purch Purch
Purch
hase ntID
ePayme
asePa
aseBil ierAc
seP
BillI
ntDocN
yment yment lDoc
ay
D
umber
Date
asePa
Note
Suppl Acco
count
Paym
Staff
untN
entTy Name
o
peNa
Numb No
me
er
me ntI D
Ketergantungan Parsial
PurchasePayment Purchase
Supplier
Payme
Payment
aymentDat Payment
Account
ntTypeI
mentI
DocNum
e
No
D
D
ber
Purch
Purchas
asePay eBillID
Accoun tID
StaffID Purchase
PurchaseP
Note
PurchasePayment(PurchasePaymentID, PurchaseBillID,
AccountID,
StaffID,
PurchasePaymentDocNumber, PurchasePaymentDate, PurchasePaymentNote,
PurchaseBillDocNumber,
163 SupplierAccountNo, AccountNo PaymentTypeName,
PurchasePayment_Amount,
StaffName) 1NF Dalam relasi terdapat derived attribute, sehingga perlu dilakukan normalisasi 1NF PurchasePayment(PurchasePaymentID, PurchaseBillID,
AccountID,
StaffID,
PurchasePaymentDocNumber, PurchasePaymentDate, PurchasePaymentNote,
PurchaseBillDocNumber,
SupplierAccountNo, AccountNo PaymentTypeName, StaffName) 2NF Dalam relasi tidak terdapat ketergantungan parsial sehingga telah berada pada kondisi 2NF. 3NF Dalam relasi ini terdapat ketergantungan transitif sehingga perlu dilakukan normalisasi 3NF. PurchasePayment(PurchasePaymentID, PurchaseBillID,
AccountID,
StaffID,
PurchasePaymentDocNumber, PurchasePaymentDate, PurchasePaymentNote, PaymentTypeID).
SupplierAccountNo,
164
Gambar 3.23 Entity Relational Diagram Model Data Logikal Sesudah Normalisasi
165 3.3.1.1.4. Memvalidasi relasi terhadap transaksi pengguna Tujuan dari tahap ini adalah untuk meyakinkan bahwa relasi-relasi yang di bangun dalam model data logikal lokal mendukung semua transaksi yang di butuhkan pengguna. Setelah meninjau ulang model data logikal lokal dengan pengguna, maka dapat disimpulkan bahwa relasi-relasi yang di hasilkan dari model data logikal sudah memenuhi kebutuhan data pengguna dan mendukung transaksitransaksi yang dilakukan oleh perusahaan. 3.3.1.1.5. Menentukan batasan integritas Batasan integritas adalah batasan yang diharapkan dapat melindungi database menjadi tidak konsisten. Ada lima batasan integritas, yaitu: 1. Data yang diperlukan Beberapa atribut harus selalu memiliki nilai yang valid.Dengan kata lain, atribut tersebut tidak boleh bernilai null.Batasan-batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 3 (Sub bab 3.3.1.1 point 3). 2. Batasan domain atribut Setiap atribut memiliki domain, yang berarti satu set nilai yang legal. Batasan ini telah diidentifikasi pada perancangan konseptual tahap ke 4 (Sub bab 3.3.1.1 point 4) 3. Batasan entity Batasan entity berarti primary key tidak boleh bernilai null.Batasan-batasan
ini
telah
diidentifikasi
pada
perancangan konseptual tahap ke 5 (Sub bab 3.3.1.1 point 5).
166 4. Batasan referensial
Staff (StaffID, StaffName, Address, Phone, Email, Password, RoleID) Primary Key StaffID Foreign Key RoleID references Role(RoleID) ON UPDATE NO ACTION ON DELETE NO ACTION Role (RoleID, RoleName) Primary Key RoleID Client (ClientID, ClientName, Address, Phone, Email, Fax) Primary Key ClientID Supplier (SupplierID, SupplierName, Address, Phone, Fax, Email, SupplierTypeID) Primary Key SupplierID Foreign Key SupplierTypeID references SupplierType (SupplierTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION SupplierType (SupplierTypeID, SupplierTypeName) Primary Key SupplierTypeID AccountBank (AccountID, AccountNumber, BankID) Primary Key AccountID Foreign Key BankID references Bank (BankID) ON UPDATE NO ACTION ON DELETE NO ACTION Bank (BankID, BankName) Primary Key BankID Material (MaterialID, MaterialName, Unit, Stock, MaterialTypeID) Primary Key MaterialID Foreign Key MaterialType references MaterialType (MaterialTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION MaterialType (MaterialTypeID, MaterialTypeName) Primary Key MaterialTypeID PaymentType (PaymentTypeID, PaymentTypeName) Primary Key PaymentTypeID StockAdjustmentHeader
(StockAdjustmentID,
StockAdjustmentDocNumber, StockAdjustmentDate, StockAdjustmentNote) Primary Key StockAdjustmentID
StaffID,
167 Foreign Key StaffID references Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION StockAdjustmentDetail ( StockAdjusmentID, MaterialID, Qty) Primary KeyStockAdjustmentID Foreign Key MaterialID references Material (MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION Project (ProjectID, ClientID, ProjectName, ProjectAddress) Primary Key ProjectID Foreign Key ClientID references Client (ClientID) ON UPDATE NO ACTION ON DELETE NO ACTION RAB (RAB_ID, StaffID, ProjectID, RAB_date, RAB_Amount) Primary Key RAB_ID Foreign Key StaffID references Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key ProjectID references Project (ProjectID) ON UPDATE NO ACTION ON DELETE NO ACTION SubRABHeader (SubRAB_ID,RAB_ID, SubRABName) Primary Key SubRAB_ID Foreign Key RAB_ID references RAB (RAB_ID) ON UPDATE NO ACTION ON DELETE NO ACTION SubRABDetail (SubRAB_ID, MaterialID, Qty, UnitPrice) Primary Key SubRAB_ID Foreign Key MaterialID references Material (MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION ProjectOrder(ProjectOrderID,
ProjectID,
StaffID,
ProjectOrderDocNumber,
ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm) Primary Key ProjectOrderID Foreign Key ProjectID references Project (ProjectID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION MaterialUsedHeader
(MaterialUsedID,
ProjectOrderID,
StaffID,
MaterialUsedDocNumber, MaterialUsedDate, MaterialUsedNote, CarNo, DriverName,
168 ProjectOrderDocNumber) Primary Key MaterialUsedID Foreign Key ProjectOrderID references ProjectOrder (ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION MaterialUsedDetail (MaterialUsedID, MaterialID, Qty) Primary Key MaterialUsedID Foreign Key MaterialID references Material (MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION ProjectBill(ProjecBillID,
ProjectOrderID,
StaffID,
ProjectBillDocNumber,
ProjectBillDate, ProjectBillNote, ProjectBillDueDate, TermOfPayment, Bill_Amount, PPN) Primary Key ProjectBillID Foreign Key ProjectOrderID references ProjectOrder(ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION ProjectPayment(ProjectPaymentID, ProjectPaymentDocNumber,
ProjectBillID,
AccountID,
ProjectPaymentDate,
StaffID,
ProjectPaymentNote,
PaymentTypeID) Primary Key ProjectPaymentID Foreign Key ProjectBillID references ProjectBill(ProjectBillID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key AccountID references Account(AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key PaymentTypeID references PaymentType (PaymentTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION ProjectAddendumHeader
(ProjectAddID,
ProjectOrderID,
ProjectAddDocNumber, ProjectAddDate, ProjectAddNote) Primary Key ProjectAddID
StaffID,
169 Foreign Key ProjectOrderID references ProjectOrder(ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION ProjectAddendumDetail (ProjectAddID, MaterialID,Qty, UnitPrice, Status) Primary Key ProjectAddID Foreign Key MaterialID references Material(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION AddendumBill (AddendumBillID, ProjectAddID, StaffID, AddendumBillDocNumber, AddendumBillDate, AddendumBillNote, AddendumBillDueDate, PPN) Primary Key AddendumBillID Foreign Key ProjectAddID references ProjectAdd(ProjectAddID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION AddendumPayment(AddendumPaymentID, AddendumBillID, AccountID, StaffID, AddendumPaymentDocNumber, AddendumPaymentDate, AddendumPaymentNote, PaymentTypeID) Primary Key AddendumPaymentID Foreign Key AddendumBillID references AddendumBill(AddendumBillID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key AccountID references Account(AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION PurchaseOrderHeader(POID,
SupplierID,
StaffID,
PONote, ReceiptDate, Discount, PPN) Primary Key POID Foreign Key SupplierID references Supplier(SupllierID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION PurchaseOrderDetail (POID, MaterialID, Qty, UnitPrice)
PODocNumber,
PODate,
170 Primary Key POID Foreign Key MaterialID references Material(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION POReceiptHeader
(POReceiptID,
POID,
StaffID,
POReceiptDocNumber,
POReceiptDate, POReceiptNote, CarNo, DriverName) Primary Key POReceiptID Foreign Key POID references PO(POID) ON UPDATE NO ACTION ON DELETE NO ACTION POReceiptDetail (POReceiptID, MaterialID, Qty) Primary Key POReceiptID Foreign Key MaterialID references Material(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION PurchaseBill(PurchaseBillID,
POID,
StaffID,
PurchaseBillDocNumber,
PurchaseBillDate, PurchaseBillNote, PurchaseBillDueDate) Primary Key PurchaseBillID Foreign Key POID references PO(POID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION PurchasePayment(PurchasePaymentID, PurchasePaymentDocNumber,
PurchaseBillID,
PurchasePaymentDate,
AccountID,
PurchasePaymentNote,
SupplierAccountNo, PaymentTypeID) Primary Key PurchasePaymentID Foreign Key PurchaseBillID references PurchaseBill(PurchaseBillID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key AccountID references Account(AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION Foreign Key StaffID references Staff(StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION
StaffID,
171 5. Batasan perusahaan Batasan perusahaan merupakan aturan bisnis yang berpengaruh dalam dunia nyata. Dalam perancangan yang telah dibangun, tidak terdapat batasan-batasan yang diberikan perusahaan
3.3.1.1.6. Menggabungkan model data logikal ke dalam model data logikal global Pada perancangan database ini tidak melakukan langkah menggabungkan model data logikal ke dalam model global.
3.3.1.1.7. Memeriksa terhadap pertumbuhan di masa mendatang Model data logikal yang dirancang sudah disesuaikan dengan kemungkinan yang terjadi di masa depan. Jika perusahaan
membutuhkan
penambahan
fitur,
maka
rancangan basis data dapat dikembangkan lagi sesuai kebutuhan perusahaan. 3.3.1.2.
Perancangan Basis Data Fisikal Perancangan basis data fisikal meliputi langkahlangkah sebagai berikut:
3.3.1.2.1. Menerjemahkan Model Data Logikal untuk DBMS 3.3.1.2.1.1. Merancang Relasi Dasar Tujuan dari tahap ini adalah memutuskan bagaimana gambaran relasi dasar diidentifikasi dalam model data logikal global dalam DBMS
172 1. Staff Domain StaffID
fixed length character string, length 4
Domain StaffName
variable
length
character
string, length 30 Domain Address
variable
length
character
string, length 50 variable
length
character
string, length 50 Domain Phone
variable
length
character
string, length 15 Domain Email
variable
length
character
string, length 30 Domain Password
fixed length character string, length 32
Domain Role
fixed length character string, length 30
Staff ( StaffID
StaffID
NOT NULL,
StaffName
StaffName
NOT NULL,
Address
StaffAddress
NOT NULL,
Phone
PhoneNumber
NOTNULL,
Email
StaffEmail
NOT NULL,
Password
StaffPassword
NOT NULL,
Role
Role
NOT NULL,
PRIMARY KEY (StaffID), FOREIGN KEY (Role) REFERENCES Role (Role) ON UPDATE NO ACTION ON DELETE NO ACTION);
173 2. Role ` Domain Role
fixed length character string, length 30
Domain RoleName
variable
length
character
string, length 30
Role ( Role
Role
NOT NULL,
RoleName
RoleName
NOT NULL,
PRIMARY KEY (Role)); 3. Client Domain ClientID
fixed length character string, length 4
Domain ClientName
variable
length
character
string, length 30 Domain Address
variable
length
character
string, length 50 Domain Phone
variable
length
character
string, length 15 Domain Email
variable
length
character
string, length 30 Domain Fax
variable
length
character
string, length 15
Client ( ClientID
ClientID
NOT NULL,
ClientName
ClientName
NOT NULL,
Address
ClientAddress
NOT NULL,
Phone
PhoneNumber
NOT NULL,
Email
EmailClient,
Fax
FaxClient,
PRIMARY KEY (ClientID));
174 4. Supplier Domain SupplierID
fixed
length
character
string, length 4 Domain SupplierName
variable length character string, length 30
Domain Address
variable length character string, length 50
Domain Phone
variable length character string, length 15
Domain Fax
variable length character string, length 15
Domain Email
variable length character string, length 30
Domain SupplierType
fixed
length
character
string, length 4
Supplier ( SupplierID
SupplierID
NOT NULL,
SupplierName
SupplierName
NOT NULL,
Address
SupplierAddress
NOT NULL,
Phone
PhoneNumber
NOT NULL,
Fax
FaxSupplier,
Email
EmailSupplier,
SupplierTypeID
SupplierTypeID
NOT NULL,
PRIMARY KEY (SupplierID) FOREIGN KEY (SupplierTypeID) REFERENCES SupplierType (SupplierTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION);
175 5. SupplierType Domain SupplierTypeID
fixed length character string, length 4
Domain SupplierTypeName
variable
length
character
string, length 30
SupplierType ( SupplierTypeID
SupplierTypeID
NOT NULL,
SupplierTypeName
SupplierTypeName
NOT NULL,
PRIMARY KEY (SupplierTypeID));
6. AccountBank Domain AccountID
fixed
length
character
string, length 5 Domain AccountNumber
variable length character string, length 15
Domain BankID
fixed
length
character
string, length 3
AccountBank ( AccountID
AccountID
NOTNULL,
AccountNumber
AccountNumber
NOT NULL,
BankID
BankID
NOT NULL,
PRIMARY KEY (AccountID), FOREIGN KEY (BankID) REFERENCES Bank (BankID) ON UPDATE NO ACTION ON DELETE NO ACTION);
176 7. Bank Domain BankID
fixed lengt character string, length 3
Domain BankName
variable character string, length 15
Bank ( BankID
BankID
NOT NULL,
BankName
BankName
NOT NULL,
PRIMARY KEY (BankID));
8. Material
Domain MaterialID
fixed length character string, length 5
Domain MaterialName
variable
length
character
string, length 30 Domain Stock
integer
Domain Unit
variable
length
character
string, length 5 Domain MaterialTypeID
fixed length charater string, length 4
Material ( MaterialID
MaterialID
NOT NULL,
MaterialName
MaterialName
NOT NULL,
Stock
MaterialStock
NOT NULL,
Unit
MaterialUnit
NOT NULL,
MaterialTypeID
MaterialTypeID
NOT NULL,
PRIMARY KEY (MaterialID), FOREIGN KEY (MaterialTypeID) REFERENCES MaterialType (MaterialTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION);
177 9. MaterialType Domain MaterialTypeID
fixed length character string, length 4
Domain MaterialTypeName
variable
length
character
string, length 30
MaterialType ( MaterialTypeID
MaterialTypeID
NOT NULL,
MaterialTypeName
MaterialTypeName
NOT NULL,
PRIMARY KEY (MaterialTypeID));
10. PaymentType
Domain PaymentTypeID
fixed length character string, length 3
Domain PaymentTypeName
variable length character string, length 10
PaymentType ( PaymentTypeID
PaymentTypeID
NOT NULL,
PaymentTypeName
PaymentTypeName
NOT NULL,
PRIMARY KEY (PaymentTypeID));
11. StockAdjustmentHeader StockAdjustmentID
fixed length character string, length 5
StaffID
fixed lengt character string, length 4
StockAdjustmentDocNumber
variable
length
character
string,
length 20 StockAdjustmentDate
datetime
StockAdjustmentNote
variable
length
178 character
string,
length 100
StockAdjustmentHeader ( StockAdjustmentID
StockAdjustmentID
NOT NULL,
StaffID
StaffID
NOT NULL,
StockAdjustmentDate
AdjustmentDate
NOT NULL,
StockAdjustmentNote
AdjustmentNote,
PRIMARY KEY (StockAdjustmentID), FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
12. StockAdjustmentDetail Domain StockAdjusmentID
fixed
length
character
string, length 5 Domain MaterialID
fixed
length
character
string, length 5 Domain Qty
integer
StockAdjustmentDetail ( StockAdjusmentID
StockAdjusmentID
NOT NULL,
MaterialID
MaterialID
NOT NULL,
Qty
Quantity
NOT NULL,
PRIMARY KEY (StockAdjusmentID), FOREIGN
KEY
(MaterialID)
REFERENCES
Material
(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION);
179 13. Project Domain ProjectID
fixed
length
character
string, length 4 Domain ClientID
fixed
length
character
string, length 4 Domain ProjectName
variable length character string, length 30
Domain ProjectAddress
variable length character string, length 50
Project ( ProjectID
ProjectID
NOT NULL,
ClientID
ClientID
NOT NULL,
ProjectName
ProjectName
NOT NULL,
ProjectAddress
ProjectAddress
NOT NULL,
PRIMARY KEY (ProjectID), FOREIGN KEY (ClientID) REFERENCES Client (ClientID) ON UPDATE NO ACTION ON DELETE NO ACTION); 14. RAB
Domain RAB_ID
fixed
length
character
string, length 8 Domain StaffID
fixed
length
character
string, length 4 Domain ProjectID
fixed
length
character
string, length 4 Domain RAB_date
datetime
Domain RAB_Amount
monetary value
RAB ( RAB_ID
RAB_ID
NOT NULL,
StaffID
StaffID
NOT NULL,
ProjectID
ProjectID
NOT NULL,
180 RAB_date
RAB_date
NOT NULL,
RAB_Amount
RAB_Amount
NOT NULL,
PRIMARY KEY (RAB_ID), FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (ProjectID) REFERENCES Project (ProjectID) ON UPDATE NO ACTION ON DELETE NO ACTION);
15. SubRABHeader
Domain SubRAB_ID
fixed
length
character
string, length 8 Domain RAB_ID
fixed
length
character
string, length 8 Domain SubRAB_Name
variable length character string, length 50
SubRABHeader ( SubRAB_ID
SubRAB_ID
NOT NULL,
RAB_ID
RAB_ID
NOT NULL,
SubRAB_Name
SubRAB_Name
NOT NULL,
PRIMARY KEY (SubRAB_ID), FOREIGN KEY (RAB_ID) REFERENCES RAB (RAB_ID) ON UPDATE NO ACTION ON DELETE NO ACTION );
16. SubRABDetail
Domain SubRAB_ID
fixed
length
character
string, length 8 Domain MaterialID
fixed
length
string, length 5 Domain Qty
integer
character
181 Domain UnitPrice
monetary value, in the range 0.00 – 999999999.99
SubRABDetail ( SubRAB_ID
SubRAB_ID
NOT NULL,
MaterialID
MaterialID
NOT NULL,
Qty
Quantity
NOT NULL,
Unit Price
UnitPrice
NOT NULL,
PRIMARY KEY (SubRAB_ID), FOREIGN
KEY
(MaterialID)
REFERENCES
Material
(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION);
17. ProjectOrder
Domain ProjectOrderID
fixed length character string, length 6
Domain ProjectID
fixed length character string, length 4
Domain StaffID
fixed length character string, length 4
Domain
variable
length
ProjectOrderDocNumber
character string, length 20
Domain ProjectOrderDate
datetime
Domain ProjectOrderNote
variable
length
character string, length 100 Domain StartDate
datetime
Domain EndDate
datetime
Domain TotalTerm
integer
ProjectOrder (
182 ProjectOrderID
ProjectOrderID
NOT NULL,
ProjectID
ProjectID
NOT NULL,
StaffID
StaffID
NOT NULL,
ProjectOrderDocNumber ProjectOrderNum
NOT NULL,
ProjectOrderDate
ProjectOrderDate
NOT NULL,
ProjectOrderNote
ProjectOrderNote,
StartDate
StartDate
NOT NULL,
EndDate
EndDate
NOT NULL,
TotalTerm
TotalTerm
NOTNULL,
PRIMARY KEY (ProjectOrderID), FOREIGN KEY (ProjectID) REFERENCES Project (ProjectID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
18. MaterialUsedHeader
Domain MaterialUsedID Domain ProjectOrderID Domain StaffID Domain MaterialUsedDocNumber Domain MaterialUsedDate Domain MaterialUsedNote Domain CarNo Domain DriverName Domain ProjectOrderDocNumber
fixed length character string, length 8 fixed length charater string, length 6 fixed length character string, length 4 variable length character string, length 20 datetime variable length character sring, length 100 variable length character string, length 12 variable length character string, length 30 variable length character string, length 20
183 MaterialUsedHeader ( MaterialUsedID
MaterialUsedID
NOT NULL,
ProjectOrderID
ProjectOrderID
NOT NULL,
StaffID
StaffID
NOT NULL,
MaterialUsedDocNumber
MaterialUsedDocNo NOT NULL,
MaterialUsedDate
MaterialUsedDate
MaterialUsedNote
MaterialUsedNote,
CarNo
CarNo
NOT NULL,
DriverName
DriverName
NOT NULL,
ProjectOrderDocNumber
ProjectOrderDocNo NOT NULL,
NOT NULL,
PRIMARY KEY (MaterialUsedID), FOREIGN
KEY
(ProjectOrderID)
REFERENCES
ProjectOrder(ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
19. MaterialUsedDetail
Domain MaterialUsedID
fixed
length
character
string, length 8 Domain MaterialID
fixed
length
character
string, length 5 Domain Qty
integer
MaterialUsedDetail ( MaterialUsedID
MaterialUsedID
NOT NULL,
MaterialID
MaterialID
NOT NULL,
Qty
Quantity
NOT NULL,
PRIMARY KEY (MaterialUsedID), FOREIGN
KEY
(MaterialID)
REFRENCES
(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION);
Material
184
20. ProjectBill
Domain ProjectBillID
fixed length character string, length 8
Domain ProjectOrderID
fixed length character string, length 6
Domain StaffID
fixed length character string, length 4
Domain ProjectBillDocNumber
variable
length
character
string, length 20 Domain ProjectBillDate
datetime
Domain ProjectBillNote
variable
length
character
string, length 100 Domain ProjectBillDueDate
datetime
Domain TermOfPayment
integer
Domain Bill_Amount
monetary value, in the range 0.00-999999999.99
Domain PPN
integer
ProjectBill ( ProjectBillID
ProjectBillID
NOT NULL,
ProjectOrderID
ProjectOrderID
NOT NULL,
StaffID
StaffID
NOT NULL,
ProjectBillDocNumber
ProjectBillDocNo
NOT NULL,
ProjectBillDate
ProjectBillDate
NOT NULL,
ProjectBillNote
ProjectBillNote,
ProjectBillDueDate
ProjectBilldueDate
NOT NULL,
TermOfPayment
TermOfPayment
NOT NULL,
Bill_Amount
Bill_Amount
NOT NULL,
PRIMARY KEY (ProjectBillID), FOREIGN KEY (ProjectOrderID) REFERENCES ProjectOrder (ProjectOrderID)
185 ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
21. ProjectPayment Domain ProjectPaymentID
fixed
length
character
string, length 8 Domain ProjectBillID
fixed
length
character
string, length 8 Domain AccountID
fixed
length
character
string, length 5 Domain StaffID
fixed
length
character
string, length 4 Domain
variable length character
ProjectPaymentDocNumber
string, length 20
Domain ProjectPaymentDate
datetime
Domain ProjectPaymentNote
variable length character string, length 100
Domain PaymentTypeID
fixed
length
character
string, length 3
ProjectPayment ( ProjectPaymentID
ProjectPaymentID
NOT
NULL, ProjectBillID
ProjectBillID
NOT NULL, AccountID
AccountID
NOT NULL, StaffID
StaffID
NOT NULL, ProjectPaymentDocNumber NOT NULL,
ProjectPaymentDocNo
186 ProjectPaymentDate
ProjectPaymentDate
NOT NULL, ProjectPaymentNote
ProjectPaymentNote,
PaymentTypeID
PaymentTypeID
NOT NULL, PRIMARY KEY (ProjectPaymentID), FOREIGN KEY (ProjectBillID) REFERENCES ProjectBill (ProjectBillID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (AccountID) REFERENCES AccountBank (AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (PaymentTypeID) REFERENCES PaymentType (PaymentTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION);
22. ProjectAddendumHeader
Domain ProjectAddID
Fixed length character string, length 5
Domain ProjectOrderID
Fixed length character string, length 6
Domain StaffID
Fixed length character string, length 4
Domain ProjectAddDocNumber
Variable
length
character
string, length 20 Domain ProjectAddDate
Datetime
Domain ProjectAddNote
Variable
length
character
string, length 100
ProjectAddendumHeader ( ProjectAddID
ProjectAddID
NOT NULL,
187 ProjectOrderID
ProjectOrderID
NOT NULL,
StaffID
StaffID
NOT NULL,
ProjectAddDocNumber ProjectAddDocNo
NOT NULL,
ProjectAddDate
ProjectAddDate
NOT NULL,
ProjectAddNote
ProjectAddNote,
PRIMARY KEY (ProjectAddID), FOREIGN KEY (ProjectOrderID) REFERENCES ProjectOrder (ProjectOrderID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
23. ProjectAddendumDetail
Domain ProjectAddID
Fixed
length
character
string, length 5 Domain MaterialID
Fixed
length
character
string, length 5 Domain Qty
Integer
Domain UnitPrice
monetary value, in the range 0.00-999999999.99
Domain Status
Variable length character string, length 7
ProjectAddendumDetail ( ProjectAddID
ProjectAddID
NOT NULL,
MaterialID
MaterialID
NOT NULL,
Qty
Quantity
NOT NULL,
UnitPrice
UnitPrice
NOT NULL,
Status
Status
NOT NULL,
PRIMARY KEY (ProjectAddID), FOREIGN (MaterialID)
KEY
(MaterialID)
REFERENCES
Material
188 ON UPDATE NO ACTION ON DELETE NO ACTION);
24. AddendumBill
Domain AddendumBillID
Fixed
length
character
string, length 8 Domain ProjectAddID
Fixed
length
character
string, length 5 Domain StaffID
Fixed
length
character
string, length 4 Domain AddendumBillDocNumber Variable character string, length 20 Domain AddendumBilldate
Datetime
Domain AddendumBillNote
Variable
length character
string, length 100 Domain AddendumBillDueDate
Datetime
Domain PPN
Integer
AddendumBill ( AddendumBillID
AddendumBillID
NOT NULL,
ProjectAddID
ProjectAddID
NOT NULL,
StaffID
StaffID
NOT NULL,
AddendumBillDocNumber
AddendumBillDocNo
NOT NULL,
AddendumBilldate
AddendumBillDate
NOT NULL,
AddendumBillNote
AddendumBillNote,
AddendumBillDueDate
AddendumBillDueDate
NOT NULL,
PPN
PPN
NOT NULL,
PRIMARY KEY (AddendumBillID), FOREIGN KEY (ProjectAddID) REERENCES ProjectAddendumHeader (ProjectAddID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
189
25. AddendumPayment
Domain AddendumPaymentID
Fixed
length
character string,length 8 Domain AddendumBillID
Fixed
character
string, length 8 Domain AccountID
Fixed
length
character
string,
length 5 Domain StaffID
Fixed
length
character
string,
length 4 Domain
Variable
length
AddendumPaymentDocNumber
character
string,
length 20 Domain AddendumPaymentDate
Datetime
Domain AddendumPaymentNote
Variable
length
character
string,
length 100 Domain PaymentTypeID
Fixed
length
character
string,
length 3
AddendumPayment ( AddendumPaymentID
AddendumPaymentID NOT NULL,
AddendumBillID
AddendumBillID
NOT NULL,
AccountID
AccountID
NOT NULL,
StaffID
StaffID
NOT NULL,
AddendumPaymentDocNumber
AddPaymentDocNo NOT NULL,
AddendumPaymentDate
AddPaymentDate
AddendumPaymentNote
AddPaymentNote,
NOT NULL,
190 PaymentTypeID
PaymentTypeID,
NOT NULL
PRIMARY KEY (AddendumPaymentID), FOREIGN
KEY
(AddendumBillID)
REFERENCES
AddendumBill
(AddendumBillID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (AccountID) REFERENCES AccountBank (AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (Staff ID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN
KEY
(PaymentTypeID)
REFERENCES
PaymentType
(PaymentTypeID) ON UPDATE NO ACTION ON DELETE NO ACTION);
26. PurchaseOrderHeader
Domain POID
Fixed
length
character
string, length 8 Domain SupplierID
Fixed
length
character
string, length 4 Domain StaffID
Fixed
length
character
string,length 4 Domain PODocNumber
Variable length character string, length 20
Domain PODate
Datetime
Domain PONote
Variable length character string, length 100
Domain ReceiptDate
Datetime
Domain Discount
Integer
Domain PPN
Integer
PurchaseOrderHeader ( POID
POID
NOT NULL,
SupplierID
SupplierID
NOT NULL,
191 StaffID
StaffID
NOT NULL,
PODocNumber
PODocNumber
NOT NULL,
PODate
PODate
NOT NULL,
PONote
PONote,
ReceiptDate
ReceiptDate
Discount
Discount,
PPN
PPN
NOT NULL,
NOT NULL,
PRIMARY KEY (POID), FOREIGN
KEY
(SupplierID)
REFERENCES
Supplier
(SupplierID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
27. PurchaseOrderDetail
Domain POID
Fixed length character string, length 8
Domain MaterialID
Fixed length character string, length 5
Domain Qty
Integer
Domain UnitPrice
monetary value, in the range 0.00-999999999.99
PurchaseOrderDetail ( POID
POID
NOT NULL,
MaterialID
MaterialID
NOT NULL,
Qty
Quantity
NOT NULL,
UnitPrice
UnitPrice
NOT NULL,
PRIMARY KEY (POID), FOREIGN
KEY
(MaterialID)
REFERENCES
(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION);
Material
192 28. POReceiptHeader
Domain POReceiptID
Fixed length character string, length 8
Domain POID
Fixed length character string, length 8
Domain StaffID
Fixed length character string, length 4
Domain POReceiptDocNumber
Variable
length
character string, length 20 Domain POReceiptDate
Datetime
Domain POReceiptNote
Variable
length
character string, length 100 Domain CarNo
Variable
length
character string, length 12 Domain DriverName
Variable
length
character string , length 30
POReceiptHeader ( POReceiptID
POReceiptID
NOT NULL,
POID
POID
NOT NULL,
StaffID
StaffID
NOT NULL,
POReceiptDocNumber
POReceiptDocNo
NOT NULL,
POReceiptDate
POReceiptDate
NOT NULL,
POReceiptNote
POReceiptNote,
CarNo
CarNo
NOT NULL,
DriverName
DriverName
NOT NULL,
PRIMARY KEY (POReceiptID), FOREIGN KEY (POID) REFERENCES PurchaseOrderHeader
193 (POID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
29. POReceiptDetail
Domain POReceiptID
Fixed
length
character
string, length 8 Domain MaterialID
Fixed
length
character
string, length 5 Domain Qty
Integer
POReceiptDetail ( POReceiptID
POReceiptID
NOT NULL,
MaterialID
MaterialID
NOT NULL,
Qty
Quantity
NOT NULL,
PRIMARY KEY (POReceiptID), FOREIGN
KEY
(MaterialID)
REFERENCES
Material
(MaterialID) ON UPDATE NO ACTION ON DELETE NO ACTION);
30. PurchaseBill
Domain PurchaseBillID
Fixed length character string, length 8
Domain POID
Fixed length character string, length 8
Domain StaffID
Fixed length character string, length 4
Domain
Variable
length
PurchaseBillDocNumber
character string, length
194 20 Domain PurchaseBillDate
Datetime
Domain PurchaseBillNote
Variable
length
character
string,length
100 Domain PurchaseBillDueDate
datetime
PurchaseBill ( PurchaseBillID
PurchaseBillID
NOT NULL,
POID
POID
NOT NULL,
StaffID
StaffID
NOT NULL,
PurchaseBillDocNumber PurchaseBillDocNo NOT NULL, PurchaseBillDate
PurchaseBillDate
NOT NULL,
PurchaseBillNote
PurchaseBillNote,
PurchaseBillDueDate
PurchaseBillDueDate NOT NULL,
PRIMARY KEY (PurchaseBillID), FOREIGN KEY (POID) REFERENCES PurchaseOrderHeader (POID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
195 31. PurchasePayment
Domain PurchasePaymentID
Fixed length character string, length 8
Domain PurchaseBillID
Fixed length character string, length 8
Domain AccountID
Fixed length character string, length 5
Domain StaffID
Fixed length character string, length 4
Domain
Variable
length
PurchasePaymentDocNumber
character
string,
length 20 Domain PurchasePaymentDate
Datetime
Domain PurchasePaymentNote
Variable
length
character
string,
length 100 Domain SupplierAccountNo
Variable
length
character
string,
length 15 Domain PaymentTypeID
Fixed length character string, length 3
PurchasePayment ( PurchasePaymentID
PurchasePaymentID
NOT
PurchaseBillID
NOT
AccountID
NOT
StaffID
NOT
PaymentDocNo
NOT
NULL, PurchaseBillID NULL, AccountID NULL, StaffID NULL, PaymentDocNumber
196 NULL, PurchasePaymentDate
PurchasePaymentDate
NOT
NULL, PurchasePaymentNote
PurchasePaymentNote,
SupplierAccountNo
SupplierAccountNo
NOT
PaymentTypeID
NOT
NULL, PaymentTypeID NULL, PRIMARY KEY (PurchasePaymentID), FOREIGN KEY (PurchaseBillID) REFERENCES PurchaseBill (PurchaseBillID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (AccountID) REFERENCES AccountBank (AccountID) ON UPDATE NO ACTION ON DELETE NO ACTION, FOREIGN KEY (StaffID) REFERENCES Staff (StaffID) ON UPDATE NO ACTION ON DELETE NO ACTION);
197 3.3.1.2.1.2. Merancang Gambaran dari Perolehan Data Langkah pertama yang dilakukan adalah menguji model data logika dan kamus data, dan menghasilkan derived attributes. Dalam perancangan fisik, derived attributes yang disimpan dalam database membutuhkan memory. Derived attributes dalam entity yang ada meliputi: a) Total, didapat dari perkalian antara Harga satuan barang dengan kuantitas b) SubTotal, didapat dari jumlah semua Total c) GrandTotal, didapat dari pembulatan SubTotal dikalikan dengan niai PPN. 3.3.1.2.1.3. Merancang Batas General Mengubah relasi dengan menggunakan aturan dari perusahaan yang mengatur transaksi-transaksi yang terjadi di dunia nyata. Dalam sistem informasi terdapat beberapa aturan bisnis yang harus dipenuhi. Berikut batasan-batasan yang akan dibuat untuk menjaga integritas dari data yang disimpan: a. Validasi kuantitas material yang digunakan Kuantitas material yang digunakan tidak boleh melebihi jumlah stock yang tersedia b. Validasi tahapan pembayaran project Tahapan pembayaran project tidak boleh melebihi total tahapan pembayaran yang telah disepakati sebelumnya dalam SPK
3.3.1.2.2. Desain Penyusunan dan Pemberian index pada File Tujuan
dari
langkah
ini
adalah
untuk
mempertimbangkan pengaturan atau penyusuan file yang optimal untuk disimpan dalam base relation dan indeks yang dibutuhkan untuk mencapai performa yang diinginkan.
198 3.3.1.2.2.1. Analisis Transaksi 1. Memasukkan, mengubah, menampilkan data Staff. 2. Memasukkan, mengubah, menampilkan data Client. 3. Memasukkan dan menampilkan data Project. 4. Memasukkan, mengubah, menampilkan data Material. 5. Memasukkan dan menampilkan data ProjectOrder. 6. Memasukkan dan menampilkan data MaterialUsed. 7. Memasukkan dan menampilkan ProjectBill. 8. Memasukkan dan menampilkan data ProjectPayment. 9. Memasukkan, mengubah, menampilkan data AccountBank 10. Memasukkan dan menampilkan data ProjectAddendum. 11. Memasukkan dan menampilkan data AddendumBill. 12. Memasukkan dan menampilkan data AddendumPayment. 13. Memasukkan, mengubah, menampilkan data Supplier. 14. Memasukkan dan menampilkan data PurchaseOrder. 15. Memasukkan dan menampilkan data PurchaseOrderReceipt. 16. Memasukkan dan menampilkan data PurchaseBill. 17. Memasukkan dan menampilkan data PurchasePayment. 18. Memasukkan dan menampilkan data StockAdjusment.
199 Tabel 3.42 Cross-referencing Transaction and Relation Transaksi Relasi I Staff X Role X Client Supplier SupplierType AccountBank Bank Material MaterialType PaymentType StockAdjustmentHeader StockAdjustmentDetail Project RAB SubRABHeader SubRABDetail ProjectOrder MaterialUsedHeader MaterialUsedDetail ProjectBill ProjectPayment ProjectAddendumHeader ProjectAddendumDetail AddendumBill AddendumPayment PurchaseOrderHeader PurchaseOrderDetail POReceiptHeader POReceiptDetail PurchaseBill PurchasePayment
R X X
1 U X X
D
I
R
2 U
X
X
X
D
I
R X X X X
X X
X X X X
X X X X
3 U
D
200 Tabel 3.43 Cross-referencing Transaction and Relation Transaksi Relasi I Staff Role Client Supplier SupplierType AccountBank Bank Material X MaterialType X PaymentType StockAdjustmentHeader StockAdjustmentDetail Project RAB SubRABHeader SubRABDetail ProjectOrder MaterialUsedHeader MaterialUsedDetail ProjectBill ProjectPayment ProjectAddendumHeader ProjectAddendumDetail AddendumBill AddendumPayment PurchaseOrderHeader PurchaseOrderDetail POReceiptHeader POReceiptDetail PurchaseBill PurchasePayment
4
5
R
U
X X
X X
D
I
X
R
6 U
D
I
X X X
R X X
U
X X
X
X X X
D
201 Tabel 3.44 Cross-referencing Transaction and Relation Transaksi Relasi Staff Role Client Supplier SupplierType AccountBank Bank Material MaterialType PaymentType StockAdjustmentHeader StockAdjustmentDetail Project RAB SubRABHeader SubRABDetail ProjectOrder MaterialUsedHeader MaterialUsedDetail ProjectBill ProjectPayment ProjectAddendumHeader ProjectAddendumDetail AddendumBill AddendumPayment PurchaseOrderHeader PurchaseOrderDetail POReceiptHeader POReceiptDetail PurchaseBill PurchasePayment
7 I X X
R X X
X
X
X
X
8 U
D
I X X
R X X
X
X
X X
X X
9 U
D
I
X
R
U
X
D
202 Tabel 3.45 Cross-referencing Transaction and Relation Transaksi Relasi I Staff Role Client Supplier SupplierType AccountBank Bank Material X MaterialType PaymentType StockAdjustmentHeader StockAdjustmentDetail Project RAB SubRABHeader SubRABDetail ProjectOrder MaterialUsedHeader MaterialUsedDetail ProjectBill ProjectPayment ProjectAddendumHeader X ProjectAddendumDetail X AddendumBill AddendumPayment PurchaseOrderHeader PurchaseOrderDetail POReceiptHeader POReceiptDetail PurchaseBill PurchasePayment
R
10 U
D
I
R
X
X
11 U
12 D
I
R
X
X
X
X X
U
D
203 Tabel 3.46 Cross-referencing Transaction and Relation Transaksi Relasi I Staff Role Client Supplier X SupplierType X AccountBank Bank Material MaterialType PaymentType StockAdjustmentHeader StockAdjustmentDetail Project RAB SubRABHeader SubRABDetail ProjectOrder MaterialUsedHeader MaterialUsedDetail ProjectBill ProjectPayment ProjectAddendumHeader ProjectAddendumDetail AddendumBill AddendumPayment PurchaseOrderHeader PurchaseOrderDetail POReceiptHeader POReceiptDetail PurchaseBill PurchasePayment
R
13 U
X X
X X
D
I X X
R X X
X
X
X
X X
14 U
15 D
I X X
R X X
X
X
X
X X
X X X X
X X X X
U
D
204 Tabel 3.47 Cross-referencing Transaction and Relation Transaksi Relasi Staff Role Client Supplier SupplierType AccountBank Bank Material MaterialType PaymentType StockAdjustmentHeader StockAdjustmentDetail Project RAB SubRABHeader SubRABDetail ProjectOrder MaterialUsedHeader MaterialUsedDetail ProjectBill ProjectPayment ProjectAddendumHeader ProjectAddendumDetail AddendumBill AddendumPayment PurchaseOrderHeader PurchaseOrderDetail POReceiptHeader POReceiptDetail PurchaseBill PurchasePayment
I X X
R X X
X X
X X
X
X
16 U
D
I X X
R X X
X
X
X X
X X
17 U
18 D
I X X
R X X
X X
X X
U
D
205 3.3.1.3.2.2. Memilih Organisasi Data File Organisasi file yang digunakan berdasarkan organisasi file yang digunakan untuk DMBS My-SQL yaitu B-Tree. Karena dengan menggunakan B-Tree pencarian terhadap data akan lebih cepat dibandingkan dengan metode lainnya. 3.3.1.3.2.3. Memilih Indeks Tahap ini dilakukan untuk meningkatkan kinerja sistem dengan menentukan penambahan indeks yang diperlukan. Tabel 3.48 Index Entity
Nama Indeks
Atribut Indeks
Tipe Indeks
Staff
StaffID_Idx
StaffID
Clustered
StaffName_Idx
StaffName
Non Clustered
Phone_Idx
Phone
Non Clustered
RoleID_Idx
RoleID
Clustered
RoleName_Idx
RoleName
Non Clustered
ClientID_Idx
ClientID
Clustered
ClientName_Idx
ClientName
Non Clustered
Phone_Idx
Phone
Non Clustered
Fax_Idx
Fax
Non Clustered
SupplierTypeID_Idx
SupplierTypeID
Clustered
SupplierTypeName_Idx
SupplierTypeName
Non Clustered
SupplierID_Idx
SupplierID
Clustered
SupplierName_Idx
SupplierName
Non Clustered
Phone_Idx
Phone
Non Clustered
Fax_Idx
Fax
Non Clustered
SupplierTypeID_Idx
SupplierTypeID
Non Clustered
AccountID_Idx
AccountID
Clustered
AccountNumber_Idx
AccountNumber
Non Clustered
BankID_Idx
BankID
Clustered
BankName_Idx
BankName
Non Clustered
MaterialTypeID_Idx
MaterialTypeID
Clustered
MaterialTypeName_Idx
MaterialTypeName
Non Clustered
MaterialID_Idx
MaterialID
Clustered
MaterialName _Idx
MaterialName
Non Clustered
Stock_Idx
Stock
Non Clustered
Role
Client
SupplierType
Supplier
AccountBank
Bank
MaterialType
Material
206
Entity
Nama Indeks
Atribut Indeks
Tipe Indeks
Project
ProjectID_Idx
ProjectID
Clustered
ProjectName_Idx
ProjectName
Non Clustered
RAB_ID _Idx
RAB_ID
Clustered
RAB_Date_Idx
RAB_Date
Non Clustered
PurchaseOrderHea
POID_Idx
POID
Clustered
der
PODocNumber_Idx
PODocNumber
Non Clustered
PODate_Idx
PODate
Non Clustered
POReceiptID _Idx
POReceiptID
Clustered
POReceiptDocNumber
POReceiptDocNumb
Non Clustered
_Idx
er
POReceiptDate _Idx
POReceiptDate
Non Clustered
PurchaseBillID _Idx
PurchaseBillID
Clustered
PurchaseBillDocNumber
PurchaseBillDocNum
Non Clustered
_Idx
ber
PurchaseBillDate _Idx
PurchaseBillDate
Non Clustered
PurchasePaymentID _Idx
PurchasePaymentID
Clustered
PurchasePaymentDocNum
PurchasePaymentDoc
Non Clustered
ber _Idx
Number
PurchasePaymentDate _Idx
PurchasePaymentDat
RAB
POReceiptHeader
PurchaseBill
PurchasePayment
e
Non Clustered
207
Entity
Nama Indeks
Atribut Indeks
Tipe Indeks
SubRABHeader
SubRAB_ID_Idx
SubRAB_ID
Clustered
SubRABName_Idx
SubRABName
Non Clustered
StockAdjustmentH
StockAdjustmentID_Idx
StockAdjustmentID
Clustered
eader
StockAdjustmentDate_Idx
StockAdjustmentDate Non Clustered
StockAdjustmentDocNumb
StockAdjustmentDoc
er_Idx
Number
ProjectOrderID_Idx
ProjectOrderID
ProjectOrderDocNumber_I
ProjectOrderDocNum Non Clustered
dx
ber
ProjectOrderDate_Idx
ProjectOrderDate
Non Clustered
StartDate_Idx
StartDate
Non Clustered
EndDate_Idx
EndDate
Non Clustered
MaterialUsedHead
MaterialUsedID_Idx
MaterialUsedID
Clustered
er
MaterialUsedDocNumber_I MaterialUsedDocNu
ProjectOrder
ProjectBill
Non Clustered
Clustered
Non Clustered
dx
mber
MaterialUsedDate_Idx
MaterialUsedDate
Non Clustered
ProjecBillID _Idx
ProjecBillID
Clustered
ProjectBillDocNumber_Idx
ProjectBillDocNumb
Non Clustered
er ProjectBillDate_Idx
ProjectBillDate
Non Clustered
ProjectBillDueDate_Idx
ProjectBillDueDate
Non Clustered
ProjectPaymentID_Idx
ProjectPaymentID
Clustered
ProjectPaymentDocNumbe
ProjectPaymentDocN
Non Clustered
r_Idx
umber
ProjectPaymentDate_Idx
ProjectPaymentDate
Non Clustered
ProjectAddendum
ProjectAddID_Idx
ProjectAddID
Clustered
Header
ProjectAddDocNumber_Id
ProjectAddDocNumb
Non Clustered
x
er
ProjectAddDate_Idx
ProjectAddDate
Non Clustered
AddendumBillID _Idx
AddendumBillID
Clustered
AddendumBillDocNumber
AddendumBillDocNu Non Clustered
_Idx
mber
AddendumBillDate_Idx
AddendumBillDate
ProjectPayment
AddendumBill
Non Clustered
208 1. Staff CREATE UNIQUE INDEX Staff_Idx ON Staff (StaffID) CREATE INDEX StaffName_Idx ON Staff (StaffName) CREATE INDEX Phone_Idx ON Staff (Phone) 2. Role CREATE UNIQUE INDEX Role_Idx ON Role (RoleID) CREATE INDEX RoleName_Idx ON Role (RoleName) 3. Client CREATE
UNIQUE
INDEX
ClientID_Idx
ON
Client
(ClientID) CREATE INDEX ClientName_Idx ON Client (ClientName) CREATE Phone_Idx ON Client (Phone) 4. SupplierType CREATE
SupplierTypeID_Idx
ON
SupplierType
(SupplierTypeID) CREATE INDEX SupplierTypeName_Idx ON SupplierType (SupplierTypeName) 5. Supplier CREATE UNIQUE INDEX SupplierID_Idx ON Supplier (SupplierID) CREATE
INDEX
SupplierName_Idx
ON
Supplier
(SupplierName) 6. AccountBank CREATE
UNIQUE
INDEX
AccountID_Idx
ON
AccountBank (AccountID) CREATE INDEX AccountNumber_Idx ON AccountBank (AccountNumber) 7. Bank CREATE UNIQUE INDEX BankID_Idx ON Bank (BankID) CREATE INDEX BankName_Idx ON Bank (BankName) 8. MaterialType CREATE
UNIQUE
INDEX
MaterialTypeID_Idx
ON
MaterialType (MaterialTypeID) CREATE INDEX MaterialTypeName_Idx ON MaterialType
209 (MaterialTypeName) 9. Material CREATE UNIQUE INDEX MaterialID_Idx ON Material (MaterialID) CREATE
INDEX
MaterialName_Idx
ON
Material
(MaterialName) CREATE INDEX Stock_Idx ON Material (Stock) 10. Project CREATE UNIQUE INDEX ProjectID_Idx ON Project (ProjectID) CREATE
INDEX
ProjectName_Idx
ON
Project
(ProjectName) 11. RAB CREATE
UNIQUE
INDEX
RAB_ID_Idx
ON
RAB
(RAB_ID) CREATE INDEX RAB_Date_Idx ON RAB (RAB_Date). 12. PurchaseOrderHeader CREATE
UNIQUE
INDEX
POID_Idx
ON
PurchaseOrderHeader (POID) CREATE
INDEX
PODocNumber_Idx
ON
PurchaseOrderHeader (PODocNumber) CREATE INDEX PODate_Idx ON PurchaseOrderHeader (PODate) 13. POReceiptHeader CREATE
UNIQUE
INDEX
POReceiptID_Idx
ON
POReceiptHeader (POReceiptID) CREATE
INDEX
POReceiptDocNumber_Idx
ON
POReceiptHeader (POReceiptDocNumber) CREATE INDEX POReceiptDate_Idx ON POReceiptHeader (POReceiptDate) 14. PurchaseBill CREATE
UNIQUE
INDEX
PurchaseBillID_Idx
ON
PurchaseBill (PurchaseBillID) CREATE
INDEX
PurchaseBillDocNumber_Idx
ON
210 PurchaseBill (PurchaseBillDocNumber) CREATE INDEX PurchaseBillDate_Idx ON PurchaseBill (PurchaseBillDate) 15. PurchasePayment CREATE UNIQUE INDEX PurchasePaymentID_Idx ON PurchasePayment (PurchasePaymentID) CREATE INDEX
PurchasePaymentDocNumber_Idx
ON
PurchasePayment (PurchasePaymentDocNumber) CREATE
INDEX
PurchasePaymentDate_Idx
ON
PurchasePayment (PurchasePaymentDate). 16. SubRABHeader CREATE
UNIQUE
INDEX
SubRAB_ID_Idx
ON
SubRABHeader (SubRAB_ID) CREATE INDEX SubRABName_Idx ON SubRABHeader (SubRABName). 17. StockAdjustmentHeader CREATE UNIQUE INDEX StockAdjustmentID_Idx ON StockAdjustmentheader (StockAdjustmentID) CREATE
INDEX
StockAdjustmentDate_Idx
ON
StockAdjustmentHeader (StockAdjustmentDate) CREATE
INDEX
StockAdjustmentDocNumber_Idx
ON
StockAdjustmentHeader (StockAdjustmentDocNumber). 18. ProjectOrder CREATE
UNIQUE
INDEX
ProjectOrderID_Idx
ON
ProjectOrder (ProjectOrderID) CREATE
INDEX
ProjectOrderDocNumber_Idx
ON
ProjectOrder (ProjectOrderDocNumber) CREATE INDEX ProjectOrderDate_Idx ON ProjectOrder (ProjectOrderDate). CREATE INDEX StartDate_Idx ON ProjectOrder (StartDate). CREATE INDEX EndDate_Idx ON ProjectOrder (EndDate).
211
19. MaterialUsedHeader CREATE
UNIQUE
INDEX
MaterialUsedID_Idx
ON
MaterialUsedHeader (MaterialUsedID) CREATE
INDEX
MaterialUsedDocNumber_Idx
ON
MaterialUsedHeader (MaterialUsedDocNumber) CREATE
INDEX
MaterialUsedDate_Idx
ON
MaterialUsedHeader (MaterialUsedDate). 20. ProjectBill CREATE UNIQUE INDEX ProjectBillID_Idx ON ProjectBill (ProjectBillID) CREATE INDEX ProjectBillDocNumber_Idx ON ProjectBill (ProjectBillDocNumber) CREATE
INDEX
ProjectBillDate_Idx
ON
ProjectBill
(ProjectBillDate) CREATE INDEX ProjectBillDueDate_Idx ON ProjectBill (ProjectBillDueDate). 21. ProjectPayment CREATE UNIQUE INDEX ProjectPaymentID_Idx ON ProjectPayment (ProjectPaymentID) CREATE
INDEX
ProjectPaymentDocNumber_Idx
ON
ProjectPayment (ProjectPaymentDocNumber). 22. ProjectAddendumHeader CREATE
UNIQUE
INDEX
ProjectAddID_Idx
ON
ProjectAddendumHeader (ProjectAddID) CREATE
INDEX
ProjectAddDocNumber_Idx
ON
ProjectAddendumHeader (ProjectAddDocNumber) CREATE
INDEX
ProjectAddDate_Idx
ON
ProjectAddendumHeader (ProjectAddDate). 23. AddendumBill CREATE
UNIQUE
INDEX
AddendumBillID_Idx
ON
AddendumBill (AddendumBillID) CREATE
INDEX
AddendumBillDocNumber_Idx
ON
212 AddendumBill (AddendumBillDocNumber) CREATE INDEX AddendumBillDate_Idx ON AddendumBill (AddendumBillDate). 3.3.1.3.2.4 Memperkirakan Kebutuhan Disk Space Tujuan dari langkah ini adalah untuk menentukan berapa besar kebutuhan penyimpanan disk space yang diperlukan oleh database. Perkiraaan kebutuhan ini dilakukan dengan menghitung besar kapasistas disk yang terpakai untuk setiap tabel atau entitas yang ada di dalamnya dan tipe data yang digunakan (size 1 record pertabel). Berikut merupakan perhitungan kebutuhan disk space pada setiap entity. Tabel 3.49 Disk Space Staff Entity
Field
Tipe Data
Ukuran
Staff
StaffID
Char (4)
4
StaffName
Varchar (30)
31
Address
Varchar (50)
51
Phone
Varchar (15)
16
Email
Varchar(30)
31
Password
Char(32)
32
RoleID
Char (3)
3
Jumlah
168
Kapasitas table Staff 168 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 25 * 168 = 4200 bytes
Tabel 3.50 Disk Space Role Entity
Field
Tipe Data
Ukuran
Role
RoleID
Char (3)
3
RoleName
Varchar (30)
31
Jumlah
34
Kapasitas table Role 34 bytes. Perkiraan peningkatan record pertahun 0% Kapasitas saat ini 3 * 34 = 102 bytes
213 Tabel 3.51 Disk Space Client Entity
Field
Tipe Data
Ukuran
Client
ClientID
Char (4)
4
ClientName
Varchar (30)
31
Address
Varchar (50)
51
Phone
Varchar (15)
16
Email
Varchar (30)
31
Fax
Varchar (15)
16
Jumlah
149
Kapasitas table Client 149 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 20* 149 = 2980 bytes
Tabel 3.52 Disk Space Supplier Entity
Field
Tipe Data
Ukuran
Supplier
SupplierID
Char (4)
4
SupplierName
Varchar (30)
31
Address
Varchar (50)
51
Phone
Varchar (15)
16
Fax
Varchar (15)
16
Email
Varchar (30)
31
SupplierTypeID
Char (4)
4
Jumlah
153
Kapasitas table Supplier 153 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 5 * 153 = 765 bytes
Tabel 3.53 Disk SpaceSupplierType Entity
Field
Tipe Data
Ukuran
SupplierType
SupplierTypeID
Char (4)
4
SupplierTypeName
Varchar (30)
31
Jumlah
34
Kapasitas table SupplierType 34 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 3 * 34 = 102 bytes
214 Tabel 3.54 Disk Space AccountBank Entity
Field
Tipe Data
Ukuran
AccountBank
AccountID
Char(5)
5
AccountNumber
Varchar(15)
16
BankID
Char(3)
3
Jumlah
24
Kapasitas table AccountBank 24 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 1 * 24 = 24 bytes
Tabel 3.55 Disk Space Bank Entity
Field
Tipe Data
Ukuran
Bank
BankID
Char(3)
3
BankName
Varchar(15)
16
Jumlah
19
Kapasitas table Bank 19 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 1 * 19= 19 bytes
215 Tabel 3.56 Disk Material Entity
Field
Tipe Data
Ukuran
Material
MaterialID
Char(5)
5
MaterialName
Varchar(30)
31
Unit
Integer
4
Stock
Varchar(5)
6
MaterialTypeID
Char (4)
4
Jumlah
49
Kapasitas table Material 49 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 30* 49 = 1470 bytes
Tabel 3.57 Disk Space MaterialType Entity
Field
Tipe Data
Ukuran
MaterialType
MaterialTypeID
Char (4)
4
MaterialTypeName
Varchar(30)
31
Jumlah
35
Kapasitas table MaterialType 35 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 5 * 35 = 175 bytes
Tabel 3.58 Disk Space PaymentType Entity
Field
Tipe Data
Ukuran
PaymentType
PaymentTypeID
Char (3)
3
PaymentTypeName
Varchar (10)
11
Jumlah
14
Kapasitas table PaymentType 14 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 1 * 14 = 14 bytes
216 Tabel 3.59 Disk Space StockAdjustmentHeader Entity
Field
StockAdjustmentHeader StockAdjustmentID StaffID
Tipe Data
Ukuran
Char(5)
5
Char (4)
4
StockAdjustmentDocNumber Varchar(20)
21
StockAdjustmentDate
Datetime
8
StockAdjustmentNote
Varchar(100) 101
Jumlah
139
Kapasitas table StockAdjustmentHeader 139 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 50 * 139 =6950 bytes
Tabel 3.60 Disk Space StockAdjustmentDetail Entity
Field
Tipe Data
Ukuran
Char(5)
5
MaterialID
Char(5)
5
Qty
Integer
4
StockAdjustmentDetail StockAdjustmentID
Jumlah
14
Kapasitas table StockAdjustmentDetail 14 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 14= 1400 bytes
Tabel 3.61 Disk Space Project Entity
Field
Tipe Data
Project
ProjectID ClientID ProjectName ProjectAddress
Char(6) Char(4) Varchar(30) Varchar(50)
Ukuran
6 4 31 51 Jumlah 92 Kapasitas table Project 92 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 30 * 92 = 2760 bytes
217 Tabel 3.62 Disk Space RAB Entity
Field
Tipe Data
Ukuran
RAB
RAB_ID
Char(8)
8
StaffID
Char(4)
4
ProjectID
Char(4)
4
RAB_date
datetime
8
RAB_Amount
Numric(12,2)
14
Jumlah
38
Kapasitas table RAB 38 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 38 = 3800 bytes
Tabel 3.63 Disk Space SubRABHeader Entity
Field
Tipe Data
Ukuran
SubRABHeader
SubRAB_ID
Char(8)
8
RAB_ID
Char(8)
8
SubRABName
Varchar(50)
51
Jumlah
67
Kapasitas table SubRABHeader 67 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 600 * 67 = 40200 bytes
Tabel 3.64 Disk Space SubRABDetail Entity
Field
Tipe Data
Ukuran
SubRABDetail
SubRAB_ID
Char(8)
8
MaterialID
Char(5)
5
Qty
Integer
4
UnitPrice
Numeric(12,2)
14
Jumlah
31
Kapasitas table SubRABDetail 31 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 6000 * 31 = 186000 bytes
218 Tabel 3.65 Disk Space ProjectOrder Entity
Field
Tipe Data
Ukuran
ProjectOrder
ProjectOrderID
Char(6)
6
ProjectID
Char(4)
4
StaffID
Char(4)
4
ProjectOrderDocNumber Varchar(20)
21
ProjectOrderDate
Datetime
8
ProjectOrderNote
Varchar(100)
101
StartDate
Datetime
8
EndDate
Datetime
8
TotalTerm
Integer
4
Jumlah
164
Kapasitas table ProjectOrder 164 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 20 * 164 = 3280 bytes
Tabel 3.66 Disk Space MaterialUsedHeader Entity
Field
Tipe Data
Ukuran
MaterialUsedHeader MaterialUsedID
Char(8)
8
ProjectOrderID
Char(6)
6
StaffID
Char(4)
4
MaterialUsedDocNumber Varchar(20)
21
MaterialUsedDate
Datetime
8
MaterialUsedNote
Varchar(100)
101
CarNo
Varchar(12)
13
DriverName
Varchar(30)
31
Jumlah
192
Kapasitas table MaterialUsedHeader 192 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 800 * 192 = 153600 bytes
219 Tabel 3.67 Disk Space MaterialUsedDetail Entity
Field
Tipe Data
Ukuran
MaterialUsedDetail
MaterialUsedID
Char(8)
8
MaterialID
Char(5)
5
Qty
Integer
4
Jumlah
17
Kapasitas table MaterialUsedDetail 17 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 900 * 17 = 15300 bytes
220 Tabel 3.68 Disk Space ProjectBill Entity
Field
Tipe Data
Ukuran
ProjectBill
ProjectBillID
Char(8)
8
ProjectOrderID
Char(6)
6
StaffID
Char(4)
4
ProjectBillDocNumber
Varchar(20)
21
ProjectBillDate
Datetime
8
ProjectBillNote
Varchar(100)
101
ProjectBillDueDate
Datetime
8
TermOfPayment
Integer
4
Bill_Amount
Numeric(12,2)
14
PPN
Integer
4
Jumlah
232
Kapasitas table ProjectBill 232 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 232 = 23200 bytes
221 Tabel 3.69 Disk Space ProjectPayment Entity
Field
Tipe Data
Ukuran
ProjectPayment
ProjectPaymentID
Char(8)
8
ProjectBillID
Char(8)
8
AccountID
Char(5)
5
StaffID
Char(4)
4
ProjectPaymentDocNumber Varchar(20)
21
ProjectPaymentDate
Datetime
8
ProjectPaymentNote
Varchar(100)
101
PaymentTypeID
Varchar(3)
4
Jumlah
159
Kapasitas table ProjectPayment 159 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 159 = 15900 bytes
Tabel 3.70 Disk Space ProjectAddendumHeader Entity
Field
Tipe Data
Ukuran
Char(5)
5
ProjectOrderID
Char(6)
6
StaffID
Char(4)
4
ProjectAddendumHeader ProjectAddID
ProjectAddDocNumber Varchar(20)
21
ProjectAddDate
Datetime
8
ProjectAddNote
Varchar(100)
101
Jumlah
145
Kapasitas table ProjectAddendumHeader 145 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 145 = 14500 bytes
222 Tabel 3.71 Disk Space ProjectAddendumDetail Entity
Field
Tipe Data
Ukuran
Char(5)
5
MaterialID
Char(5)
5
Qty
Integer
4
UnitPrice
Numeric(12,2)
14
Status
Varchar(7)
8
ProjectAddendumDetail ProjectAddID
Jumlah
36
Kapasitas table ProjectAddendumDetail 36 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 800 * 36 = 28800 bytes
Tabel 3.72 Disk Space AddendumBill Entity
Field
Tipe Data
Ukuran
AddendumBill
AddendumBillID
Char(8)
8
ProjectAddID
Char(5)
5
StaffID
Char(4)
4
AddendumBillDocNumber Varchar(20)
21
AddendumBillDate
Datetime
8
AddendumBillNote
Varchar(100)
101
AddendumBillDueDate
Datetime
8
PPN
Integer
4
Jumlah
159
Kapasitas table AddendumBill 159 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 159 = 15900 bytes
223 Tabel 3.73 Disk Space AddendumPayment Entity
Field
Tipe Data
Ukuran
AddendumPayment
AddendumPaymentID
Char(8)
8
AddendumBillID
Char(8)
8
AccountID
Char(5)
5
StaffID
Char(4)
4
AddendumPaymentDoc
Varchar(20)
21
Datetime
8
Number AddendumPaymentDate
AddendumPaymentNote Varchar(100)
101
PaymentTypeID
3
Char(3)
Jumlah
158
Kapasitas table AddendumPayment 158 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 100 * 158 = 15800 bytes
Tabel 3.74 Disk Space PurchaseOrderHeader Entity
Field
Tipe Data
Ukuran
Char(8)
8
SupplierID
Char(4)
4
StaffID
Char(4)
4
PODocNumber
Varchar(20)
21
PODate
Datetime
8
PONote
Varchar(100)
101
ReceiptDate
Datetime
8
Discount
Integer
4
PPN
Integer
4
PurchaseOrderHeader POID
Jumlah
162
Kapasitas table PurchaseOrderHeader 162 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 800 * 162 =129600 bytes
224 Tabel 3.75 Disk Space PurchaseOrderDetail Entity
Field
Tipe Data
Ukuran
Char(8)
8
MaterialID
Char(5)
5
Qty
Integer
4
UnitPrice
Numeric(12,2)
14
PurchaseOrderDetail POID
Jumlah
31
Kapasitas table PurchaseOrderDetail 31 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 1500 * 31 = 46500 bytes
225 Tabel 3.76 Disk Space POReceiptHeader Entity
Field
Tipe Data
Ukuran
POReceiptHeader
POReceiptID
Char(8)
8
POID
Char(8)
8
StaffID
Char(4)
4
POReceiptDocNumber
Varchar(20)
21
POReceiptDate
Datetime
8
POReceiptNote
Varchar(100)
101
CarNo
Varchar(12)
13
DriverName
Varchar(30)
31
Jumlah
194
Kapasitas table POReceiptHeader 194 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 800 * 194 = 155200 bytes
Tabel 3.77Disk Space POReceiptDetail Entity
Field
Tipe Data
Ukuran
POReceiptDetail
POReceiptID
Char(8)
8
MaterialID
Char(5)
5
Qty
Integer
4
Jumlah
20
Kapasitas table POReceiptDetail 20 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 1500 * 20 = 30000 bytes
226 Tabel 3.78 Disk Space PurchaseBill Entity
Field
Tipe Data
Ukuran
PurchaseBill
PurchaseBillID
Char(8)
8
POID
Char(8)
8
StaffID
Char(4)
4
PurchaseBillDocNumber Varchar(20)
21
PurchaseBillDate
Datetime
8
PurchaseBillNote
Varchar(100)
101
PurchaseBillDueDate
Datetime
8
Jumlah
158
Kapasitas table PurchaseBill 158 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 800 * 158 = 126400 bytes
Tabel 3.79 Disk Space PurchasePayment Entity
Field
Tipe Data
Ukuran
PurchasePayment
PurchasePaymentID
Char(8)
8
PurchaseBillID
Char(8)
8
AccountID
Char(5)
5
StaffID
Char(4)
4
PurchasePaymentDocNumber Varchar(20)
21
PurchasePaymentDate
Datetime
8
PurchasePaymentNote
Varchar(100)
101
SupplierAccountNo
Varchar(15)
16
PaymentTypeID
Char(3)
3
Jumlah
174
Kapasitas table PurchasePayment 174 bytes. Perkiraan peningkatan record pertahun 10% Kapasitas saat ini 800 * 174 = 139200 bytes
227 Tabel 3.80 Jumlah Perhitungan Estimasi Disk Space Pertumbuhan
Ukuran
per tahun (i)
(R3)
4200
10%
5590,2
Role
102
0%
0
Client
2980
10%
3966,38
Supplier
765
10%
1018,215
SupplierType
102
10%
135,762
AccountBank
24
10%
31,944
Bank
19
10%
25,289
Material
1470
10%
1956,57
MaterialType
175
10%
232,925
PaymentType
14
10%
18,634
StockAdjustmentHeader
6950
10%
9250,45
StockAdjustmentDetail
1400
10%
183,64
Project
2760
10%
3673,56
RAB
3800
10%
5057,8
SubRABHeader
40200
10%
53506,2
SubRABDetail
186000
10%
247,566
ProjectOrder
3280
10%
4365,68
MaterailUsedHeader
153600
10%
204441,6
MaterialUsedDetail
15300
10%
20364,3
ProjectBill
23200
10%
30879,2
ProjectPayment
15900
10%
21162,9
ProjectAddendumHeader
14500
10%
19299,5
ProjectAddendumDetail
28800
10%
38332,8
AddendumBill
15900
10%
21162,9
AddendumPayment
15800
10%
21029,8
PurchaseOrderHeader
129600
10%
172497,6
PurchaseOrderDetail
46500
10%
61891,5
POReceiptHeader
155200
10%
206571,2
POReceiptDetail
30000
10%
39930
PurchaseBill
126400
10%
168238,4
PurchasePayment
139200
10%
185275,2
Entity
Ukuran (R0)
Staff
3
tahun
228 Pertumbuhan
Ukuran
per tahun (i)
(R3)
Entity
Ukuran (R0)
Total
∑R0=164141
∑R3
bytes
bytes
3
tahun
=1300337,72
Desain User View Tujuan dari tahap ini adalah merancang user views yang telah diidentifikasi selama tahap pengumpulan kebutuhan dan analisis data dalam siklus pengembangan basis data.
View ProjectBill CREATE
VIEW
View_ProjectBill
AS
SELECT
ProjectOrderID, (SELECT RAB_Amount FROM RAB a join Project b ON a.ProjectID = b.ProjectID JOIN ProjectOrder c ON b.ProjectID = c.ProjectID WHERE RAB_ID = (SELECT RAB_ID FROM RAB b WHERE b.ProjectID = a.ProjectID ORDER
BY
RAB_ID
DESC
LIMIT
0,
1)
AND
c.ProjectOrderID = x.ProjectOrderID) AS ProjectAmount, IFNULL
((SELECT
MAX
(TermOfPayement)
FROM
ProjectBill a WHERE a.ProjectOrderID = x.ProjectOrderID), 0) AS Term, TotalTerm FROM ProjectOrder x View ProjectMaterial CREATE VIEW View_ProjectMaterial AS SELECT ProjectOrderID, e.MaterialID, MaterialName, Unit, SUM
(Qty)-ifnull
((SELECT
sum
(Qty)
FROM
MaterialUsedHeader x JOIN MaterialUsedDetail y ON x.MaterialUsedID = y.MaterialUsedID WHERE y.MaterialID = e.MaterialID AND x.ProjectOrderID = a.ProjectOrderID), 0) AS Qty, UnitPrice FROM ProjectOrder a JOIN Project b ON a.ProjectID = b.ProjectID JOIN RAB c ON b.ProjectID = c.ProjectID JOIN SubRABHeader d ON c.RAB_ID = d.RAB_ID JOIN SubRABDetail e ON d.SubRAB_ID =
229 e.SubRAB_ID JOIN Material f ON e.MaterialID = f.MaterialID WHERE c.RAB_ID = (SELECT RAB_ID FROM RAB WHERE ProjectID = a.ProjectID ORDER BY RAB_ID DEC LIMIT 0, 1) GROUP BY ProjectOrderID, e.MaterialID, MaterialName
UNION
ALL
SELECT
ProjectOrderID,
b.MaterialID, MaterialName, Unit, (CASE WHEN STATUS = ‘tambah’ THEN Qty ELSE –Qty END) AS Qty, b.UnitPrice FROM
ProjectAddendumHeader
ProjectAddendumDetail b.ProjectAddID
JOIN
b
ON
Material
c
a
JOIN
a.ProjectAddID ON
=
b.MaterialID
=
c.MaterialID 1.1.1.1.1. Desain Mekanisme Keamanan Tujuan dari tahap ini adalah merancang mekanisme keamanan untuk basis data sesuai spesifikasi dari pengguna. Adapun mekanisme keamanan yang dirancang untuk basis data adalah sebagai berikut: 1. Authentication Mekanisme keamanan yang digunakan dalam sistem ini adalah autentikasi, setiap pengguna menggunakan halaman Loginsebelum bisa mengakses sistem yang dirancang dalam aplikasi. Pada halaman Login, user menggunakan username dan
password
yang
telah
didaftarkan
untuk
dapat
mengakses aplikasi serta digunakan untuk validasi peran user dalam mengakses sistem. 2. Authorization Mekanisme ini membuat user mempunyai peran masing- masing dalam mengakses aplikasi serta database.
230 Tabel 3.81 Mekanisme Keamanan – I Pengguna
Direktur Utama
Head Technic
Relasi
I
R
U
I
R
U
Staff
X
X
X
X
X
Role
X
X
X
X
Client
X
X
X
Supplier
X
X
SupplierType
X
AccountBank
D
Head HRD D
I
R
U
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Bank
X
X
Material
X
MaterialType
Head Finance 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
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
PaymentType
X
X
X
X
X
X
X
X
X
X
X
X
StockAdjustmentHeader
X
X
X
X
X
X
X
X
StockAdjustmentDetail
X
X
X
X
X
X
X
X
Project
X
X
X
X
X
X
X
X
RAB
X
X
X
X
X
X
X
X
SubRABHeader
X
X
X
X
X
X
X
X
SubRABDetail
X
X
X
X
X
X
X
X
ProjectOrder
X
X
X
X
X
X
X
X
MaterialUsedHeader
X
X
X
X
X
X
X
X
MaterialUsedDetail
X
X
X
X
X
X
X
X
ProjectBill
X
X
X
X
X
X
X
X
ProjectPayment
X
X
X
X
X
X
X
X
ProjectAddendumHeader
X
X
X
X
X
X
X
X
ProjectAddendumDetail
X
X
X
X
X
X
X
X
AddendumBill
X
X
X
X
X
X
X
X
AddendumPayment
X
X
X
X
X
X
X
X
PurchaseOrderHeader
X
X
X
X
X
X
X
X
PurchaseOrderDetail
X
X
X
X
X
X
X
X
POReceiptHeader
X
X
X
X
X
X
X
X
POReceiptDetail
X
X
X
X
X
X
X
X
PurchaseBill
X
X
X
X
X
X
X
X
PurchasePayment
X
X
X
X
X
X
X
X
D
231 Tabel 3.82 Mekanisme Keamanan – II Pengguna
Project Manager
Engineer
Relasi
I
R
U
I
Staff
X
X
Role
X
Client
D
R
X
X
X
X
X
X
X
X
X
X
X
X
Supplier
X
X
X
X
X
SupplierType
X
X
X
X
X
AccountBank
X
X
X
Bank
X
X
X
Material
X
X
X
X
X
MaterialType
X
X
X
X
X
PaymentType
X
X
X
StockAdjustmentHeader
X
X
StockAdjustmentDetail
X
X
Project
X
X
X
X
RAB
X
X
X
X
SubRABHeader
X
X
X
X
SubRABDetail
X
X
X
X
ProjectOrder
X
X
X
X
MaterialUsedHeader
X
X
X
X
MaterialUsedDetail
X
X
X
X
ProjectBill
X
X
ProjectPayment
X
X
ProjectAddendumHeader
X
X
X
X
ProjectAddendumDetail
X
X
X
X
AddendumBill
X
X
AddendumPayment
X
X
PurchaseOrderHeader
X
X
X
X
PurchaseOrderDetail
X
X
X
X
POReceiptHeader
X
X
X
X
POReceiptDetail
X
X
X
X
PurchaseBill
X
X
X
X
PurchasePayment
X
X
X
X
X
U
D
I
R
X
U
General Affair I
X
R
Procurement D
U
D
232 Tabel 3.83 Mekanisme Keamanan - III Pengguna
Relasi
Logistic I
R
Finance U
D
Surveyor
I
R
U
AccountBank
X
X
X
Bank
X
X
X
D
I
R
Project
X
RAB
Quantity Enginer U
D
I
R
X
X
X
X
X
X
X
SubRABHeader
X
X
X
X
SubRABDetail
X
X
X
X
Staff Role Client Supplier SupplierType
Material
X
X
X
MaterialType
X
X
X
PaymentType
X
X
X
StockAdjustmentHeader StockAdjustmentDetail
ProjectOrder MaterialUsedHeader
X
X
X
X
X
X
MaterialUsedDetail
X
X
X
X
X
X
ProjectBill
X
X
ProjectPayment
X
X
ProjectAddendumHeader
X
X
X
X
X
X
ProjectAddendumDetail
X
X
X
X
X
X
AddendumBill
X
X
AddendumPayment
X
X
PurchaseOrderHeader
X
X
PurchaseOrderDetail
X
X
POReceiptHeader
X
X
POReceiptDetail
X
X
PurchaseBill
X
X
X
X
PurchasePayment
X
X
X
X
U
D
233 3.4.
Perancangan Layar Struktur menu dalam sebuah aplikasi berpengaruh kepada tingkat kemudahan pemakaian aplikasi oleh pengguna sehingga perancangan struktur menu penting dilakukan untuk bisa menghasikan struktur menu yang efektif. Perancangan struktur menu dalam aplikasi kami meliputi perancangan struktur menu, pembuatan State Transition Diagram(STD) 3.4.1.
Perancangan Struktur Menu
Gambar 3.24 Struktur Menu
234 3.4.2.
Perancangan State Transition Diagram(STD)
Gambar 3.25 STD Login dan Menu
235
Gambar 3.26 STD Main Data – Staff
Home
Tampilkan Menu Main Data
Kembali ke Home
Menu Main Data Pilih Material Type Tampilkan Halaman Material Type
Kembali ke Menu Main Data
Material Type Pilih Material Tampilkan Halaman Material Kata kunci pencarian dimasukkan Mencari data Material
Delete Dipilih Menghapus data Material
Material
Kembali ke Material Type Add Dipilih Masukkan data Material Baru
Edit Dipilih Merubah data Material
Gambar 3.27 STD Main Data – Material
236
Gambar 3.28 STD Main Data – Client Catatan: Operasi yang dilakukan sama untuk Sub Menu Main Data Supplier, Bank, Account dan Payment Type.
Gambar 3.29 STD Transaksi – RAB Catatan: Operasi yang dilakukan sama untuk setiap sub Menu Project
237
3.4.3.
Perancangan Layar Aplikasi Berikut ini merupakan perancangan layar aplikasi Sistem Informasi Konstruksi pada PT Multi Sarana Kita. 1. Halaman Login
Gambar 3.30 Rancangan Layar halaman Login
2. Halaman Home
Gambar 3.31 Rancangan Layar halaman Home
238 3. Halaman Main Data – Position
Gambar 3.32 Rancangan Layar halaman Position 4. Halaman Main Data – Position – Staff
Gambar 3.33 Rancangan Layar halaman Staff
239 5. Halaman Main Data – Position – Staff – Staff Detail
Gambar 3.34 Rancangan Layar halaman Staff Detail 6. Halaman Main Data – Position – Staff – Add Staff
Gambar 3.35 Rancangan Layar halaman Add Staff
240 7. Halaman Main Data – Client
Gambar 3.36 Rancangan Layar halaman Client 8. Halaman Main Data – Client – Client Detail
Gambar 3.37 Rancangan Layar halaman Client Detail
241 9. Halaman Main Data – Client – Add Client
Gambar 3.38 Rancangan Layar halaman Add Client 10. Halaman Main Data – Client – E
dit Client
Gambar 3.39 Rancangan Layar halaman Edit Client
242 11. Halaman Main Data – Supplier – Supplier Type
Gambar 3.40 Rancangan Layar halaman Supplier Type 12. Halaman Main Data – Supplier – Supplier Type – Add Supplier Type
Gambar 3.41 Rancangan Layar halaman Add Supplier Type
243 13. Halaman Main Data – Supplier – Supplier Type – Edit Supplier Type
Gambar 3.42 Rancangan Layar halaman Edit Supplier Type 14. Halaman Main Data – Supplier Type – Supplier
Gambar 3.43 Rancangan Layar halaman Supplier
244 15. Halaman Main Data – Supplier Type – Supplier – Supplier Detail
Gambar 3.44 Rancangan Layar halaman Supplier Detail 16. Halaman Main Data – Supplier Type – Supplier – Add Suplier
Gambar 3.45 Rancangan Layar halaman Add Supplier
245 17. Halaman Main Data – Supplier Type – Supplier – Edit Supplier
Gambar 3.46 Rancangan Layar halaman Edit Supplier 18. Halaman Main Data – Material – Material Type
Gambar 3.47 Rancangan Layar halaman Material Type
246 19. Halaman Main Data – Material – Material Type – Add Material Type
Gambar 3.48 Rancangan Layar halaman Add Material Type 20. Halaman Main Data – Material – Material Type – Edit Material Type
Gambar 3.49 Rancangan Layar halaman Edit Material Type
247 21. Halaman Main Data – Material Type – Material
Gambar 3.50 Rancangan Layar halaman Material 22. Halaman Main Data – Material Type – Add Material
Gambar 3.51 Rancangan Layar halaman Add Material
248 23. Halaman Main Data – Bank
Gambar 3.52 Rancangan Layar halaman Bank 24. Halaman Main Data – Bank – Add Bank
Gambar 3.53 Rancangan Layar halaman Add Bank
249 25. Halaman Main Data – Edit Bank
Gambar 3.54 Rancangan Layar halaman Edit Bank 26. Halaman Main Data – Account
Gambar 3.55 Rancangan Layar halaman Account
250 27. Halaman Main Data – Account – Add Account
Gambar 3.56 Rancangan Layar halaman Add Account 28. Halaman Main Data – Edit Account
Gambar 3.57 Rancangan Layar halaman Edit Account
251 29. Halaman Main Data – Payment Type
Gambar 3.58 Rancangan Layar halaman Payment Type 30. Halaman Project – Project
Gambar 3.59 Rancangan Layar halaman Project
252 31. Halaman Project – Project – Add Project
Gambar 3.60 Rancangan Layar halaman Add Project 32. Halaman Project – RAB
Gambar 3.61 Rancangan Layar halaman RAB
253 33. Halaman Project – RAB – Add RAB
Gambar 3.62 Rancangan Layar halaman Add RAB 34. Halaman Project – RAB – Add RAB – Add RAB Detail
Gambar 3.63 Rancangan Layar halaman Add RAB Detail
254 35. Cetak Laporan RAB
Gambar 3.64 Rancangan Layar halaman Add RAB Detail 36. Halaman Project – Project Order
Gambar 3.65 Rancangan Layar halaman Project Order
255 37. Halaman Project – Project Order – Project Order Detail
Gambar 3.66 Rancangan Layar halaman Project Order Detail 38. Halaman Project – Project Order – Add Project Order
Gambar 3.67 Rancangan Layar halaman Add Project Order
256 39. Halaman Project – Project Bill
Gambar 3.68 Rancangan Layar halaman Project Bill 40. Cetak Project Bill
Gambar 3.69 Rancangan Layar Laporan Project Bill
257 41. Halaman Project – Project Bill – Add Project Bill
Gambar 3.70 Rancangan Layar halaman Add Project Bill 42. Halaman Project – Project Addendum
Gambar 3.71 Rancangan Layar halaman Project Addendum
258 43. Halaman Project – Project Addendum – Add Project Addendum
Gambar 3.72 Rancangan Layar halaman Add Project Addendum 44. Halaman Project – Project Addendum – Addendum Detail
Gambar 3.73 Rancangan Layar halaman Add Project Addendum
259 45. Halaman Project – Addendum Bill
Gambar 3.74 Rancangan Layar halaman Addendum Bill 46. Cetak Addendum Bill
Gambar 3.75 Rancangan Layar halaman Cetak Addendum Bill
260 47. Halaman Project – Addendum Bill – Add Addendum Bill
Gambar 3.76 Rancangan Layar halaman Add Addendum Bill 48. Halaman Project – Addendum Bill –Addendum Bill Detail
Gambar 3.77 Rancangan Layar halaman Add Addendum Bill
261 49. Halaman Purchase – Purchase Order
Gambar 3.78 Rancangan Layar halaman Purchase Order 50. Halaman Purchase – Purchase Order – Purchase Order Detail
Gambar 3.79 Rancangan Layar halaman Purchase Order Detail
262 51. Halaman Purchase – Purchase Order – Add Purchase Order
Gambar 3.80 Rancangan Layar halaman Add Purchase Order 52. Cetak Purchase Order
Gambar 3.81 Rancangan Layar Cetak Purchase Order
263 53. Halaman Purchase – Purchase Bill
Gambar 3.82 Rancangan Layar halaman Purchase Bill 54. Halaman Purchase – Purchase Bill – Add Purchase Bill
Gambar 3.83 Rancangan Layar halaman Add Purchase Bill
264 55. Halaman Inventory – PO Receipt
Gambar 3.84 Rancangan Layar halaman PO Receipt 56. Halaman Inventory – PO Receipt – PO Receipt Detail
Gambar 3.85 Rancangan Layar halaman PO Receipt Detail
265 57. Halaman Cetak PO Receipt
Gambar 3.86 Rancangan Layar halaman Add PO Receipt 58. Halaman Inventory – PO Receipt – Add PO Receipt
Gambar 3.87 Rancangan Layar halaman Add PO Receipt
266 59. Halaman Inventory – Material Used
Gambar 3.88 Rancangan Layar halaman Material Used 60. Halaman Inventory – Material Used – Add Material Used
Gambar 3.89 Rancangan Layar halaman Add Material Used
267 61. Halaman Inventory – Material Used – Add Material Used – Material Used Detail
Gambar 3.90 Rancangan Layar halaman Material Used Detail 62. Halaman Inventory – Stock Adjustment
Gambar 3.91 Rancangan Layar halaman Stock Adjustment
268 63. Halaman Inventtory – Stock Adjustment – Add Stock Adjustment
Gambar 3.92 Rancangan Layar halaman Add Stock Adjustment 64. Halaman Inventory – Stock Adjustment – Add Stock Adjustment – Stock Adjustment Detail
Gambar 3.93 Rancangan Layar halaman Stock Adjustment Detail
269 65. Halaman Payment – Purchase Order Payment
Gambar 3.94 Rancangan Layar halaman Purchase Order Payment 66. Halaman Payment – Purchase Order Payment – Add PO Payment
Gambar 3.95 Rancangan Layar halaman Add PO Payment
270 67. Halaman Payment – Project Payment
Gambar 3.96 Rancangan Layar halaman Project Payment 68. Halaman Payment – Project Payment – Add Project Payment
Gambar 3.97 Rancangan Layar halaman Add Project Payment
271 69. Cetak Project Payment
Gambar 3.98 Rancangan Cetak Project Payment 70. Halaman Payment – Project Addendum Payment
Gambar 3.99 Rancangan Layar halaman Project Addendum Payment
272 71.
Halaman Payment – Project Addendum Payment – Add Project Addendum Payment
Gambar 3.100 Rancangan Layar halaman Add Addendum Payment 72.
Cetak Project Addendum Payment
Gambar 3.101 Rancangan Cetak Addendum Payment
273 73. Halaman Report – Project Order
Gambar 3.102 Rancangan Layar halaman Project Order Report 74. Cetak Report Project Order
Gambar 3.103 Hasil Cetak Report Project Order
274 75. Halaman Report – Project Addendum
Gambar 3.104 Rancangan Layar halaman Report Project Addendum
76. Cetak Report Project Addendum
Gambar 3.105 Hasil Cetak halaman Report Project Addendum
275 77. Halaman Report – Purchase Order
Gambar 3.106 Rancangan Layar halaman Purchase Order
78. Cetak Report Purchase Order
Gambar 3.107 Rancangan hasil Cetak – Report Purchase Order
276 79. Halaman Report – Purchase Receipt
Gambar 3.108 Rancangan Layar halaman Purchase Receipt
80. Cetak Report Purchase Receipt
Gambar 3.109 Rancangan hasil Cetak – Report Purchase Receipt
277 81. Halaman Report – Project Bill
Gambar 3.110 Rancangan Layar halaman Report Project Bill 82. Cetak Report Project Bill
Gambar 3.111 Rancangan hasil Cetak – Report
278 83.
Halaman Report –Project Payment
Gambar 3.112 Rancangan Layar halaman Project Payment
84.
Cetak Report Project Payment
Gambar 3.113 Rancangan hasil Cetak – Report
279 85.
Halaman Report – Addendum Payment
Gambar 3.114 Rancangan Layar halaman
86.
Cetak Report Addendum Payment
Gambar 3.115 Rancangan hasil Cetak – Report Addendum Payment
280 87. Halaman Report – Purchase Payment
Gambar 3.116 Rancangan Layar halaman Purchase Payment
88. Cetak Report Purchase Payment
Gambar 3.117 Rancangan hasil Cetak – Report Puchase Payment
281 89. Halaman Report – Stock Adjustment
Gambar 3.118 Rancangan Layar halaman Report Stock Adjustment 90. Cetak Report – Stock Adjustment
Gambar 3.119 Rancangan hasil Cetak – Report Puchase Payment
282 91. Halaman Change Password
Gambar 3.120 Rancangan Layar halaman Change Password