62
BAB 4 PERANCANGAN DAN IMPLEMENTAS I
4.1 Diagram Alir Data Berikut ini adalah diagram konteks dari sistem yang akan dirancang
Gambar 4.1 Diagram Konteks Sistem Pelayanan Pegawai PT. Prisma Global S olusi
63
Gambar 4.2 Diagram Nol S istem Pelayanan Pegawai PT. Prisma Global S olusi
64 4.2 Perancangan Basis Data Perancangan basis data yang dilakukan pada PT. Prisma Global Solusi dibagi kedalam tiga tahapan utama. Yaitu : 1. Perancangan basis data konseptual ( Conceptual Database Design ). 2. Perancangan basis data logikal ( Logical Database Design ). 3. perancangan basis data fisikal ( Phyisical Database Design ).
4.2.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 konseptual, diantaranya : 1. Identifikasi tipe entitas 2. Identifikasi tipe relasional 3. Identifikasi dan asosiasi atribut suatu entitas 4. Identifikasi primary key setiap entitas
4.2.1.1 Mengidentifikasi Tipe Entiti Tujuan dari tahapan ini adalah untuk menentukan entitas utama yang di butuhkan.
65 Tabel 4.1 Tabel Data Dictionary Entity Name Employee
Description Informasi umum
Aliases Pegawai
Occurences Seseorang yang
mengenai
bekerja pada
pegawai secara
perusahaan
lengkap.
Division
Privilege
Informasi mengenai
Divisi
Setiap pegawai bekerja
divisi yang terdapat
pada divisinya masing-
pada perusahaan
masing
Informasi mengenai
HakAkses
Setiap memiliki hak
hak akses dari setiap
akses yang berbeda-
pegawai pada
beda sesuai wewenang
perusahaan
yang diberikan perusahaan.
Absence
Informasi mengenai
Absen
absensi yang
Setiap pegawai mengisi absen
dilakukan pegawai secara lengkap LeaveRequest
Informasi mengenai
PermohonanCuti
Setiap pegawai
permohonan
mengajukan
cuti/ijin/sakit dari
permohonan
setiap pegawai
cuti/ijin/sakit ke
66 perusahaan LeaveEntitle
Informasi mengenai
JatahCuti
Setiap pegawai
jatah cuti dari setiap
memiliki jatah cutinya
pegawai
masing-masing selama setahun
AllowClaim
NonAllowClaim
Informasi mengenai
AllowanceClaim
Informasi mengenai
detail pengajuan
Detail
pengajuan claim oleh
claim oleh pegawai
pegawai yang
yang berhubungan
berhubungan dengan
dengan absensi
absensi secara lengkap
Informasi mengenai
NonAllowanceCla Informasi mengenai
detail pengajuan
imDetail
pengajuan claim oleh
claim oleh pegawai
pegawai yang tidak
yang tidak
berhubungan dengan
berhubungan dengan
absensi secara lengkap
absensi Project
ProjectStatus
Informasi mengenai
Proyek
Setiap proyek
proyek yang sedang
ditangani oleh pegawai
ditangani oleh
yang ada dalam
perusahaan
perusahaan
Informasi mengenai status proyek
StatusProyek
Setiap proyek memiliki status yang ditentukan oleh
67 perusahaan sesuai dengan perkembangannya Client
Informasi mengenai
Klien
klien dari perusahaan
Perusahaan menangani proyek yang diberikan oleh klien
Stage
Informasi mengenai
Tahapan
Setiap proyek
semua kemungkinan
memiliki pilihan
tahapan-tahapan yang
tahapan-tahapan
ada pada project
pelaksanaan proyek yang disediakan oleh perusahaan
News
Holiday
Informasi mengenai
Berita
Perusahaan
berita-berita yang
menyediakan berita-
berkaitan dengan
berita yang berkaitan
perusahaan
dengan perusahaan
Informasi mengenai
HariLibur
daftar hari libur
Perusahaan menetapkan hari libur setiap tahunnya
AbsenceType
Informasi mengenai
JenisAbsen
Perusahaan
jenis absensi beserta
menetapkan besarnya
besarnya ganti rugi
ganti rugi dari claim
yang berhubungan
sesuai dengan jenis
68 dengan absen tersebut LeaveType
Informasi mengenai
absensi yang ada JenisCuti
Pegawai memilih jenis
jenis cuti yang bisa
cuti dalam pengajuan
diambil pegawai
cutinya sesuai kebutuhan
4.2.1.2 Mengidentifikasikan Tipe Relasional Langkah ini bertujuan untuk mengidentifikasikan pentingnya relasi yang ada antara tipe entiti.
Tabel 4.2 Tabel Kamus Data yang Menunjukkan Relasi Antar Tipe Entiti Entity Name Employee
Multiplicity
Relationship
Entity Name
Multiplicity
1..1
M emiliki
Privilege
1..1
1..1
M engisi
Absence
1..*
1..1
M emeriksa
Absence
1..*
1..1
LM empunyai
LeaveEntitle
1..*
1..1
M emohon
LeaveRequest
0..*
1..1
M engijinkan
LeaveRequest
0..*
1..1
AM engajukan
AllowClaim
0..*
1..1
AM enyetujui
AllowClaim
0..*
1..1
NM engajukan
NonAllowClaim
0..*
1..1
NM enyetujui
NonAllowClaim
0..*
1..*
M empunyai
Division
1..1
69 1..*
M enangani
Project
1..*
1..1
M engatur
Project
1..*
1..1
M empublikasikan News
0..*
0..*
M engontrol
Employee
0..*
Absence
1..1
M enghasilkan
AllowClaim
0..1
LeaveRequest
0..*
Dipengaruhi
Holiday
0..*
1..*
LM empengaruhi
LeaveEntitle
1..1
Client
1..1
M emberikan
Project
1..*
Project
0..*
M engandung
Stage
1..*
1..1
Dipilih dalam
Absence
1..*
Stage
1..1
StDipilih dalam
Absence
1..*
AbsenceType
1..1
Dimiliki
Absence
1..*
LeaveType
1..1
LDimiliki
LeaveRequest
1..*
ProjectStatus
1..1
PDimiliki
Project
1..*
70
Gambar 4.4 Entity Relationship Diagram (ERD) Model Data Konseptual
71 4.2.1.3 Identifikasi dan Asosiasi Atribut Suatu Entiti Langkah ini bertujuan untuk mengasosiasikan atribut dengan tipe entiti atau tipe relasi yang sesuai.
Tabel 4.3 Tabel Identifikasi Atribut dan Domain Atribut Entity Employee Employee Data type and Attribute
Description
Length
Multi NULLS
valued
Username
Username dari pegawai
Varchar (30)
NO
NO
Password
Password dari pegawai
Varchar (40)
NO
NO
EmployeeID
Kode dari pegawai yang unik
Char (8) must
NO
NO
be
[current
year][/][001999] Name
Nama lengkap dari pegawai
Varchar (40)
YES
NO
Gender
Jenis Kelamin dari Pegawai
Char (1) must
YES
NO
be one of ‘M ’ or‘F’ Title
Jabatan dari pegawai
Varchar (30)
YES
NO
Address
Alamat tempat tinggal pegawai
Varchar (100)
YES
NO
Phone
Nomor telepon pegawai yang Varchar (15)
YES
YES
dapat dihubungi
72 OfficialEmail
Email kantor setiap pegawai
Varchar (50)
YES
NO
PersonalEmail Email pribadi setiap pegawai
Varchar (50)
YES
YES
BirthDate
Date
YES
NO
YES
NO
YES
NO
YES
NO
YES
NO
YES
NO
Tanggal lahir dari pegawai format (yyyy-mm-dd)
Color
Simbol warna yang mewakili Char (7) must setiap
pegawai
untuk be [#][A-F or
digunakan pada gant chart 0-9] [A-F or 0-9] [A-F or
project
0-9] [A-F or 0-9] [A-F or 0-9] [A-F or 0-9] StartofService
Tanggal pegawai mulai bekerja Date pada perusahaan format (yyyy-mm-dd)
EmpStatus
Status
pegawai
yang Boolean
menandakan pegawai masih aktif atau tidak NPWP
Nomor Pokok Wajib Pajak dari Varchar (20) pegawai
EmpNotes
Catatan umum dari pegawai
Varchar (100)
73 ResignDate
Tanggal keluar pegawai dari Date
YES
NO
perusahaan (tidak aktif) format (yyyy-mm-dd)
Tabel 4.4 Tabel Identifikasi Atribut dan Domain Atribut Entity Division Division Data type and Attribute
DivisionID
Description
Kode divisi dari setiap Char (3) must pegawai
DivisionName
Length
NULLS
valued
NO
NO
NO
NO
be D01-D99
Nama divisi yang ada di Varchar (30) perusahaan
Multi
74 Tabel 4.5 Tabel Identifikasi Atribut dan Domain Atribut Entity Privilege Privilege Multi
Data type and Attribute
VerifierAbsence
Description
Hak
pegawai
memverifikasi
Length
dalam Boolean
NULLS
valued
NO
NO
YES
YES
YES
YES
NO
NO
Absent
pegawai lainnya AppLeave
Hak
pegawai
dalam Boolean
memverifikasi pengajuan cuti/ijin/sakit pegawai
lainnya
(ditentukan per divisi) AppClaim
Hak
pegawai
dalam Boolean
memverifikasi pengajuan pegawai
claim lainnya
(ditentukan per divisi ) Payer
Hak
pegawai
dalam Boolean
melakukan pembayaran claim
pegawai
yang
telah
disetujui
oleh
approver claim
75 NewsEditor
Hak pegawai dalam me- Boolean
NO
NO
NO
NO
NO
NO
NO
NO
manage berita yang akan ditampilkan di website perusahaan HolidayEditor
Hak
pegawai
dalam Boolean
menetapkan hari libur yang
berlaku
di
perusahaan ProjectManager
Hak
pegawai
dalam Boolean
menentukan segala hal yang
berhubungan
dengan
proyek
ditangani
yang oleh
perusahaan SuperUser
Hak pegawai dalam
Boolean
Tabel 4.6 Tabel Identifikasi Atribut dan Domain Atribut Entity LeaveRequest LeaveRequest Data type and Attribute
LeaveRequestID
Description
Multi
Length
NULLS
valued
Kode yang terdapat
Char (7) must
NO
NO
pada pengajuan
be
cuti/ijin/sakit pegawai
year][/][001-
[L][current
76 999] (L08/001) Tanggal mulai dari LStartDate
cuti/ijin/sakit yang
Date
NO
NO
Date
NO
NO
Int (2)
YES
NO
Varchar (50)
YES
NO
Date
NO
NO
Date
NO
YES
NO
NO
diajukan pegawai Tanggal berakhirnya LEndDate
cuti/ijin/sakit yang diajukan pegawai Lama cuti/ijin/sakit
Duration yang diajukan pegawai Keterangan tambahan tentang segala sesuatu LeaveNotes
yang berhubungan dengan cuti/ijin/sakit yang diajukan pegawai Tanggal pengajuan
LRequestDate cuti/ijin/sakit pegawai Tanggal kapan cuti LeaveDate diambil
LRequestStatus
Keterangan yang
Char (1) must
menunjukkan apakah
be one of ‘1’,
pengajuan cuti/ijin/sakit
‘0’ or ‘2’
tersebut diterima atau ditolak (rejected or
77 approved)
Alasan ditolaknya LeaveReason
pengajuan cuti/ijin/sakit
Varchar (50)
YES
NO
Datetime
YES
NO
pegawai Tanggal diputuskannya pengajuan cuti/ijin/sakit DecisionDate diterima oleh perusahaan atau tidak
Tabel 4.7 Tabel Identifikasi Atribut dan Domain Atribut Entity LeaveEntitle LeaveEntitle Data type and Attribute
Description
Length
Multi NULLS
valued
Char (10) must be [E] [current Kode unik yang year] [current EntitleID
NO
NO
Int (2)
NO
NO
Year (4)
NO
NO
berkaitan dengan month] [current history cuti pegawai day] [/][01-99] (080101/01) Lama cuti yang pernah
Duration diajukan pegawai YearEntitle
Tahun yang berkaitan
78 dengan pengajuan dan penambahan cuti pegawai Varchar (10)
EntitleStatus
Keterangan apakah data
must
yang di input berupa
be one of ‘Add’
‘add’ or ‘leave’
or‘Leave’
NO
NO
NO
NO
Waktu yang menunjukkan kapan Datetime
EntitleActualDate data pada tabel leave entitle dimasukkan
Tabel 4.8 Tabel Identifikasi Atribut dan Domain Atribut Entity Absence Absence Data type and Attribute
Description
Length
Multi NULLS
valued
Char (10) must be [A] [current year][current AbsenceID
NO
Kode absen month][current day][/] [01-99] (A080101/01)
NO
79 Tanggal dan waktu AbsDate
pegawai melakukan
Date
NO
NO
Varchar (50)
YES
NO
NO
NO
YES
NO
YES
NO
absen ke perusahaan Keterangan tambahan yang berhubungan AbsenceNotes dengan absen yang dilakukan oleh pegawai Keterangan yang Char (1) must menunjukkan apakah be one of ‘0’, AbsenceStatus
absensi pegawai ‘1’ or ‘2’ diterima atau ditolak (rejected or verified) Keterangan mengenai Char (1) ) must status claim pegawai be one of ‘0’ yang berhubungan or‘1’ or ‘2’
AbsClaimStatus dengan absensi
or‘3’ (rejected, claimed, requested, paid ) Alasan ditolaknya AbsenceReason
absensi yang diisi oleh pegawai
Varchar (50)
80
Status yang menandakan absen yang dilakukan BackDate
Boolean
NO
NO
DateTime
NO
NO
untuk hari yang telah lewat (masa lampau) Tanggal dan waktu AbsActualDate
pegawai melakukan absent.
Tabel 4.9 Tabel Identifikasi Atribut dan Domain Atribut Entity AllowClaim AllowClaim Data type and Attribute
Description
Length
Char (9) must Kode claim pengajuan
be [C] [current
pegawai
year][/] [001-
Multi NULLS
valued
NO
NO
NO
NO
ClaimID
999] Besarnya jumlah ganti rugi untuk sesuai dengan jenis absensi Decimal (10,2)
AllowClaimPrice yang diajukan pegawai, yang ditetapkan oleh perusahaan
81 Tanggal pengajuan CRequestDate
Datetime
NO
NO
NO
NO
YES
NO
claim oleh pegawai Status claim yang telah diajukan karyawan yang Char (1) must ditentukan oleh
be one of ‘0’,
Approver Claim
‘1’ , ‘2’ or ‘3’
CRequestStatus
(rejected, pending, claimed dan paid) Alasan ditolaknya ClaimReason
pengajuan claim
Varchar (50)
pegawai
Tabel 4.10 Tabel Identifikasi Atribut dan Domain Atribut Entity NonAllowClaim NonAllowClaim Data type and Attribute
Description
Length
Char (9) must be
Multi NULLS
valued
NO
NO
NO
NO
[C] [current Kode claim pengajuan ClaimID
year][/] [001pegawai 999] (C2008/001) Urutan dari claim yang
Sequence diajukan
Integer
82 Keterangan dari claim NACDescription
non allowance yang
Varchar (50)
NO
NO
Decimal (10,2)
NO
NO
Datetime
NO
NO
NO
NO
YES
NO
diajukan Jumlah harga dari claim Price yang diajukan Tanggal pengajuan CRequestDate claim oleh pegawai Status claim yang telah diajukan karyawan yang
Char (1) must
ditentukan oleh
be one of ‘0’,
Approver Claim
‘1’ , ‘2’ or ‘3’
CRequestStatus
(rejected, pending, claimed dan paid) Alasan ditolaknya ClaimReason
pengajuan claim
Varchar (50)
pegawai
Tabel 4.11 Tabel Identifikasi Atribut dan Domain Atribut Entity Project Project Data type and Attribute
Description
Length
Kode dari proyek yang
Char (9) must be
ditangani oleh
[P] [current
ProjectID
Multi NULLS
NO
valued
NO
83 perusahaan
year][/] 001999] (P2008/001)
Nama proyek yang ProjectName
ditangani oleh
Varchar (50)
NO
NO
Boolean
NO
NO
Date
YES
NO
perusahaan Status yang menandakan apakah proyek yang IsFinished
ditangani telah selesai atau masih dalam proses pengerjaan Tanggal selesainya
CompletedDate pengerjaan proyek
Tabel 4.12 Tabel Identifikasi Atribut dan Domain Atribut Entity ProjectStatu s ProjectStatus Data type Attribute
Description
and
Multi NULLS
Length
StatusID
Kode status proyek
Char (2)
yang ditangani
[S][1-9]
valued
NO
NO
NO
NO
perusahaan StatusProjectDescription Keterangan
Varchar (30)
84 mengenai status proyek yang ditangani oleh perusahaan (pending, active, cancelled, completed)
Tabel 4.13 Tabel Identifikasi Atribut dan Domain Atribut Entity Client Client Data type and Attribute
ClientID
Description
Length
Kode dari klien yang
Char (6) must be
berhubungan dengan
[CL][0001-
perusahaan
9999]
Multi NULLS
valued
NO
NO
Varchar (30)
NO
NO
Varchar (15)
NO
YES
Varchar (15)
NO
YES
Varchar (50)
NO
YES
Nama dari klien yang ClientName
berhubungan dengan perusahaan Telepon dari klien yang
ClientPhone dapat dihubungi Fax dari klien yang ClientFax dapat dihubungi ClientEmail
Email dari klien yang
85 masih aktif Alamat / lokasi tempat ClientAddress
Varchar (100)
NO
NO
klien berada
Tabel 4.14 Tabel Identifikasi Atribut dan Domain Atribut Entity Stage Stage Data type and Attribute
StageID
Description
Length
Kode stage dari proyek
Char (4) must
yang ditangani
be [SG] [01-99]
Multi NULLS
valued
NO
NO
NO
NO
perusahaan Nama stage dari proyek StageDescription yang ditangani
Varchar (30)
perusahaan
Tabel 4.15 Tabel Identifikasi Atribut dan Domain Atribut Entity News News Data type and Attribute
NewsID
Description
Length
Kode berita yang ingin
Char (9) must be
ditampilkan oleh
[N][current
perusahaan
year][/][current
Multi NULLS
NO
valued
NO
86 month][/][0199] (N08/01/01) Kode berita yang ingin Title
ditampilkan oleh
Varchar (30)
NO
NO
Varchar (300)
NO
NO
Date
NO
NO
Date
NO
NO
perusahaan Isi dari berita yang ingin News
ditampilkan oleh perusahaan Tanggal ditampilkannya
InsertedDate
berita di dalam website perusahaan Tanggal batas akhir
DueDate ditampilkannya berita
Tabel 4.16 Tabel Identifikasi Atribut dan Domain Atribut Entity Holiday Holiday Data type and Attribute
Description
Multi
Length
NULLS
Char (7)
NO
NO
Date
NO
NO
valued
Kode unik yang HolidayID
berkaitan dengan hari libur perusahaan Tanggal libur pegawai
HolidayDate yang ditetapkan
87 perusahaan dalam setahun Peristiwa yang berkaitan Event
dengan hari libur
Varchar (30)
NO
NO
perusahaan
Tabel 4.17 Tabel Identifikasi Atribut dan Domain Atribut Entity AbsenceType AbsenceType Data type and Attribute
AbsTypeID
Description
Kode yang berkaitan dengan jenis absensi
Multi
Length
NULLS
Char (1)
NO
NO
Varchar (20)
NO
NO
Decimal (10,2)
YES
NO
valued
Keterangan mengenai AbsTypeDescription jenis absensi yang dipilih oleh pegawai Besarnya ganti rugi ClaimPrice
sesuai dengan jenis absennya
Tabel 4.18 Tabel Identifikasi Atribut dan Domain Atribut Entity LeaveType LeaveType
Attribute
Description
Data type and
Multi NULLS
Length
LeaveTypeID
Kode yang berkaitan dengan jenis cuti
Char (1)
NO
valued
NO
88 Keterangan mengenai LeaveTypeDescription jenis cuti yang dipilih
Varchar (20)
oleh pegawai
4.2.1.5 Identifikasi Kandidat dan Primary Key setiap Entiti Nama Entity
Candidate key
Primary Key
Employee
EmployeeID
EmployeeID
Username Telephone Email Division
DivisionID
DivisionID
Privilege
-
-
Absence
AbsenceID
AbsenceID
LeaveRequest
LeaveRequestID
LeaveRequestID
Leave
LeaveRequestID
LeaveRequestID
LeaveEntitle
EntitleID
EntitleID
AllowClaim
ClaimID
ClaimID
NonAllowClaim
ClaimID
ClaimID
Project
ProjectID
ProjectID
ProjectStatus
StatusID
StatusID
Client
ClientID
ClientID
Stage
StageID
StageID
News
NewsID
NewsID
Holiday
HolidayID
HolidayID
AbsenceType
AbsTypeID
AbsTypeID
LeaveType
LeaveTypeID
LeaveTypeID
NO
NO
89
AbsenceType AbsenceTypeID 1..1
Claim ID 0 ..*
0..*
1..1 1 ..*
Stage StageID 1..* Pdimiliki
Absence Dipilih dalam
1.. * 1..*
Division
1..1
1..*
memp unyai
1..*
mem berikan 1..1
AMengajukan Lmemp unyai
Enti tleID
mengijinkan
Le aveE ntitle
memohon
1..*
0..*
0 ..*
Lmem pengaruh i
1..1
News 0 ..*
memiliki
Privilege
LeaveReq uest 0..* Le aveReque stID
Holiday
0. .*
1. .* Ldimiliki
0..*
Clien tID
1..*
1 ..1
0..1
Cli ent
Pro jectID
1..* 1 ..1 1..1 1..1 1. .* menangani 1..1 mem publikasikan 1.. 1 1.. 1 Em ployee 1.. 1 Em ployeeID 1.. 1 1. .1 1 ..1 1..1 1..1
AMenyetujui
ProjectSt at us
1. .*
P roject mengatur
mengisi
Di visionID
1..1
Stat usID
0.. * memer iksa
NMengajukan
AbsenceID NMenyetujui
0..*
0..*
memiliki
Claim ID
StDipilih dalam
NonAllowClaim menghasilkan
AllowCl aim
dimiliki
0..1
dipe ngaruhi
HolidayID 1..1
Lea veType LeaveType ID
Gambar 4.5 Conceptual Data Model Entity Relationship Diagram (ERD) with Primary Key
NewsID
90 4.2.1.6 Pengunaan Enhanced Modeling Concept Tahap ini bertujuan untuk mempertimbangkan penggunaan Enhanced Modeling Concept, dimana didalamnya termasuk spesialisasi / generalisasi, agregasi, dan komposisi
A bs enc eTy pe A bs enceT y peID 1..1
1..1
0..* M enyetujui
Mengajukan m em iliki
0..*
Div isio nID
1..1
1..1
1..* m enangani
1..1
Lm em puny ai
memohon
m engijinkan
1..1
mem publikasikan
1..*
E mploy eeID
1..1
1..*
LeaveE nt itl e E nt itleI D 0..1
0..* 0..*
N ews
Leav eReq uest
1..1
Lm em pengaruhi
Leav eReques t ID 0..*
H olidayI D
0..*
dipengaruhi
1..* Ldimiliki
0..*
N ews ID H oliday
m em berik an 1..1
E mplo yee
1..1
0..*
1..*
m engatur 1. .*
P roje ctS ta tus
1..*
P rojec tI D 1..*
1..1
St atu sID
P rojec t
1..1 1..1
1..1
memiliki
1..*
m em punyai
1..1
1..1
Dipilih dalam
Div is ion
1..1
M anager P riv ilege
1..*
mengisi
0..*
S tageI D P dim ilik i
A bs enc eID memer iksa
Claim ID
1..*
S ta ge
A bs enc e
1..*
C laimR eques t
StDipilih dalam
menghas ilkan
N onA llowC laim
dim iliki
0..1
A llow Claim
1..1
Leav eT ype Leav eTy peI D
Gambar 4.6 Enhanced Entity Relationship Diagram (EERD)
C lient C lientI D
91 4.2.1.7 Validasi Model Konseptual Lokal Terhadap Transaksi Pengguna Tahapan ini bertujuan untuk memastikan bahwa model konseptual lokal yang dibuat mendukung transaksi-transaksi yang dibutuhkan oleh pengguna. Pendekatan yang dipakai adalah menggunakan jalur arah transaksi (pathways) yang digambarkan dalam diagram ER untuk memeriksa terpenuhinya setiap transaksi. Adapun transaksi tersebut adalah sebagai berikut. A. M enampilkan data absensi pegawai B. M enampilkan data-data perkembangan proyek yang ditangani pegawai C. M enampilkan data-data pegawai D. M enampilkan berita-berita yang dipublikasikan oleh pegawai E. M enampilkan tanggal status cuti pegawai F. M enampilkan data-data claim pegawai G. M enampilkan history cuti dan balance cuti pegawai Dari transaksi-transaksi tersebut, maka dengan menggunakan gambar 4.5. (Diagram ER yang menggambarkan relasi antar entiti dengan penambahan primary key) akan dapat ditentukan pathways dari transaksi-transaksi yang ada. Sehingga model konseptual untuk mendukung transaksi pemakai dengan menggunakan pathways dapat dilihat pada gambar sebagai berikut :
92
Gambar 4.7 Model Konseptual yang Mendukung Transaksi User dengan Menggunakan Pathways
93 4.2.2 Perancangan Basis Data Logikal Pada tahapan ini, model data konseptual yang telah dibuat akan dipetakan ke dalam model data logikal. Keseluruhan proses dari pengembangan pada tahap ini adalah penggunaan teknik normalisasi untuk menguji kebenaran model data logikal. Kemudian dari model data logikal lokal akan dikombinasikan menjadi model data logikal global tunggal. Adapun langkah-langkah dalam tahapan ini adalah sebagai berikut :
4.2.2.1 Menghilangkan Fitur yang Tidak Kompatibel Tujuan pada langkah ini adalah untuk memperbaiki model data konseptual lokal dengan menghilangkan fitur yang tidak kompatibel dengan model relasional. Cara yang akan digunakan dalam langkah ini adalah dengan menghilangkan hubungan many-to-many (*:*) binary relationship types. Hasilnya dapat dilihat pada gambar diagram ER sebagai berikut : 1. M enghilangkan (*:*) many to many binary relationship
Employee
1..*
M enangani
1..*
EmployeeID
Project ProjectID
EmployeeID ProjectID
(a)Employee menangani Project *:* relationship
94
T erlibat dalam
Employee EmployeeID
0..*
1..1
ProjectMember EmployeeID ProjectID
Ditangani
1..*
Project
1..1
ProjectID
(b)Dekomposisi relasi (a) ke dalam 2 relasi (terlibat dalam dan ditangani)
LeaveRequest
Dipengaruhi
0..*
Holiday
0..*
LeaveRequestID
HolidayID
LeaveRequestID HolidayID
(c)LeaveRequest dipengaruhi Holiday *:* relationship
LeaveRequest
Dipengaruhi
LeaveRequestID 1..1
0..*
LeaveHoliday
Dimasukkan dalam
LeaveRequestID HolidayID
0..*
Holiday HolidayID
1..1
(d) Dekomposisi relasi (c) kedalam 2 relasi (dipengaruhi dan dimasukkan dalam)
95
Project
M engandung
0..*
Stage
1..*
ProjectID
StageID
ProjectID StageID
(e) Project mengandung Stage *:* relationship Memiliki Project
ActivityPlan
ProjectID 1..1
1..*
ProjectID StageID Sequence StartDate EndDate
Digunakan dalam
0..*
Stage 1..1
StageID
(f) Dekomposisi relasi (e) ke dalam 2 relasi (memiliki dan digunakan dalam)
96 2. M enghilangkan
atribut multivalue Employee Employee EmployeeID Phone [0…*] PersonalEmail[0…*]
(a) Entiti Employee dengan atribut Phone dan PersonalEmail yang multivalue
Employee
EmpPhone
EPMempunyai
EmployeeID
EmpPhoneNum 1..1
0..*
Employee
PersonalEmail
EEMempunyai
EmployeeID
EmpPersEmail 1..1
0..*
LeaveRequest LeaveRequest LeaveRequestID LeaveDate[1…*]
(b) Entiti LeaveRequest dengan atribut LeaveDate yang multivalue LeaveRequest
Leave
Dimiliki
LeaveRequestID
LeaveDate 1..1
1..*
97 Client
Client ClientID ClientPhone [0…*] ClientEmail[0…*] ClientFax[0…*] (c) Entiti Client dengan atribut ClientPhone, ClientFax dan ClientEmail yang multivalue Client
CPMempunyai
ClientID
ClientPhone ClientPhoneNum
1..1
Client
0..*
ClientEmail
CMempunyai
ClientID
ClientEmailAddr 1..1
Client
0..*
CFMempunyai
ClientID
ClientFax ClientFaxNum
1..1
0..*
98 4.2.2.2 Mendapatkan Relasi untuk Model Data Logikal Lokal 1. One to Many (1:*) binary relationship types Untuk tiap-tiap relasi binary one-to-many (1:*), entity pertama dari relasi tersebut menjadi parent entity, dan entity berikutnya menjadi child entity.
Hubungan Employee mengisi Absence
EmployeeID di-post ke dalam Absence sebagai foreign key
Employee (EmployeeID, Username,
Absence(AbsenceID, EmployeeID,
Password , Name, Gender, Title, Address,
AbsDate , AbsenceNotes, AbsenceStatus,
Phone, OfficialEmail, PersonalEmail,
AbsClaimStatus, AbsenceReason,
BirthDate, Color, StartofService,
BackDate,AbsActualDate)
EmpStatus, NPWP, EmpNotes,
Primary key AbsenceID ,
ResignDate)
Foreign key EmployeeID
Primary key EmployeeID
99 Hubungan Manager mengatur Project EmployeeID di-post ke dalam Project sebagai foreign key
Manager(EmployeeID, Username,
Project(ProjectID, EmployeeID,
Password , Name, Gender, Title,
ProjectName, IsFinished,
Address, Phone, OfficialEmail,
CompletedDate)
PersonalEmail, BirthDate, Color,
Primary key ProjectID
StartofService, EmpStatus, NPWP,
Foreign key EmployeeID
EmpNotes, ResignDate) Primary key EmployeeID
Hubungan Employee memohon LeaveRequest
EmployeeID di-post ke dalam LeaveRequest sebagai foreign key
Employee (EmployeeID, Username,
LeaveRequest(LeaveRequestID,
Password , Name, Gender, Title,
EmployeeID, LStartDate, LEndDate,
Address, Phone, OfficialEmail,
Duration, LeaveNotes, LRequestDate,
PersonalEmail, BirthDate, Color,
LeaveDate, LRequestStatus,
StartofService, EmpStatus, NPWP,
LeaveReason, DecisionDate)
EmpNotes, ResignDate)
Primary key LeaveRequestID
Primary key EmployeeID
Foreign key EmployeeID
100 Hubungan Employee LM empunyai LeaveEntitle EmployeeID di-post ke dalam LeaveRequest sebagai foreign key
Employee (EmployeeID, Username,
LeaveEntitle (EmployeeID, EntitleID,
Password , Name, Gender, Title,
LeaveRequestID , Duration, YearEntitle,
Address, Phone, OfficialEmail,
EntitleStatus, EntitleActualDate)
PersonalEmail, BirthDate, Color,
Primary key EntitleID,
StartofService, EmpStatus, NPWP,
Foreign key EmployeeID,
EmpNotes, ResignDate)
LeaveRequestID
Primary key EmployeeID
Hubungan Employee mengajukan ClaimRequest EmployeeID di-post ke dalam ClaimRequest sebagai foreign key
Employee (EmployeeID, Username,
ClaimRequest (ClaimID, EmployeeID,
Password , Name, Gender, Title,
ClaimType, CRequestDate,
Address, Phone, OfficialEmail,
CRequestStatus, ClaimReason)
PersonalEmail, BirthDate, Color,
Primary key ClaimID
StartofService, EmpStatus, NPWP,
Foreign key EmployeeID
EmpNotes, ResignDate) Primary key EmployeeID
101 Hubungan Manager mempublikasikan News EmployeeID di-post ke dalam News sebagai foreign key
Employee (EmployeeID, Username,
News (NewsID, EmployeeID, Title,
Password , Name, Gender, Title,
News, InsertedDate, DueDate)
Address, Phone, OfficialEmail,
Primary key NewsID
PersonalEmail, BirthDate, Color,
Foreign key EmployeeID
StartofService, EmpStatus, NPWP, EmpNotes, ResignDate) Primary key EmployeeID
Hubungan Employee mempunyai Division
DivisionID di-post ke dalam Employee sebagai foreign key
Division(DivisionID, DivisionName)
Employee (EmployeeID, DivisionID ,
Primary key DivisionID
Username, Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate) Primary key EmployeeID Foreign key DivisionID
102 Hubungan Client memberikan Project ClientID di-post ke dalam Project sebagai foreign key
Client (ClientID, ClientName,
Project(ProjectID, ClientID ,
ClientPhone, ClientFax, ClientEmail,
ProjectName, IsFinished,
ClientAddress)
CompletedDate)
Primary key ClientID
Primary key ProjectID Foreign key ClientID
Hubungan LeaveEntitle Lmempengaruhi LeaveRequest
LeaveRequestID di-post ke dalam LeaveRequest sebagai foreign key
LeaveRequest(LeaveRequestID,
LeaveEntitle (LeaveRequestID ,
EmployeeID, LStartDate, LEndDate,
EmployeeID, EntitleID, Duration,
Duration, LeaveNotes, LRequestDate,
YearEntitle, EntitleStatus,
LeaveDate, LRequestStatus,
EntitleActualDate)
LeaveReason, DecisionDate)
Primary key EntitleID,
Primary key LeaveRequestID
Foreign key EmployeeID,
Foreign key EmployeeID
LeaveRequestID
103 Hubungan Project dipilih dalam Absence ProjectID di-post ke dalam Absence sebagai foreign key
Project(ProjectID, EmployeeID,
Absence(AbsenceID, ProjectID,
ProjectName, IsFinished,
EmployeeID, AbsDate , AbsenceNotes,
CompletedDate)
AbsenceStatus, AbsClaimStatus,
Primary key ProjectID
AbsenceReason,
Foreign key EmployeeID
BackDate,AbsActualDate) Primary key AbsenceID Foreign key EmployeeID, ProjectID
Hubungan Stage Sdipilih dalam Absence StageID di-post ke dalam Absence sebagai foreign key
Stage(StageID, StageDescription)
Absence(AbsenceID, StageID,
Primary key StageID
ProjectID, EmployeeID, AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus, AbsenceReason, BackDate,AbsActualDate) Primary key AbsenceID Foreign key EmployeeID, ProjectID, StageID
104 Hubungan AbsenceType dimiliki Absence AbsT ypeID di-post ke dalam Absence sebagai foreign key
AbsenceType(AbsTypeID,
Absence(AbsenceID, AbsTypeID,
AbsTypeDescription, ClaimPrice)
StageID, ProjectID, EmployeeID,
Primary key AbsTypeID
AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus, AbsenceReason, BackDate,AbsActualDate) Primary key AbsenceID Foreign key EmployeeID, ProjectID, StageID
Hubungan LeaveType Ldimiliki LeaveRequest LeaveTypeID di-post ke dalam LeaveRequest sebagai foreign key
LeaveType(LeaveTypeID,
LeaveRequest(LeaveTypeID ,
LeaveTypeDescription)
LeaveRequestID, EmployeeID,
Primary key LeaveTypeID
LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LeaveDate, LRequestStatus, LeaveReason, DecisionDate) Primary key LeaveRequestID Foreign key EmployeeID, LeaveTypeID
105
Hubungan Employee terlibat dalam ProjectMember Hubungan Project ditangani ProjectMember
Employee (EmployeeID, Username, Password , Name, Gender, Title, Address, Phone, OfficialEmail, PersonalEmail, BirthDate, Color, StartofService, EmpStatus, NPWP,
Project(ProjectID, ProjectName,
EmpNotes, ResignDate)
IsFinished, CompletedDate)
Primary key EmployeeID
Primary key ProjectID
ProjectMember (EmployeeID, ProjectID) Foreign key EmployeeID references Employee(EmployeeID) Foreign key ProjectID references Project(ProjectID)
106 Hubungan LeaveRequest dipengaruhi LeaveHoliday Hubungan Holiday dimasukkan dalam LeaveHoliday
LeaveRequest(LeaveRequestID, LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LeaveDate, LRequestStatus, LeaveReason,
Holiday (HolidayID, HolidayDate,
DecisionDate)
Event)
Primary key LeaveRequestID
Primary key HolidayID
LeaveHoliday (LeaveRequestID, HolidayID) Foreign key LeaveRequestID references LeaveRequest(LeaveRequestID) Foreign key HolidayID references Holiday(HolidayID)
107 Hubungan Project Pmemiliki ActivityPlan Hubungan Stage digunakan dalam ActivityPlan
Project(ProjectID, ProjectName, IsFinished, CompletedDate)
Stage(StageID, StageDescription)
Primary key ProjectID
Primary key StageID
ActivityPlan (ProjectID, StageID, Sequence, StartDate, EndDate) Foreign key ProjectID references Project(ProjectID) Foreign key StageID references Stage (StageID)
Hubungan Employee EPmemiliki EmpPhone EmployeeID di-post ke dalam EmpPhone sebagai foreign key
Employee (EmployeeID, Username,
EmpPhone (EmployeeID ,
Password , Name, Gender, Title,
EmpPhoneNum,)
Address, OfficialEmail, PersonalEmail,
Primary key EmpPhoneNum
BirthDate, Color, StartofService,
Foreign key EmployeeID
EmpStatus, NPWP, EmpNotes, ResignDate) Primary key EmployeeID
108 Hubungan Employee EEmemiliki PersonalEmail EmployeeID di-post ke dalam EmpPhone sebagai foreign key
Employee (EmployeeID, Username, Password , Name, Gender, Title,
PersonalEmail (EmployeeID,
Address, Phone, OfficialEmail,
EmpPersEmail)
BirthDate, Color, StartofService,
Primary key EmpPersEmail
EmpStatus, NPWP, EmpNotes,
Foreign key EmployeeID
ResignDate) Primary key EmployeeID
Hubungan Leave dimiliki LeaveRequest
LeaveRequestID di-post ke dalam Leave sebagai foreign key
LeaveRequest(LeaveRequestID,
Leave (LeaveDate, LeaveRequestID)
LStartDate, LEndDate, Duration,
Primary key LeaveRequestID,
LeaveNotes, LRequestDate,
LeaveDate
LRequestStatus, LeaveReason,
Foreign key LeaveRequestID
DecisionDate) Primary key LeaveRequestID
109 Hubungan Client CPmemiliki ClientPhone ClientID di-post ke dalam ClientPhone sebagai foreign key
Client (ClientID, ClientName,
ClientPhone (ClientID,
ClientFax, ClientEmail, ClientAddress)
ClientPhoneNum)
Primary key ClientID
Primary key ClientPhoneNum Foreign key ClientID
Hubungan Client Cmemiliki ClientEmail ClientID di-post ke dalam ClientEmail sebagai foreign key
Client (ClientID, ClientName,
ClientEmail (ClientID,
ClientPhone, ClientFax, ClientAddress)
ClientEmailAddr)
Primary key ClientID
Primary key ClientEmailAddr Foreign key ClientID
Hubungan Client CFmemiliki ClientFax ClientID di-post ke dalam ClientFax sebagai foreign key
Client (ClientID, ClientName, ClientPhone, ClientEmail,
ClientFax (ClientID, ClientFaxNum)
ClientAddress)
Primary key ClientFaxNum
Primary key ClientID
Foreign key ClientID
110
Hubungan ProjectStatus Pdimiliki Project
StatusID di-post ke dalam Project sebagai foreign key
ProjectStatus (StatusID,
Project (ProjectID, StatusID,
StatusProjectDescription)
ProjectName, IsFinished,
Primary key StatusID
CompletedDate) Primary key ProjectID Foreign key StatusID
2. One toOne (1:1) binary relationship types Mandatory participation di salah satu sisi dari 1:1 relationship
Hubungan Manager memiliki Privilege
EmployeeID di-post ke dalam Privilege sebagai foreign key
Manager (EmployeeID, Username,
Privilege (Payer, EmployeeID ,
Password , Name, Gender, Title,
AppLeave, AppClaim, VerifierAbsence,
Address, Phone, OfficialEmail,
SuperUser, NewsEditor, HolidayEditor,
BirthDate, Color, StartofService,
ProjectManager)
EmpStatus, NPWP, EmpNotes,
Primary key EmployeeID
ResignDate)
Foreign key EmployeeID
Primary key EmployeeID
111 Hubungan Absence menghasilkan AllowClaim AbsenceID di-post ke dalam AllowClaim sebagai foreign key Absence(AbsenceID, AbsDate ,
AllowClaim (AbsenceID , ClaimID,
AbsenceNotes, AbsenceStatus,
AllowClaimPrice,
AbsClaimStatus,
CRequestDate,CRequestStatus,
AbsenceReason,
ClaimReason)
BackDate,AbsActualDate)
Primary key ClaimID
Primary key AbsenceID
Foreign key AbsenceID
3. Superclass / subclass relationship types •
Mandatory participation disjoint constraint
AllowClaim (EmployeeID, AbsenceID, ClaimID, AllowClaimPrice, CRequestDate, CRequestStatus, ClaimReason) Primary key ClaimID Foreign key AbsenceID
NonAllowClaim (EmployeeID, ClaimID, NACDescription, Price, CRequestDate, CRequestStatus, ClaimReason) Primary key ClaimID
112 •
Hubungan optional Manager dengan Employee Manager
IS-A
Employee
EmployeeID MgrEmployeeID
EmployeeID 1..1
1..1
Tabel 4.19 Tabel Hasil Relasi Sebelum Normalisasi
Employee
Employee (EmployeeID, DivisionID , Username, Password , Name, Gender, Title, Address, OfficialEmail, BirthDate, Color, StartofService, EmpStatus, NPWP, EmpNotes, ResignDate) Primary key EmployeeID Foreign key DivisionID references Division (DivisionID)
Manager
Manager (EmployeeID, MgrEmployeeID) Primary key MgrEmployeeID Foreign key EmployeeID references Employee(EmployeeID)
EmpPhone
EmpPhone (EmployeeID , EmpPhoneNum) Primary key EmpPhoneNum Foreign key EmployeeID references Employee (EmployeeID)
113 PersonalEmail
PersonalEmail (EmployeeID, EmpPersEmail) Primary key EmpPersEmail Foreign key EmployeeID references Employee (EmployeeID)
Division
Division (DivisionID, DivisionName) Primary key DivisionID
Privilege
Privilege (MgrEmployeeID, VerifierAbsence, AppLeave, AppClaim, Payer, NewsEditor, HolidayEditor, ProjectManager, SuperUser) Primary key MgrEmployeeID Foreign key MgrEmployeeID references Manager (MgrEmployeeID)
LeaveRequest
LeaveRequest (LeaveRequestID, LeaveTypeID, EmployeeID, MgrEmployeeID LStartDate, LEndDate, Duration, LeaveNotes, LRequestDate, LRequestStatus, LeaveReason, DecisionDate) Primary key LeaveRequestID Foreign key EmployeeID references Employee (EmployeeID) Foreign key LeaveTypeID references
114 LeaveType (LeaveTypeID) Foreign key MgrEmployeeID references Manager (MgrEmployeeID) Leave
Leave (LeaveDate, LeaveRequestID) Primary key LeaveRequestID, LeaveDate Foreign key LeaveRequestID references LeaveRequest (LeaveRequestID)
LeaveEntitle
LeaveEntitle (LeaveRequestID , EmployeeID, EntitleID, Duration, YearEntitle, EntitleStatus, EntitleActualDate) Primary key EntitleID Foreign key EmployeeID references Employee (EmployeeID) Foreign key LeaveRequestID references LeaveRequest (LeaveRequestID)
LeaveHoliday
LeaveHoliday (LeaveRequestID, HolidayID) Foreign key LeaveRequestID references LeaveRequest(LeaveRequestID) Foreign key HolidayID references Holiday(HolidayID)
LeaveType
LeaveType (LeaveTypeID, LeaveTypeDescription)
115 Primary key LeaveTypeID Absence
Absence (AbsenceID, AbsTypeID, StageID, ProjectID, EmployeeID, MgrEmployeeID, AbsDate , AbsenceNotes, AbsenceStatus, AbsClaimStatus, AbsenceReason, BackDate,AbsActualDate) Primary key AbsenceID Foreign key EmployeeID references Employee (EmployeeID) Foreign key ProjectID references Project (ProjectID) Foreign key StageID references Stage (StageID) Foreign key MgrEmployeeID references Manager (MgrEmployeeID) Foreign key AbsTypeID references AbsenceType (AbsTypeID)
AbsenceType
AbsenceType (AbsTypeID, AbsTypeDescription, ClaimPrice) Primary key AbsTypeID
AllowClaim
AllowClaim (AbsenceID, ClaimID, EmployeeID, AllowClaimPrice,
116 CRequestDate, CRequestStatus, ClaimReason) Primary key ClaimID Foreign key AbsenceID references Absence (AbsenceID) Foreign key EmployeeID references Employee (EmployeeID) NonAllowClaim
NonAllowClaim (ClaimID, EmployeeID , Sequence, NACDescription, Price, CRequestDate, CRequestStatus, ClaimReason) Primary key ClaimID Foreign
key
EmployeeID
references
Employee (EmployeeID) Project
Project (ProjectID, MgrEmployeeID , ClientID , StatusID, ProjectName, IsFinished, CompletedDate) Primary key ProjectID Foreign key ClientID references Client (ClientID) Foreign key StatusID references Status (StatusID) Foreign key MgrEmployeeID references Manager (MgrEmployeeID)
117
ProjectMember
ProjectMember (EmployeeID, ProjectID) Foreign key EmployeeID references Employee(EmployeeID) Foreign key ProjectID references Project(ProjectID)
ProjectStatus
ProjectStatus (StatusID, StatusProjectDescription) Primary key StatusID
Client
Client (ClientID, ClientName, ClientAddress) Primary key ClientID
ClientPhone
ClientPhone (ClientID, ClientPhoneNum) Primary key ClientPhoneNum Foreign key ClientID references Client(ClientID)
ClientEmail
ClientEmail (ClientID, ClientEmailAddr) Primary key ClientEmailAddr Foreign key ClientID references Client(ClientID)
ClientFax
ClientFax (ClientID, ClientFaxNum) Primary key ClientFaxNum Foreign key ClientID references
118 Client(ClientID) Stage
Stage(StageID, StageDescription) Primary key StageID
News
News (NewsID, MgrEmployeeID, Title, News, InsertedDate, DueDate) Primary key NewsID Foreign key MgrEmployeeID references Manager(MgrEmployeeID)
Holiday
Holiday (HolidayID, HolidayDate, Event) Primary key HolidayID
ActivityPlan
ActivityPlan (ProjectID, StageID, Sequence, StartDate, EndDate) Foreign key ProjectID references Project(ProjectID) Foreign key StageID references Stage (StageID)
119 4.2.2.3 Normalisasi Tujuan dari normalisasi adalah untuk memvalidasi relasi-relasi dalam model data logikal lokal dengan menggunakan teknik-teknik normalisasi. Semua relasi telah memenuhi 1NF karena tidak ditemukan field yang mengalami redundansi data. •
Pada entitas Employee Employee = (@EmployeeID + DivisionID +Username+ Password + Name + Gender + Title + Address + OfficialEmail + BirthDate + Color + StartofService + EmpStatus + NPWP + EmpNotes + ResignDate) 2NF Di dalam entitas Employee, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Employee, tidak terdapat ketergantungan transitif.
•
Pada entitas Manager Manager = (@MgrEmployeeID + EmployeeID) 2NF Di dalam entitas Manager, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Manager, tidak terdapat ketergantungan transitif.
120 •
Pada Entitas EmpPhone EmpPhone = (@EmpPhoneNum + EmployeeID) 2NF Di dalam entitas EmpPhone, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas EmpPhone, tidak terdapat ketergantungan transitif.
•
Pada Entitas PersonalEmail PersonalEmail = (@EmpPersEmail + EmployeeID) 2NF Di dalam entitas PersonalEmail, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas PersonalEmail, tidak terdapat ketergantungan transitif.
•
Pada Entitas Division Division = (@DivisionID + DivisionName) 2NF Di dalam entitas Division, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF.
121 3NF Di dalam entitas Division, tidak terdapat ketergantungan transitif •
Pada Entitas Privilege Privilege = (@MgrEmployeeID + VerifierAbsence + AppLeave + AppClaim + Payer + NewsEditor + HolidayEditor + ProjectManager + SuperUser) 2NF Di dalam entitas Privilege, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Privilege, tidak terdapat ketergantungan transitif
•
Pada Entitas LeaveRequest LeaveRequest = (@LeaveRequestID + LeaveTypeID + EmployeeID + MgrEmployeeID + LStartDate + LEndDate + Duration + LeaveNotes + LRequestDate + LRequestStatus + LeaveReason + DecisionDate) 2NF Di dalam entitas LeaveRequest, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas LeaveRequest, tidak terdapat ketergantungan transitif
•
Pada Entitas Leave Leave = (@LeaveRequestID + @LeaveDate)
122 2NF Di dalam entitas Leave, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Leave, tidak terdapat ketergantungan transitif •
Pada Entitas LeaveEntitle LeaveEntitle = (@LeaveRequestID + EmployeeID + EntitleID + Duration + YearEntitle + EntitleStatus + EntitleActualDate) 2NF Di dalam entitas LeaveEntitle, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas LeaveEntitle, tidak terdapat ketergantungan transitif
•
Pada Entitas LeaveHoliday LeaveHoliday = (@LeaveRequestID + HolidayID) 2NF Di dalam entitas LeaveHoliday, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas LeaveHoliday, tidak terdapat ketergantungan transitif
123 •
Pada Entitas LeaveType LeaveType = (@LeaveTypeID, LeaveTypeDescription) 2NF Di dalam entitas LeaveType, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas LeaveType, tidak terdapat ketergantungan transitif
•
Pada Entitas Absence Absence = (@AbsenceID + AbsTypeID + StageID + ProjectID + EmployeeID + MgrEmployeeID + AbsDate + AbsenceNotes + AbsenceStatus + AbsClaimStatus + AbsenceReason + BackDate + AbsActualDate) 2NF Di dalam entitas Absence, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Absence, tidak terdapat ketergantungan transitif
•
Pada Entitas AbsenceType AbsenceType = (@AbsTypeID + AbsTypeDescription + ClaimPrice) 2NF Di dalam entitas AbsenceType, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak
124 diperlukan normalisasi 2NF. 3NF Di dalam entitas AbsenceType, tidak terdapat ketergantungan transitif •
Pada Entitas AllowClaim UNF AllowClaim= (EmployeeID + MgrEmployeeID + ClaimID+{ AllowClaimPrice+ AbsenceID}+ CRequestDate+CRequestStatus+ ClaimReason) 1NF AllowClaim= @EmployeeID + MgrEmployeeID + @ClaimID+AllowClaimPrice+ @AbsenceID+ CRequestDate+CRequestStatus+ ClaimReason 2NF AllowClaimDetail =@ClaimID+AllowClaimPrice+ @AbsenceID AllowClaimHeader=@EmployeeID + MgrEmployeeID + @ClaimID+ CRequestDate+CRequestStatus+ ClaimReason 3NF AllowClaimDetail =@ClaimID+AllowClaimPrice+ @AbsenceID Employee=@EmployeeID Manager = @MgrEmployeeID AllowClaimHeader=EmployeeID + MgrEmployeeID + @ClaimID+CRequestDate+ CRequestStatus+ ClaimReason Absence=@AbsenceID
125 •
Pada Entitas NonAllowClaim UNF NonAllowClaim = (EmployeeID + MgrEmployeeID + ClaimID + Sequence + {NACDescription + Price}+ CRequestDate + CRequestStatus + ClaimReason) 1NF NonAllowClaim= @EmployeeID+ MgrEmployeeID + @ClaimID + @Sequence + NACDescription+ Price+ CRequestDate+ CRequestStatus+ ClaimReason 2NF NonAllowClaimDetail = @ClaimID + NACDescription+ @Sequence+ Price NonAllowClaimHeader= @EmployeeID + MgrEmployeeID + @ClaimID + CRequestDate + CRequestStatus + ClaimReason 3NF NonAllowClaimDetail = @ClaimID + NACDescription + @Sequence + Price Employee=@EmployeeID Manager = @MgrEmployeeID NonAllowClaimHeader==EmployeeID + MgrEmployeeID + @ClaimID + CRequestDate + CRequestStatus + ClaimReason
•
Pada Entitas Project Project = (@ProjectID + MgrEmployeeID + ClientID + ProjectName + IsFinished + CompletedDate)
126 2NF Di dalam entitas Project , semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Project, tidak terdapat ketergantungan transitif •
Pada Entitas ProjectMember ProjectMember = (@EmployeeID + ProjectID) 2NF Di dalam entitas ProjectMember, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas ProjectMember, tidak terdapat ketergantungan transitif
•
Pada Entitas ProjectStatu s ProjectStatus = (@StatusID + StatusProjectDescription) 2NF Di dalam entitas ProjectStatus, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas ProjectStatus, tidak terdapat ketergantungan transitif
•
Pada Entitas Client
127 Client = (@ClientID + ClientName + ClientAddress) 2NF Di dalam entitas Client, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Client, tidak terdapat ketergantungan transitif •
Pada Entitas Stage Stage = (@StageID + StageDescription) 2NF Di dalam entitas Stage, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Stage, tidak terdapat ketergantungan transitif
•
Pada Entitas News News = (@NewsID + EmployeeID + MgrEmployeeID + Title + News + InsertedDate + DueDate) 2NF Di dalam entitas News, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF
128 Di dalam entitas News, tidak terdapat ketergantungan transitif •
Pada Entitas Holiday Holiday = (@HolidayID + HolidayDate + Event) 2NF Di dalam entitas Holiday, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas Holiday, tidak terdapat ketergantungan transitif
•
Pada Entitas ActivityPlan ActivityPlan = (@ProjectID + StageID + Sequence + StartDate + EndDate) 2NF Di dalam entitas ActivityPlan, semua atribut yang ada pada entitas tersebut sudah full-functional dependency sehingga tidak diperlukan normalisasi 2NF. 3NF Di dalam entitas ActivityPlan, tidak terdapat ketergantungan transitif
4.2.2.4 Mendefinisikan Integrity Constraint • Kebutuhan data Beberapa atribut tertentu dari entitas ataupun relasi haruslah memiliki nilai yang valid, dengan kata lain atribut-atribut ini tidak diperkenankan memiliki nilai null.
129 Aturan-aturan seperti ini telah diidentifikasikan pada saat atribut didokumentasikan di kamus data. • Kendala Atribut domain Setiap atribut memiliki sebuah domain, yaitu kumpulan dari nilai yang legal. Aturan-aturan seperti ini harus telah diidentifikasikan pada saat memilih atribut-atribut domain untuk data model. • Entity Integrity Primary key dari suatu entitas tidak boleh memiliki nilai null. Aturan-aturan seperti ini harus telah dipertimbangkan pada saat mengidentifikasikan primary key untuk setiap entitas. • Referential Integrity Employee (EmployeeID, DivisionID, Username, Password , Name , Gender , Title , Address , OfficialEmail , BirthDate , Color , StartofService , EmpStatus , NPWP , EmpNotes , ResignDate) Primary key EmployeeID Foreign key DivisionID references Division (DivisionID) ON UPDATE CASCADE ON DELETE NO ACTION
Manager (EmployeeID, MgrEmployeeID) Primary key MgrEmployeeID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION EmpPhone (EmployeeID, EmpPhoneNum) Primary key EmpPhoneNum
130 Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
PersonalEmail (EmployeeID, EmpPersEmail) Primary key EmpPersEmail Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
Division (DivisionID, DivisionName) Primary key DivisionID
Privilege (MgrEmployeeID , VerifierAbsence , AppLeave , AppClaim , Payer , NewsEditor , HolidayEditor , ProjectManager , SuperUser) Primary key EmployeeID Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
LeaveRequest (LeaveRequestID , LeaveTypeID , EmployeeID , MgrEmployeeID , LStartDate , LEndDate , Duration , LeaveNotes , LRequestDate , LRequestStatus , LeaveReason , DecisionDate) Primary key LeaveRequestID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
131 Foreign key LeaveTypeID references LeaveType (LeaveTypeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Leave (LeaveRequestID , LeaveDate) Primary key LeaveRequestID, LeaveDate Foreign key LeaveRequestID references LeaveRequest (LeaveRequestID) ON UPDATE CASCADE ON DELETE CASCADE
LeaveEntitle (LeaveRequestID , EmployeeID , EntitleID , Duration , YearEntitle , EntitleStatus , EntitleActualDate) Primary key EntitleID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key LeaveRequestID references LeaveRequest (LeaveRequestID) ON UPDATE CASCADE ON DELETE CASCADE
LeaveHoliday (LeaveRequestID , HolidayID) Foreign key LeaveRequestID references LeaveRequest(LeaveRequestID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key HolidayID references Holiday(HolidayID) ON UPDATE CASCADE ON DELETE NO ACTION LeaveType (LeaveTypeID, LeaveTypeDescription) Primary key LeaveTypeID
132
Absence (AbsenceID , AbsTypeID , StageID , ProjectID , EmployeeID , MgrEmployeeID , AbsDate , AbsenceNotes , AbsenceStatus , AbsClaimStatus , AbsenceReason , BackDate , AbsActualDate) Primary key AbsenceID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key ProjectID references Project (ProjectID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key StageID references Stage (StageID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key AbsTypeID references AbsenceType (AbsTypeID) ON UPDATE CASCADE ON DELETE NO ACTION
AbsenceType (AbsTypeID , AbsTypeDescription , ClaimPrice) Primary key AbsTypeID
AllowClaimDetail (ClaimID,AllowClaimPrice, AbsenceID) Primary key ClaimID Foreign key AbsenceID references Absence (AbsenceID) ON UPDATE CASCADE ON DELETE NO ACTION
133 Foreign key ClaimID references AllowClaimHeader (ClaimID) ON UPDATE CASCADE ON DELETE CASCADE
AllowClaimHeader (EmployeeID, MgrEmployeeID , ClaimID,CRequestDate, CRequestStatus, ClaimReason) Primary key ClaimID Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
NonAllowClaimDetail (ClaimID , NACDescription, Sequence, Price) Primary key ClaimID, Sequence Foreign key ClaimID references AllowClaimHeader (ClaimID) ON UPDATE CASCADE ON DELETE CASCADE
NonAllowClaimHeader (EmployeeID, MgrEmployeeID , ClaimID, CRequestDate,CRequestStatus, ClaimReason) Primary key ClaimID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
134 Project (ProjectID , ClientID , MgrEmployeeID, ProjectName , IsFinished , CompletedDate) Primary key ProjectID Foreign key ClientID references Client (ClientID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key StatusID references Status (StatusID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
ProjectMember (EmployeeID , ProjectID) Foreign key EmployeeID references Employee(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key ProjectID references Project(ProjectID) ON UPDATE CASCADE ON DELETE CASCADE
ProjectStatus (StatusID , StatusProjectDescription) Primary key StatusID
Client (ClientID , ClientName, ClientAddress ) Primary key ClientID ClientPhone (ClientID, ClientPhoneNum) Primary key ClientPhoneNum
135 Foreign key ClientID references Client(ClientID) ON UPDATE CASCADE ON DELETE CASCADE
ClientEmail (ClientID, ClientEmailAddr) Primary key ClientEmailAddr Foreign key ClientID references Client(ClientID) ON UPDATE CASCADE ON DELETE CASCADE
ClientFax (ClientID, ClientFaxNum) Primary key ClientFaxNum Foreign key ClientID references Client(ClientID) ON UPDATE CASCADE ON DELETE CASCADE
Stage (StageID , StageDescription) Primary key StageID
News (NewsID , MgrEmployeeID , Title , News , InsertedDate , DueDate) Primary key NewsID Foreign key MgrEmployeeID references Manager(MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
Holiday (HolidayID , HolidayDate , Event) Primary key HolidayID
136
ActivityPlan (ProjectID , StageID , Sequence , StartDate , EndDate) Di dalam entitas ActivityPlan, tidak terdapat ketergantungan transitif Foreign key ProjectID references Project (ProjectID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key StageID references Stage (StageID) ON UPDATE CASCADE ON DELETE CASCADE
137
Gambar 4.8 ERD Global Logical Data Model
138 4.2.3 Perancangan Basis Data Fisik Perancangan fisikal adalah suatu proses membuat penerapan database yang sudah kita rancang. Dalam tahap ini di dalamnya terdapat pembahasan perancangan DBDL (Database Design Language) untuk setiap entity, perancangan constraint setiap entity, analisis transaksi, pembuatan index, beserta dengan perancangan mekanisme keamanan data.
4.2.3.1 Perancangan Relasional Dasar Basis Data Tujuan dari tahap ini adalah untuk memutuskan bagaimana merepresentasikan relasi dasar yang diidentifikasi dalam model data logikal global dalam DBM S yang diinginkan.
Tabel 4.20 Tabel Identifikasi Relasional Model Data Logical Local Entity Employee Domain
Data type
Length
NULLS
EmployeeID
Fixed Length Character String
8
NO
Username
Variable Length Character String
30
NO
Password
Variable Length Character String
40
NO
Name
Variable Length Character String
40
YES
Gender
Single Length Character
1
YES
Title
Variable Length Character String
30
YES
Address
Variable Length Character String
100
YES
139 OfficialEmail
Variable Length Character String
50
YES
BirthDate
Date, format date
-
YES
Color
Fixed Length Character String
7
YES
StartofService
Date, format datetime
-
YES
EmpStatus
Boolean
-
YES
NPWP
Variable Length Character String
20
YES
EmpNotes
Variable Length Character String
100
YES
ResignDate
Date, format date
-
YES
DivisionID
Fixed Length Character String
3
YES
Primary key EmployeeID Foreign key DivisionID references Division (DivisionID) ON UPDATE CASCADE ON DELETE NO ACTION
Entity Manager Domain
Data type
Length
NULLS
EmployeeID
Fixed Length Character String
8
NO
MgrEmployeeID
Fixed Length Character String
9
NO
Primary key MgrEmployeeID Foreign key EmployeeID references Employee(EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
140 Entity EmpPhone Attribute
Data type
Length
NULLS
EmployeeID
Fixed Length Character String
8
NO
EmpPhoneNum
Variable Length Character String
15
NO
Primary key EmpPhoneNum Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
Entity PersonalEmail Attribute
Data type
Length
NULLS
EmployeeID
Fixed Length Character String
8
NO
EmpPersEmail
Variable Length Character String
50
NO
Primary key EmpPersEmail Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
Entity Division Attribute DivisionID
Data type Fixed Length Character
DivisionName Variable Length Character String Primary key DivisionID
Length
NULLS
3
NO
30
NO
141 Entity Privilege Attribute
Data type
Length
NULLS
MgrEmployeeID
Fixed Length Character String
9
NO
VerifierAbsence
Boolean
-
NO
AppLeave
Boolean
-
NO
AppClaim
Boolean
-
NO
Payer
Boolean
-
NO
NewsEditor
Boolean
-
NO
HolidayEditor
Boolean
-
NO
ProjectManager
Boolean
-
NO
SuperUser
Boolean
-
NO
Primary key EmployeeID Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE CASCADE
Entity LeaveRequest Attribute
Data type
Length
NULLS
LeaveRequestID
Fixed Length Character String
7
NO
EmployeeID
Fixed Length Character String
8
NO
MgrEmployeeID
Fixed Length Character String
9
YES
LeaveTypeID
Single Length Character
1
NO
LStartDate
Date, format date
-
NO
142 LEndDate
Date, format date
-
NO
Duration
Integer
-
YES
50
YES
Variable Length Character LeaveNotes String LRequestDate
Date, format date
-
NO
LRequestStatus
Single Length Character
1
NO
Variable Length Character
50
YES
-
YES
LeaveReason String DecisionDate
Date, format datetime
Primary key LeaveRequestID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key LeaveTypeID references LeaveType (LeaveTypeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
143 Entity Leave Attribute
Data type
Length
NULLS
LeaveRequestID
Fixed Length Character String
7
NO
LeaveDate
Date, format date
-
NO
Primary key LeaveRequestID Foreign key LeaveRequestID references LeaveRequest (LeaveRequestID) ON UPDATE CASCADE ON DELETE CASCADE
Entity LeaveEntitle Attribute
Data type
Length
NULLS
EntitleID
Fixed Length Character String
10
NO
EmployeeID
Fixed Length Character String
8
NO
LeaveRequestID
Fixed Length Character String
7
YES
Duration
Integer
2
NO
YearEntitle
Date, format year
4
NO
EntitleStatus
Variable Length Character String
10
NO
-
NO
EntitleActualDate Date, format datetime Primary key EntitleID
Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key LeaveRequestID references LeaveRequest (LeaveRequestID) ON UPDATE CASCADE ON DELETE CASCADE
144
Entity LeaveHoliday Attribute
Data type
Length
NULLS
LeaveRequestID
Fixed Length Character String
7
NO
HolidayID
Fixed Length Character String
7
NO
Foreign key LeaveRequestID references LeaveRequest(LeaveRequestID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key HolidayID references Holiday(HolidayID) ON UPDATE CASCADE ON DELETE NO ACTION
Entity LeaveType Attribute
Data type
Length
NULLS
LeaveTypeID
Single Length Character
1
NO
LeaveTypeDescription
Variable Length Character
20
NO
String Primary key LeaveTypeID
Entity Absence Attribute
Data type
Length
NULLS
AbsenceID
Fixed Length Character String
10
NO
EmployeeID
Fixed Length Character String
8
NO
145 MgrEmployeeID
Fixed Length Character String
9
NO
AbsTypeID
Single Length Character
1
NO
ProjectID
Fixed Length Character String
9
NO
StageID
Fixed Length Character String
4
NO
AbsDate
Date, format date
-
NO
50
YES
Variable Length Character AbsenceNotes String AbsenceStatus
Single Length Character
1
NO
AbsClaimStatus
Single Length Character
1
YES
Variable Length Character
50
YES
AbsenceReason String BackDate
Boolean
-
NO
AbsActualDate
Date, format datetime
-
NO
Primary key AbsenceID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key ProjectID references Project (ProjectID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key StageID references Stage (StageID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
146 Entity AbsenceType Length
NULLS
Single Length Character
1
NO
Variable Length Character
20
NO
10,2
YES
Length
NULLS
9
NO
10
NO
10,2
NO
Attribute AbsTypeID
Data type
AbsTypeDescription String ClaimPrice
Decimal
Primary key AbsTypeID
Entity AllowClaimDetail Attribute
Data type Fixed Length Character
ClaimID String Fixed Length Character AbsenceID String AllowClaimPrice
Decimal
Primary key ClaimID Foreign key AbsenceID references Absence (AbsenceID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key ClaimID references AllowClaimHeader (ClaimID) ON UPDATE CASCADE ON DELETE CASCADE
147 Entity AllowClaimHeader Attribute
Data type Fixed Length Character
Length
NULLS
9
NO
8
NO
ClaimID String EmployeeID
Fixed Length Character String
MgrEmployeeID
Fixed Length Character String
9
NO
CRequestDate
Date, format datetime
-
NO
CRequestStatus
Single Length Character
1
NO
Variable Length Character
50
YES
ClaimReason String Primary key ClaimID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
Entity NonAllowClaimDetail Attribute
Data type Fixed Length Character
Length
NULLS
9
NO
-
NO
ClaimID String Sequence
Integer
148 Variable Length Character
50
NO
10,2
NO
NACDescription String Price
Decimal
Primary key ClaimID, Sequence Foreign key ClaimID references AllowClaimHeader (ClaimID) ON UPDATE CASCADE ON DELETE CASCADE
Entity NonAllowClaimHeader Attribute
Data type Fixed Length Character
Length
NULLS
9
NO
8
NO
ClaimID String EmployeeID
Fixed Length Character String
MgrEmployeeID
Fixed Length Character String
9
NO
CRequestDate
Date, format datetime
-
NO
CRequestStatus
Single Length Character
1
NO
Variable Length Character
50
YES
ClaimReason String Primary key ClaimID Foreign key EmployeeID references Employee (EmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
149 Entity Project Attribute
Data type Fixed Length Character
Length
NULLS
9
NO
6
NO
2
NO
50
NO
ProjectID String Fixed Length Character ClientID String Fixed Length Character StatusID
String
Variable Length Character ProjectName String MgrEmployeeID
Fixed Length Character String
9
NO
IsFinished
Boolean
-
NO
CompletedDate
Date, format date
-
YES
Primary key ProjectID Foreign key ClientID references Client (ClientID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key StatusID references Status (StatusID) ON UPDATE CASCADE ON DELETE NO ACTION Foreign key MgrEmployeeID references Manager (MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION
150 Entity ProjectMember Attribute
Data type Fixed Length Character
Length
NULLS
8
NO
9
NO
EmployeeID String Fixed Length Character ProjectID String Foreign key EmployeeID references Employee(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key ProjectID references Project(ProjectID) ON UPDATE CASCADE ON DELETE CASCADE
Entity ProjectStatus Attribute
Data type Fixed Length Character
Length
NULLS
2
NO
30
NO
Length
NULLS
6
NO
StatusID String Variable Length Character StatusProjectDescription String Primary key StatusID Entity Client Attribute
Data type Fixed Length Character
ClientID String
151 Variable Length Character
30
NO
100
NO
Length
NULLS
6
NO
15
NO
ClientName String Variable Length Character ClientAddress String Primary key ClientID
Entity ClientPhone Attribute
Data type Fixed Length Character
ClientID String Variable Length Character ClientPhoneNum String Primary key ClientID Foreign key ClientID references Client(ClientID) ON UPDATE CASCADE ON DELETE CASCADE
Entity ClientEmail Attribute
Data type Fixed Length Character
Length
NULLS
6
NO
50
NO
ClientID String Variable Length Character ClientEmailAddr String Primary key ClientID
152 Foreign key ClientID references Client(ClientID) ON UPDATE CASCADE ON DELETE CASCADE
Entity ClientFax Attribute
Data type Fixed Length Character
Length
NULLS
6
NO
15
NO
ClientID String Variable Length Character ClientFaxNum String Primary key ClientID Foreign key ClientID references Client(ClientID) ON UPDATE CASCADE ON DELETE CASCADE
Entity Stage Attribute
Data type Fixed Length Character
Length
NULLS
4
NO
30
NO
StageID String Variable Length Character StageDescription String Primary key StageID
153 Entity News Length
NULLS
9
NO
Fixed Length Character String
9
NO
Variable Length Character
30
NO
300
NO
Attribute
Data type Fixed Length Character
NewsID String MgrEmployeeID
Title String Variable Length Character News String InsertedDate
Date, format date
-
NO
DueDate
Date, format date
-
NO
Primary key NewsID Foreign key MgrEmployeeID references Manager(MgrEmployeeID) ON UPDATE CASCADE ON DELETE NO ACTION Entity Holiday Attribute
Data type Fixed Length Character
Length
NULLS
7
NO
-
NO
30
NO
HolidayID String HolidayDate
Date, format date Variable Length Character
Event String Primary key HolidayID
154
Entity ActivityPlan Attribute
Data type Fixed Length Character
Length
NULLS
9
NO
4
NO
ProjectID String Fixed Length Character StageID String Sequence
Integer
-
NO
StartDate
Date, format date
-
NO
EndDate
Date, format date
-
NO
Foreign key ProjectID references Project (ProjectID) ON UPDATE CASCADE ON DELETE CASCADE Foreign key StageID references Stage (StageID) ON UPDATE CASCADE ON DELETE CASCADE
4.2.3.2 Analisis Transaksi Analisis transaksi bertujuan untuk memahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. Dalam menganalisa transaksi dicoba untuk mengidentifikasi kriteria kinerja sebagai berikut : • Frekuensi jalannya transaksi yang mempunyai pengaruh penting pada kinerja • Transaksi yang kritis untuk operasi dari suatu bisnis • Waktu selama sehari atau seminggu dimana tingkat permintaan tinggi pada
155 basis data yang disebut dengan peak load
Transaksi-transaksi yang ada adalah sebagai berikut : a. M emasukkan data pegawai b. M engubah/menghapus data pegawai c. M emasukkan data divisi d. M engubah/menghapus data divisi e. M emasukkan data cuti pegawai f. M engubah status cuti pegawai g. M elihat data LeaveRequest h. M emasukkan data absen pegawai i. M engubah data absen pegawai j. M elihat data absen pegawai k. M emasukkan data claim allowance pegawai l. M emasukkan data claim nonallowance pegawai m. M engubah status allowance pegawai n. M engubah status nonallowance pegawai o. M emasukkan data proyek p. M engubah/menghapus data proyek q. M enampilkan perkembangan proyek r. M emasukkan data klien s. M engubah/menghapus data klien t. M emasukkan data stage u M engubah/menghapus data stage
156 v. M emasukkan berita w. M engubah/menghapus berita x. M emasukkan data hari libur y. M engubah/menghapus data hari libur
157
Transaksi/Relasi Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType ClaimRequest AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News
a I
R U
X X X X
b D I
c
R U
X X X X
D
R U
d D
I
R
E U D
I
R U D
X X X X X X
X X
I
X
X X X
X X X
Keterangan : I = Insert, R = Read, U = Update, D = Delete
X
X
X
158
Transaksi/Relasi Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType ClaimRequest AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News
f I
R U
g D I
R U
h D
I
R U
X
X X X X X
i D
I
R
J U D
I
R U D
X
X X
X X
X X
X X
X
X
X
X
X
Keterangan : I = Insert, R = Read, U = Update, D = Delete
159
Transaksi/Relasi Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType ClaimRequest AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News Holiday ActivityPlan
k I
R U
l D I
R U
m D
I
n
R U
X
X X X X
D
I
R
O U D
I
R U D
X X
X
X X
X X
X X
X X
X X X
Keterangan : I = Insert, R = Read, U = Update, D = Delete
X X X X X X
X
X
160
Transaksi/Relasi Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType ClaimRequest AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News
p I
q
R U
D I
X X
R U
r D
I
R U
s D
I
T
R
U D
X X X X
X X X X
I
X
X
X X X X X
X X X X
X X X X X
Keterangan : I = Insert, R = Read, U = Update, D = Delete
X X X X X
R U D
161
Transaksi/Relasi Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType ClaimRequest AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News Holiday ActivityPlan
u I
R U
v D I
R U
X
w D
I
R U
x D
I
R
Y U D
I
R U D
X
X X X X
X X X X
X X X
Keterangan : I = Insert, R = Read, U = Update, D = Delete
4.2.3.3 Pembuatan Indeks Setiap Entiti Langkah ini bertujuan untuk menentukan apakah dengan menambah indeks akan meningkatkan kinerja dari sistem sewaktu mencari data. Berikut ini adalah daftar indeks untuk masing-masing tabel yang ada.
162 Tabel 4.21 Tabel Pembuatan Indeks Setiap Entiti Nama Tabel
Index
Nama Index
Clustered / Non Clustered (C/ NC)
1. Employee
EmployeeID
idx_empID
DivisionID
idx_ divisionID
MgrEmployeeID
idx_mgrID
C
EmployeeID
idx_empID2
NC
EmployeeID
idx_empID3
NC
EmpPhoneNum
idx_ephone
C
EmployeeID
idx_empID4
NC
EmpPersEmail
idx_ePersEmail
C
5. Division
DivisionID
idx_div
C
6. Privilege
MgrEmployeeID
idx_mgrID2
NC
7. LeaveRequest
LeaveRequestID
idx_leaveRID
C
EmployeeID
idx_empID5
NC
MgrEmployeeID
idx_mgrID3
NC
LeaveTypeID
idx_LtypeID
NC
LeaveRequestID
idx_leaveRID2
NC
LeaveDate
Idx_leavedate
NC
EmployeeID
idx_empID
NC
EntitleID
Idx_lentitleID
C
LeaveRequestID
idx_leaveRID3
NC
HolidayID
idx_holID2
NC
LeaveRequestID
idx_leaveRID4
NC
11. LeaveType
LeaveTypeID
idx_LtypeID2
C
12. Absence
AbsenceID
idx_absID
C
EmployeeID
idx_empID6
NC
MgrEmployeeID
idx_mgrID4
NC
ProjectID
idx_projID
NC
2. Manager
3. EmpPhone
4. Personal Email
8. Leave
9. LeaveEntitle
10. LeaveHoliday
C NC
163 StageID
idx_stage3
NC
AbsTypeID
idx_abstypeID
NC
13. AbsenceType
AbsTypeID
idx_abstypeID2
C
14. AllowClaimDetail
ClaimID
idx_ claimID
NC
AbsenceID
idx_absID2
NC
ClaimID
idx_ claimID2
NC
Sequence
idx_seq
NC
ClaimID
idx_ claimID3
EmployeeID
idx_empID7
NC
MgrEmployeeID
idx_mgrID5
NC
ClaimID
idx_ claimID4
EmployeeID
idx_empID8
NC
MgrEmployeeID
idx_mgrID6
NC
ProjectID
idx_projID3
C
ClientID
idx_clientID2
NC
StatusID
idx_statusProj2
NC
ProjectID
idx_projID2
NC
15 .NonAllowClaimDetail
16. AllowClaimHeader
17.NonAllowClaimHeader
18. Project
19. ProjectMember
C
C
EmployeeID
idx_empID9
20. ProjectStatus
StatusID
idx_statusProj
C
21. Client
ClientID
idx_clientID
C
22. ClientPhone
ClientID
idx_clientID3
NC
ClientPhoneNum
idx_cphone
ClientID
idx_clientID4
23. ClientEmail
ClientEmailAddr 24. ClientFax
ClientID ClientFaxNum
idx_cmail idx_clientID5 idx_cfax
NC
C NC C NC C
25. Stage
StageID
idx_stage2
C
26. News
NewsID
idx_newsID
C
MgrEmployeeID
idx_mgrID7
NC
HolidayID
idx_holID2
C
27. Holiday
164 28. ActivityPlan
ProjectID
idx_projID3
StageID
NC
idx_stage4
NC
4.2.3.4 Mengestimasi Kapasitas Penyimpanan yang Dibutuhkan Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh basis data. Perkiraan kapasitas setiap tabel adalah sebagai berikut:
Tabel 4.22 Estimasi Tabel Employee Field
Data Type
Size
EmployeeID
Char
8
Username
Varchar
31
Password
Varchar
41
Name
Varchar
41
Gender
Char
1
Title
Varchar
31
Address
Varchar
101
OfficialEmail
Varchar
51
BirthDate
Date
3
Color
Char
7
StartofService
Datetime
8
EmpStatus
Boolean
1
NPWP
Varchar
21
EmpNotes
Varchar
101
ResignDate
Date
3
DivisionID
Char
3
Kapasitas dari tabel Employee adalah 452 byte Data awal sebelum operasional 30 pegawai, sehingga 30 * 452 = 13560 Bytes atau 13,24 Kbyte
165 Diperkirakan dalam 1 tahun terjadi pertambahan pegawai sebanyak 5 pegawai Dalam satu tahun pertumbuhan dari Tabel Employee adalah 5 * 452 = 2260 byte atau 2,207 Kbyte
Tabel 4.23 Estimasi Tabel Manager Field
Data Type
Size
EmployeeID
Char
8
MgrEmployeeID
Char
9
Kapasitas dari tabel Manager adalah 17 byte Data awal sebelum operasional 10 manager, sehingga 10 * 17 = 170 Bytes atau 0,17 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan manager sebanyak 5 manager Dalam satu tahun pertumbuhan dari Tabel Manager adalah 85 byte atau 0,083 Kbyte
Tabel 4.24 Estimasi Tabel EmpPhone Field
Data Type
Size
EmployeeID
Char
8
EmpPhoneNum
Varchar
16
Kapasitas dari tabel EmpPhone adalah 24 byte Data awal sebelum operasional 30 employee phone, sehingga 30 * 24 = 720 Bytes atau 0,70 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan telepon pegawai sebanyak 10 Dalam satu tahun pertumbuhan dari Tabel EmpPhone adalah 240 byte atau 0,234 Kbyte
166 Tabel 4.25 Estimasi Tabel PersonalEmail Field
Data Type
Size
EmployeeID
Char
8
EmpPersEmail
Varchar
51
Kapasitas dari tabel PersonalEmail adalah 59 byte Data awal sebelum operasional 30 personal email, sehingga 30 * 59 = 1770 Bytes atau 1,73 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan Email pegawai sebanyak10 Dalam satu tahun pertumbuhan dari Tabel PersonalEmail adalah 10 *9= 590 byte atau 0,576 Kbyte
Tabel 4.26 Estimasi Tabel Division Field
Data Type
Size
DivisionID
Char
3
DivisionName
Varchar
31
Kapasitas dari tabel Division adalah 34 byte Data awal sebelum operasional 5 divisi, sehingga 5 * 34 = 170 Bytes atau 0,17 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan divisi sebanyak 1 pegawai Dalam satu tahun pertumbuhan dari Tabel Division adalah 0,033 Kbyte
Tabel 4.27 Estimasi Tabel Privilege Field
Data Type
Size
MgrEmployeeID
Char
9
VerifierAbsence
Boolean
1
AppLeave
Boolean
1
167 AppClaim
Boolean
1
Payer
Boolean
1
NewsEditor
Boolean
1
dex
Boolean
1
ProjectManager
Boolean
1
SuperUser
Boolean
1
HolidayEditor
Kapasitas dari tabel Privilege adalah 17 byte Data awal sebelum operasional 10 privilege, sehingga 10 * 17 = 170 Bytes atau 0,17 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan hak pegawai sebanyak 1 hak Dalam satu tahun pertumbuhan dari Tabel Privilege adalah 0,016 Kbyte
Tabel 4.28 Estimasi Tabel LeaveRequest Field
Data Type
Size
LeaveRequestID
Char
7
EmployeeID
Char
8
MgrEmployeeID
Char
9
LeaveTypeID
Char
1
LStartDate
Date
3
LEndDate
Date
3
Duration
Integer
4
LeaveNotes
Varchar
51
LRequestDate
Date
3
LRequestStatus
Char
1
LeaveReason
Varchar
51
DecisionDate
Datetime
8
Kapasitas dari tabel LeaveRequest adalah 149 byte
168 Diperkirakan dalam 1 tahun terjadi 36 transaksi Data awal sebelum operasional 30 leave request, sehingga 30 * 149= 4470 Bytes atau 4,37 Kbyte Dalam satu tahun pertumbuhan dari Tabel LeaveRequest adalah 36 * 149 byte = 5364 byte atau 5,238 Kbyte
Tabel 4.29 Estimasi Tabel Leave Field
Data Type
Size
LeaveRequestID
Char
7
LeaveDate
Date
3
Kapasitas dari tabel Leave adalah 10 byte Data awal sebelum operasional 60 leave, sehingga 60 * 10= 600 Bytes atau 0,59 Kbyte Diperkirakan dalam 1 tahun terjadi 108 transaksi Dalam satu tahun pertumbuhan dari Tabel Leave adalah 108 * 10 = 1080 byte atau 1,054 Kbyte
Tabel 4.30 Estimasi Tabel LeaveEntitle Field
Data Type
Size
EntitleID
Char
10
EmployeeID
Char
8
LeaveRequestID
Char
7
Duration
Integer
4
YearEntitle
Year
3
EntitleStatus
Varchar
11
EntitleActualDate
Datetime
8
Kapasitas dari tabel LeaveEntitle adalah 51
169 Data awal sebelum operasional 30 leave entitle, sehingga 30 * 51 = 1530 Bytes atau 1,49 Kbyte Diperkirakan dalam 1 tahun terjadi 80 Dalam satu tahun pertumbuhan dari Tabel LeaveEntitle adalah 80 * 51 = 4080 byte atau 3,984 Kbyte
Tabel 4.31 Estimasi Tabel LeaveHoliday Field
Data Type
Size
LeaveRequestID
Char
7
HolidayID
Char
7
Kapasitas dari tabel LeaveHoliday adalah 14 byte Data awal sebelum operasional 10 leave holiday, sehingga 10 * 14 = 140 Bytes atau 0,14 Kbyte Diperkirakan dalam 1 tahun terjadi 15 Dalam satu tahun pertumbuhan dari Tabel LeaveHoliday adalah 15 * 14 = 210 byte atau 0,205 Kbyte
Tabel 4.32 Estimasi Tabel LeaveType Field LeaveTypeID
Data Type Char
LeaveTypeDescription Varchar
Size 1 21
Kapasitas dari tabel LeaveType adalah 22 byte atau 0,021 Kbyte Data awal sebelum operasional 3 leave type, sehingga 3 * 22 = 66 Bytes atau 0,06 Kbyte
170 Tabel 4.33 Estimasi Tabel Absence Field
Data Type
Size
AbsenceID
Char
10
EmployeeID
Char
8
MgrEmployeeID
Char
9
AbsTypeID
Char
1
ProjectID
Char
9
StageID
Char
4
AbsDate
Date
3
AbsenceNotes
Varchar
51
AbsenceStatus
Char
1
AbsClaimStatus
Char
1
AbsenceReason
Varchar
51
BackDate
Boolean
1
AbsActualDate
Datetime
8
Kapasitas dari tabel Absence adalah 157 byte Data awal sebelum operasional 60 absence, sehingga 60 * 157 = 9420 atau 9,20 Kbyte Dalam satu tahun pertumbuhan dari Tabel Absence adalah 25.360 *157 = 3.981.520 byte atau 3888,203 Kbyte
Tabel 4.34 Estimasi Tabel AbsenceType Field
Data Type
Size
AbsTypeID
Char
1
AbsTypeDescription
Varchar
21
ClaimPrice
Decimal
11
Kapasitas dari tabel AbsenceType adalah 33 byte atau 0,032 Kbyte Data awal sebelum operasional 3 absence type, sehingga 3 * 33 = 99 Bytes atau 0,10 Kbyte
171 Tabel 4.35 Estimasi Tabel AllowClaimDetail Field
Data Type
Size
ClaimID
Char
9
AbsenceID
Char
10
AllowClaimPrice
Decimal
11
Kapasitas dari tabel AllowClaimDetail adalah 30 byte Data awal sebelum operasional 150 allow claim detail, sehingga 150 * 30 = 4500 Bytes atau 4,40 Kbyte Diperkirakan dalam 1 tahun terjadi 480 transaksi Dalam satu tahun pertumbuhan dari Tabel AllowClaimDetail adalah 480 * 30 = 14400 byte atau 14,062 Kbyte
Tabel 4.36 Estimasi Tabel AllowClaimHeader Field
Data Type
Size
ClaimID
Char
9
EmployeeID
Char
8
MgrEmployeeID
Char
9
CRequestDate
Datetime
8
CRequestStatus
Char
1
ClaimReason
Varchar
51
Kapasitas dari tabel AllowClaimHeader adalah 86 byte Data awal sebelum operasional 30 allow claim header, sehingga 30 * 86 = 2580 Bytes atau 2,52 Kbyte Diperkirakan dalam 1 tahun terjadi 360 transaksi Dalam satu tahun pertumbuhan dari Tabel AllowClaimDetail adalah 360 * 86 = 30960 byte atau 30,234 Kbyte
172 Tabel 4.37 Estimasi Tabel NonAllowClaimDetail Field
Data Type
Size
ClaimID
Char
9
NACDescription
Varchar
51
Sequence
Integer
4
Price
Decimal
11
Kapasitas dari tabel NonAllowClaimDetail adalah 75 byte Data awal sebelum operasional 30 non allow claim detail,sehingga 30 * 75 = 2250 Bytes atau 2,20 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan pegawai sebanyak 5 pegawai Dalam satu tahun pertumbuhan dari Tabel NonAllowClaimDetail adalah 5 * 75 = 375 byte atau 0,366 Kbyte
Tabel 4.38 Estimasi Tabel NonAllowClaimHeader Field
Data Type
Size
ClaimID
Char
9
EmployeeID
Char
8
MgrEmployeeID
Char
9
CRequestDate
Datetime
8
CRequestStatus
Char
1
ClaimReason
Varchar
51
Kapasitas dari tabel AllowClaimHeader adalah 86 byte Data awal sebelum operasional 30 non allow claim header, sehingga 30 * 86 = 2580 Bytes atau 2,52 Kbyte Diperkirakan dalam 1 tahun terjadi 200 transaksi Dalam satu tahun pertumbuhan dari Tabel AllowClaimHeader adalah 200 * 86 = 17200 byte atau 16,796 Kbyte
173 Tabel 4.39 Estimasi Tabel Project Field
Data Type
Size
ProjectID
Char
9
MgrEmployeeID
Char
9
ClientID
Char
6
StatusID
Char
2
ProjectName
Varchar
51
IsFinished
Boolean
1
CompletedDate
Datetime
8
Kapasitas dari tabel Project adalah 86 byte Data awal sebelum operasional 10 project, sehingga 10 * 86 = 860 Bytes atau 0,84 Kbyte Diperkirakan dalam 1 tahun terjadi penambahan 60 proyek Dalam satu tahun pertumbuhan dari Tabel Project adalah 60 * 86 = 5160 byte atau 5,039 Kbyte
Tabel 4.40 Estimasi Tabel ProjectMember Field
Data Type
Size
EmployeeID
Char
8
ProjectID
Char
9
Kapasitas dari tabel ProjectMember adalah 17 byte Data awal sebelum operasional 50 project member, sehingga 50 * 17 = 850 Bytes atau 0,83 Kbyte Diperkirakan dalam 1 tahun terjadi 240 transaksi Dalam satu tahun pertumbuhan dari Tabel ProjectMember adalah 240 * 17 = 4080 byte atau 3,984 kbyte
Tabel 4.41 Estimasi Tabel ProjectStatus
174 Field
Data Type
Size
StatusID
Char
3
StatusProjectDescription
Varchar
21
Kapasitas dari tabel ProjectStatus adalah 24 byte atau 0,023 Kbyte Data awal sebelum operasional 5 employee phone, sehingga 5 * 24 = 120 Bytes atau 0,12 Kbyte
Tabel 4.42 Estimasi Tabel Client Field
Data Type
Size
ClientID
Char
6
ClientName
Varchar
31
ClientAddress
Varchar
100
Kapasitas dari tabel Client adalah 137 byte Data awal sebelum operasional 10 client, sehingga 10 * 137 = 1370 Bytes atau 1,34 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan 10 klien Dalam satu tahun pertumbuhan dari Tabel Client adalah 10 * 137 = 1370 byte atau 1,337 Kbyte
Tabel 4.43 Estimasi Tabel ClientPhone Field
Data Type
Size
ClientID
Char
6
ClientPhoneNum
Varchar
16
Kapasitas dari tabel ClientPhone adalah 22 byte Data awal sebelum operasional 10 client phone, sehingga 10 * 22 = 220 Bytes atau 0,21 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan 15 Telepon Klien Dalam satu tahun pertumbuhan dari Tabel ClientPhone adalah 15 * 22
175 = 330 byte atau 0,322 Kbyte
Tabel 4.44 Estimasi Tabel ClientEmail Field
Data Type
Size
ClientID
Char
6
ClientEmailAddr
Varchar
51
Kapasitas dari tabel ClientEmail adalah 57 byte Data awal sebelum operasional 10 client email, sehingga 10 * 57 = 570 Bytes atau 0,56 Kbyte
Diperkirakan dalam 1 tahun terjadi pertambahan 10 Email Klien Dalam satu tahun pertumbuhan dari Tabel ClientEmail adalah 10 * 57 = 570 byte atau 0,556 Kbyte
Tabel 4.45 Estimasi Tabel ClientFax Field
Data Type
Size
ClientID
Char
6
ClientFaxNum
Varchar
16
Kapasitas dari tabel ClientFax adalah 22 byte Data awal sebelum operasional 10 Client fax, sehingga 10 * 22 = 220 Bytes atau 0,21 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan 15 Telepon Klien Dalam satu tahun pertumbuhan dari Tabel ClientFax adalah 15 * 22 = 330 byte atau 0,322 Kbyte
176
Tabel 4.46 Estimasi Tabel Stage Field
Data Type
Size
StageID
Char
4
StageDescription
Varchar
35
Kapasitas dari tabel Stage adalah 35 byte atau 0,034 Kbyte Data awal sebelum operasional 10 stage, sehingga 10 * 35 = 350 Bytes atau 0,34 Kbyte
Tabel 4.47 Estimasi Tabel News Field
Data Type
Size
NewsID
Char
9
EmployeeID
Char
8
MgrEmployeeID
Char
9
Title
Varchar
31
News
Varchar
301
InsertedDate
Date
3
DueDate
Date
3
Kapasitas dari tabel News adalah 364 byte Data awal sebelum operasional 10 news, sehingga 10 * 364 = 3640 Bytes atau 3,55 Kbyte Diperkirakan dalam 1 tahun terjadi pertambahan 96 berita Dalam satu tahun pertumbuhan dari Tabel News adalah 96 * 364 = 34944 byte atau 34,125 Kbyte
177 Tabel 4.48 Estimasi Tabel Holiday Field
Data Type
Size
HolidayID
Char
7
HolidayDate
Date
3
Description
Varchar
31
Kapasitas dari tabel Holiday adalah 41 byte Data awal sebelum operasional 24 holiday, sehingga 24 * 41 = 984 Bytes atau 0,96 Kbyte Diperkirakan dalam 1 tahun terjadi 15 hari libur Dalam satu tahun pertumbuhan dari Tabel Holiday adalah 15 * 41 = 615 byte atau 0,600 Kbyte
Tabel 4.49 Estimasi Tabel ActivityPlan Field
Data Type
Size
ProjectID
Char
9
StageID
Char
4
Sequence
Integer
4
StartDate
Date
3
EndDate
Date
3
Kapasitas dari tabel ActivityPlan adalah 23 byte Data awal sebelum operasional 40 activity plan, sehingga 40 * 23 = 920 Bytes atau 0,90 Kbyte Diperkirakan dalam 1 tahun terjadi 60 transaksi Dalam satu tahun pertumbuhan dari Tabel ActivityPlan adalah 60 * 23 = 1380 byte atau 1,347 Kbyte
178 Tabel 4.50 Estimasi Disk Space Nama Tabel
Employee
Manager
EmpPhone
PersonalEmail
Division
Privilege
LeaveRequest
Leave
LeaveEntitle
LeaveHoliday
LeaveType
Absence
AbsenceType AllowClaimDetail
Kapasitas database awal
Kapasitas Dibutuhkan
sebelum operasional
Dalam 1 Tahun
13,33 Kbyte
2,221 Kbyte
0,17 Kbyte
0,083 Kbyte
0,70 Kbyte
0,234 Kbyte
1,73 Kbyte
0,576 Kbyte
0,17 Kbyte
0,033 Kbyte
0,17 Kbyte
0,016 Kbyte
4,37 Kbyte
5,238 Kbyte
0,59 Kbyte
1,054 Kbyte
1,49 Kbyte
3,984 Kbyte
0,14 Kbyte
0,205 Kbyte
0,06 Kbyte
0,021 Kbyte
9,20 Kbyte
3888,203 Kbyte
0,10 Kbyte
0,032 Kbyte
4,40 Kbyte
14,062 Kbyte
179
AllowClaimHeader
2,52 Kbyte
30,234 Kbyte
2,20 Kbyte NonAllowClaimDetail
NonAllowClaimHeader
Project
0,366 Kbyte 2,52 Kbyte
0,84 Kbyte
0,83 Kbyte ProjectMember
ProjectStatus
Client
ClientPhone
ClientEmail
ClientFax
Stage
News
Holiday
16,796 Kbte
5,039 Kbyte
3,984 kbyte
0,12 Kbyte
0,023 Kbyte
1,34 Kbyte
1,337 Kbyte
0,322 Kbyte 0,21 Kbyte 0,56 Kbyte
0,556 Kbyte
0,21 Kbyte
0,322 Kbyte
0,34 Kbyte
0,034 Kbyte
3,55 Kbyte
34,125 Kbyte
0,96 Kbyte
0,600 Kbyte
180
ActivityPlan Space selama 1 tahun Space selama 5 tahun
0,90 Kbyte 52,618 Kbyte 263,09 Kbyte
1,347 Kbyte 4010,16 Kbyte 20050, 8 Kbyte 19,581 Mbyte
4.2.3.5 Pemilihan DBMS (Database Management System) Untuk menentukan DBM S yang akan digunakan dalam mengimplementasikan rancangan basis data, maka pada tahap ini akan dilakukan pemilihan DBM S dengan mempertimbangkan terhadap kebutuhan yang diperlukan. Dalam tahap pemilihan DBM S ini ada empat DBM S yang akan dipertimbangkan yaitu : MySQL version 5.0 ,SQL Server 2000, Oracle 9i, dan DB2 Universal Database v8.1. Pertimbangan dilakukan dengan melihat terhadap dua aspek penting dalam sebuah DBM S yaitu , kebutuhan hardware, serta perbandingan fitur dan akan disesuaikan dengan kebutuhan pada sistem yang akan diimplementasikan nantinya.
• Platform Tabel 4.51 Perbandingan berbagai macam Platform
DBMS
Mendukung Platform
MySQL version 5.0
Windows-based platforms, AIX-based systems, HP-UX systems, Linux Intel, Sun Solaris
181 SQL Server 2000
Windows-based platforms (Windows 9x, Windows NT, Windows 2000 dan Windows CE)
Windows-based platforms, AIX-based Oracle 9i
systems, Compaq Tru64 UNIX, HP-9000 Series HP-UX, Linux Intel, Sun Solaris
DB2 Universal
Windows-based platforms, AIX-based
Database v8.1
systems, HP-UX systems, Linux Intel, Sun Solaris
• Persyaratan Kebutuhan Hardware
Tabel 4.52 Perbandingan Kebutuhan Hardware pada masing-masing DBMS
DBMS
Platforms
Processor
Memory
MySQL
instalasi tidak
version
membutuhkan RAM
5.0
persyaratan
M endekati 32 M B
Swap
Hard
Space
Space
disk
M endekati 60 M B
penambahan CPU resources SQL
Intel atau
Pentium 166
32 M B RAM
270 M B
Server
Compatible
MHz
minimum
(Full
2000
Platforms
atau
yang untuk Dekstop
Installation),
182 lebih tinggi
Engine
250 M B
64 M B RAM
(Typical),
minimum
95 M B
untuk seluruh
(M inimum),
editions
44 M B
128 M B RAM
(Desktop
atau
Engine),
lebih
50 M B
direkomendasikan
(Analysis Services), 130 M B (Typical), 80
MB
(English Query) UNIX Systems
Pentium 166
M inimum 512
2 X dari
(AIX-Based
MHz
MB
jumlah
Systems,
atau yang
RAM
minimum
Compaq
lebih
RAM
Tru64 UNIX,
tinggi
atau
HP
4.5 GB
400
MB
9000Series,HPUX, Sun Solaris) Oracle 9i
Intel atau
Pentium 166
128 M B RAM ,
140 M B
Compatible
MHz
256 M B RAM
pada System
Platforms
atau
yang recommended
lebih tinggi
Drive
Virtual Memory :
ditambah
Initial Size 200
4.5 GB
MB
untuk
Maximun Size
Oracle
183 400 M B
Home Drive (FAT) atau 2.8 GB untuk Oracle Home Drive (NTFS)
UNIX Systems
Pentium 166
M inimum 512
2 X dari
(AIX-Based
MHz
MB
jumlah
Systems,
atau yang
RAM
minimum
Compaq
lebih
RAM
Tru64 UNIX,
tinggi
atau
HP
4.5 GB
400
MB
9000Series,HPUX, Sun Solaris) DB2
Windows-
Pentium atau
256 M B RAM
350 M B
Universal
based
Pentium
penambahan
minimum
Database
platforms
Compatible
memory
(Typical
CPU
disyaratkan
Installation),
v8.1
100 M B minimum (Compact Installation), 100 M B minimum (Custom Installation), penambahan hard disk space
184 disyaratkan pada FAT drives dengan cluster size yang besar UNIX Systems
Untuk AIX:
256 M B RAM
450 M B s.d
(AIX-Based
IBM
penambahan
550 M B
Systems,
RISC/6000
memory
minimum
Compaq
atau
disyaratkan
(Typical
Tru64 UNIX,
eServer
Installation),
HP
pSeries.
350 M B s.d
9000Series,HP- Untuk HP-
400 M B
UX,
UX:
minimum
Sun Solaris)
HP 9000
(Compact
series 700 or
Installation),
800
350 M B s.d
system.
700 M B
Untuk Linux:
minimum
Intel 32-bit,
(Custom
Intel 64-bit,
Installation)
S/390 9672 generation atau yang lebih tinggi, M ultiprise 3000, eServer zSeries. Untuk Solaris:
185 Solaris UltraSPARCbased Computer • Perbandingan Fitur
Tabel 4.53 Perbandingan Fitur DBMS Fitur
MySQL
SQL
Oracle 9i DB2
Server 2000
Universal Database v8.1
Indexes
B-Tree indexes
B-Tree indexes
B-Tree indexes,
B-Tree
Bitmap indexes, indexes Partitioned indexes, Function-based indexes, Domain indexes
Tables
Procedure
Relational
Relational
Relational
Relational
tables,
tables,
tables,
tables,
Temporary
Temporary
Object tables,
Object tables,
tables
tables
Temporary
Temporary
tables
Tables
Tidak
T-SQL
PL/SQL
DB2 SQL
M endukung
statements
statements,
dialect
Java methods,
statements,
third-
Java
186 generation
methods,
language
third-
(3GL) routines
generation language (3GL) routines
Arrays
M endukung
Tidak
M endukung
M endukung
M endukung
M endukung
M endukung
64
128
30
128
64
128
30
128
64
128
30
128
View
Tidak
128
30
128
Name length
M endukung
Stored
Tidak
128
30
Tidak
Procedure
M endukung
M endukung Views
Tidak M endukung
Column Name length
Index Name length
Table Name length
M endukung
Name Length
Max Column per Index
16
16
32
16
187
Max Char
1048543
8000
2000
254
1048543
8000
4000
32672
2599
1024
1000
1012
65534
8036
255000
32677
Size
Max Varchar Size
Max Column Per Table
Max Table Row Length
Tabel 4.54 Perbandingan DBMS Kriteria
MySQL
SQL
Oracle 9i
Server 2000 Berkaitan dengan
M emiliki data yang
M emiliki data yang
M emiliki data yang
limit data
lumayan banyak
cukup banyak
sangat banyak
untuk ditampung
untuk ditampung
untuk ditampung
Kemampuan
Tidak memerlukan
Tidak memerlukan
M emerlukan
sumber daya TI
pelatihan khusus
pelatihan khusus
pelatihan khusus
perusahaan dalam
karena DBM S ini
karena DBM S ini
untuk
menggunakan
sudah sangat
sudah sangat
menggunakan
DBM S
familiar dan mudah
familiar dan mudah
DBM S ini karena
dalam
dalam
rumit
188 penggunaannya
penggunaannya
Penggunaannya
Berkaitan dengan
M enggunakan
M enggunakan
M enggunakan
sistem
sistem operasi yang
sistem operasi yang
sistem operasi
operasi/software
berbasis windows
berbasis windows
berbasis windows,
yang digunakan
dan linux
AIX, Compaq, linux, HP dan Sun Solaris
Berkaitan dengan
M udah untuk
Lebih mudah untuk
Lebih sulit untuk
kemudahan
diinstal dan
diinstal, dan
digunakan sehingga
penggunaan DBM S
digunakan.
digunakan.
membutuhkan pelatihan yang Intensif
Berkaitan dengan
Tidak memerlukan
Tidak memerlukan
M emerlukan
hardware yang
spesifikasi
spesifikasi
spesifikasi
digunakan
hardware yang
hardware yang
hardware yang
terlalu besar
terlalu besar
Besar
Berkaitan dengan
M embutuhkan
M embutuhkan
M embutuhkan
anggaran yang
biaya yang tidak
biaya yang cukup
biaya yang sangat
dikeluarkan
terlalu besar karena
besar dari segi
besar mulai dari
software ini open
pembelian
pembelian
source
(hardware dan
(hardware dan
software),
software),
pelatihan,
pelatihan,
pengunaan dan
penggunaan dan
perawatan)
Perawatan
2 – 3 bulan
4 – 6 bulan
Berkaitan dengan lama instalasi, programming basis
3 – 6 bulan
189 data, konversi data, evaluasi dan pelatihan penggunaan pada DBM S yang Digunakan
Dari proses perbandingan di atas, maka DBM S yang akan dipilih dalam mendukung implementasi rancangan basis data dengan pertimbangan bahwa M ySQL 5.0 memiliki performance yang baik menurut TPC (Transaction Processing Performance Council) dan merupakan opensource dan tidak membutuhkan biaya besar. MySQL 5.0 bekerja pada platforms yang berbasiskan Windows dan Linux kondisi ini sesuai dengan kebutuhan perusahaan yang telah menggunakan sistem operasi berbasiskan Windows. Pertimbangan lainnya adalah instalasi dan pengoperasian MySQL 5.0 lebih mudah untuk dilakukan.
4.2.3.6 Merancang Mekanisme Keamanan Suatu basis data merepresentasikan informasi penting bagi perusahaan dan keamanan dari informasi merupakan faktor penting. Dalam keamanan ada dua tipe keamanan, yaitu keamanan sistem dan keamanan data. Keamanan sistem mengatur pengaksesan dan penggunaan basis data. Caranya adalah dengan membuat halaman login sebelum masuk ke halaman utama dari sistem. Dalam halaman login, user diminta untuk memasukkan username dan password. Sehingga user yang tidak memiliki username atau tidak memiliki password maka tidak akan bisa masuk ke sistem.
190 Sedangkan untuk keamanan data, berhubungan dengan relasi basis data (tabel atau relasi) dan aksi yang user lakukan terhadap relasi tersebut, misalnya aksi pemilihan, pengisian, pengubahan, dan penghapusan data. Berikut ini akan ditampilkan matriks referensi silang antara user dan relasi. Tujuannya adalah untuk membatasi hak akses user terhadap relasi yang ada.
Employee
Transaksi/Relasi I
Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News Holiday ActivityPlan
X
X X X X X
R
U
X X X X X X X X X X X X X X X X X X X X
X
X X X X
Approver Claim
Verifier D
I
X
X X X X X
R
U
X X X X X X X X X X X X X X X X X X X X
X
X X X X
D
I
X
X
X X X X X
R
U
X X X X X X X X X X X X X X X X X X X X
X
X X X X
X
X X
D
191
Approver Leave
Transaksi/Relasi I
Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News Holiday ActivityPlan
X X X X X X X X X
R
X X X X X X X X X X X X X X X X X X X X
X X X X
U
Project Manager D
I
X X X X X X X
X X X X X X X X X X X X X X X X X X X X
X
X X X X
X
X
R
X
X
U
Payer D
I
R
U
X
X X X
X X X X X X X X X X X X X X X X X X X X
X
X X X X
X
X
X X X X X X X X
X
X
X X
D
192
Transaksi/Relasi
I
Employee Manager EmpPhone PersonalEmail Division Privilege LeaveRequest Leave LeaveEntitle LeaveHoliday LeaveType Absence AbsenceType AllowClaimDetail NonAllowClaimDetail AllowClaimHeader NonAllowClaimHeader Project ProjectMember ProjectStatus Client ClientPhone ClientEmail ClientFax Stage News Holiday ActivityPlan
Holiday Editor
News Editor
X
X X X X X
R
U
X X X X X X X X X X X X X X X X X X X X
X
X X X X X
D
I
X
X X X X X
X
X X
R
U
X X X X X X X X X X X X X X X X X X X X
X
X X X X
X
SuperUser D
X
I
R
U
D
X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X X X X
X X X X
X X X X X X X X X X X
193
4.3 Perancangan Aplikasi Berikut ini merupakan perancangan aplikasi yang dibuat dan akan digunakan oleh PT. Prisma Global Solusi. Dalam perancangan aplikasi ini, meliputi perancangan struktur menu, pembuatan State Transaction Diagram(STD), dan spesifikasi proses. 4.3.1 Bagan Terstruktur (Structure Chart) Bagan terstruktur merupakan suatu bagan yang menggambarkan struktur dari proses aplikasi yang dibuat. Berikut ini merupakan Structured Chart (bagan terstruktur) yang meliputi Struktur M enu dan State Transition Diagram (STD).
4.3.2 S truktur Menu Berikut ini merupakan rancangan Structured Chart (bagan terstruktur) yang merupakan struktur menu dari aplikasi yang dibuat antara lain :
194 Login
Employee
Verifier
Approver Leave
Approver Claim
Payer
News Editor
Holiday Editor
Home
Lihat Berita
Lihat Pesan Baru
Insert Absensi hari ini Attendence Claim Leave Project Manage Logout
Gambar 4.9 S truktur Menu Awal
Project Manager
SuperUser
195
Gambar 4.10 S truktur Menu Attendance
196 Cla im
My Claim L ih at da fta r cla im Allowan ce Claim Req uest
Liha t d eta il allowan ce cla im ya ng in gin diaju kan
In se rt p eng jaua n Allowa nce Cla im
Non Allowan ce Claim Req ue st
In sert p en ga ju an Non Allowan ce Claim
Allowa nce Out stan ding Liha t d aft ar claim yan g be lu m diba yar
Ed it stat us cla im
Cla im A pp ro ve Liha t d aft ar claim yan g b elum d i-ap prove
Ed it sta tus cla im
Claim L ist
Liha t d afta r claim semua p ega wai Edit statu s claim
Gambar 4.11 S truktur Menu Claim
197 Le ave
M y L ea ve Lih at det ail cut i L ea ve R eq ue st
Liha t h ist or y cut i
In ser t cu ti
Lea ve B alan ce H isto ry
L ih at histo ry b alan ce cu ti
Lea ve A pp ro ve
Liha t d eta il cuti ya ng belu m diap pr ove
E dit sta tu s cuti
Gambar 4.12 S truktur Menu Leave P ro ject
A ctive P ro ject L ist
L ihat de ta il p ro yek yan g m a sih akt if All Pro je ct L ist
L ihat Deta il Proyek
E dit
De lete In sert Ne w Project
In se rt Pro yek
Gambar 4.13 S truktur Menu Project
Man age B io data and Privileg e Lihat dat a pe gaw ai Ad d Balan ce L ih at d afta r b alance cuti pe gaw ai Inse rt balance cu ti I nsert Ne w U ser Inse rt data pe gaw ai A llow ance Lihat harga cla im Edit h arg a claim Division L ih at d aftar divisi Inse rt divisi Edit D elete H olid ay Lihat d afta r h ari libur Insert h ari libur Edit D elete N ew s L ih at da ftar be rita Inse rt b erit a Edit D elete C lien t Liha t da ftar klie n Insert klien Edit D elete Stag e Lihat daft ar klien I nsert klien Ed it De le te Ad d Lea ve R ecord Inse rt cu ti peg awa i
Gambar 4.14 S truktur Menu Manage
198
199 4.3.3 State Transition Diagram State Transition Diagram yang dirancang merupakan diagram yang menjelaskan aliran suatu state ke state yang lain dalam sebuah aplikasi. Klik Login Input dan validasi username dan password Login error Tampilkan pesan kesalahan
Menu Login Klik Login Input dan validasi username dan password Login Sukses
Login sebagai Employee Tampilkan menu Prisma Employee
Login sebagai Verifier Tampilkan menu Prisma Verifier
Login sebagai Approver Claim Tampilkan menu Prisma Approver Claim
Login sebagai Approver Leave Tampilkan menu Prisma Approver Leave
Login sebagai Holiday Editor Tampilkan menu Prisma Holiday Editor
Login sebagai News Editor Tampilkan menu Prisma News Editor
Login sebagai Payer Tampilkan menu Prisma Payer
Login sebagai SuperUser Tampilkan menu Prisma SuperUser
Gambar 4.15 Menu Login
Prisma Employee
Prisma Verifier
Prisma Approver Claim
Prisma Approver Leave
Prisma Holiday Editor
Prisma News Editor
Prisma Payer
Prisma SuperUser
200
Gambar 4.16 Menu Prisma bagi SuperUser
201 Inser t New Project
All Project List
Klik Su bmenu Ins ertNew Pr oject Tamp ilkan fo rm p enambahan proy ek baru
K lik S ub men u AllP rojectLis t Tampilkan data pr oyek ses uai tahun yan g d ipilih
Claim SuperUser
Klik Claim Tampilkan M enu Claim S uperU ser
K lik S ubmenu ActiveP rojectLis t Tamp ilk an d ata proy ek yang dalam s tatu s aktif
Klik Logout
Pr oject SuperUser
K embali k e M enu Login
Menu Login
Klik Manage Tampilkan Menu M anage Su perU ser
Klik Leave Tampilkan M enu Leave Su perU ser
Manage SuperUser Klik Prisma Tampilkan Menu Pr is ma S uper Us er
Klik Attendance Tamp ilkan M enu A tten dance S uperU s er
Attendance SuperUser Klik Icon Actual (tanda panah) Tampilkan Chart perkembang an u ser secara minggu an
Weekly Project Chart
Klik Back Klik Zoom
Tampilkan Ch ar t perk emb angan us er s ecara h ar ian
Tam pilk an C hart p erkembangan us er secara min gguan
Daily Project Char t
Gambar 4.17 Menu Project bagi SuperUser
Prisma SuperUser
Leave SuperUser
202
Gambar 4.18 Menu Claim Bagi SuperUser
203
Leave Balance History
Klik Submenu MyLeave Tampilkan data cuti pegawai yang sedang login
Klik Submenu Leave Balance History T ampilkan track penambahan dan pengambilan cuti pegawai
Leave SuperUser
Klik Leave Tampilkan Menu Claim SuperUser
Klik Submenu LeaveRequest T ampilkan form cuti pegawai dan history cuti Leave Request Klik Submenu Leave Approve Tampilkan data cuti pegawai yang belum diapprove
Claim SuperUser
Leave Approve
Klik Logout Kembali ke Menu Login
Klik Manage Tampilkan Menu Manage SuperUser
Menu Login
Manage SuperUser
Klik Project Tampilkan Menu Project SuperUser
Klik Attendance Tampilkan Menu Attendance SuperUser
Klik Prisma Tampilkan Menu Prisma SuperUser
Project SuperUser
Prisma SuperUser
Attendance SuperUser
Gambar 4.19 Menu Leave Bagi SuperUser
204
Gambar 4.20 Menu Attendance Bagi SuperUser
205
News
K lik S ub men u N ew s Tampilkan For m add N ews d an d af tar New s yang ada
Division
Allowance
Insert New User
K lik S ubmenu A llow ance Tampilkan f orm pengis ian H arga A llowan ce Claim
Klik Su bmenu Ins ertNew Us er Tampilkan form penambahan pegaw ai
Klik Su bmenu D iv is ion Tamp ilkan F orm pengis ian divis i dan daftar divisi perus ahaan
Manage SuperUser
Holiday
Stage
Manage SuperUser
Klik view detail Tampilk an d etail d ata pegawai
K lik Sub men u Clien t Tampilkan F orm Insert N ew Clien t dan daftar clien t yang ada K lik S ubmenu A dd Leave R eco rd Tampilkan For m A dd Leave R eco rd
K lik S ubmenu S tag e Tampilk an F orm add stage d an d aftar s tag e yang ada
Client
Klik Logout K embali ke Menu Log in
Menu Login
Klik Prisma Tampilkan M en u P ris ma S uperU ser
Tampilkan Men u Leave Su perUs er
Tamp ilkan M enu Pro ject Sup er Us er
Klik Manage
Klik Claim
Tamp ilkan M enu Manag e S uperU ser
Tampilkan Men u C laim Su perUs er
Klik Attendance Attendance SuperUser
User Management
Prisma SuperUser
Klik Project
Klik Leave Leave SuperUser
Biodata and Privilege K lik S ubmenu Biodata an d P rivilege Tampilkan data pegaw ai
K lik Sub men u Holiday Tampilk an F orm penambahan hari lib ur dan daftar hari lib ur peru sahaan
Add Leave Record
Add Balance
K lik S ubmenu Ad dBalance Tamp ilkan for m penambahan balance pegaw ai
Tampilkan M en u Attendance S up er Us er
Gambar 4.21 Menu Manage Bagi SuperUser
Project SuperUser
Claim SuperUser
206
Gambar 4.22 S ubMenu My Attendance
207 Verify by User My Attendance
Klik Sub menu V erif y by U ser Tampilkan d ata ab sensi pegawai y an g dip ilih oleh S uperUs er
Klik Menu Attendance Tampilkan data ab sens i pegawai yang s ed an g login
Klik Menu My Attendance Tampilkan d ata abs ensi pegawai yang sedang login
K lik S ubmit V alidas i absen backdate. Abs en suks es
Klik Submenu V erif y Y esterday Tampilkan data ab sens i pegawai pada hari k emarin
Klik Submenu V erify Tampilkan data abs ensi pegaw ai pada hari in i
Backdate
Klik Sub menu V erif y A ll Tampilkan data abs ensi semua p eg aw ai
Klik Submit V alidasi ab sen back date. A bsen error. Tampilkan pesan kesalahan
Verify Yester day
Verify
Verify All
Klik Logout Kembali ke M enu Login
Menu Login
Klik Claim Claim SuperUser
Tampilkan M enu Claim Sup erU s er Klik Sub Menu Calendar Tampilkan data abs en si d an cuti pegawai dalam b en tuk kalender
Calendar
Klik Prisma Prisma SuperUser
Tampilkan M enu Pris ma S uperUs er
Klik Leave Tampilkan M en u Leave S uperU ser
Manage SuperUser
Klik Manage
Klik Project
Tampilkan Menu M an ag e S uperUs er
Tampilk an M enu Pro ject S uperU ser
Project SuperUser
Gambar 4.23 S ubMenu Backdate
Leave SuperUser
208
Gambar 4.24 S ubMenu Verify
209
Gambar 4.25 S ubMenu Verify Yesterday
210
Gambar 4.26 S ubMenu Verify All
211
Gambar 4.27 Menu Verify by User Bagi SuperUser
212
Gambar 4.28 S ubMenu Calendar
213
Gambar 4.29 S ubMenu My Claim
214
Gambar 4.30 S ubMenu Allowance Claim Request
215
K lik S ubmit V alidas i claim pegaw ai. Claim s uks es
My Claim K lik M enu Claim Tampilkan d ata claim peg aw ai y an g sedang login
K lik S ubmen u My Claim Tampilk an d ata claim pegaw ai yan g sedang login
Menu Login
Klik Logout K embali k e M enu Login
Allowance Outstanding
K lik S ubmenu A llowan ceO utstand in g Tampilkan data claim peg aw ai y an g belu m d ib ay ar
Claim Approve
K lik S ubmenu ClaimAp prove Tampilkan data claim pegaw ai yan g b elu m diapp rove
Allowance Claim Request
K lik S ub men u A llo wance ClaimR equest Tampilkan data claim Allow ance pegaw ai
Non Allowance Claim Request K lik S ubmit Validasi claim pegaw ai. Claim err or.
Claim List
K lik S ubmenu ClaimList Tampilk an d ata claim pegaw ai
Pesan error K lik O k atau ‘X ’
Klik Leave Leave SuperUser
Tampilk an M enu Leav e S uperU ser
Klik Prisma Tampilkan Menu P risma Su perUs er
Prisma SuperUser
Klik Manage Manage SuperUser
Tampilk an M enu M anage Sup erUs er
Klik Project Tampilkan Men u P roject S uperU s er
Klik Attendance
Attendance SuperUser
Tampilk an M enu A tten dance S up er Us er
Project Super User
Klik detail Tampilkan Allow ance C laim Detail
Allowance Claim Detal
Gambar 4.31 S ubMenu Non Allowance Claim Request
216
Gambar 4.32 Menu Allowance Outstanding Bagi SuperUser
217
Gambar 4.33 S ubMenu Claim Approve
218
Gambar 4.34 S ubMenu Claim List
219
Leave Balance History
Klik Menu Leave Tampilkan data cuti pegawai yang sedang login
Klik Submenu Leave Balance History T ampilkan track penambahan dan pengambilan cuti pegawai
My Leave Klik Leave Tampilkan Menu Claim SuperUser
Klik Submenu LeaveRequest T ampilkan form cuti pegawai dan history cuti Leave Request Klik Submenu Leave Approve Tampilkan data cuti pegawai yang belum diapprove
Claim SuperUser
Leave Approve
Klik Logout Kembali ke Menu Login
Klik Manage Tampilkan Menu Manage SuperUser
Menu Login
Manage SuperUser
Klik Project Tampilkan Menu Project SuperUser
Klik Attendance Tampilkan Menu Attendance SuperUser
Klik Prisma Tampilkan Menu Prisma SuperUser
Prisma SuperUser
Attendance SuperUser
Gambar 4.35 S ubMenu My Leave
Project SuperUser
220
Gambar 4.36 S ubMenu Leave Request
221
Gambar 4.37 S ubMenu Leave Approve
222
Gambar 4.38 S ubMenu Leave Balance History
223 Inser t New Project
All Project List
Klik Su bmenu Ins ertNew Pr oject Tamp ilkan fo rm p enambahan proy ek baru
K lik S ub men u AllP rojectLis t Tampilkan data pr oyek ses uai tahun yan g d ipilih
Claim SuperUser
Klik Men u P roject Tamp ilk an d ata proy ek yang dalam s tatu s aktif
Klik Claim
Klik Logout
Tampilkan M enu Claim S uperU ser
Active Project List
K embali k e M enu Login
Menu Login
Klik Manage Tampilkan Menu M anage Su perU ser
Klik Leave Tampilkan M enu Leave Su perU ser
Manage SuperUser Klik Prisma Tampilkan Menu Pr is ma S uper Us er
Klik Attendance Tamp ilkan M enu A tten dance S uperU s er
Attendance SuperUser Klik Icon Actual (tanda panah) Tampilkan Chart perkembang an u ser secara minggu an
Weekly Project Chart
Klik Back Klik Zoom
Tampilkan Ch ar t perk emb angan us er s ecara h ar ian
Tam pilk an C hart p erkembangan us er secara min gguan
Daily Project Char t
Gambar 4.39 S ubMenu Active Project List
Prisma SuperUser
Leave SuperUser
224
Gambar 4.40 S ubMenu All Project List
225
Gambar 4.41 S ubMenu Insert New Project
226
Gambar 4.42 S ubMenu Edit Project
227
User detail
Menu Login
project
prisma
attendance
claim
leave
Klik Logout Kembali ke menu Login Klik main menu project tampilkan active project
Klik v iew detail Tampilkan detail user
Klik C lient Tampilkan F orm pen gisian client dan daftar client
Klik pr isma Kembali ke menu utama Klik attendance tampilkan data absen Klik claim tampilkan data claim
Client
Klik S ubmenu N ews Tampilkan F orm p eng is ian berita dan d aftar berita
news
Klik S ubmenu Allowance Tamp ilkan form p en gis ian Harga Allowance C laim
allowance
User Ma nageme nt
Klik leave tampilkan data cuti
Klik manage tampilkan li st pegawai
Klik biodata and privilege tampilkan lis t pegawai
Klik K lik Submenu Su bmen u K lik S ubmenu holiday Stage InsertNew Us er Tamp ilkan Tampilkan Tampilkan form Form F orm penamb ah an pen gis ian p en gis ian dan pegaw ai dan daf tar daftar s tag e holiday
Insert new user
stage
holiday
Gambar 4. 43 SubMenu Use r Management
K lik Sub menu Division Tampilkan Form pengis ian divisi dan daftar d ivis i perus ahaan
division
K lik S ubmenu add b alance tampilkan data balance pegaw ai
Add balance
228
Gambar 4. 44 SubMenu Use r Detail
229
Gambar 4. 45 SubMenu Add Balance
230
Gambar 4. 46 SubMenu Insert New Use r
231
Gambar 4. 47 SubMenu Alowance
232
Gambar 4. 48 SubMenu Manage Division
233
Gambar 4. 49 SubMenu Edit division
234
Gambar 4. 50 SubMenu Manage Holifay
235
Gambar 4.51 SubMenu Edit Holiday
236
Gambar 4. 52 SubMenu Manage Ne ws
237
Gambar 4. 53 SubMenu Edit Ne ws
238
Gambar 4. 54 SubMenu Manage Stage
239
Gambar 4. 55 SubMenu Edit Stage
240
Gambar 4. 56 SubMenu Manage Client
241
Gambar 4. 57 SubMenu Edit Client
242
4.4 Perancangan Layar Berikut ini merupakan gambar rancangan layar yang akan diimplementasikan pada aplikasi :
Gambar 4.58 Rancangan Layar Halaman Login
Gambar 4.59 Rancangan Layar Halaman Home
243
Prisma
Attendance
MyAttendance
backdated
Claim verify
Leave
Project
Verify yesterday
Manage
Verify by user
Logout calender
Calender
Date
Acrivity
Project
Stage
Status
StatusClaim
Gambar 4.60 Rancangan Layar My Attendance
Gambar 4.61 Rancangan Layar Backdate
244
Gambar 4.62 Rancangan Layar Verify
Gambar 4.63 Rancangan Layar Verify Yesterday
245
Prisma
Attendance
MyAttendance
backdated
Claim verify
Leave
Project
Verify yesterday
Logout
Manage
Verify by user
calender
Choose one Reject
Verify
Name
Date
Change Time
Activity
Project
Stage
Verifier
Status
Gambar 4.64 Rancangan Layar Verify by User
Gambar 4.65 Rancangan Layar Calendar
Edit
246
Prisma
Attendance
My Claim
allow ClaimRequest
ClaimID
Claim
Type
Leave
Project
nonAllowClaimR equest
RequestDate
Total
Manage
ClaimApprove
Status
Logout
AllowanceOutstanding
ClaimList
detail
Gambar 4.66 Rancangan Layar My Claim
v Gambar 4.67 Rancangan Layar Allowance Claim Request
247
Gambar 4.68 Rancangan Layar Non Allowance Claim Request
Gambar 4.69 Rancangan Layar Non Allowance Claim Approve
248
Gambar 4.70 Rancangan Layar Non Allowance Claim List
Gambar 4.71 Rancangan Layar Non Allowance Outstanding
249
Prisma
Attendance
Claim
MyLeave
LeaveRequest
BalanceHistory
Type
Start “Date
End Date
Leave
Duration
Project
Manage
Logout
LeaveApprove
Notes
Request Date
status
Decision date
Gambar 4.72 Rancangan Layar My Leave
Gambar 4.73 Rancangan Layar Leave Request
250
Gambar 4.74 Rancangan Layar Leave Balance History
Gambar 4.75 Rancangan Layar Biodata and Privilege
251
Gambar 4.76 Rancangan Layar Add Balance
Gambar 4.77 Rancangan Layar Allowance
252
Gambar 4.78 Rancangan Layar Insert New User
253
Gambar 4.79 Rancangan Layar Division
Gambar 4.80 Rancangan Layar Holiday
Gambar 4.81 Rancangan Layar Stage
254
Gambar 4.82 Rancangan Layar News
Gambar 4.83 Rancangan Layar Customer
255
Gambar 4.84 Rancangan Layar User Management
256
Prisma MyLeave
Attendance
Claim
LeaveRequest
Leave
Project
BalanceHistory
Manage
Logout
LeaveApprove
Add Leave Record Name Start date End date Type Duration Note Submit
(Tempat pesan error)
Gambar 4.85 Rancangan Layar Add Leave Record
Gambar 4.86 Rancangan Layar Leave Confirm
257
Gambar 4.87 Rancangan Layar Active Project List
Gambar 4.88 Rancangan Layar All Project List
258
Gambar 4.89 Rancangan Layar Insert New Project
259
Gambar 4.90 Rancangan Layar Weekly
260
Gambar 4.91 Rancangan Layar Edit User
261 Rancangan layar untuk tujuh user lainnya sama kecuali tab bagian atas layer, sebagai contoh user Employee memiliki rancangan tab menu seperti pada Gambar 4.92 s/d Gambar 4.97
Gambar 4.92 Tab Home untuk Employee
Gambar 4.93 Tab Attendance untuk Employee
Gambar 4.94 Tab Claim untuk Employee
Gambar 4.95 Tab Leave untuk Employee
Gambar 4.96 Tab Project untuk Employee
Gambar 4.97 Tab Manage untuk Employee
Sedangkan untuk user Verifier, rancangan tab menu pada bagian atas layar ditunjukkan pada Gambar 4.98. Isi subM enu dari rancangan tab menu utama lainnya sama dengan rancangan isi subM enu bagi user employee
Gambar 4.98 Tab Attendance untuk verifier
262 Sedangkan untuk user Approver Claim, rancangan tab menu pada bagian atas layar ditunjukkan pada Gambar 4.99. Isi subM enu dari rancangan tab menu utama lainnya sama dengan rancangan isi subM enu bagi user employee
Gambar 4.99 Tab Claim untuk Approver Claim
Sedangkan untuk user Approver Leave, rancangan tab menu pada bagian atas layar ditunjukkan pada Gambar 4.100. Isi subM enu dari rancangan tab menu utama lainnya sama dengan rancangan isi subM enu bagi user employee
Gambar 4.100 Tab Leave untuk Approver Leave
Sedangkan untuk user Holiday Editor, rancangan tab menu pada bagian atas layar ditunjukkan pada Gambar 4.101. Isi subM enu dari rancangan tab menu utama lainnya sama dengan rancangan isi subM enu bagi user employee
Gambar 4.101 Tab Manage untuk Holiday Editor Sedangkan untuk user News Editor, rancangan tab menu pada bagian atas layar ditunjukkan pada Gambar 4.102. Isi subM enu dari rancangan tab menu utama lainnya sama dengan rancangan isi subM enu bagi user employee
Gambar 4.102 Tab Manage untuk News Editor
263 Sedangkan untuk user Payer, rancangan tab menu pada bagian atas layar ditunjukkan pada Gambar 4.103. Isi subM enu dari rancangan tab menu utama lainnya sama dengan rancangan isi subM enu bagi user employee
Gambar 4.103 Tab Claim untuk Payer
264 4.5 Disaster Recovery Plan Disaster recovery planning adalah suatu pernyataan yang menyeluruh mengenai tindakan konsisten yang harus diambil sebelum, selama, dan setelah suatu peristiwa yang mengganggu yang menyebabkan suatu kerugian penting sumber daya sistem informasi. disaster recovery p lan adalah prosedur untuk merespons suatu keadaan darurat, menyediakan backup operasi selama gangguan terjadi, dan mengelola pemulihan dan menyelamatkan proses sesudahnya. Disaster recovery planning bisa dibagi kedalam tiga bagian : 1. Software Ancaman yang dapat menyerang software diantaranya adalah virus Tindakan preventive Tindakan preventive yang dapat dilakukan adalah dengan memasang antivirus, dan selalu melakukan update terhadap antivirus tersebut. Selalu melakukan backup data secara berkala. Backup data dilakukan setiap hari. Karena setiap hari terjadi kurang lebih 70 transaksi. Backup data tersebut dilakukan pada malam hari karena pada saat tersebut jumlah transaksi sangat sedikit. Tindakan corrective Jika terlanjur terjadi kerusakan dapat dilakukan dengan menghapus virus tersebut menggunakan antivirus yang dapat mengatasinya dan jika memungkinkan menghapus virus tersebut secara manual. Jika setelah penghapusan virus, data ikut terhapus maka dilakukan recovery data .
265 2. Hardware Ancaman yang dapat mengancam hardware salah satunya adalah jika terjadi crash pada komponen hardware( M isalnya hardisk ). Tindakan preventive Crash data pada komponen salah satunya dapat disebabkan oleh tegangan arus listrik yang tidak stabil, oleh karena itu setiap computer menggunakan stabilizer. Selain itu juga menggunakan UPS untuk mencegah perubahan tegangan arus listrik yang signifikan pada saat mati listrik. Untuk menjaga hardware agar tetap berfungsi dengan baik dilakukan maintenance secara berkala. Selain itu juga dilakukan backup data untuk menjaga kemungkinan kehilangan data. Tindakan corrective M engganti komponen hardware yang rusak dengan yang baru. Setelah itu dilakukan recovery data terhadap data yang hilang.
3. Umum / Fisik Dalam hal ini ancaman yang dapat menyerang berasal dari faktor alam diantaranya adalah banjir, kebakaran, dan badai. Ada faktor lain yang dapat mengancam yaitu manusia. M anusia yang mempunyai maksud untuk mencuri data. Tindakan preventive Tindakan preventif yang dapat dilakukan adalah dengan melakukan backup data secara berkala dan hasil backup data tersebut diletakkan ditempat terpisah.
266 Selain itu juga dengan menggunakan otorisasi untuk dapat mengakses data untuk mencegah tindakan pencurian data . Tindakan corrective Tindakan korektif yang dapat dilakukan adalah dengan mengganti hardware yang rusak/hilang dengan yang baru dan menginstal ulang software-software yang ada lalu melakukan recovery dari hasil backup data yang tersimpan di tempat lain
267 4.6
Cara Pengoperasian Aplikasi
Pada Sub bab ini akan dijelaskan mengenai cara penggunaan aplikasi yang akan diterapkan pada PT. Prisma Global Solusi
Gambar 4.104 Halaman Login
Halaman Login adalah halaman yang pertama kali ditampilkan ketika saat membuka website ini. Pada halaman ini user harus memasukkan username dan password pada field yang tersedia untuk dapat masuk ke dalam halaman selanjutnya Jika Tombol Login maka akan melakukan beberapa pengecekan antara lainApabila username dan password kosong maka akan menampilkan pesan kesalahan, memeriksa apakah username dan password yang dimasukkan sesuai dengan yang ada di dalam database, apabila tidak sesuai ada maka akan menampilkan pesan kesalahan, apabila sesuai maka akan menampilkan halaman Home
268
Gambar 4.105 Halaman Home Halaman ini adalah halaman utama yang ditampilkan setelah user melakukan login. Pada halaman ini tab-tab menu dan submenu yang ditampilkan disesuaikan dengan hak user yang sedang login. Apakah ia memiliki hak sebagai Verifier, ApproverClaim, ApproverLeave, NewsM anager, NewsEditor, SuperUser atau hanya pegawai yang tidak memiliki hak apa-apa. Halaman Home memiliki empat bagian tampilan utama yaitu Bagian M essage yang menampilkan pesan bagi user yang sedang login. Pesan-pesan
269 tersebut merupakan link yang terhubung dengan halaman yang sesuai dengan maksud dari pesan tersebut. Bagian kedua adalah form pengisian absensi pegawai untuk hari itu juga. Bagian Latest Birthday merupakan bagian yang menampilkan nama-nama pegawai yang berulang tahun pada bulan tersebut. Bagian terakhir adalah news yang menampilkan berita-berita yang diposting oleh pihak perusahaan.
Gambar 4. 106 Halaman My Attendance
Halaman ini menampilkan daftar detail absensi user yang sedang login selama ia bekerja di perusahaan. Data akan ditampilkan dalam 2 bentuk, yaitu dalam bentuk kalender dan dalam bentuk tabel.
270
Gambar 4. 107 Halaman Backdate d
Halaman ini menampilkan form pengisian absen backdated. Halaman ini bertujuan untuk melakukan absensi pada tanggal yang sudah lewat yang disebabkan karena user lupa atau berhalangan untuk melakukan absen. Untuk melakukan absen backdated ini user harus mengisi tanggal absen, aktivitas, project dan tahapan yang dikerjakan, serta keterangan. Jika user tidak memilih aktivitas atau tanggal absen maka akan ditampilkan pesan error
Gambar 4. 108 Halaman Ve rify
271 Halaman yang ditujukan bagi verifier dan superuser ini menampilkan daftar absensi semua pegawai yang telah melakukan absensi hari ini (pada tanggal ketika user melakukan login). Verifier atau superuser dapat mengganti status absensi pegawai dengan memilih record absensi pegawai dan menekan tombol reject atau verify. Selain itu verifier/superuser juga dapat mengubah activity pegawai jika dirasakan tidak sesuai dengan memilih salah satu type yang ada di listmenu. Link edit yang terdapat dalam setiap record absensi pegawai akan menuju ke halaman Edit Absen.
Gambar 4. 109 Halaman Ve rify Ye ste rday
Halaman yang ditujukan bagi verifier dan superuser ini menampilkan daftar absensi semua pegawai yang telah melakukan absensi pada tanggal kemarin (pada tanggal minus 1 ketika user melakukan login). Verifier atau superuser dapat mengganti status absensi pegawai dengan memilih record absensi pegawai dan menekan tombol reject atau verify. Selain itu verifier/superuser juga dapat mengubah activity pegawai jika dirasakan tidak sesuai dengan memilih salah satu type yang ada di listmenu. Link edit yang terdapat dalam setiap record absensi pegawai akan menuju ke halaman Edit Absen.
272
Gambar 4. 110 Halaman Ve rify by Use r
Halaman yang ditujukan bagi verifier dan superuser ini menampilkan daftar absensi pegawai yang telah dipilih melalui listmenu di kiri atas. Verifier atau superuser dapat mengganti status absensi pegawai dengan memilih record absensi pegawai dan menekan tombol reject atau verify. Selain itu verifier/superuser juga dapat mengubah activity pegawai jika dirasakan kurang sesuai dengan memilih salah satu type yang ada di listmenu. Link edit yang terdapat dalam setiap record absensi pegawai akan menuju ke halaman Edit Absen.
273
Gambar 4. 111 Halaman Ve rify All
Halaman ini menampilkan daftar absensi semua pegawai yang belum diproses (masih dalam status pending). Selain itu halaman ini memiliki kegunaan yang sama seperti halaman verify.
Gambar 4. 112 Halaman Calendar
Halaman yang ditujukan bagi superuser ini bertujuan untuk menampilkan data absen dari pegawai. Superuser memilih nama pegawai yang mau dilihat datanya kemudian akan keluar datanya dalam bentuk kalender, di setiap kalender akan muncul warna sesuai dengan aktivitas yang dia lakukan pada tanggal tersebut. Jika kita men-hover
274 tanggal tersebut akan keluar keterangan project yang pegawai kerjakan. Selain itu bisa muncul pula simbol warna yang menggambarkan kalau pegawai yang bersangkutan mengambil cuti dan Jika kita men-hover tanggal tersebut akan keluar keterangan dari cuti pegawai tersebut. Dan terdapat pula simbol warna yang menggambarkan bahwa tanggal tersebut merupakan hari libur. Jika kita menhover tanggal tersebut akan keluar keterangan hari libur tersebut. User juga dapat memilih bulan atau tahun yang diinginkan dengan menekan tanda panah pada kalender
Gambar 4. 113 Halaman Edit Absen
Halaman ini menampilkan form edit absen yang dapat diisi oleh verifier/superuser untuk mengubah data absensi pegawai. Jika data yang dimasukkan valid maka verifier/superuser akan kembali ke halaman sebelumnya.
275
Gambar 4. 114 Halaman My Claim
Halaman ini menampilkan record claim dari user yang sedang login selama ia bekerja di perusahaan. Selain itu terdapat link detail di setiap record yang menuju ke halaman Allowance/NonAllowance Claim Detail sesuai dengan type claim yang tercantum.
Gambar 4. 115 Halaman Non Allowance Claim Detail
Halaman ini menampilkan detail nonallowclaim dari user yang sedang login sehingga user dapat memantau Non Allowance Claim apa saja yang ia ajukan dan besar jumlah claim yang akan didapakan dari perusahaan. Terdapat pula tombol print untuk menuju ke halaman cetak claim yang berfungsi untuk mencetak bukti claim.
276
Gambar 4. 116 Halaman Print Non Allowance Cash Claim
Halaman ini menampilkan detail dari non allowance claim detail yang dapat dicetak ke kertas sebagai bukti dari pengajuan claim. Dengan menekan tombol ‘Print this Page’ user dapat mencetak bukti claim tersebut.
Gambar 4. 117 Halaman Allowance Claim Detail
277 Halaman ini menampilkan detail allowance claim dari user yang sedang login sehingga user dapat memantau Allowance Claim apa saja yang ia ajukan dan besar jumlah claim yang akan didapakan dari perusahaan. Terdapat pula tombol print untuk menuju ke halaman cetak claim yang berfungsi untuk mencetak bukti claim.
Gambar 4. 118 Halaman Print Allowance Cash Claim
Halaman ini menampilkan detail dari allowance claim detail yang dapat dicetak ke kertas sebagai bukti dati pengajuan claim. Dengan menekan tombol ‘Print this Page’ user dapat mencetak bukti claim tersebut.
278
Gambar 4. 119 Halaman Allowance Claim Re quest
Halaman ini menampilkan allowance claim detail yang ingin diajukan oleh user ke perusahaan. User harus memilih periode yang ingin diajukan claimnya. M aka akan keluar detail dari claim yang dapat diajukan pada periode tersebut. Kemudian user menekan tombol submit untuk pengajuan claim.
Gambar 4. 120 Halaman Non Allowance Claim Re que st