47
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Sejarah Perusahaan
PT. Hanco Dewantara adalah perusahaan kontraktor yang bergerak di bidang jasa konstruksi, khususnya konstruksi baja bangunan. Pada awal berdirinya tahun 1974, perusahaan ini masih belum memiliki nama dan masih mengerjakan proyek bangunan sipil. Kemudian secara bertahap perusahaan ini bergerak menuju ke usaha konstruksi baja. Pendiri perusahaan ini terdiri dari 4 orang, yaitu Handoko, Umar, Darmaji dan Alex.
Dalam perkembangannya, dua dari 4 orang pendiri memisahkan diri pada tahun 1981. Dua pendiri lainnya, yaitu Handoko dan Umar masih tetap bertahan dalam perusahaan ini. Akhirnya mereka membentuk PT. Hanco Dewantara. Handoko berperan sebagai pemilik dan Direktur Utama, sedangkan Umar sebagai Direktur Keuangan. Fabrikasi pertama perusahaan ini dilakukan di workshop Jalan Sumur Bor, Cengkareng.
Pada tahun 2000, PT. Hanco terpecah menjadi dua, yaitu PT. Hanco Dewantara dan PT. ATEKA. PT. ATEKA bergerak di bidang konstruksi sipil sedangkan PT. Hanco Dewantara bergerak di bidang konstruksi baja sampai saat ini.
PT Hanco Dewantara juga pernah mendapat penghargaan pada tahun 2008 dari perusahaan kontraktor PT. Total Bangun Persada Tbk. Penghargaan ini diberikan kepada PT. Hanco Dewantara atas prestasinya sebagai ‘PT. Total
Bangun Persada TBk Top Three Subcontractor For Outstanding Performance in
Quality, Time, Method, Coordination, Safety, Cleanliness And Overall Company
Commitment For Excellence’.
Saat ini kantor PT. Hanco Dewantara berlokasi di Jalan Tanjung Duren Raya Lama No. 823, Jakarta Barat dengan 1 workshop yang berada di Jalan Siliwangi, Gembor, Jatiuwung, Tangerang. Saat ini PT. Hanco Dewantara memiliki jumlah karyawan sebanyak 40 orang dan 3 orang direksi yang terdiri dari Ir. Teguh Sutikna, Ir. Wijaya, dan Ricky A.W., ST.
3.2 S truktur Organisasi PT. Hanco Dewantara
Tanggung Jawab dan Wewenang • Komisaris
- M enerima laporan.
- Sebagai pemegang saham, komisaris menerima keuntungan serta ikut menanggung kerugian.
- Ikut campur tangan jika ada masalah hukum. • Direktur Utama
- M enerima laporan keuangan.
- Bertanggung jawab untuk memegang proyek. - M engurus penggajian karyawan.
- Berwenang untuk mengambil keputusan penerimaan proyek. - M enandatangani Rencana Anggaran Biaya (RAB).
- Berwenang dalam persetujuan pembelian. • Direktur
- M enangani masalah pajak. - M enangani proyek.
- M enangani masalah teknologi informasi perusahaan. • Manajer
- M embawahi pelaksana / supervisor.
- Sebagai penghubung antara proyek dengan kantor pusat, yang terdiri dari beberapa kewajiban seperti :
¾ Menangani tagihan ke klien.
• Departemen Proyek
- Bertugas sebagai atasan mandor dan tukang. - Bertugas penuh di lapangan.
• Departemen Umum & Keuangan - M engatur uang masuk dan keluar. - M emeriksa rekening.
- M embuat kwitansi. - Administrasi penagihan. - Pencatatan akuntansi.
• Departemen Engineering & Estimate - Engineering
¾ Membuat rancangan gambar proyek. ¾ Memeriksa pekerjaan di workshop. - Estimate
¾ Membuat Rencana Anggaran Biaya ( RAB ) / penawaran. • Departemen Mekanik & Workshop
- M emeriksa peralatan.
- M emeriksa pekerjaan di workshop. - M enjaga fungsi dan kualitas peralatan. • Departemen Transportasi dan Logistik
- M engatur transportasi. - M embuat pembelian.
3.3 Prosedur yang Sedang Berjalan
PT. Hanco Dewantara 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 sebagainya. Tahap-tahap yang ada dalam proses bisnis PT. Hanco Dewantara ini adalah sebagai berikut :
3.3.1 Persetujuan Awal Proyek
Tahap-tahap yang dilakukan dalam persetujuan awal proyek, antara lain :
- Penerimaan permintaan penawaran pekerjaan proyek dari klien.
- Pengajuan Rencana Anggaran Biaya (RAB) dari pihak PT. Hanco Dewantara kepada klien.
- Jika klien menyetujui RAB yang diajukan oleh PT. Hanco Dewantara, maka penanganan proyek sudah dapat dilakukan setelah klien memberikan Surat Perintah Kerja (SPK) kepada pihak PT. Hanco Dewantara.
3.3.2 Penanganan Proyek
Penanganan proyek diawali dengan penerimaan gambar bangunan dari klien. Setelah itu, pihak PT. Hanco Dewantara dapat membuat gambar konstruksi baja yang dibutuhkan serta perhitungan jumlah material yang dibutuhkan.
Tahap selanjutnya adalah pembelian material yang dibutuhkan kepada pemasok. Dalam tahap pembelian material, pemasok akan mengirim material yang dibutuhkan ke workshop dan mengirim tagihan ke kantor PT. Hanco Dewantara.
Setelah material diterima di workshop, maka dapat dilakukan proses fabrikasi. Fabrikasi yang dilakukan mencakup pemotongan baja, pengecatan, dan lain sebagainya. Setelah itu, material yang telah difabrikasi dikirimkan ke lapangan (tempat proyek dikerjakan) untuk dipasang di bangunan tersebut.
Dalam 1 proyek konstruksi, dapat terjadi adanya permintaan kerja tambah / kurang, yang disebut dengan addendum. Oleh karena itu, pencatatan kemajuan proyek bersifat sangat dinamis.
3.3.3 Penagihan dan Pembayaran Proyek
Sebelum proyek bangunan dilakukan, klien harus membayarkan sejumlah uang muka. Selama pengerjaan proyek, klien harus membayar sebagian biaya proyek berdasarkan persentase pengerjaan proyek sesuai dengan persetujuan.
Selanjutnya, pihak PT. Hanco Dewantara akan mengirim tagihan secara berkala disertai laporan kemajuan kerja kepada klien. Sedangkan penagihan dan pembayaran addendum dilakukan setelah proyek konstruksi dinyatakan selesai. Setelah proyek konstruksi selesai, pihak sub kontraktor tidak dibayar secara penuh, tapi ada persentase biaya jaminan pemeliharaan yang baru dibayarkan setelah proyek konstruksi dinyatakan tidak bermasalah.
Untuk pembayaran proyek, klien dapat membayar lewat beberapa sarana, seperti pengiriman uang lewat bank (transfer), rekening giro, dan uang tunai (khusus untuk proyek kecil).
3.4 Diagram Aliran Data 3.4.1 Diagram Konteks
3.4.2 Diagram Level Nol
3.4.2.1 Diagram Level 1 – Penanganan Project Order dan Addendum
3.4.2.2 Diagram Level 1 – Penanganan Purchase Order dan Retur
3.4.2.3 Diagram Level 1 – Penagihan Pembelian dan Pelunasan Hutang
3.4.2.4 Diagram Level 1 – Penagihan Project dan Pelunasan Piutang
3.5 Permasalahan yang Dihadapi
Permasalahan-permasalahan yang dihadapi oleh PT. Hanco Dewantara saat ini, antara lain :
1. Tidak adanya pencatatan kwitansi keluar, tagihan masuk, dan tagihan tambah kerja 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.
3. Aplikasi yang sedang digunakan pada bagian keuangan tidak terintegrasi dengan proses bisnis perusahaan yang lain.
3.6 Usulan Pemecahan Masalah
Pemecahan masalah yang diajukan adalah dengan merancang basis data yang sesuai dengan proses bisnis perusahaan. Basis data tersebut akan saling terintegrasi antara proses bisnis yang satu dengan yang lainnya. Selain perancangan basis data, pemecahan masalah selanjutnya yang diajukan adalah merancang program aplikasi yang menjadi media interaksi antara pengguna dengan basis data. Program aplikasi yang dirancang akan didukung dengan pembuatan laporan-laporan perusahaan, agar dapat digunakan dengan efektif dan efisien oleh pengguna dalam mendukung proses bisnis perusahaan yang sedang berjalan.
3.7 Perancangan Basis Data
M etodologi 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.7.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, antara lain :
1. M engidentifikasi tipe entitas 2. M engidentifikasi tipe relasi
3. M engidentifikasi dan mengasosiasikan atribut suatu entitas 4. M engidentifikasi domain atribut
5. M engidentifikasi atribut candidate key dan primary key 6. M empertimbangkan konsep pemodelan enhanced (optional) 7. M emeriksa model terhadap redundansi
8. M emvalidasi model konseptual terhadap transaksi pengguna 9. M eninjau kembali model data konseptual dengan pengguna
3.7.1.1 Mengidentifikasi Tipe Entitas
Tujuan dari tahap ini adalah untuk menentukan entitas-entitas yang dibutuhkan berdasarkan dokumentasi-dokumentasi yang diperoleh.
Tabel 3.1 Identifikasi Tipe Entitas
Entity Name Description Aliases Occurrence
Staff Semua karyawan yang berperan dalam proses bisnis perusahaan.
Karyawan Karyawan melakukan penerimaan proyek, penawaran harga proyek, pelaksana lapangan, pembelian, keuangan, logistik, dan akuntansi. Client Semua pelanggan
yang mengajukan pengerjaan proyek.
Pelanggan Pelanggan mengajukan proyek untuk dikerjakan perusahaan.
Supplier Semua supplier yang memasok bahan baku ke perusahaan.
Pemasok Supplier menerima order pembelian dari karyawan, kemudian mengirimkan material sesuai pesanan. Account
Bank
Semua nomor rekening bank yang dimiliki perusahaan.
Rekening bank
Rekening tujuan pembayaran pelanggan kepada perusahaan dan rekening yang digunakan perusahaan untuk membayar supplier Material Semua material yang
diperlukan dalam proyek.
Bahan baku Material dipesan melalui PO dan digunakan sesuai SPK. Stock Adjustment Penyesuaian stok material. Penyesuaian stok
Menyesuaikan stok jika terjadi selisih antara stok di workshop dengan stok di sistem.
Entity Name Description Aliases Occurrence
Project Semua proyek yang ditawarkan pelanggan.
Proyek Proyek diawali dengan negosiasi RAB antara klien dan perusahaan.
ProjectOrder Semua proyek yang telah disepakati kedua belah pihak melalui SPK.
SPK SPK dibuat setelah RAB disepakati, SPK disetujui Direktur Utama dan proyek dimulai.
MaterialUsed Semua material yang dikirim ke lapangan proyek.
Surat jalan Material yang dikirim setelah difabrikasi, untuk dipasang di lokasi proyek. Project
Invoice
Jumlah cicilan tagihan proyek yang harus dibayar pelanggan.
T agihan proyek
T agihan proyek akan dikeluarkan secara berkala berdasarkan perkembangan pekerjaan yang telah dilakukan.
Inpay Jumlah penerimaan yang diterima perusahaan berdasarkan tagihan. Pembayaran proyek Menunjukkan pendapatan perusahaan berdasarkan tagihan proyek.
Addendum Semua penambahan atau pengurangan pengerjaan proyek.
Addendum Memperbarui SPK yang telah disepakati kedua belah pihak.
Addendum Invoice
Semua tagihan atas pengerjaan addendum T agihan addendum Penagihan addendum dilakukan di akhir pengerjaan proyek. Addendum Inpay Jumlah penerimaan yang diterima per-usahaan berdasarkan tagihan addendum. Pembayaran addendum Menunjukkan pendapatan perusahaan berdasarkan tagihan addendum. Purchase Order Semua pembelian material oleh perusahaan. PO Menunjukkan pembelian yang dibuat karyawan dan
Entity Name Description Aliases Occurrence
Purchase OrderReceipt
Semua penerimaan material yang dibeli dari supplier.
Penerimaan pembelian
Menunjukkan material yang diterima perusahaan berdasarkan PO yang diajukan kepada supplier. Purchase
Invoice
Semua tagihan atas pembelian material yang dilakukan perusahaan. T agihan pembelian Menunjukkan jumlah tagihan dari supplier ke perusahaan sesuai dengan PO.
Outpay Semua pembayaran yang dilakukan perusahaan kepada supplier. Pembayaran pembelian Menunjukkan pengeluaran perusahaan karena
pembelian bahan baku.
Purchase Return Semua pengembalian material kepada supplier. Retur pembelian Menunjukkan pengembalian material kepada supplier. Return Receipt Semua penerimaan material yang ditukar dari retur pembelian.
Penerimaan retur
Menunjukkan material yang diterima perusahaan berdasarkan material yang diretur perusahaan kepada supplier.
3.7.1.2 Mengidentifikasi Tipe Relasi
Tujuan dari tahap ini adalah untuk mengidentifikasi hubungan antara entitas-entitas yang ada. Berikut ini adalah Entity Relationship Diagram (ERD) Konseptual yang memuat nama
Gambar 3.14 ERD Konseptual Tabel 3.2 Identifikasi Tipe Relasi
Entity Name Multi
plicity Relationship Entity Name
Multi plicity
Client 1..1 memiliki Project 1..*
Staff 1..1 menerima Project 1..*
Staff 1..1 menangani ProjectOrder 1..*
Staff 1..1 mengajukan ProjectInvoice 1..*
Staff 1..1 mencatat Inpay 1..*
Staff 1..1 menangani Addendum 1..*
Staff 1..1 mengajukan AddendumInvoice 1..*
Entity Name Multi
plicity Relationship Entity Name
Multi plicity
Staff 1..1 mengajukan PurchaseOrder 1..*
Staff 1..1 menerima PurchaseOrderReceipt 1..*
Staff 1..1 menerima PurchaseInvoice 1..*
Staff 1..1 melunasi Outpay 1..*
Staff 1..1 mengajukan PurchaseReturn 1..*
Staff 1..1 menerima ReturnReceipt 1..*
Staff 1..1 mengirim MaterialUsed 1..*
Staff 1..1 melakukan StockAdjustment 1..*
Material 1..* merinci Project 1..*
Project 1..1 menjadi ProjectOrder 0..1
ProjectOrder 1..1 memiliki ProjectInvoice 1..*
ProjectInvoice 1..1 menagih Inpay 1..1
Material 1..* merinci Addendum 1..*
ProjectOrder 1..1 memiliki Addendum 0..*
Addendum 1..1 memiliki AddendumInvoice 1..1 AddendumInvoice 1..1 menagih AddendumInpay 1..1
AccountBank 1..1 menerima AddendumInpay 1..*
AccountBank 1..1 menerima Inpay 1..*
Supplier 1..1 menerima PurchaseOrder 1..*
PurchaseOrder 1..1 menerima PurchaseOrderReceipt 1..* Material 1..* merinci PurchaseOrderReceipt 1..* PurchaseOrder 1..1 memiliki PurchaseInvoice 1..1
PurchaseInvoice 1..1 menagih Outpay 1..1
PurchaseOrder 1..1 mempunyai PurchaseReturn 0..*
Material 1..* merinci PurchaseReturn 1..*
PurchaseReturn 1..1 menerima ReturnReceipt 1..*
Material 1..* merinci ReturnReceipt 1..*
ProjectOrder 1..1 memerlukan MaterialUsed 1..*
Material 1..* merinci MaterialUsed 1..*
Material 1..* merinci StockAdjustment 1..*
3.7.1.3 Mengidentifikasi dan Mengasosiasikan Atribut Suatu Entitas Tujuan dari tahap ini adalah mengidentifikasi dan menggabungkan atribut yang digunakan dalam suatu entitas, serta tipe data masing-masing atribut yang digunakan.
Tabel 3.3 Identifikasi Asosiasi Atribut Suatu Entitas
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
Staff StaffCode Secara unik mengidentifikasi staff
char (4) no no
StaffName Nama staff varchar (30) no no Address Alamat staff varchar (50) no no PhoneNo T elepon staff varchar (15) no no Email Email staff varchar (30) yes no Password Password staff char (32) yes no RoleName Nama bagian varchar (30) no no Client ClientCode Secara unik
mengidentifikasi klien
char (4) no no
ClientName Nama klien varchar (30) no no Address Alamat klien varchar (50) no no PhoneNo T elepon klien varchar (15) no no FaxNo No Fax klien varchar (15) yes no Email Email klien varchar (30) yes no Supplier SupplierCode Secara unik
mengidentifikasi supplier
char (4) no no
SupplierName Nama supplier varchar (30) no no Address Alamat supplier varchar (50) no no PhoneNo T elepon supplier varchar (15) no no FaxNo No Fax supplier varchar (15) yes no Email Email supplier varchar (30) yes no SupplierType
Name
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
Account Bank
AccountCode Secara unik meng-identifikasi account
char (3) no no
AccountNo No rekening varchar (15) no no BankName Nama bank varchar (15) no no Material MaterialCode Secara unik
meng-identifikasi material
char (5) no no
MaterialName Nama material varchar (30) no no Weight Berat material
ber-dasarkan luas barang
float no no
Stock Jumlah material integer no no Unit Satuan material varchar (5) no no MaterialType
Name
Nama jenis material varchar (30) no no
Stock Adjustment
AdjustmentID Secara unik mengidentifikasi StockAdjustment char (5) no no Adjustment DocNo Referensi dokumen penyesuaian stok varchar (20) no no Adjustment Date T anggal dilakukan StockAdjustment datetime no no Adjustment Note Alasan dilakukan StockAdjustment varchar (100) yes 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 Project ProjectID Secara unik
meng-identifikasi proyek
char (5) no no
ProjectName Nama proyek varchar (30) no no Address Alamat proyek varchar (50) no no ClientName Nama klien varchar (30) no no
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
PhoneNo T elepon klien varchar (15) no no FaxNo Fax klien varchar (15) yes no Email Email klien varchar (30) yes no RAB_Date T anggal pengajuan
RAB proyek
datetime no no
SubRA B_ Name
Nama Sub RA B yang dilakukan
varchar (50) 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,2) no no Amount Jumlah harga per
material
numeric(12,2) no no
SubT otal Total semua harga
material numeric(12,2) no no PPN Nilai PPN untuk
proyek
integer no no
GrandT otal harga proyek setelah dikenakan PPN
numeric(12,2) no no
RAB_Amount Pembulatan harga proyek
numeric(12,2) no no
StaffName Nama staff varchar (30) no no Project Order ProjectOrder ID Secara unik mengidentifikasi ProjectOrder char (7) no no ProjectOrder DocNo Nomor SPK varchar (20) no no ProjectOrder Date
T anggal keluar SPK datetime no no
ProjectOrder Note
Keterangan tambahan pada SPK
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
StartDate T anggal mulai proyek datetime no no EndDate T anggal selesai proyek datetime no no TotalT erm Total tahapan
pembayaran
integer no no
StaffName Nama staff varchar (30) no no Material Used MaterialUsed ID Secara unik mengidentifikasi MaterialUsed char (8) no no MaterialUsed DocNo
Nomor referensi surat jalan ke lapangan
varchar (20) no no
MaterialUsed Date
T anggal pengiriman material dari workshop ke lapangan datetime no no MaterialUsed Note Keterangan tambahan pada MaterialUsed varchar (100) yes no
CarNo Nomor plat kendaraan
pengirim varchar (12) no no DriverName Nama supir varchar (30) no no ProjectOrder DocNo Nomor referensi proyek yang diantarkan materialnya varchar (20) 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 Project Invoice ProjectInvoice ID Secara unik mengidentifikasi ProjectInvoice char (8) no no ProjectInvoice DocNo Nomor referensi tagihan pengerjaan proyek varchar (20) no no
Entity
Name Attribute Description
Data Type &
Length Null Multi valued ProjectInvoice Date T anggal dikeluarkan tagihan proyek datetime no no ProjectInvoice Note Keterangan tambahan pada tagihan proyek
varchar (100) yes no
ProjectInvoice DueDate
T anggal jatuh tempo pembayaran tagihan
datetime no no
T ermOf Payment
T ahap pembayaran integer no no
Invoice Amount
Jumlah harga sebelum dikenakan PPN
numeric(12,2) no no
PPN Nilai PPN yang ada dalam tagihan proyek
integer no no
GrandT otal Jumlah harga setelah dikenakan PPN
numeric(12,2) no no
ProjectOrder DocNo
Nomor proyek yang ditagih
varchar (20) no no
StaffName Nama staff varchar (30) no no Inpay InpayID Secara unik
meng-identifikasi Inpay
char (8) no no
InpayDocNo Nomor referensi kwitansi pembayaran
varchar (20) no no
InpayDate T anggal kwitansi pembayaran diterima
datetime no no
InpayNote Keterangan tambahan pada kwitansi varchar (100) yes no ProjectInvoice DocNo Nomor referensi tagihan pembayaran varchar (20) no no
AccountNo Nomor rekening perusahaan
varchar (15) yes no
InpayAmount Jumlah pembayaran yang dilakukan
Entity
Name Attribute Description
Data Type &
Length Null Multi valued PaymentT ype Name Nama jenis pembayaran varchar (10) no no
StaffName Nama staff varchar (30) no no Addendum AddendumID Secara unik
mengidentifikasi Addendum char (8) no no Addendum DocNo Nomor referensi addendum varchar (20) no no Addendum Date T anggal terima addendum datetime no no Addendum Note Keterangan tambahan addendum varchar (100) yes no ProjectOrder DocNo
Nomor proyek yang diberi addendum
varchar (20) no no
MaterialName Nama material varchar (30) no no Qty Jumlah material integer no no Unit Satuan material varchar (5) no no UnitPrice Harga material numeric(12,2) no no Status Penambahan atau
pengurangan material
char (6) no no
Amount Jumlah harga per material
numeric(12,2) no no
SubT otal Total harga material numeric(12,2) no no PPN Nilai PPN pada
addendum
integer no no
GrandT otal Total harga setelah dikenakan PPN.
numeric(12,2) no no
StaffName Nama staff varchar (30) no no Addendum Invoice Addendum InvoiceID Secara unik mengidentifikasi tagihan Addendum char (8) no no
Entity
Name Attribute Description
Data Type &
Length Null Multi valued Addendum InvoiceDocNo Nomor referensi tagihan addendum varchar (20) no no Addendum InvoiceDate T anggal dikeluarkan tagihan Addendum datetime no no Addendum InvoiceNote Keterangan tambahan tagihan addendum varchar (100) yes no Addendum InvoiceDue Date
T anggal jatuh tempo pembayaran tagihan addendum datetime no no Addendum Invoice Amount
Jumlah yang ditagih sebelum dikenakan PPN numeric(12,2) no no PPN Nilai PPN untuk tagihan Addendum integer no no
GrandT otal Total harga addendum setelah dikenakan PPN numeric(12,2) no no Addendum DocNo Nomor referensi Addendum yang ditagih varchar (20) no no
StaffName Nama staff varchar (30) no no Addendum Inpay Addendum InpayID Secara unik mengidentifikasi AddendumInpay char (8) no no Addendum InpayDocNo Nomor referensi kwitansi pembayaran addendum varchar (20) no no Addendum InpayDate T anggal kwitansi pembayaran diterima datetime no no Addendum InpayNote Keterangan tambahan pada kwitansi pembayaran varchar (100) yes no
Entity
Name Attribute Description
Data Type &
Length Null Multi valued Addendum InvoiceDocNo Nomor referensi tagihan pembayaran addendum varchar (20) no no Addendum InpayAmount Jumlah pembayaran Addendum numeric(12,2) no no PaymentT ype Name Nama jenis pembayaran varchar (10) no no
AccountNo Nomor rekening perusahaan
varchar (15) yes no
StaffName Nama staff varchar (30) no no Purchase
Order
PurchaseID Secara unik mengidentifikasi PurchaseOrder
char (8) no no
PurchaseDoc No
Nomor referensi surat PO
varchar (20) no no
PurchaseDate T anggal pemesanan material dilakukan
datetime no no
PurchaseNote Keterangan tambahan pada PO
varchar (100) yes no
ReceiptDate T anggal 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,2) no no Amount Jumlah harga per
material numeric(12,2) no no TotalAmount Total harga material numeric(12,2) no no Disc Diskon pada PO integer yes no SubT otal Total harga setelah
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
PPN Nilai PPN untuk PO integer no no GrandT otal Total harga yang harus
dibayarkan
numeric(12,2) no no
StaffName Nama staff varchar (30) no no Purchase
Order Receipt
POReceiptID Secara unik meng-identifikasi Purchase OrderReceipt char (8) no no POReceipt DocNo Referensi dokumen penerimaan material varchar (20) no no POReceipt Date T anggal terima material dari supplier
datetime no no POReceipt Note Keterangan tambahan pada penerimaan material varchar (100) yes no
CarNo Plat nomor kendaraan varchar (12) no no DriverName Nama supir varchar (30) no no PurchaseDoc
No
Nomor PO material yang dikirim
varchar (20) 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 Purchase Invoice Purchase InvoiceID Secara unik mengidentifikasi PurchaseInvoice char (8) no no Purchase InvoiceDocNo Referensi dokumen tagihan pembelian varchar (20) no no Purchase InvoiceDate T anggal terima tagihan pembelian datetime no no Purchase InvoiceNote Keterangan tambahan tagihan pembelian varchar (100) yes no
Entity
Name Attribute Description
Data Type &
Length Null Multi valued Purchase InvoiceDue Date
T anggal jatuh tempo pembayaran tagihan pembelian
datetime no no
PurchaseDoc No
Nomor dokumen PO varchar (20) no no
Invoice Amount
Jumlah pembayaran pembelian
numeric(12,2) no no
Disc Nilai diskon pada tagihan pembelian
integer yes no
SubT otal Jumlah pembayaran setelah diskon
numeric(12,2) no no
PPN Nilai PPN untuk pembelian material
integer no no
GrandT otal Total pembayaran tagihan setelah PPN
numeric(12,2) no no
StaffName Nama staff varchar (30) no no Outpay OutpayID Secara unik
meng-identifikasi Outpay
char (8) no no
OutpayDocNo Nomor dokumen pembayaran tagihan pembelian
varchar (20) no no
OutpayDate T anggal pembayaran tagihan pembelian
datetime no no
OutpayNote Keterangan tambahan pada pembayaran tagihan pembelian varchar (100) yes no Purchase InvoiceDocNo Nomor dokumen tagihan pembelian yang dibayar varchar (20) no no Supplier AccountNo Nomor rekening supplier varchar (15) no no
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
AccountNo Nomor rekening perusahaan varchar (15) no no PaymentT ype Name Nama jenis pembayaran varchar (10) no no Outpay Amount
Jumlah uang yang dibayarkan
numeric(12,2) no no
StaffName Nama staff varchar (30) no no Purchase
Return
ReturnID Secara unik mengidentifikasi retur pembelian
char (8) no no
ReturnDocNo Nomor dokumen retur pembelian
varchar (20) no no
ReturnDate T anggal retur datetime no no ReturnNote Keterangan tambahan
pada retur pembelian
varchar (100) yes no PurchaseDoc No Nomor PO yang materialnya di retur varchar (20) no no
MaterialName Nama material varchar (30) no no Qty Jumlah material integer no no Unit Satuan material varchar (5) no no Note Catatan per material varchar (30) yes no StaffName Nama staff varchar (30) no no Return Receipt ReturnReceipt ID Secara unik mengidentifikasi ReturnReceipt char (8) no no ReturnReceipt DocNo Nomor penerimaan kembali material varchar (20) no no ReturnReceipt Date T anggal penerimaan material retur datetime no no ReturnReceipt Note
Keterangan pada surat penerimaan retur
Entity
Name Attribute Description
Data Type &
Length Null
Multi valued
CarNo Plat nomor kendaraan varchar (12) no no DriverName Nama supir varchar (30) no no ReturnDocNo Nomor dokumen retur varchar (20) 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
3.7.1.4 Mengidentifikasi Domain Atribut
Tujuan dari tahap ini adalah menentukan domain dari atribut yang terdapat pada model data konseptual.
Tabel 3.4 Identifikasi Domain Atribut
Entity Name Attribute Attribute Domain
Staff StaffCode Format ‘Sxxx’ dimana x berupa angka StaffName Diisi dengan huruf, maks 30 karakter Address Diisi dengan huruf dan angka, serta dapat
mengandung spasi, maks 50 karakter PhoneNo Diisi dengan angka, serta dapat mengandung
tanda ‘-’, maks 15 karakter
Email Diisi dengan huruf atau angka, maks 30 karakter Password Diisi dengan huruf atau angka, maks 32 karakter RoleName Diisi dengan huruf, maks 30 karakter
Client ClientCode Format ‘Cxxx’ dimana x berupa angka ClientName Diisi dengan huruf, maks 30 karakter Address Diisi dengan huruf dan angka, serta dapat
mengandung spasi, maks 50 karakter PhoneNo Diisi dengan angka, serta dapat mengandung
tanda ‘-’, maks 15 karakter
FaxNo Diisi dengan angka, serta dapat mengandung tanda ‘-’, maks 15 karakter
Entity Name Attribute Attribute Domain
Email Diisi dengan huruf atau angka, maks 30 karakter Supplier SupplierCode Format ‘SUxx’ dimana x berupa angka
SupplierName Diisi dengan huruf, maks 30 karakter Address Diisi dengan huruf dan angka, serta dapat
mengandung spasi, maks 50 karakter PhoneNo Diisi dengan angka, serta dapat mengandung
tanda ‘-’, maks 15 karakter
FaxNo 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
Account Bank AccountCode Format ‘Axx’ dimana x berupa angka AccountNo Diisi dengan angka, maks 15 karakter BankName Diisi dengan huruf, maks 15 karakter Material MaterialCode Format ‘Mxxxx’ dimana x berupa angka
MaterialName Diisi dengan huruf atau angka, maks 30 karakter Weight Diisi dengan angka
Stock Diisi dengan angka
Unit Diisi dengan huruf, maks 5 karakter MaterialTypeName Diisi dengan huruf, maks 30 karakter Stock
Adjustment
AdjustmentID Format ‘SAxxx’ dimana x berupa angka AdjustmentDocNo Diisi dengan huruf dan angka, maks 20 karakter AdjustmentDate Format ‘yyyy-MM-dd HH:mm:ss’
AdjustmentNote Diisi dengan huruf, maks 100 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 Project ProjectID Format ‘Pxxxx’ dimana x berupa angka
ProjectName Diisi dengan huruf, maks 30 karakter Address Diisi dengan huruf dan angka, serta dapat
Entity Name Attribute Attribute Domain
ClientName Diisi dengan huruf, maks 30 karakter
PhoneNo Diisi dengan angka, serta dapat mengandung tanda ‘-’, maks 15 karakter
FaxNo Diisi dengan angka, serta dapat mengandung tanda ‘-’, maks 15 karakter
Email Diisi dengan huruf atau angka, maks 30 karakter RAB_Date Format ‘yyyy-MM-dd HH:mm:ss’ SubRA B_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 SubT otal Diisi dengan angka PPN Diisi dengan angka GrandT otal Diisi dengan angka RAB_Amount Diisi dengan angka
StaffName Diisi dengan huruf, maks 30 karakter Project Order ProjectOrderID Format ‘PROxxxx’ dimana x berupa angka
ProjectOrder DocNo
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’ TotalT erm Diisi dengan angka
StaffName Diisi dengan huruf, maks 30 karakter
Material Used MaterialUsedID Format ‘MUxxxxxx’ dimana x berupa angka MaterialUsed
DocNo
Diisi dengan huruf dan angka, maks 20 karakter
MaterialUsedDate Format ‘yyyy-MM-dd HH:mm:ss’ MaterialUsedNote Diisi dengan huruf, maks 100 karakter
Entity Name Attribute Attribute Domain
CarNo Format ‘yy xxxx yyy’ dimana y berupa huruf dan x berupa angka
DriverName Diisi dengan huruf, maks 30 karakter ProjectOrder
DocNo
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 StaffName Diisi dengan huruf, maks 30 karakter Project Invoice ProjectInvoiceID Format ‘PINxxxxx’ dimana x berupa angka
ProjectInvoice DocNo
Diisi dengan huruf dan angka, maks 20 karakter
ProjectInvoiceDate Format ‘yyyy-MM-dd HH:mm:ss’ ProjectInvoice
Note
Diisi dengan huruf, maks 100 karakter
ProjectInvoice DueDate
Format ‘yyyy-MM-dd HH:mm:ss’
T ermOfPayment Diisi dengan angka InvoiceAmount Diisi dengan angka PPN Diisi dengan angka GrandT otal Diisi dengan angka ProjectOrder
DocNo
Diisi dengan huruf dan angka, maks 20 karakter
StaffName Diisi dengan huruf, maks 30 karakter Inpay InpayID Format ‘IPxxxxxx’ dimana x berupa angka
InpayDocNo Diisi dengan huruf dan angka, maks 20 karakter InpayDate Format ‘yyyy-MM-dd HH:mm:ss’ InpayNote Diisi dengan huruf, maks 100 karakter ProjectInvoice
DocNo
Diisi dengan huruf dan angka, maks 20 karakter
AccountNo Diisi dengan angka, maks 15 karakter InpayAmount Diisi dengan angka
Entity Name Attribute Attribute Domain
PaymentT ypeName Diisi dengan huruf, maks 10 karakter StaffName Diisi dengan huruf, maks 30 karakter Addendum AddendumID Format ‘PAxxxxxx’ dimana x berupa angka
Addendum DocNo Diisi dengan huruf dan angka, maks 20 karakter Addendum Date Format ‘yyyy-MM-dd HH:mm:ss’
Addendum Note Diisi dengan huruf, maks 100 karakter ProjectOrder
DocNo
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 huruf ‘Tambah’ atau ‘Kurang’ Amount Diisi dengan angka
SubT otal Diisi dengan angka PPN Diisi dengan angka GrandT otal Diisi dengan angka
StaffName Diisi dengan huruf, maks 30 karakter Addendum
Invoice
Addendum InvoiceID
Format ‘AIxxxxxx’ dimana x berupa angka
Addendum InvoiceDocNo
Diisi dengan huruf dan angka, maks 20 karakter
Addendum InvoiceDate
Format ‘yyyy-MM-dd HH:mm:ss’
AddendumInvoice Note
Diisi dengan huruf, maks 100 karakter
AddendumInvoice DueDate
Format ‘yyyy-MM-dd HH:mm:ss’
AddendumInvoice Amount
Diisi dengan angka
PPN Diisi dengan angka GrandT otal Diisi dengan angka
Entity Name Attribute Attribute Domain
AddendumDocNo Diisi dengan huruf dan angka, maks 20 karakter StaffName Diisi dengan huruf, maks 30 karakter
Addendum Inpay
AddendumInpayID Format ‘APxxxxxx’ dimana x berupa angka Addendum
InpayDocNo
Diisi dengan huruf dan angka, maks 20 karakter
Addendum InpayDate
Format ‘yyyy-MM-dd HH:mm:ss’
Addendum InpayNote
Diisi dengan huruf, maks 100 karakter
Addendum InvoiceDocNo
Diisi dengan huruf dan angka, maks 20 karakter
Addendum InpayAmount
Diisi dengan angka
PaymentT ypeName Diisi dengan huruf, maks 10 karakter AccountNo Diisi dengan angka, maks 15 karakter StaffName Diisi dengan huruf, maks 30 karakter PurchaseOrder PurchaseID Format ‘PUOxxxxx’ dimana x berupa angka
PurchaseDocNo Diisi dengan huruf dan angka, maks 20 karakter PurchaseDate Format ‘yyyy-MM-dd HH:mm:ss’ PurchaseNote 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 Disc Diisi dengan angka SubT otal Diisi dengan angka PPN Diisi dengan angka GrandT otal Diisi dengan angka
Entity Name Attribute Attribute Domain
StaffName Diisi dengan huruf, maks 30 karakter Purchase Order
Receipt
POReceiptID Format ‘PORxxxxx’ dimana x berupa angka POReceiptDocNo Diisi dengan huruf dan angka, maks 20 karakter POReceiptDate Format ‘yyyy-MM-dd HH:mm:ss’ POReceiptNote Diisi dengan huruf, maks 100 karakter CarNo Format ‘yy xxxx yyy’ dimana y berupa huruf
dan x berupa angka
DriverName Diisi dengan huruf, maks 30 karakter
PurchaseDocNo 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 StaffName Diisi dengan huruf, maks 30 karakter Purchase
Invoice
PurchaseInvoiceID Format ‘PUIxxxxx’ dimana x berupa angka PurchaseInvoice
DocNo
Diisi dengan huruf dan angka, maks 20 karakter
PurchaseInvoice Date
Format ‘yyyy-MM-dd HH:mm:ss’
PurchaseInvoice Note
Diisi dengan huruf, maks 100 karakter
PurchaseInvoice DueDate
Format ‘yyyy-MM-dd HH:mm:ss’
PurchaseDocNo Diisi dengan huruf dan angka, maks 20 karakter InvoiceAmount Diisi dengan angka
Disc Diisi dengan angka SubT otal Diisi dengan angka PPN Diisi dengan angka GrandT otal Diisi dengan angka
StaffName Diisi dengan huruf, maks 30 karakter Outpay OutpayID Format ‘Oxxxxxxx’ dimana x berupa angka
OutpayDocNo Diisi dengan huruf dan angka, maks 20 karakter OutpayDate Format ‘yyyy-MM-dd HH:mm:ss’
Entity Name Attribute Attribute Domain
OutpayNote Diisi dengan huruf, maks 100 karakter PurchaseInvoice
DocNo
Diisi dengan huruf dan angka, maks 20 karakter
SupplierAccountNo Diisi dengan angka, maks 15 karakter AccountNo Diisi dengan angka, maks 15 karakter PaymentT ypeName Diisi dengan huruf, maks 10 karakter OutpayAmount Diisi dengan angka
StaffName Diisi dengan huruf, maks 30 karakter PurchaseReturn ReturnID Format ‘PRT xxxxx’ dimana x berupa angka
ReturnDocNo Diisi dengan huruf dan angka, maks 20 karakter ReturnDate Format ‘yyyy-MM-dd HH:mm:ss’ ReturnNote Diisi dengan huruf, maks 100 karakter
PurchaseDocNo 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 Note Diisi dengan huruf, maks 30 karakter StaffName Diisi dengan huruf, maks 30 karakter ReturnReceipt ReturnReceiptID Format ‘RRxxxxxx’ dimana x berupa angka
ReturnReceipt DocNo
Diisi dengan huruf dan angka, maks 20 karakter
ReturnReceiptDate Format ‘yyyy-MM-dd HH:mm:ss’ ReturnReceiptNote Diisi dengan huruf, maks 100 karakter CarNo Format ‘yy xxxx yyy’ dimana y berupa huruf
dan x berupa angka
DriverName Diisi dengan huruf, maks 30 karakter
ReturnDocNo 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 StaffName Diisi dengan huruf, maks 30 karakter
3.7.1.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.5 Identifikasi Candidate Key dan Primary Key
Entity Name Candidate key Primary key
Staff StaffCode StaffCode
StaffName
Client ClientCode ClientCode ClientName
Supplier SupplierCode SupplierCode SupplierName
AccountBank AccountCode AccountBankCode AccountNo
Material MaterialCode MaterialCode MaterialName
StockAdjustment AdjustmentID AdjustmentID AdjustmentDocNo
Project ProjectID ProjectID ProjectName
ProjectOrder ProjectOrderID ProjectOrderID ProjectOrderDocNo
MaterialUsed MaterialUsedID MaterialUsedID MaterialUsedDocNo
ProjectInvoice ProjectInvoiceID ProjectInvoiceID ProjectInvoiceDocNo
Inpay InpayID InpayID InpayDocNo
Addendum AddendumID AddendumID AddendumDocNo
AddendumInvoice AddendumInvoiceID AddendumInvoiceID AddendumInvoiceDocNo
Entity Name Candidate key Primary key
AddendumInpayDocNo
PurchaseOrder PurchaseID PurchaseOrderID PurchaseDocNo
PurchaseOrderReceipt POReceiptID PurchaseOrderReceiptID POReceiptDocNo
PurchaseInvoice PurchaseInvoiceID PurchaseInvoiceID PurchaseInvoiceDocNo
Outpay OutpayID OutpayID OutpayDocNo
PurchaseReturn ReturnID ReturnID ReturnDocNo
ReturnReceipt ReturnReceiptID ReturnReceiptID ReturnReceiptDocNo
Berikut ini adalah gambar ERD konseptual yang sudah dilengkapi dengan primary key :
Gambar 3.15 ERD Konseptual dengan Primary Key
3.7.1.6 Mempertimbangkan Konsep Pemodelan Enhanced
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.
3.7.1.7 Memeriksa Model Terhadap Redundansi
Tujuan dari tahap ini adalah untuk memeriksa apakah terdapat model data yang redundan.
Ada dua aktifitas yang dilakukan pada tahap ini, yaitu : 1. M emeriksa kembali relasi one-to-one (1:1)
Pada ERD Konseptual yang dibuat tidak terdapat entitas yang menggambarkan obyek yang sama.
2. M enghilangkan relasi yang redundan
Pada ERD Konseptual yang dibuat tidak terdapat redundansi karena tidak ada informasi yang sama yang dapat diperoleh dari relasi yang lain.
3.7.1.8 Memvalidasi Model Konseptual Terhadap Transaksi Pengguna
Tujuan dari tahap ini adalah untuk memastikan bahwa model data konseptual yang dibuat mendukung transaksi yang dibutuhkan pengguna. Ada dua pendekatan yang dapat dilakukan, yaitu :
Gambar 3.16 Validasi M odel Konseptual Terhadap Transaksi Pengguna
• Mendeskripsikan transaksi
1. M emasukkan, mengubah, menampilkan data Staff. 2. M emasukkan, mengubah, menampilkan data Client. 3. M emasukkan dan menampilkan data Project.
5. M endapatkan informasi Staff yang dimiliki Project. 6. M emasukkan, mengubah, menampilkan data M aterial. 7. M endapatkan informasi M aterial yang dimiliki Project. 8. M emasukkan dan menampilkan data ProjectOrder.
9. M endapatkan informasi Project yang dimiliki Project Order.
10. M endapatkan informasi Staff yang dimiliki ProjectOrder. 11. M emasukkan dan menampilkan data M aterialUsed.
12. M endapatkan informasi ProjectOrder yang dimiliki M aterialUsed.
13. M endapatkan informasi Staff yang dimiliki M aterialUsed. 14. M endapatkan informasi M aterial yang dimiliki M aterial
Used.
15. M emasukkan dan menampilkan data ProjectInvoice.
16. M endapatkan informasi Staff yang dimiliki Project Invoice.
17. M endapatkan informasi ProjectOrder yang dimiliki Project Invoice.
18. M emasukkan dan menampilkan data Inpay. 19. M endapatkan informasi Staff yang dimiliki Inpay.
20. M endapatkan informasi ProjectInvoice yang dimiliki Inpay.
21. M emasukkan, mengubah, menampilkan data Account Bank.
22. M endapatkan informasi AccountBank yang dimiliki Inpay.
23. M emasukkan dan menampilkan data Addendum. 24. M enampilkan informasi Staff yang dimiliki Addendum. 25. M endapatkan informasi ProjectOrder yang dimiliki
Addendum.
26. M endapatkan informasi M aterial yang dimiliki Addendum.
27. M emasukkan dan menampilkan data AddendumInvoice. 28. M enampilkan informasi Staff yang dimiliki Addendum
Invoice.
29. M enampilkan informasi Addendum yang dimiliki AddendumInvoice.
30. M emasukkan dan menampilkan data AddendumInpay. 31. M enampilkan informasi Staff yang dimiliki Addendum
Inpay.
32. M enampilkan informasi AddendumInvoice yang dimiliki AddendumInpay.
33. M enampilkan informasi AccountBank yang dimiliki AddendumInpay.
34. M emasukkan, mengubah, menampilkan data Supplier. 35. M emasukkan dan menampilkan data PurchaseOrder. 36. M enampilkan informasi Supplier yang dimiliki Purchase
37. M enampilkan informasi Staff yang dimiliki Purchase Order.
38. M emasukkan dan menampilkan data PurchaseOrder Receipt.
39. M enampilkan informasi Staff yang dimiliki Purchase OrderReceipt.
40. M enampilkan informasi PurchaseOrder yang dimiliki PurchaseOrderReceipt.
41. M enampilkan informasi M aterial yang dimiliki Purchase OrderReceipt.
42. M emasukkan dan menampilkan data PurchaseReturn. 43. M enampilkan informasi Staff yang dimiliki Purchase
Return.
44. M enampilkan informasi PurchaseOrder yang dimiliki PurchaseReturn.
45. M enampilkan informasi M aterial yang dimiliki Purchase Return.
46. M emasukkan dan menampilkan data ReturnReceipt.
47. M enampilkan informasi Staff yang dimiliki Return Receipt.
48. M enampilkan informasi PurchaseReturn yang dimiliki ReturnReceipt.
49. M enampilkan informasi M aterial yang dimiliki Return Receipt.
50. M emasukkan dan menampilkan data PurchaseInvoice. 51. M enampilkan informasi Staff yang dimiliki Purchase
Invoice.
52. M enampilkan informasi PurchaseOrder yang dimiliki PurchaseInvoice.
53. M emasukkan dan menampilkan data Outpay. 54. M enampilkan informasi Staff yang dimiliki Outpay. 55. M enampilkan informasi PurchaseInvoice yang dimiliki
Outpay.
56. M enampilkan informasi AccountBank yang dimiliki Outpay.
57. M emasukkan dan menampilkan data StockAdjustment. 58. M enampilkan informasi Staff yang dimiliki Stock
Adjustment.
59. M enampilkan informasi M aterial yang dimiliki Stock Adjustment.
60. M enampilkan informasi M aterial yang dimiliki Purchase Order.
3.7.1.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 tersebut benar-benar menggambarkan sistem perusahaan yang sebenarnya.
Setelah meninjau ulang model data konseptual dengan pengguna, maka dapat disimpulkan bahwa model data konseptual yang dibuat sudah sesuai dengan kebutuhan pengguna.
3.7.2 Perancangan Basis Data Logikal
Perancangan basis data logikal merupakan suatu proses membangun model informasi yang digunakan dalam perusahaan berdasarkan model data yang spesifik, tetapi independen terhadap berbagai jenis DBM S dan pertimbangan fisikal lainnya. Adapun langkah-langkah dalam perancangan basis data logikal, antara lain :
1. M enghilangkan fitur yang tidak sesuai dengan model relational 2. M endapatkan relasi untuk model data logikal lokal
3. M emvalidasi relasi menggunakan normalisasi 4. M emvalidasi relasi terhadap transaksi pengguna 5. M enentukan batasan integritas
6. M enggabungkan model data logikal lokal ke dalam model data logikal global
7. M emeriksa terhadap pertumbuhan di masa mendatang
3.7.2.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 model relational. Langkah-langkah yang dilakukan dalam tahap ini meliputi :
• Menghilangkan tipe relasi biner many to many (*:*) • Menghilangkan tipe relasi rekursif many to many (*:*) • Menghilangkan tipe relasi kompleks
• Menghilangkan tipe atribut multivalued
1. Menghilangkan Tipe Relasi Biner Many-to-Many (*:*) Dalam model data konseptual yang telah dibangun terdapat beberapa tipe relasi biner many-to-many, yaitu :
a. Hubungan antara Project dengan M aterial
b. Hubungan antara M aterialUsed dengan M aterial
Gambar 3.18 Penghilangan Relasi Biner Many-to-Many Antara M aterialUsed dengan M aterial
c. Hubungan antara Addendum dengan M aterial
Gambar 3.19 Penghilangan Relasi Biner Many-to-Many Antara Addendum dengan M aterial
d. Hubungan antara PurchaseOrder dengan M aterial
Gambar 3.20 Penghilangan Relasi Biner Many-to-Many Antara PurchaseOrder dengan M aterial
e. Hubungan antara PurchaseOrderReceipt dengan M aterial
Gambar 3.21 Penghilangan Relasi Biner Many-to-Many Antara PurchaseOrderReceipt dengan M aterial
f. Hubungan antara PurchaseReturn dengan M aterial
Gambar 3.22 Penghilangan Relasi Biner Many-to-Many Antara PurchaseReturn dengan M aterial
g. Hubungan antara ReturnReceipt dengan M aterial
Gambar 3.23 Penghilangan Relasi Biner Many-to-Many Antara ReturnReceipt dengan M aterial
h. Hubungan antara StockAdjustment dengan M aterial
Gambar 3.24 Penghilangan Relasi Biner Many-to-Many Antara StockAdjustment dengan M aterial
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. Menghilangkan Tipe Relasi Kompleks
Tahap ini tidak dilakukan karena pada model data 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.7.2.2 Mendapatkan Relasi untuk Model Data Logikal Lokal
Tujuan dari tahap ini adalah untuk membuat relasi dari model data logikal lokal yang merepresentasikan nama entitas, relasi, dan atribut yang telah diidentifikasi.
1. Tipe Entitas Kuat
a. S taff (StaffCode, StaffName, Address, PhoneNo, Email, Password, RoleName)
Primary Key StaffCode
b. Client (ClientCode, ClientName, Address, PhoneNo, FaxNo, Email)
Primary Key ClientCode
c. Supplier (SupplierCode, SupplierName, Address, PhoneNo, FaxNo, Email, SupplierTypeName)
Primary Key SupplierCode
d. AccountBank (AccountCode, AccountNo, BankName) Primary Key AccountCode
e. Material (M aterialCode, M aterialName, Weight, Stock, Unit, M aterialTypeName)
Primary Key M aterialCode
f. S tockAdjustmentHdr (AdjustmentID, AdjustmentDoc No, AdjustmentDate, AdjustmentNote, StaffName)
g. Project (ProjectID, ProjectName, Address, ClientName, PhoneNo, FaxNo, Email)
Primary Key ProjectID
h. RAB (RAB_ID, RAB_Date, RAB_Amount, StaffName) Primary Key RAB_ID
i. SubRABHdr (SubRAB_ID, SubRAB_Name, SubTotal, PPN, GrandTotal)
Primary Key SubRAB_ID
j. ProjectOrder (ProjectOrderID, ProjectOrderDocNo, ProjectOrderDate, ProjectOrderNote, StartDate, EndDate, TotalTerm, StaffName)
Primary Key ProjectOrderID
k. MaterialUsedHdr (M aterialUsedID, M aterialUsedDoc No, M aterialUsedDate, M aterialUsedNote, CarNo, DriverName, ProjectOrderDocNo, StaffName)
Primary Key M aterialUsedID
l. ProjectIn voice (ProjectInvoiceID, ProjectInvoiceDocNo, ProjectInvoiceDate, ProjectInvoiceNote, ProjectInvoice DueDate, TermOfPayment, InvoiceAmount, PPN, GrandTotal, ProjectOrderDocNo, StaffName)
Primary Key ProjectInvoiceID
m. Inpay (InpayID, InpayDocNo, InpayDate, InpayNote, ProjectInvoiceDocNo, AccountNo, InpayAmount, PaymentTypeName, StaffName)
n. AddendumHdr (AddendumID, AddendumDocNo, AddendumDate, AddendumNote, ProjectOrderDocNo, SubTotal, PPN, GrandTotal, StaffName)
o. AddendumIn voice (AddendumInvoiceID, Addendum InvoiceDocNo, AddendumInvoiceDate, Addendum InvoiceNote, AddendumInvoiceDueDate, Addendum InvoiceAmount, PPN, GrandTotal, AddendumDocNo, StaffName)
Primary Key AddendumInvoiceID
p. AddendumInpay (AddendumInpayID, AddendumInpay DocNo, AddendumInpayDate, AddendumInpayNote, AddendumInvoiceDocNo, AddendumInpayAmount, PaymentTypeName, AccountNo, StaffName)
Primary Key AddendumInpayID
q. PurchaseOrderHdr (PurchaseID, PurchaseDocNo, PurchaseDate, PurchaseNote, ReceiptDate, SupplierName, TotalAmount, Disc, SubTotal, PPN, GrandTotal, StaffName)
Primary Key PurchaseID
r. PurchaseOrderReceiptHdr (POReceiptID, POReceipt DocNo, POReceiptDate, POReceiptNote, CarNo, Driver Name, PurchaseDocNo, StaffName)
Primary Key POReceiptID
s. PurchaseInvoice (PurchaseInvoiceID, PurchaseInvoice DocNo, PurchaseInvoiceDate, PurchaseInvoiceNote,
PurchaseInvoiceDueDate, PurchaseDocNo, Invoice Amount, Disc, SubTotal, PPN, GrandTotal, StaffName) Primary Key PurchaseInvoiceID
t. Outpay (OutpayID, OutpayDocNo, OutpayDate, OutpayNote, PurchaseInvoiceDocNo, SupplierAccountNo, AccountNo, PaymentTypeName, OutpayAmount, StaffName)
Primary Key OutpayID
u. PurchaseReturnHdr (ReturnID, ReturnDocNo, Return Date, ReturnNote, PurchaseDocNo, StaffName)
Primary Key ReturnID
v. ReturnReceiptHdr (ReturnReceiptID, ReturnReceipt DocNo, ReturnReceiptDate, ReturnReceiptNote, CarNo, DriverName, ReturnDocNo, StaffName)
Primary Key ReturnReceiptID
2. Tipe Entitas Lemah
a. S tockAdjustmentDtl (M aterialName, Qty, Unit) Primary Key belum ada sampai saat ini
b. SubRABDtl (M aterialName, Qty, Unit, UnitPrice, Amount)
Primary Key belum ada sampai saat ini
c. MaterialUsedDtl (M aterialName, Qty, Unit) Primary Key belum ada sampai saat ini
d. AddendumDtl (M aterialName, Qty, Unit, UnitPrice, Status, Amount)
Primary Key belum ada sampai saat ini
e. PurchaseOrderDtl (M aterialName, Qty, Unit, UnitPrice, Amount)
Primary Key belum ada sampai saat ini
f. PurchaseOrderReceiptDtl (M aterialName, Qty, Unit) Primary Key belum ada sampai saat ini
g. PurchaseReturnDtl (M aterialName, Qty, Unit, Note) Primary Key belum ada sampai saat ini
h. ReturnReceiptDtl (M aterialName, Qty, Unit) Primary Key belum ada sampai saat ini
3. Tipe Relasi Biner One-to-Many (1:*)
Untuk setiap relasi one to many, entitas pada ‘sisi satu’ 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
T aruh StaffCode ke RAB untuk model 1:* relasi menerima
Staff (StaffCode, StaffName, RAB (RAB_ID, StaffCode, RAB_Date,
Password, RoleName) Primary Key ProjectID
Primary Key StaffCode Foreign Key StaffCode
references Staff(StaffCode)
• RAB dengan SubRABHdr
T aruh RAB_ID ke SubRABH dr untuk model 1:* relasi memiliki
RAB (RAB_ID, StaffCode, SubRABHdr (SubRAB_ID, RAB_ID,
RAB_Date, RAB_Amount, SubRA B_Name, SubT otal, PPN,
StaffName) GrandT otal)
Primary Key RAB_ID Primary Key SubRAB_ID
Foreign Key RAB_ID
references RAB(RAB_ID)
• Client dengan Project
T aruh ClientCode ke Project untuk model 1:* relasi memiliki
Client (ClientCode, ClientName, Proje ct (ProjectID, ClientCode, Project Address, PhoneNo, FaxNo, Email) Name, Address, ClientName, PhoneNo,
Primary Key ClientCode FaxNo, Email)
Primary Key ProjectID
Foreign Key ClientCode
references Client(ClientCode)
• Project dengan RAB
T aruh ProjectID ke RAB untuk model 1:* relasi memiliki
Proje ct (ProjectID, ClientCode, RAB (RAB_ID, ProjectID, StaffCode,
ProjectName, Address, ClientName, RAB_Date, RAB_Amount, StaffName) PhoneNo, FaxNo, Email) Primary Key ProjectID
Primary Key ProjectID Foreign Key ClientCode
• Staff dengan ProjectOrder
T aruh StaffCode ke ProjectOrder untuk model 1:* relasi menangani
Staff (StaffCode, StaffName, Proje ctO rde r (ProjectOrderID, StaffCode,
Address, PhoneNo, Email, ProjectOrderDocNo, ProjectOrderDate, Password, RoleName) ProjectOrderNote, StartDate, EndDate,
Primary Key StaffCode TotalT erm, StaffName)
Primary Key ProjectOrderID
Foreign Key StaffCode
references Staff(StaffCode)
• Staff dengan ProjectInvoice
T aruh Staff ke ProjectInvoice untuk model 1:* relasi mengajukan
Staff (StaffCode, StaffName, Proje ctInvoice (ProjectInvoiceID, Staff
Address, PhoneNo, Email, Code, ProjectInvoiceDocNo, Project Password, RoleName) InvoiceDate, ProjectInvoiceNote, Project
Primary Key StaffCode InvoiceDueDate, TermOfPayment, Invoice
Amount, PPN, GrandT otal, ProjectOrder
DocNo, StaffName)
Primary Key ProjectInvoiceID Foreign Key StaffCode
references Staff(StaffCode)
• ProjectOrder dengan ProjectInvoice
T aruh ProjectOrderID ke ProjectInvoice untuk model 1:* relasi memiliki
Proje ctO rde r (ProjectOrderID, Proje ctInvoice (ProjectInvoiceID, Project StaffCode, ProjectOrderDocNo, OrderID, StaffCode, ProjectInvoiceDocNo, ProjectOrderDate, ProjectOrder ProjectInvoiceDate, ProjectInvoiceNote, Note, StartDate, EndDate, Total ProjectInvoiceDueDate, TermOfPayment, T erm, StaffName) InvoiceAmount, PPN, GrandT otal,
Primary Key ProjectOrderID ProjectOrderDocNo, StaffName)
Primary Key ProjectInvoiceID Foreign Key ProjectOrderID
references ProjectOrder(ProjectOrderID)
• Staff dengan Inpay
T aruh StaffCode ke Inpay untuk model 1:* relasi mencatat
Staff (StaffCode, StaffName, Inpay (InpayID, StaffCode, InpayDocNo,
Address, PhoneNo, Email, InpayDate, InpayNote, ProjectInvoiceDoc Password, RoleName) No, AccountNo, InpayAmount, Payment
Primary Key StaffCode TypeName, StaffName)
Primary Key InpayID Foreign Key StaffCode
references Staff(StaffCode)
• AccountBank dengan Inpay
T aruh AccountCode ke Inpay untuk model 1:* relasi menerima
AccountBank (AccountCode, Inpay (InpayID, AccountCode, StaffCode,
AccountNo, BankName) InpayDocNo, InpayDate, InpayNote,
Primary Key AccountCode ProjectInvoiceDocNo, AccountNo, Inpay
Amount, PaymentTypeName, StaffName) Primary Key InpayID
Foreign Key AccountCode
references AccountBank(AccountCode)
• Staff dengan MaterialUsedHdr
T aruh StaffCode ke MaterialUsedHdr untuk model 1:* relasi mengirim
Staff (StaffCode, StaffName, Mate rialUse dHdr (MaterialUsedID, Staff
Password, RoleName) Date, MaterialUsedNote, CarNo, Driver
Primary Key StaffCode Name, ProjectOrderDocNo, StaffName)
Primary Key MaterialUsedID Foreign Key StaffCode
references Staff(StaffCode)
• ProjectOrder dengan MaterialUsedHdr
T aruh ProjectOrderID ke MaterialUsedHdr untuk model 1:* relasi memerlukan
Proje ctO rde r (ProjectOrderID, Mate rialUse dHdr(MaterialUsedID,Project
StaffCode, ProjectOrderDocNo, OrderID, StaffCode, MaterialUsedDocNo, ProjectOrderDate, ProjectOrder MaterialUsedDate, MaterialUsedNote, Note, StartDate, EndDate, Total CarNo, DriverName, ProjectOrderDocNo, T erm, StaffName) StaffName)
Primary Key ProjectOrderID Primary Key MaterialUsedID
Foreign Key ProjectOrderID
references ProjectOrder(ProjectOrderID)
• Staff dengan AddendumHdr
T aruh StaffCode ke AddendumHdr untuk model 1:* relasi menangani
Staff (StaffCode, StaffName, AddendumHdr (AddendumID, StaffCode,
Address, PhoneNo, Email, AddendumDocNo, AddendumDate, Password, RoleName) AddendumNote, ProjectOrderDocNo,
Primary Key StaffCode SubT otal, PPN, GrandTotal, StaffName)
Primary Key AddendumID
Foreign Key StaffCode
• ProjectOrder dengan AddendumHdr
T aruh ProjectOrderID ke AddendumHdr untuk model 1:* relasi memiliki
Proje ctO rde r (ProjectOrderID, AddendumHdr (AddendumID,Project
StaffCode, ProjectOrderDocNo, OrderID, StaffCode, AddendumDocNo, ProjectOrderDate, ProjectOrder AddendumDate, AddendumNote, Note, StartDate, EndDate, Total ProjectOrderDocNo, SubT otal, PPN, T erm, StaffName) GrandT otal, StaffName)
Primary Key ProjectOrderID Primary Key AddendumID
Foreign Key ProjectOrderID
references ProjectOrder(ProjectOrderID)
• Staff dengan AddendumInvoice
T aruh StaffCode ke AddendumInvoice untuk model 1:* relasi mengajukan
Staff (StaffCode, StaffName, AddendumInvoice (AddendumInvoiceID,
Address, PhoneNo, Email, StaffCode, AddendumInvoiceDocNo, Password, RoleName) AddendumInvoiceDate, AddendumInvoice
Primary Key StaffCode Note, AddendumInvoiceDueDate,
AddendumInvoiceAmount, PPN, Grand Total, AddendumDocNo, StaffName) Primary Key AddendumInvoiceID Foreign Key StaffCode
references Staff(StaffCode)
• Staff dengan AddendumInpay
T aruh StaffCode ke AddendumInpay untuk model 1:* relasi mencatat
Staff (StaffCode, StaffName, AddendumInpay (AddendumInpayID,
Address, PhoneNo, Email, StaffCode, AddendumInpayDocNo, Password, RoleName) AddendumInpayDate, AddendumInpay
AddendumInpayAmount, PaymentType
Name, AccountNo, StaffName) Primary Key AddendumInpayID Foreign Key StaffCode
references Staff(StaffCode)
• AccountBank dengan AddendumInpay T aruh AccountCode ke AddendumInpay untuk model 1:* relasi menerima
AccountBank (AccountCode, AddendumInpay (AddendumInpayID,
AccountNo, BankName) AccountCode, StaffCode, Addendum
Primary Key AccountCode InpayDocNo, AddendumInpayDate,
AddendumInpayNote, AddendumInvoice
DocNo, AddendumInpayAmount, Payment
TypeName, AccountNo, StaffName) Primary Key AddendumInpayID Foreign Key AccountCode
references AccountBank(AccountCode)
• Staff dengan PurchaseOrderHdr
T aruh StaffCode ke PurchaseOrderHdr untuk model 1:* relasi mengajukan
Staff (StaffCode, StaffName, PurchaseOrde rHdr (PurchaseID, Staff
Address, PhoneNo, Email, Code, PurchaseDocNo, PurchaseDate, Password, RoleName) PurchaseNote, ReceiptDate, SupplierName,
Primary Key StaffCode TotalAmount, Disc, SubT otal, PPN,
GrandT otal, StaffName)
Primary Key PurchaseID Foreign Key StaffCode