79
PERANCANGAN S IS TEM YANG DIUS ULKAN
4.1 Perancangan Basis Data
Berdasarkan analissis sistem yang berjalan pada PT. Trimitra Bangun Jagad maka akan dirancang basis data sesuai kebutuhan perusahaan. Perancangan Basis data yang dilakukan pada PT. Trimitra Bangun Jagad, dibagi dalam 3 tahapan, yaitu:
1. Perancangan Basis Data Konseptual (conceptual database design)
2. Perancangan Basis Data Logikal (logical database design)
3. Perancanagn Basis Data Fisikal (physical database design)
4.1.1 Perancangan Basis Data Konseptual
Perancangan Basis Data Konseptual merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan. Beberapa langkah penting dalam merancang basis data secara konseptual adalah:
1. M engidentifikasi Tipe-tipe Entitas 2. M engidentifikasi Tipe-tipe Relationship 3. M engidentifikasi Atribut
5. M enentukan Candidatekeys dan Primary key 6. Pertimbangkan penggunaan EERD
7. Cek M odel Terhadap Redudansi
8. Validasi M odel Konseptual Dengan Transaksi User
4.1.1.1 Mengidentifikasi Tipe-tipe Entitas
Tahapan ini adalah untuk menentukan tipe entitas utama yang dibutuhkan. M enentukan entitas dapat dilakukan dengan memeriksa spesifikasi kebutuhan pengguna. Entitas yang dihasilkan adalah sebagai berikut:
Nama
Entitas Deskripsi Alias
Kejadian (Occurrence)
BOQ
Informasi mengenai rincian biaya suatu proyek yang akan dikerjaan
Bill Of Quantity
Setiap rincian biaya dalam suatu proyek
Client
Informasi mengenai perusahaan yang
membutuhkan jasa dari PT. Trimitra Bangun Jagad
Klien
Setiap perusahaan yang membutuhkan jasa dari PT. Trimitra Bangun Jagad
Employee
Informasi mengenai
karyawan yang bekerja pada PT. Trimitra Bangun Jagad
Karyawan
Setiap karyawan yang bekerja pada PT. Trimitra Bangun Jagad
Invoice
Informasi mengenai tagihan pembayaran proyek yang
diterbitkan untuk Client Invoice
Setiap penagihan yang ditunjukkan kepada
Client mengenai suatu proyek
M aterial
Informasi mengenai barang-barang yang dibutuhkan dalam proyek pada
PT.Trimitra Bangun Jagad
Material
Setiap barang-barang yang dibutuhkan dalam pengerjaan proyek M essage Informasi yang berisi pesan
yang dikirimkan antar
Pesan yang digunakan
Setiap pesan yang
karyawan digunakan untuk pengkoordinasian kerja untuk berkoordinasi antar karyawan karyawan PT. Trimitra Bangun Jagad PO
Informasi mengenai proyek yang diberikan oleh Client
kepada PT. Trimitra Bangun Jagad
Puchase Order
Setiap proyek yang diadakan oleh Client
Progress
Informasi mengenai kondisi jalannya suatu proyek yang sedang dikerjakan
Proses suatu proyek
Setiap peroses proyek yang dilaporkan secara berkala
Project
Informasi berupa pekerjaan
yang tercantum dalam PO Proyek
Setiap proyek yang terdapat dalam sebuah PO
SPK
Informasi mengenai penunjukan kerja kepada SubKontraktor
Surat Penunjukan Kerja
Setiap penunjukan kerja untuk SubKontraktor
SubKon
Informasi mengenai perusahaan lain yang ditunjuk oleh PT.Trimitra Bangun Jagad dalam melaksanakan proyek
Sub
Kontraktor
Setiap perusahaan yang bekerja sama di bawah instruksi PT. Trimitra Bangun Jagad
Tabel 4.1 Tabel Tipe Entitas
4.1.1.2 Mengidentifikasi Tipe-tipe Relationship
Tahapan ini adalah untuk menentukan hubungan-hubungan penting yang ada antara jenis-jenis entiti yang telah diidentifikasikan. Tipe hubungan antar entitas tersebut dapat dilihat pada tabel berikut ini:
Nama Entitas Multiplicity Relationship Nama Entitas Multiplicity 0..* M emiliki M aterial 0..* BOQ 1..* M enyertai Project 1..* Client 1..1 M engajukan PO 1..* 1..1 M emproses BOQ 0..* 1..1 M emproses Invoice 0..* 1..1 M enerima M essage 0..* 1..1 M emproses PO 0..* 1..1 M emproses Project 0..* Employee 1..1 M emproses SPK 0..*
Invoice 1..* M enyertai Project 1..*
PO 1..1 M emiliki Project 1..* Project 1..* M emiliki Progress 1..*
SPK 1..* M enyertai Project 1..*
SubKon 1..1 M enerima SPK 1..*
Tabel 4.2 Tabel Hubungan Antar Entitas
Berdasarkan hubungan antar entitas diatas, dapat dibuat Entity Relationship Diageam (ERD) sebagai berikut:
4.1.1.3 Mengidentifikasi Atribut
Tahapan ini adalah untuk menghubungkan atribut dengan entitas atau relasi yang tepat. Berikut adalah atribut-atribut dari setiap kelas:
BOQ
Atribut Deskripsi Tipe Data Nulls Multi
Valued BOQ_ID Secara unik mengidentifikasi
BOQ
VARCHAR(50) NO NO BOQ_Date Tanggal BOQ diproses DATETIM E NO NO Tower Tipe tower yang dibangun VARCHAR(50) NO NO
Wide_Area Luas lahan VARCHAR(50) NO NO
Wide_Site Luas Site VARCHAR(50) NO NO
Price Biaya perhitungan BOQ suatu proyek
BIGINT(15) NO NO
File YES
BOQ_File_ Date Tanggal upload file BOQ DATETIM E NO NO BOQ_File Alamat master file BOQ VARCHAR(150) NO NO Shop_Drawing_
File
Alamat master file shop drawing
VARCHAR(150) YES NO Revision Keterangan revisi BOQ INT(4) NO NO Information Keterangan tentang BOQ LONGTEXT YES NO
Client
Atribut Deskripsi Tpe Data Nulls Multi
Valued Client_ID Secara unik
mengidentifikasi msClient
VARCHAR(10) NO NO Client_Name Nama klien pada PT.
Trimtra Bangun Jagad
VARCHAR(50) NO NO Address Alamat tempat klien berada VARCHAR(200) YES NO Phone Nomor telepon klien VARCHAR(20) YES YES
Fax Nomor fax klien VARCHAR(20) YES YES
Email Alamat email klien VARCHAR(100) YES YES Tabel 4.4 Tabel Atribut Entitas Client
Employee
Atribut Deskripsi Tipe Data Nulls Multi
Valued Employee_ID Secara unik
mengidentifikasi Employee
VARCHAR(10) NO NO
Password Password untuk karyawan
VARCHAR(50) NO NO Employee_Name Nama karyawan dari PT.
Trimitra Bangun Jagad
VARCHAR(50) NO NO Position Posisi karyawan bekerja
pada PT. Trimitra Bangun Jagad
VARCHAR(50) NO NO
Gender Jenis kelamin dari karyawan
VARCHAR(10) NO NO Enter_Date Tanggal bergabung
dengan perusahaan
DATETIM E NO NO Address Alamat tempat tinggal VARCHAR(200) YES NO
karyawan
Phone Nomor telepon karyawan VARCHAR(20) YES YES Email Alamat email karyawan VARCHAR(100) YES YES Image Alamat file photo
karyawan
VARCHAR(150) YES NO Status Status dari karyawan VARCHAR(10) NO NO
Tabel 4.5 Tabel Atribut Entitas Employee
Invoice
Atribut Deskripsi Tpe Data Nulls Multi
Valued Invoice_ID Secara unik
mengidentifikasi Invoice
VARCHAR(50) NO NO
Invoice_Date Tanggal invoice diproses
DATETIM E NO NO
Invoice_Due_Date Tanggal jatuh tempo invoice
DATETIM E YES NO
Description YES
Description Deskripsi pekerjaan proyek
VARCHAR(500) NO NO
QTY Banyaknya unit INT(4) NO NO
Price Harga perunit BIGINT(15) NO NO
File YES
Invoice_File Alamat master file Invoice
VARCHAR(150) NO NO Invoice_File_Date Tanggal upload file
Invoice
DATETIM E NO NO Revision Keterangan revisi
invoice
Information Keterangan tentang invoice
LONGTEXT YES NO Tabel 4.6 Tabel Atribut Entitas Invoice
M aterial
Atribut Deskripsi Tpe Data Nulls Multi
Valued M aterial_ID Secara unik
mengidentifikasi M aterial
VARCHAR(10) NO NO M aterial_Name Nama material yang ada di
PT. Trimitra Bangun Jagad
VARCHAR(50) NO NO QTY Jumlah material yang
dimiliki
INT(4) NO NO
Type Jenis material VARCHAR(50) NO NO
Tabel 4.7 Tabel Atribut Entitas Material
M essage
Atribut Deskripsi Tpe Data Nulls Multi
Valued M essage_ID Secara unik
mengidentifikasi M essage
VARCHAR(25) NO NO M essage_Date Tanggal pesan dibuat DATETIM E NO NO
Subject Judul pesan VARCHAR(200) NO NO
Sender Nama sipengirim pesan VARCHAR(50) NO NO Content Isi dari pesan LONGTEXT NO NO File Alamat file yang disertakan VARCHAR(150) YES NO Status Status dari pesan VARCHAR(10) NO NO
PO
Atribut Deskripsi Tpe Data Nulls Multi
Valued
PO_ID Secara unik
mengidentifikasi PO
VARCHAR(50) NO NO PO_Name Nama proyek yang
tercantum di PO
VARCHAR(50) NO NO PO_Date Tanggal PO diproses DATETIM E NO NO PO_Date_Printed Tanggal yang tercantum di
PO
DATETIM E NO NO
Contract Reference dari proyek yang dikerjakan
VARCHAR(50) NO NO TO_Payment Batas waktu pembayaran VARCHAR(200) NO NO Start_Date Tanggal proyek dimulai DATETIM E NO NO Finish_Date Tanggal batas proyek
selesai
DATETIM E NO NO
PO_File Alamat master file PO VARCHAR(150) YES NO Status Status dari PO VARCHAR(10) NO NO Information Keterangan tentang PO LONGTEXT YES NO
Tabel 4.9 Tabel Atribut Entitas PO
Progress
Atribut Deskripsi Tpe Data Nulls Multi
Valued Activity M erupakan kegiatan
dalam melaksanakan proyek
VARCHAR(50) NO NO
Start_Date_P Rencana tanggal mulai DATETIM E YES NO Finish_Date_P Rencana tanggal
selesai
Start_Date_A Atual tanggal selesai DATETIM E YES NO Finish_Date_A Aktual tanggal mulai DATETIM E YES NO
Percent Persentase INT(4) YES NO
Remark Penjelasan bila
dibutuhkan
LONGTEXT YES NO Tabel 4.10 Tabel Atribut Entitas Progress
Project
Atribut Deskripsi Tipe Data Nulls Multi
Valued
Site_ID Secara unik
mengidentifikasi Site
VARCHAR(30) NO NO Site_Name Nama Site VARCHAR(50) NO NO Project_Name Nama Project VARCHAR(50) NO NO Area Area tempat proyek
dilaksanakan
VARCHAR(50) NO NO
Address Alamat proyek
dilaksanakan
VARCHAR(200) YES NO Province Propinsi dari area
tersebut
VARCHAR(200) NO NO
SOW Ruang lingkup dari
proyek
VARCHAR(100) NO NO
QTY Banyaknya unit INT(4) NO NO
Price Harga perunit BIGINT(15) NO NO
Ttk_Koor_N Titik koordinat utara pada tempat proyek
DOUBLE YES NO
Ttk_Koor_E Titik koordinat timur pada tempat proyek
DOUBLE YES NO
Information Keterangan pada Project
LONGTEXT YES NO
SPK
Atribut Deskripsi Tpe Data Nulls Multi
Valued
SPK_ID Secara unik
mengidentifikasi SPK
VARCHAR(50) NO NO
SPK_Date Tanggal SPK diproses DATETIM E NO NO Job Nama pekerjaan yang
dikerjakan
VARCHAR(200) NO NO Specification Spesifik pekerjaan yang
dikerjakan
VARCHAR(200) NO NO TO_Implement Lama pengerjaan proyek VARCHAR(200) NO NO Pay_System Sistem pembayaran VARCHAR(200) NO NO
Price Biaya pembayaran BIGINT(15) NO NO
File YES
SPK_File Alamat file master SPK VARCHAR(150) NO NO SPK_File_Date Tanggal upload File
SPK
DATETIM E NO NO Representative Karyawan dari SubKon
yang akan menerima SPK
VARCHAR(50) NO NO
Revision Keterangan revisi SPK INT(4) NO NO Information Keterangan tentang SPK LONGTEXT YES NO
Tabel 4.12 Tabel Atribut Entitas S PK
SubKon
Atribut Deskripsi Tipe Data Nulls Multi
Valued
SubKon_ID Secara unik
mengidentifikasi SubKon
SubKon_Name Nama sub-kontraktor pada PT. Trimitra Bangun Jagad
VARCHAR(50) NO NO
Address Alamat
sub-kontraktor
VARCHAR(200) YES NO Phone Nomor telepon
sub-kontraktor
VARCHAR(20) YES YES
Fax Nomor fax
sub-kontraktor
VARCHAR(20) YES YES Email Alamat email
sub-kontraktor
VARCHAR(100) YES YES SubKon_EM P_Name Nama karyawan
yang bekerja pada sub-kontraktor
VARCHAR(50) NO YES
Tabel 4.13 Tabel Atribut Entitas SubKon
4.1.1.4 Menentukan Domain Atribut
Pada tahap ini ditentukan nilai-nilai yang legal dari tiap-tiap atribut. Nilai-nilai tersebut dapat dilihat pada tabel berikut :
Nama Domain Nama Entitas Nama Field Domain Atribute BOQ_ID BOQ BOQ_ID VARCHAR(50)
aaaaa/bbb/ccc/ddd/ee aaaaa = berisikan nomor urut
bbb = berisikan BOQ ccc = berisikan TBJ singkatan dari nama perusahaan
ddd = berisikan bulan invoice dibuat dalam romawi
ee = berisikan tahun invoice dibuat dalam format dua
digit
Client_ID Client Client_ID VARCHAR(10) aaaaa
aaaaa = berisikan inisial dari klien
Employee_ID Employee Employee_ID VARCHAR(10) aaaa.bbbbb
aaaa = berisikan tahun bergabung
bbbbb = berisikan nomor urut
Invoice_ID Invoice Invoice_ID VARCHAR(50) aaaaa/bbbbb/ccc/ddd/ee aaaaa = berisikan nomer urut
bbbbb = berisikan kode klien
ccc = berisikan TBJ singkatan dari nama perusahaan
ddd = berisikan bulan invoice dibuat dalam romawi
ee = berisikan tahun invoice dibuat dalam format dua digit
M aterial_ID M aterial M aterial_ID VARCHAR(10) aaabbbbbbb
aaa = berisikan M TR merupakan singkatan dari material
bbbbbbb = berisikan nomor urut
M essage_ID M essage M essage_ID VARCHAR(25) aaaabbccddeeff-gggg aaaa = berisikan tahun bb = berisikan bulan cc = berisikan tanggal dd = berisikan jam ee = berisikan menit ff = berisikan detik gggg = berisikan id
pengirim
PO_ID PO PO_ID VARCHAR(50) aaaaa/bb/ccc/ddd/ee
aaaaa = berisikan nomor urut
bb = berisikan PO ccc = berisikan TBJ singkatan dari nama perusahaan
ddd = berisikan bulan invoice dibuat dalam romawi
ee = berisikan tahun invoice dibuat dalam format dua digit
Site_ID Project Site_ID VARCHAR(30)
aaabbb
aaa = berisikan huruf abjad bbb = berisikan angka
SPK_ID SPK SPK_ID VARCHAR(50)
aaaaa/bbb/cccc/dddd/eee/ff aaaaa = berisikan nomer urut bbb = berisikan SPK cccc = berisikan kode subKon dddd = berisikan nama proyek
eee = berisikan bulan invoice dibuat dalam romawi
ff = berisikan tahun invoice dibuat dalam format dua digit
SubKon_ID SubKon SubKon_ID VARCHAR(10) aaa-bbbb
aaa = berisikan SUB bbbb = berisikan inisial perusahaan subkon Client Client_Name VARCHAR(50) Name
M aterial M aterial_Name VARCHAR(50)
M essage Sender VARCHAR(50)
PO PO_Name VARCHAR(50)
Project Project_Name VARCHAR(50) Project Site_Name VARCHAR(50) SPK Representative VARCHAR(50) SubKon SubKon_Name VARCHAR(50) SubKon SubKon_Emp_Name VARCHAR(50)
BOQ BOQ_Date DATETIM E
BOQ BOQ_File_ Date DATETIM E
Employee Enter_Date DATETIM E
Invoice Invoice_Date DATETIM E
Invoice Invoice_Due_Date DATETIM E Invoice Invoice_File_Date DATETIM E M essage M essage_Date DATETIM E
PO PO_Date DATETIM E
PO PO_Date_Printed DATETIM E
PO Start_Date DATETIM E
PO Finish_Date DATETIM E
Progress Start_Date_P DATETIM E Progress Finish_Date_P DATETIM E Progress Start_Date_A DATETIM E Progress Finish_Date_A DATETIM E
SPK SPK_Date DATETIM E
Date
Tower BOQ Tower VARCHAR(50)
BOQ Wide_Area VARCHAR(50)
Wide
BOQ Wide_Site VARCHAR(50)
BOQ Price BIGINT(15)
Invoice Price BIGINT(15)
Project Price BIGINT(15)
Price
SPK Price BIGINT(15)
BOQ BOQ_File VARCHAR(150) BOQ Shop_Drawing_File VARCHAR(150)
Employee Image VARCHAR(150)
Invoice Invoice_File VARCHAR(150)
M essage File VARCHAR(150)
PO PO_File VARCHAR(150) File
SPK SPK_File VARCHAR(150) BOQ Revision INT(4)
Invoice Revision INT(4)
Revision
SPK Revision INT(4)
BOQ Information LONGTEXT
Invoice Information LONGTEXT
PO Information LONGTEXT
Progress Remark LONGTEXT
Project Information LONGTEXT Information
SPK Information LONGTEXT
Employee Address VARCHAR(200)
Project Address VARCHAR(200)
Subkon Address VARCHAR(200)
Client Phone VARCHAR(20)
Employee Phone VARCHAR(20)
Phone
SubKon Phone VARCHAR(20)
Client Fax VARCHAR(20)
Fax
SubKon Fax VARCHAR(20)
Client Email VARCHAR(100)
Employee Email VARCHAR(100)
SubKon Email VARCHAR(100)
Password Employee Password VARCHAR(50)
Position Employee Position VARCHAR(50)
Gender Employee Gender VARCHAR(10)
Employee Status VARCHAR(10)
M essage Status VARCHAR(10)
Status
PO Status VARCHAR(10)
Description Invoice Description VARCHAR(500)
Invoice QTY INT(4)
M aterial QTY INT(4)
QTY
Project QTY INT(4)
Type M aterial Type VARCHAR(50)
Subject M essage Subject VARCHAR(200)
Content M essage Content LONGTEXT
TO_Payment PO TO_Payment VARCHAR(200) Project Ttk_Koor_N DOUBLE
Titik_Koordinat
Project Ttk_Koor_E DOUBLE
Activity Progress Activity VARCHAR(50)
Percent Progress Percent INT(4)
Area Project Area VARCHAR(50)
Province Project Province VARCHAR(200)
SOW Project SOW VARCHAR(100)
Job SPK Job VARCHAR(200)
Specification SPK Specification VARCHAR(200)
TO_Implement SPK TO_Implement VARCHAR(200)
Pay_System SPK Pay_System VARCHAR(200)
Tabel 4.14 Tabel Domain Atribut
4.1.1.5 Menentukan Candidate Key dan Primary Key
Pada tahap ini diidentifikasi candidate key pada setiap entitas dan memilih primary key. Pemilihan primary key didasari pada keunikan key di masa datang, berikut dalah hasilnya :
Entity Candidate Key Primary Key
BOQ BOQ_ID BOQ_ID Client Client_ID
Client_Name Phone
Fax Email Employee Employee_ID Password Employee_Name Phone Email Employee_ID Invoice Invoice_ID Description Invoice_ID M aterial M aterial_ID M aterial_Name M aterial_ID M essage M essage_ID Content M essage_ID PO PO_ID Contract PO_ID Progress Activity Remark Activity Project Site_ID Site_Name Area SOW Site_ID SOW SPK SPK_ID SPK_ID SubKon SubKon_ID SubKon_Name Phone Fax Email SubKon_ID
SubKon_M ember_Name
Tabel 4.15 Tabel Candidate Key dan Primary Key
Gambar 4.2 Entity Relationship Diagram (ERD) Model Data Konseptual dengan
4.1.1.6 Pertimbangkan penggunaan EERD
Pada tahap ini bertujuan untuk mempertimbangkan penggunaan model Enhanced Relationship Diagram dimana dalam model ini memiliki tiga konsep utama yaitu
specialization-generalization, aggregation, dan composition. Pada ERD yang telah dibuat tidak terdapat ketiga hal tersebut sehingga pada tahap ini tidak kami lakukan.
4.1.1.7 Cek Model Terhadap Redudansi
Pada tahap ini bertujuan untuk melakukan pengecekan pada ERD yang telah dibuat apakah ada hubungan antar entity yang bersifat redudansi. Pada ERD yang telah dibuat tidak ditemukan adanya hubungan yang redudansi antar entity sehingga tahap ini tidak kami lakukan.
4.1.1.8 Validasi Model Konseptual Dengan Transaksi User
Tahapan ini bertujuan untuk memastikan model konseptual untuk mendukung traksaksi yang dibutuhkan oleh user. Untuk memvalidasi model konseptual terhadap transaksi pengguna dapat digunakan transaction pathwas.
Gambar berikut merepresentasikan jalan (pathways) dari tiap transaksi secara langsung:
Gambar 4.3 Penggunaan Pathways untuk mengecek model konseptual yang mendukung transaksi user
Adapun beberapa transaksi-transaksi yang terjadi adalah sebagai berikut:
a. BOQ menyertai Project b. BOQ memiliki M aterial
c. Client mengajukan PO (Purchase Order) d. Employee memproses BOQ (Bill Of Quantity) e. Employee memproses Invoice
f. Employee menerima M essage
g. Employee memproses PO (Purchase Order) h. Employee menangani Project
i. Employee memproses SPK (Surat Penunjukan Kerja) j. Invoice menyertai Project
k. PO memiliki Project l. Project memiliki Progress m. SPK menyertai Project
4.1.2 Perancangan Basis Data Logikal
Perancangan Basis Data Logikal ini bertujuan untuk membangun sebuah model data logikal dari model data konseptual. Kemudia model data ini akan divalidasi dengan teknik normalisasi untuk meyakinkan bahwa strukturnya sudah benar dan juga model data ini benar-benar mendukung transaksi yang dibutuhkan.
Adapun langkah-langkah dalam tahapan ini adalah sebagai berikut:
1. Hilangkan Fitur-fitur yang Tidak Kompatibel 2. Bentuk Table atau Relasi untuk M odel Data Logikal 3. Validasi Relasi dengan Normalisasi
4. Validasi Relasi dengan Transaksi User 5. Tentukan Integrity Constraints
4.1.2.1 Hilangkan Fitur-fitur yang Tidak Kompetibel
Tujuan dari langkah ini adalah menghilangkan fitur-fitur yang tidak kompetible. Langkah-langkahnya adalah sebagai berikut:
4.1.2.1.1 Menghilangkan many-to-many (*:*) binary relationship
Setiap relationship yang mempunyai hubungan antar entity many-to-many (*:*) harus dihilangkan. Untuk menghilangkannya
relationship tersebut dipecah dengan
mengidentifikasikan sebuah entitas baru dan mengganti hubungannya dengan dua buah one-to-many (1:*) relationship.
Gambar 4.4 Hubungan BOQ memiliki Material
Hubungan SPK menyertai Project
Hubungan Invoice menyertai Project
Gambar 4.6 Hubungan Invoice menyertai Project
Hubungan Project memiliki Porgress
Hubungan BOQ menyertai Project
Gambar 4.8 Hubungan BOQ Menyertai Project
4.1.2.1.2 Menghilangkan many-to-many (*:*) hubungan recursif
Hingga saat ini belum terdapat relasi many to many (*:*) rekursif.
4.1.2.1.3 Menghilangkan hubungan kompleks
Hingga saat ini belum terdapat kompleks relationship.
4.1.2.1.4 Menghilangkan multi-valued atribut
Untuk menghilangkan relationship yang mengandung multi-valued, atribut tersebut dipecah dengan mengidentifikasikan sebuah entitas baru dengan hubungan one-to-many (1:*) relationship.
Entitas BOQ
Gambar 4.9 Menghilangkan multi-valued pada entitas BOQ
Entitas Client
Gambar 4.10 Menghilangkan multi-valued pada entitas Client
Entitas Employee
Gambar 4.11 Menghilangkan multi-valued pada entitas Employee
Entitas Invoice
Gambar 4.12 Menghilangkan multi-valued pada entitas Invoice
Entitas S PK
Gambar 4.13 Menghilangkan multi-valued pada entitas S PK
Entitas S ubkon
Gambar 4.14 Menghilangkan multi-valued pada entitas Subkon
4.1.2.2 Bentuk Tabel atau Relasi untuk Model Data Logikal
Pada tahap ini dibuat hubungan logikal model yang mewakili entity, relationship dan atribut yang telah didefinisi. Langkah-langkahnya adalah :
4.1.2.2.1 Tipe Entitas Kuat
M embuat relasi yang mengandung semua atribut sederhana.
BOQ (BOQ_ID, BOQ_Date, Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
Employee (Employee_ID, Password,
Employee_Name, Position, Gender, Enter_date, Address, Image, Status)
Primary Key Employee_ID
Invoice (Invoice_ID, Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Material (M aterial_ID, M aterial_Name, QTY, Type)
Primary Key M aterial_ID
Message (M essage_ID, M essage_Date, Subject, Sender, Content, File, Status)
Primary Key M essage_ID
PO (PO_ID, PO_Name, PO_Date, PO_Date_Printed, Contract, TO_Payment, Start_Date, Finish_Date, PO_File, Status, Information)
Progress (Activity) Primary Key Activity
Project (Site_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information)
Primary Key Site_ID, SOW
S PK (SPK_ID, SPK_Date, Job, Specification, TO_Implement, Pay_System, Price, Representative, Revision, Information)
Primary Key SPK_ID
SubKon (SubKon_ID, SubKon_Name, Address) Primary Key SubKon_ID
4.1.2.2.2 Tipe Entitas Lemah
M engidentifikasi relasi yang tidak dapat berdiri sendiri (bergantung pada entitas lain).
BOQDetail
TransProjectS PK
Primary Key tidak ada sampai saat ini
TransProjectInvoice
Primary Key tidak ada sampai saat ini
TransProjectProgress (Start_Date_P,
Finish_Date_P, Start_Date_A, Finish_Date_A, Percent, Remark)
Primary Key tidak ada sampai saat ini
TransProjectBOQ
Primary Key tidak ada sampai saat ini
BOQFile (BOQ_File, BOQ_File_Date, Shop_Drawing_File)
Primary Key tidak ada sampai saat ini
ClientPhone (Phone)
Primary Key tidak ada sampai saat ini ClientEmail (Email)
ClientFax (Fax)
Primary Key tidak ada sampai saat ini
EmployeePhone (Phone)
Primary Key tidak ada sampai saat ini
EmployeeEmail (Email)
Primary_Key tidak ada sampai saat ini
InvoiceDescription (Description, QTY, Price) Primary Key tidak ada sampai saat ini
InvoiceFile ( Invoice_File, Invoice_File_Date ) Primary key tidak ada sampai saat ini
S PKFile (SPK_File, SPK_File_Date) Primary key tidak ada sampai saat ini SubKonPhone (Phone)
Primary key tidak ada sampai saat ini
SubKonEmail (Email)
Primary key tidak ada sampai saat ini
SubKonFax (Fax)
SubKonEMP(SubKon_EM P_Name) Primary key tidak ada sampai saat ini
4.1.2.2.3 Tipe hubungan binary entitas one to many (1:*) Pada tahap ini entitas dengan multiplicity many (1..*) mendapat foreign key dari entitas dari
multiplicity one (1..1).
Hubungan BOQ Memiliki BOQFile
BOQ _ID di-post ke dalam BOQ File sebagai Foreign key
BOQ (BOQ_ID, BOQ_Date, Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Primary Key BOQ_ID
BOQFile (BOQ_File, BOQ_ID, BOQ_File_Date, Shop_Drawing_File) Primary Key BOQ_ID, BOQ_File Foreign Key BOQ_ID references BOQ (BOQ_ID)
Hubungan Client mengajukan PO
Client_ID di-post ke dalam PO sebagai Foreign key
Client (Client_ID, Client_Name, Address) PO (PO_ID, Client_ID, PO_Name, PO_Date, PO_Date_Printed,
Primary Key Client_ID Contract, TO_Payment, Start_Date, Finish_Date, PO_File, Status, Information)
Primary Key PO_ID
Foreign Key Client_ID references Client (Client_ID)
Hubungan Client memiliki ClientPhone
Client_ID di-post ke dalam ClientPhone sebagai Foreign key
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
ClientPhone (Client_ID, Phone) Primary Key Client_ID, Phone Foreign Key Client_ID references Client (Client_ID)
Hubungan Client memiliki ClientEmail
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
ClientEmail (Client_ID, Email) Primary Key Client_ID, Email Foreign Key Client_ID references Client (Client_ID)
Hubungan Client memiliki ClientFax
Client_ID di-post ke dalam ClientFax sebagai Foreign key
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
ClientFax (Client_ID, Fax) Primary Key Client_ID, Fax Foreign Key Client_ID references Client (Client_ID)
Hubungan Employee Memproses PO
Employee_ID di-post ke dalam PO sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status)
PO (PO_ID, Employee_ID, Client_ID, PO_Name, PO_Date,
Primary Key Employee_ID TO_Payment, Start_Date, Finish_Date, PO_File, Status,
Information)
Primary Key PO_ID
Foreign Key Client _ID references Client (Client_ID)
Foreign Key Employee _ID
references Employee (Employee_ID)
Hubungan Employee Memproses Invoice
Employee_ID di-post ke dalam Invoice sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
Invoice (Invoice_ID, Employee_ID, Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Hubungan Employee Menerima Message
Employee_ID di-post ke dalam Message sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
Message (M essage_ID, Employee_ID, M essage_Date, Subject, Sender,
Content, File, Status) Primary Key M essage_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Hubungan Employee Memproses BOQ
Employee_ID di-post ke dalam BOQ sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
BOQ (BOQ_ID, Employee_ID, BOQ_Date, Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Primary Key BOQ_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Hubungan Employee Memproses S PK
Employee_ID di-post ke dalam SPK sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
S PK (SPK_ID, Employee_ID, SPK_Date, Job, Specification, TO_Implement, Pay_System, Price, Representative, Revision, Information) Primary Key SPK_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Hubungan Employee Menangani Project Employee_ID di-post ke dalam Project sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
Project (Site_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E,
Information)
Primary Key Site_ID, SOW
Employee (Employee _ID)
Hubungan Employee memiliki EmployeePhone
Employee_ID di-post ke dalam EmployeePhone sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_Date, Address, Image, Status) Primary Key Employee_ID
EmployeePhone (Employee_ID, Phone) Primary Key Phone, Employee_ID Foreign Key Employee_ID references Employee (Employee_ID)
Hubungan Employee memiliki EmployeeEmail
Employee_ID di-post ke dalam EmployeeEmail sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_Date, Address, Image, Status) Primary Key Employee_ID
EmployeeEmail (Employee_ID, Email)
Primary Key Email, Employee_ID Foreign Key Employee_ID
references Employee (Employee_ID)
Hubungan Invoice memiliki InvoiceDescription
Invoice_ID di-post ke dalam InvoiceDescription sebagai Foreign key
Invoice (Invoice_ID, Employee_ID,
Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
InvoiceDescription (Invoice_ID, Description, QTY, Price)
Primary Key Invoice_ID, Description
Foreign Key Invoice_ID references Invoice (Invoice_ID)
Hubungan Invoice memiliki InvoiceFile
Invoice_ID di-post ke dalam InvoiceFile sebagai Foreign key
Invoice (Invoice_ID, Employee_ID,
Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
InvoiceFile (Invoice_ID,
Invoice_File, Invoice_File_Date) Primary Key Invoice_ID, Invoice_File
Foreign Key Invoice_ID references Invoice (Invoice_ID)
Hubungan PO Memiliki Project
PO_ID di-post ke dalam Project sebagai Foreign key
PO (PO_ID, Employee_ID, Client_ID, PO_Name, PO_Date, PO_Date_Printed, Contract, TO_Payment, Start_Date,
Finish_Date, PO_File, Status, Information) Primary Key PO_ID
Foreign Key Client _ID references Client (Client_ID)
Foreign Key Employee _ID references Employee (Employee_ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information)
Primary Key Site_ID, SOW Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
Hubungan S PK Memiliki S PKFile
SPK_ID di-post ke dalam SPKFile sebagai Foreign key
S PK (SPK_ID, Employee_ID, SPK_Date, Job, Specification, TO_Implement,
Pay_System, Price, Representative,
S PKFile (SPK_File, SPK_ID, SPK_File_Date)
Revision, Information) Primary Key SPK_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Foreign Key SPK_ID references SPK (SPK_ID)
Hubungan S ubKon Menerima S PK
SubKon_ID di-post ke dalam SPK sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
S PK (SPK_ID, SubKon_ID, Employee_ID, SPK_Date, Job, Specification, TO_Implement, Pay_System, Price, Representative, Revision, Information)
Primary Key SPK_ID
Foreign Key SubKon_ID references SubKon (SubKon_ID)
Foreign Key Employee_ID references Employee (Employee _ID)
Hubungan S ubKon Memiliki S ubKonPhone
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonPhone (SubKon_ID, Phone) Primary Key SubKon_ID, Phone Foreign Key SubKon_ID references SubKon (SubKon_ID)
Hubungan S ubKon Memiliki S ubKonFax
SubKon_ID di-post ke dalam SubKonFax sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonFax (SubKon_ID, Fax) Primary Key SubKon_ID, Fax Foreign Key SubKon_ID references SubKon (SubKon_ID)
Hubungan S ubKon Memiliki S ubKonEmail
SubKon_ID di-post ke dalam SubKonEmail sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonEmail (SubKon_ID, Email) Primary Key SubKon_ID, Email Foreign Key SubKon_ID references SubKon (SubKon_ID)
Hubungan S ubKon Memiliki S ubKonEMP SubKon_ID di-post ke dalam SubKonEMP sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address) Primary Key SubKon_ID
SubKonEMP (SubKon_ID, SubKon_EM P_Name) Primary Key SubKon_ID, SubKon_EM P_Name
Foreign Key SubKon_ID references SubKon (SubKon_ID)
Hubungan BOQ Memiliki BOQDetail
Hubungan Material Terdapat dalam BOQDetail BOQ (BOQ_ID, Employee_ID, BOQ_Date,
Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Primary Key BOQ_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Material (M aterial_ID, M aterial_Name, QTY, Type) Primary Key M aterial_ID
BOQDetail (BOQ_ID, M aterial_ID) Primary Key BOQ_ID, M aterial_ID
Foreign Key BOQ_ID references BOQ (BOQ_ID) Foreign Key M aterial_ID references M aterial (M aterial_ID)
BOQ _ID dan Material_ID di-post ke dalam BOQ Detail sebagai Foreign key, gabungan kedua atribut tersebut menjadi primary key
Hubungan S PK Menyertai TransProjectS PK Hubungan Project Memiliki TransProjectS PK S PK (SPK_ID, SubKon_ID, Employee_ID,
SPK_Date, Job, Specification, TO_Implement, Pay_System, Price, Representative, Revision, Information) Primary Key SPK_ID
Foreign Key SubKon_ID references SubKon (SubKon_ID)
Foreign Key Employee_ID references Employee (Employee _ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name,
Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N,
Ttk_Koor_E, Information) Primary Key Site_ID, SOW
Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectS PK (SPK_ID, Site_ID, SOW) Primary Key SPK_ID, Site_ID, SOW Foreign Key SPK_ID references SPK (SPK_ID) Foreign Key Site _ID references Project (Site_ID)
Foreign Key SOW references Project (SOW)
SPK_ID, Site_ID dan SOW di-post ke dalam TransProjectSPK sebag ai Foreign key, gabungan ketiga atribut tersebut menjadi primary key
Hubungan Invoice Menyertai TransProjectInvoice Hubungan Project Memiliki TransProjectInvoice Invoice (Invoice_ID, Employee_ID,
Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name,
Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N,
Ttk_Koor_E, Information) Primary Key Site_ID, SOW
Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectInvoice (Invoice_ID, Site_ID, SOW) Primary Key Invoice_ID, Site_ID, SOW
Foreign Key Invoice_ID references Invoice (Invoice_ID) Foreign Key Site _ID references Project (Site_ID)
Invoice_ID, Site_ID dan SOW di-post ke dalam TransProjectInvoice sebag ai Foreign key, gabungan ketiga atribut tersebut menjadi primary key
Hubungan Progress Menyertai TransProjectProgress Hubungan Project Memiliki TransProjectProgress Progress (Activity)
Primary Key Activity
Project (Site_ID, PO_ID, Employee_ID, Site_Name,
Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N,
Ttk_Koor_E, Information) Primary Key Site_ID, SOW
Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectProgress (Activity, Site_ID, SOW) Primary Key Activity, Site_ID, SOW Foreign Key Activity references Progress (Activity)
Foreign Key Site _ID references Project (Site_ID) Foreign Key SOW references Project (SOW)
Activity, Site_ID dan SOW di-post ke dalam TransProjectProgress seb agai Foreign key, gabungan ketiga atribut tersebut menjadi primary key
Hubungan BOQ Menyertai TransProjectBOQ
Hubungan Project Memiliki TransProjectBOQ
BOQ (BOQ_ID, Employee_ID, BOQ_Date, Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Primary Key BOQ_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name,
Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N,
Ttk_Koor_E, Information) Primary Key Site_ID, SOW
Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectBOQ (BOQ_ID, Site_ID, SOW) Primary Key BOQ_ID, Site_ID, SOW Foreign Key BOQ_ID references BOQ (BOQ_ID)
Foreign Key Site _ID references Project (Site_ID) Foreign Key SOW references Project (SOW)
BOQ _ID, Site_ID dan SOW di-post ke dalam TransProjectBOQ sebagai Foreign key, gabungan ketiga atribut tersebut menjadi primary key
4.1.2.2.4 Tipe hubungan binary entitas one to one (1:1)
Hingga saat ini tidak terdapat tipe hubungan binary entitas one to one (1:1).
4.1.2.2.5 Tipe hubungan rekursif one to one (1:1) Hingga saat ini tidak terdapat tipe hubungan rekursif one to one (1:1).
4.1.2.2.6 Tipe hubungan Superclass/subclass
Berdasarkan analisa yang kami lakukan, hingga saat ini tidak terdapat tipe hubungan
Superclass/subclass.
4.1.2.2.7 Tipe hubungan many to many (*:*)
Pada hubungan many to many (*..*) ini dibuat untuk menggambarkan hubungan dan termasuk beberapa atribut yang merupakan bagian dari relasi. Primary key pada entitas merupakan
foreign key pada hubungan entitas yang baru.
Hubungan many to many (*..*) pada BOQ memiliki Material BOQ (BOQ_ID, Employee_ID, BOQ_Date,
Tower, Wide_Area, Wide_Site, Price,
Material (M aterial_ID, M aterial_Name, Qty, Type)
Revision, Information) Primary Key BOQ_ID
Foreign key Employee_ID references Employee(Employee_ID)
Primary Key M aterial_ID
BOQDetail (BOQ_ID, M aterial_ID) Primary Key BOQ_ID, M aterial_ID Foreign key BOQ_ID references BOQ (BOQ_ID) Foreign key M aterial_ID references BOQ (M aterial_ID)
Hubungan many to many (*..*) pada S PK menyertai Project S PK (SPK_ID, SubKon_ID, Employee_ID,
SPK_Date, Job, Specification, TO_Implement, Pay_System, Price, Representative, Revision, Information) Primary Key SPK_ID
Foreign Key SubKon_ID references SubKon (SubKon_ID)
Foreign Key Employee_ID references Employee (Employee _ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information)
Primary Key Site_ID, SOW Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectS PK (SPK_ID, Site_ID, SOW) Primary Key SPK_ID, Site_ID, SOW Foreign Key SPK_ID references SPK (SPK_ID) Foreign Key Site_ID references Project (Site_ID)
Foreign Key SOW references Project (SOW)
Hubungan many to many (*..*) pada Invoice menyertai Project Invoice (Invoice_ID, Employee_ID,
Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information)
Primary Key Site_ID, SOW Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectInvoice (Invoice_ID, Site_ID, SOW) Primary Key Invoice_ID, Site_ID, SOW
Foreign Key Invoice_ID references Invoice (Invoice_ID) Foreign Key Site_ID references Project (Site_ID)
Foreign Key SOW references Project (SOW)
Hubungan many to many (*..*) pada Project memiliki Progress Progress (Activity)
Primary Key Activity
Project (Site_ID, PO_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information)
Primary Key Site_ID, SOW Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectProgress (Activity, Site_ID, SOW) Primary Key Activity, Site_ID, SOW
Foreign Key Activity references Progress (Activity) Foreign Key Site_ID references Project (Site_ID)
Foreign Key SOW references Project (SOW)
Hubungan many to many (*..*) pada BOQ menyertai Project BOQ (BOQ_ID, Employee_ID, BOQ_Date,
Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Primary Key BOQ_ID
Foreign Key Employee_ID references Employee (Employee _ID)
Project (Site_ID, PO_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information)
Primary Key Site_ID, SOW Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
TransProjectBOQ (BOQ_ID, Site_ID, SOW) Primary Key BOQ_ID, Site_ID, SOW Foreign Key BOQ_ID references BOQ (BOQ_ID)
Foreign Key Site_ID references Project (Site_ID) Foreign Key SOW references Project (SOW)
4.1.2.2.8 Tipe hubungan complex
Berdasarkan analisa yang kami lakukan, hingga saat ini tidak terdapat tipe hubungan
complex.
4.1.2.2.9 Atribut multi-value
Pada hubungan multi-value dibuat untuk menggambarkan hubungan dan termasuk beberapa atribut yang merupakan bagian dari relasi. Primary key pada entitas merupakan foreign key pada hubungan entitas yang baru.
Hubungan Employee Memiliki EmployeePhone
Employee_ID di-post ke dalam EmployeePhone sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
EmployeePhone (Employee_ID, Phone) Primary Key Phone, Employee_ID Foreign Key Employee_ID references Employee (Employee_ID)
Hubungan Employee Memiliki EmployeeEmail
Employee_ID di-post ke dalam EmployeeEmail sebagai Foreign key
Employee (Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status) Primary Key Employee_ID
EmployeeEmail (Employee_ID, Email) Primary Key Email, Employee_ID Foreign Key Employee_ID references Employee (Employee_ID)
Hubungan S ubKon Memiliki S ubKonEmail
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonEmail (SubKon_ID, Email) Primary Key SubKon_ID, Email Foreign Key SubKon_ID references SubKon (SubKon_ID)
Hubungan S ubKon Memiliki S ubKonPhone
SubKon_ID di-post ke dalam SubKonPhone sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonPhone (SubKon_ID, Phone)
Primary Key SubKon_ID, Phone Foreign Key SubKon_ID
references SubKon (SubKon_ID)
Hubungan S ubKon Memiliki S ubKonFax
SubKon_ID di-post ke dalam SubKonFax sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonFax (SubKon_ID, Fax) Primary Key SubKon_ID, Fax Foreign Key SubKon_ID
Hubungan S ubKon Memiliki S ubKonEMP
SubKon_ID di-post ke dalam SubKonEMP sebagai Foreign key
SubKon (SubKon_ID, SubKon_Name, Address)
Primary Key SubKon_ID
SubKonEMP (SubKon_ID, SubKon_EM P_Name) Primary Key SubKon_ID, SubKon_EM P_Name Foreign Key SubKon_ID
references SubKon (SubKon_ID)
Hubungan Client Memiliki ClientEmail
Client_ID di-post ke dalam ClientEmail sebagai Foreign key
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
ClientEmail (Client_ID, Email) Primary Key Client_ID, Email Foreign Key Client_ID references Client (Client_ID)
Hubungan Client Memiliki ClientPhone
Client_ID di-post ke dalam ClientPhone sebagai Foreign key
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
ClientPhone (Client_ID, Phone) Primary Key Client_ID, Phone Foreign Key Client_ID references Client (Client_ID)
Hubungan Client Memiliki ClientFax
Client_ID di-post ke dalam ClientFax sebagai Foreign key
Client (Client_ID, Client_Name, Address) Primary Key Client_ID
ClientFax (Client_ID, Fax) Primary Key Client_ID, Fax Foreign Key Client_ID references Client (Client_ID)
Hubungan BOQ Memiliki BOQFile
BOQ (BOQ_ID, Employee_ID, BOQ_Date, Tower, Wide_Area, Wide_Site, Price, Revision, Information)
Primary Key BOQ_ID
Foreign key Employee_ID references Employee(Employee_ID)
BOQFile (BOQ_File, BOQ_ID, BOQ_File_Date, Shop_Drawing_File) Primary Key BOQ_ID, BOQ_File Foreign Key BOQ_ID references BOQ (BOQ_ID)
Hubungan Invoice memiliki InvoiceDescription
Invoice_ID di-post ke dalam InvoiceDescription sebagai Foreign key
Invoice (Invoice_ID, Employee_ID,
Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
InvoiceDescription (Invoice_ID, Description, QTY, Price)
Primary Key Invoice_ID, Description
Foreign Key Invoice_ID references Invoice (Invoice_ID)
Hubungan Invoice memiliki InvoiceFile
Invoice (Invoice_ID, Employee_ID,
Invoice_Date, Invoice_Due_Date, Revision, Information)
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
InvoiceFile (Invoice_ID,
Invoice_File, Invoice_File_Date) Primary Key Invoice_ID, Invoice_File
Foreign Key Invoice_ID references Invoice (Invoice_ID)
Hubungan S PK Memiliki S PKFile
SPK_ID di-post ke dalam SPKFile sebagai Foreign key
S PK (SPK_ID, SubKon_ID, Employee_ID, SPK_Date, Job, Specification,
TO_Implement, Pay_System, Price, Representative, Revision, Information) Primary Key SPK_ID
Foreign Key SubKon_ID references SubKon (SubKon_ID)
Foreign Key Employee_ID references Employee (Employee _ID)
S PKFile (SPK_File, SPK_ID, SPK_File_Date)
Primary Key SPK_File, SPK_ID Foreign Key SPK_ID references SPK (SPK_ID)
Hasil Relasi
BOQ BOQ_ID, Employee_ID, BOQ_Date, Tower, Wide_Area, Wide_Site, Price, Revision, Information
Primary Key BOQ_ID
Foreign key Employee_ID references Employee (Employee_ID)
BOQDetail BOQ_ID, M aterial_ID
Primary Key BOQ_ID, M aterial_ID
Foreign key BOQ_ID references BOQ (BOQ_ID) Foreign key M aterial_ID references BOQ (M aterial_ID) BOQFile BOQ_File, BOQ_ID, BOQ_File_Date, Shop_Drawing_File
Primary Key BOQ_ID, BOQ_File
Foreign Key BOQ_ID references BOQ (BOQ_ID) Client Client_ID, Client_Name, Address
Primary Key Client_ID ClientEmail Client_ID, Email
Primary Key Client_ID, Email
Foreign Key Client_ID references Client (Client_ID) ClientFax Client_ID, Fax
Primary Key Client_ID, Fax
Foreign Key Client_ID references Client (Client_ID) ClientPhone Client_ID, Phone
Primary Key Client_ID, Phone
Foreign Key Client_ID references Client (Client_ID)
Employee Employee_ID, Password, Employee_Name, Position, Gender, Enter_date, Address, Image, Status
Primary Key Employee_ID EmployeeEmail Employee_ID, Email
Primary Key Employee_ID, Email
Foreign Key Employee_ID references Employee (Employee_ID)
EmployeePhone Employee_ID, Phone
Primary Key Employee_ID, Phone
(Employee_ID)
Invoice Invoice_ID, Employee_ID, Invoice_Date, Invoice_Due_Date, Revision, Information
Primary Key Invoice_ID
Foreign Key Employee_ID references Employee (Employee _ID)
InvoiceDescription Invoice_ID, Description, QTY, Price Primary Key Invoice_ID, Description
Foreign Key Invoice_ID references Invoice (Invoice_ID) InvoiceFile Invoice_ID, Invoice_File, Invoice_File_Date
Primary Key Invoice_ID, Invoice_File
Foreign Key Invoice_ID references Invoice (Invoice_ID) Material M aterial_ID, M aterial_Name, QTY, Type
Primary key M aterial_ID
Message M essage_ID, Employee_ID, M essage_Date, Subject, Sender, Content, File, Status
Primary Key M essage_ID
Foreign Key Employee_ID references Employee (Employee _ID)
PO PO_ID, Employee_ID, Client_ID, PO_Name, PO_Date, PO_Date_Printed, Contract, TO_Payment, Start_Date, Finish_Date, PO_File, Status, Information
Primary Key PO_ID
Foreign Key Client_ID references Client (Client_ID) Foreign Key Employee_ID references Employee (Employee_ID)
Progress Activity
Primary Key Activity
Project Site_ID, PO_ID, Employee_ID, Site_Name, Project_Name, Area, Address, Province, SOW, QTY, Price, Ttk_Koor_N, Ttk_Koor_E, Information
Primary Key Site_ID, SOW
Foreign Key PO_ID references PO (PO _ID)
Foreign Key Employee_ID references Employee (Employee _ID)
S PK SPK_ID, SubKon_ID, Employee_ID, SPK_Date, Job, Specification, TO_Implement, Pay_System, Price, Representative, Revision, Information
Primary Key SPK_ID
Foreign Key SubKon_ID references SubKon (SubKon_ID) Foreign Key Employee_ID references Employee (Employee _ID)
S PKFile SPK_File, SPK_ID, SPK_File_Date Primary Key SPK_File, SPK_ID
Foreign Key SPK _ID references SPK (SPK _ID) SubKon SubKon_ID, SubKon_Name, Address
Primary Key SubKon_ID SubKonEmail SubKon_ID, Email
Primary Key SubKon _ID, Email
Foreign Key SubKon _ID references SubKon (SubKon _ID) SubKonFax SubKon_ID, Fax
Primary Key SubKon _ID, Fax
Foreign Key SubKon _ID references SubKon (SubKon _ID) SubKonPhone SubKon_ID, Phone
Primary Key SubKon _ID, Phone
Foreign Key SubKon _ID references SubKon (SubKon _ID) SubKonEMP SubKon_ID, SubKon_EM P_Name
Primary Key SubKon_ID, SubKon_EM P_Name
Foreign Key SubKon_ID references SubKon (SubKon_ID) TransProjectS PK SPK_ID, Site_ID, SOW
Primary Key SPK_ID, Site_ID, SOW
Foreign Key SPK_ID references SPK (SPK_ID) Foreign Key Site _ID references Project (Site_ID) Foreign Key SOW references Project (SOW) TransProjectInvoice Invoice_ID, Site_ID, SOW
Primary Key Invoice_ID, Site_ID, SOW
Foreign Key Invoice_ID references Invoice (Invoice_ID) Foreign Key Site _ID references Project (Site_ID) Foreign Key SOW references Project (SOW)
TransProjectProgress Activity, Site_ID, SOW, Start_Date_P, Finish_Date_P, Start_Date_A, Finish_Date_A, Percent, Remark
Primary Key Activity, Site_ID, SOW
Foreign Key Activity references Progress (Activity) Foreign Key Site _ID references Project (Site_ID) Foreign Key SOW references Project (SOW) TransProjectBOQ BOQ_ID, Site_ID, SOW
Primary Key BOQ_ID, Site_ID, SOW
Foreign Key BOQ_ID references BOQ (BOQ_ID) Foreign Key Site _ID references Project (Site_ID) Foreign Key SOW references Project (SOW) Tabel 4.16 Tabel Hasil Relasi
4.1.2.3 Validasi relasi dengan normalisasi
Pada tahap ini dilakukan untuk menentukan apakah suatu model data logikal tidak terdapat redundancy, konsisten dan sudah mendekati atau mewakili sistem yang ada pada perusahaan.
1. BOQ
BOQ_ID (Primary Key)
Employee_ID ( Partial Dependency) BOQ_Date Wide_Area Wide_Site Price Revision Information
@BOQ_ID + Employee_ID + BOQ_Date + Tower + Wide_Area + Wide_Site + Price + Revision + Information
1NF
Di dalam entitas karyawan tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF
2NF
Di dalam entitas BOQ, terdapat atribut Employee_ID yang merupakan partial dependency yang dapat dijadikan entity baru yaitu entity Employee sehingga diperlukan normalisasi 2NF menjadi :
BOQ
@BOQ_ID + #Employee_ID + BOQ_Date + Tower + Wide_Area + Wide_Site + Price + Revision + Information
Employee @Employee_ID
3NF
Di dalam entitas BOQ, dari semua atribut yang ada pada entitas tersebut tidak ditemukan transitive
dependency sehingga tidak diperlukan normalisasi 3NF.
2. BOQ_Detail
BOQ_ID (Primary key) (Partial Dependency) M aterial_ID (Primary key) (Partial Dependency)
@#BOQ_ID + @#M aterial_ID
1NF
Di dalam entitas BOQ_Detail tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF
2NF
Di dalam entitas BOQ, terdapat atribut M aterial_ID yang merupakan partial dependency yang dapat dijadikan entity baru yaitu entity M aterial sehingga diperlukan normalisasi 2NF menjadi :
BOQ_Detail
BOQ @BOQ_ID Material @M aterial_ID 3NF
Di dalam entitas BOQ_Detail, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency sehingga tidak diperlukan normalisasi 3NF.
3. BOQ_File
BOQ_File ( Primary Key )
BOQ_ID (PK) (Partial Dependency) BOQ_File_Date
Shop_Drawing_File
@BOQ_File + @#BOQ_ID + BOQ_File_Date + Shop_Drawing_File
1NF
Di dalam entitas BOQ_File tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
Di dalam entitas BOQ_File, terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2N menjadi :
BOQFile
@BOQ_File + @#BOQ_ID + BOQ_File_Date + Shop_Drawing_File BOQ
@BOQ_ID
3NF
Di dalam entitas BOQ_File, semua atribut yang ada pada entitas tersebut tidak ditemukan transitif dependency sehingga tidak diperlukan normalisasi 3NF.
4. Client
Client_ID ( Primary key ) Client_Name
Address
@Client_ID + Client_Name + Address
Di dalam entitas Client tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas Client, tidak terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2NF.
3NF
Di dalam entitas Client, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency
sehingga tidak diperlukan normalisasi 3NF.
5. ClientEmail
Client_ID (Primary Key) (Partial Dependency) Email (Primary Key)
1NF
Di dalam entitas ClientEmail tidak terdapat atribut yang mengalami reeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas ClientEmail, terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2N menjadi :
ClientEmail
@#Client_ID + @Email Client
@Client_ID 3NF
Di dalam entitas ClientEmail, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency sehingga tidak diperlukan normalisasi 3NF.
6. ClientPhone
Client_ID (Primary Key) (Partial Dependency) Phone (Primary Key)
@#Client_ID + @Phone 1NF
Di dalam entitas ClientPhone tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas ClientPhone, terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2N menjadi :
ClientPhone
@#Client_ID + @Phone Client
@Client_ID 3NF
Di dalam entitas ClientPhone, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency sehingga tidak diperlukan normalisasi 3NF.
7. ClientFax
Client_ID (Primary Key) (Partial Dependency) Fax (Primary Key)
@#Client_ID + @Fax
1NF
Di dalam entitas ClientFax tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas ClientFax, terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2N menjadi :
ClientFax
@#Client_ID + @Fax Client
@Client_ID 3NF
Di dalam entitas ClientFax, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency sehingga tidak diperlukan normalisasi 3NF.
8. Employee
Employee_ID (Primary Key) Password
Employee_Name
Position (Transitive dependency) Gender
Enter_Date Address Image Status
@Employee_ID + Password + Employee_Name + Position + Gender + Enter_Date + Address + Image + Status
1NF
Di dalam entitas Employee tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF
2NF
Di dalam entitas Employee, tidak terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2NF.
3NF
Di dalam entitas Employee, dari semua atribut yang ada pada entitas tersebut ditemukan transitive dependency
yaitu position sehingga diperlukan normalisasi 3NF. Employee
@Employee_ID + Password + Employee_Name + Gender + Enter_date + Address + Image + Status + #Position
PositionEMP @Position
9. EmployeeEmail
Employee_ID (Primary Key) (Partial Dependency) Email (Primary Key)
@#Employee_ID + @Email 1NF
Di dalam entitas EmployeeEmail tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas EmployeeEmail, terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2N menjadi :
EmployeeEmail
@#Employee_ID + @Email Employee
@ Employee _ID 3NF
Di dalam entitas EmployeeEmail, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency sehingga tidak diperlukan normalisasi 3NF.
10.EmployeePhone
Employee_ID (Primary Key) (Partial Dependency) Phone (Primary Key)
1NF
Di dalam entitas EmployeePhone tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas EmployeePhone, terdapat atribut yang merupakan partial dependency sehingga tidak diperlukan normalisasi 2N menjadi :
EmployeePhone
@#Employee_ID + @Phone Employee
@ Employee _ID 3NF
Di dalam entitas EmployeePhone, semua atribut yang ada pada entitas tersebut tidak ditemukan transitive dependency sehingga tidak diperlukan normalisasi 3NF.
11.Invoice
Invoice_ID (Primary Key)
Employee_ID (Partial Dependency) Invoice_Date
Invoice_Due_Date Revision
Information
@Invoice_ID + #Employee_ID + Invoice_Date + Invoice_Due_Date + Revision + Information
1NF
Di dalam entitas Invoice tidak terdapat atribut yang mengalami repeating group sehingga tidak diperlukan normalisasi 1NF.
2NF
Di dalam entitas Invoice, terdapat atribut yang merupakan partial dependency sehingga diperlukan normalisasi 2NF menjadi :
Invoice
@Invoice_ID + #Employee_ID + Invoice_Date + Invoice_Due_Date + Revision + Information
Employee @Employee_ID 3NF