BAB 4 HAS IL D AN PEMBAHAS AN
4.1
Analisa Kebutuhan Analisa kebutuhan dibagi menjadi 2 bagian besar, yakni analisa kebutuhan
pengguna dan analisa kebutuhan teknis. 4.1.1
Kebutuhan Pengguna Analisa kebutuhan pengguna bersumber dari data - data hasil
wawancara, survey, kuisioner, serta observasi yang dilakukan selama di BPPT. Berkolaborasi dengan permasalahan yang dihadapi, solusi yang ditawarkan (pada bab 3) dan ruang lingkup yang dikerjakan (pada bab 1), dapat disimpulkan beberapa hal yang menjadi kebutuhan utama pengguna yang menjadi prioritas dalam pembuatan aplikasi. Sebelum dipaparkannya hal - hal tersebut, berikut adalah hasil dari evaluasi awal (survey) sebelum kegiatan perencanaan dilakukan dimana tujuan dari survey ini sendiri adalah mencari tahu apa saja yang menjadi kebutuhan pengguna dan sejauh mana kebutuhan itu dibutuhkan.
Berikut ini diagram hasil evaluasinya (survey 10 responden): 1.
M enurut Saudara/i seberapa efektifkah sistem tata kelola kerekayasaan yang berjalan sekarang?
129
130 Abstein, 1 Sangat Efektif, 0 Tidak Efektif, 0
Efektif, 4 Kurang Efektif, 5
2.
Apakah Saudara/i sering mengalami kesulitan ketika menggunakan sistem tata kelola kerekayasaan yang sedang berjalan? Abstein, 1 Selalu, 0 Tidak pernah, 0 Sering, 2 Kadang‐ kadang, 7
3.
Apakah yang menyulitkan Saudara/i mengenai sistem tata kelola kerekayasaan yang sedang berjalan sekarang (jika ada, boleh > 1) ? Kurang mengerti Lainnya, 2 Abstein, 0 sistemnya, 3
Merepotkan, 4 Tidak ada help‐ desk, 4
131 4.
Apakah Saudara/i membutuhkan sistem tata kelola kerekayasaan yang terkomputerisasi? Abstein, 1 Tidak butuh, 0
Tidak begitu butuh, 0 Sangat butuh, 2
Butuh, 7
5.
M enurut Saudara/i apa yang kurang dari sistem tata kelola kerekayasaan yang sedang berjalan (boleh > 1) ? lainnya, 1
Lama dapat pointnya (angka kredit), 6
Waktunya lama, 3
Susah memeriksa datanya (validasi), 5
Suka hilang arsipnya, 3
Berikut ini point - point hasil analisa kebutuhan pengguna (berurutan sesuai dengan prioritasnya) : 1. Dibutuhkan sebuah sistem komputerisasi yang mengatur alur informasi dalam kegiatan kerekaysaan yang lebih mudah digunakan, menarik, mudah dipelajari dan sesuai dengan kebutuhan pengguna.
132 2. Dibutuhkan sistem komputerisasi yang aman dalam mengurus kegiatan kerekayasaan (file tidak hilang, tersusun dan mudah dicari). 3. Dibutuhkan sistem yang membantu proses penilaian angka kredit, karena selama ini proses penghitungan angka kredit masih terus mengalami kendala seperti berkas hilang, sulit mengelompokan berkas, sulit mengatur berkas. 4. Dibutuhkan sistem yang memudahkan komunikasi antar pegawai. 5. Dibutuhkan sistem yang memungkinkan pengguna dan atasan melakukan pemantauan akan status perkembangan kegiatan dan angka kredit. 6. M udah diakses dari manasaja, kapan saja.
Oleh sebab itu, maka dirancanglah sebuah sistem, berbasis website. Gabungan antara sistem basis data yang efektif dan efisien dengan aplikasi yang mudah digunakan dan tepat sasaran sesuai kebutuhan.
4.1.2
Kebutuhan Teknis Analisa kebutuhan teknis (technical requirement analysis) dibentuk
berdasarkan hasil kolaborasi dari hasil analisa kebutuhan pengguna, solusi yang ditawarkan, ruang lingkup, serta analisa dari sistem yang sedang berjalan. Sesuai dengan apa yang akan dirancang, maka disusunlah beberapa modul yang perlu dijelaskan dahulu sebagai pengantar dari perancangan.
133 4.1.2.1
Hardware yang Dibutuhkan Inti dari kebutuhan hardware adalah berhubung sistem yang
dibuat berbasis website, maka yang dibutuhkan minimum adalah sebuah PC dengan akses internet. Sistem operasi bebas antara Windows, atau Linux. Sebaiknya Linux karena lebih ergonomis jika dijadikan web server. Hardware harus memenuhi beberapa persyaratan minimum berikut ini.Persyaratan minimum berikut sudah bisa mencukupi sistem untuk berjalan, tapi ada baiknya kemampuan PC / server lebih tinggi lagi karena jika hanya menggunakan spesifikasi demikian, performa dan kelancaran sistem mungkin bisa bermasalah ketika beban semakin tinggi. Persyaratan minimun untuk hardware adalah: •
Intel pentium 4, 1 Ghz.
•
RAM 1Gb.
•
Harddisk> 2Gb.
•
OS M icrosoft Windows XP, Server 2003 atau Linux.
4.1.2.2
S oftware yang Dibutuhkan Dua komponen utama yang sangat dibutuhkan adalah web-
server, dan database-server. Dua aplikasi ini bisa didapat dengan mudah dan selain itu juga banyak pembuat aplikasi - aplikasi seperti ini yang sudah menyediakan package / paket yang berisi lengkap keduanya. Web-server bisa dari banyak sumber, salah satu yang
134 termasuk paling banyak digunakan adalah Apache HTTP server. Apache bisa bekerja di Windows maupun Linux. M ySQL server adalah database server yang dibutuhkan, dan sumber yang paling umum adalah dengan langsung menggunakan M ySQL server milik Oracle. Berikut ini adalah software yang dibutuhkan agar sistem dapat berjalan antara lain (minimum): •
Untuk OS Linux. M inimum Apache 2.0 dengan PHP versi 5.1 dan MySQL versi 5.2. PHPMyAdmin. (bisa berasal dari modul LAM P server).
•
Untuk OS Windows. M inimum HTTP server dengan modul PHP versi 5.1 / Server IIS yang dimodifikasi agar mendukung PHP, MySQL server versi 5.2 , PHPMyAdmin. (dapat digunakan walaupun kurang efisien dan aman dengan menggunakan program XAM PP atau WAM PP).
4.1.2.3
Konfigurasi web server dan PHP Selain kebutuhan hardware dan software sebagai syarat
minimal untuk berjalannya aplikasi ini. Ada juga beberapa konfigurasi yang harus dilakukan agar aplikasi ini bisa berjalan dengan semestinya dan lebih aman. Seperti konfigurasi web-server HTTP (httpd.conf) dan konfigurasi PHP (php.ini).
135 Berikut ini adalah beberapa parameter yang bisa dipertimbangkan untuk konfigurasi tersebut (jika menggunakan Apache sebagai web-server): •
Filehttpd.conf File ini merupakan file konfigurasi web server Apache. File ini mengatur banyak komponen seperti port, dan module. Tidak ada yang perlu diubah dari file ini, namun perlu dipastikan bahwa modul PHP terinstall dengan baik dan hal ini tertulis di file ini. (catatan. Hati - hati ketika mengubah file ini, sebaiknya dibuat cadangannya dahulu, karena jika salah konfigurasi dapat menyebabkan bermasalahnya web - server).
•
Filephp.ini File ini mengurus semua konfigurasi PHP. Ada beberapa parameter yang mungkin perlu diperhatikan seperti: 1. error_reporting = ... Parameter ini mengatur tampilan error PHP (jika ada) ke layar. Sebaiknya dikosongkan saja karena pengguna sebaiknya tidak perlu melihat error. 2. display_errors = On -> jadi Off Berhubungan dengan parameter ke.1. dengan mengubah jadi Off. 3. post_max_size = 2M
136 M engatur
ukuran
POST
dalam
megabyte.
Hubungannya dengan file yang bisa diupload nanti, sebaiknya disesuakan dengan maksimum ukuran file yang bisa diupload, jika maks 10mb, maka aturlah biar 15mb. 4. file_uploads = On ON-kan, agar bisa upload data. 5. upload_tmp_dir = "C:\tmp" Lokasi upload sementara, sebelum dipindah ke lokas i yang lainnya. 6. upload_max_filesize = 1M Sesuai dengan no.3. parameter ini mengatur ukuran maksimum yang bisa diupload.
4.1.2.4
Mekanisme Penhitungan Progress Salah satu dari kebutuhan sistem adalah monitoring status
perkembangan dari program (atau disebut progress). M aka berikut ini adalah penjelasan akan mekanisme tersebut, cara kerja, dan contohnya.
Penyamaan definisi: •
"Program-Tree" terdiri dari "Program", "WBS", "WP", dan "Aktifitas".
137 •
"Program", "WBS", "WP", dan "Aktifitas" disebut sebagai "Program-Nodes".
•
"Program" terdiri dari "WBS".
•
"WBS" terdiri dari "WP".
•
"WP" terdiri dari "Aktifitas".
Pekerjaan yang bisa digunakan sebagai penentu progress dari program-nodes adalah kegiatan membuat, men-check, dan mengapprove file-file / laporan tertentu. Penjelasannya sebagai berikut: •
Program membuat file Program Document (PD). M en-check dan meng-approveTechnical
Document
(TD).
M eng-
approveTechnicalReport (TR). •
WBS
membuat
file
Technical
Document
(TD).
M en-
checkTechnicalReport (TR). M eng-approveTechnicalNotes (TN). •
WP
membuat
file
TechnicalReport
(TR).
checkTechnicalNotes (TN). •
Aktifitas membuat file TechnicalNotes (TN).
M asing - masing program-nodes memiliki progress masing masing yang dikalkulasikan dengan rumus sebagai berikut: Progress=[persen node sekarang]+[persen node semua anak(jika ada)]
M en-
138 M etode pengkalkulasian progress dari suatu Program-Tree bisa dicontohkan dengan tabel sebagai berikut : Contoh skema program :
Program 1
WBS 2
WBS 1
WP 1
WP 2
Aktifitas 1
Aktifitas 2
WP 3
Aktifitas 3
Aktifitas 4
Aktifitas 5
Contoh skenario : Setiap pekerjaan maka akan menambah : 1.
Program 1 = 100% / (10 anak + 1 sendiri) = 9.09 / 2 = 4.54%
2.
WBS 1 = 100% / (6 anak + 1 sendiri) = 14.28 / 2 = 7.14%
3.
WBS 2 = 100% / (2 anak + 1 sendiri) = 33.3 / 2 = 16.67%
4.
WP 1 = 100% / (1 anak + 1 sendiri) = 50 / 2 = 25%
5.
WP 2 = 100% / (3 anak + 1 sendiri) = 25 / 2 = 12.5%
6.
WP 3 = 100% / (1 anak + 1 sendiri) = 50 / 2 = 25%
7.
Aktifitas 1 = 100% / (0 anak + 1 sendiri) = 100 / 2 = 50%
139 8.
Aktifitas 2 = 100% / (0 anak + 1 sendiri) = 100 / 2 = 50%
9.
Aktifitas 3 = 100% / (0 anak + 1 sendiri) = 100 / 2 = 50%
10. Aktifitas 4 = 100% / (0 anak + 1 sendiri) = 100 / 2 = 50% 11. Aktifitas 5 = 100% / (0 anak + 1 sendiri) = 100 / 2 = 50%
Tabel 4.1 Tabel simulasi perhitungan progress [bagian 1] Program Nodes Program 1 WBS 1 WP 1 Aktifitas 1 WP 2 Aktifitas 2 Aktifitas 3 Aktifitas 4 WBS 2 WP 3 Aktifitas 5
Kegiatan
create TN
create TN
Progress 0 0 0 0 0 0 0 0 0 0 0
Kegiatan
check TN
check TN
Progress 9.08 7.14 25 50 0 0 0 0 16.67 25 50
Kegiatan Approve TN
Approve TN
progres s 18.16 14.28 50 100 0 0 0 0 33 50 100
Tabel 4.2 Tabel simulasi perhitungan progress [bagian 2] Program Nodes Program 1 WBS 1 WP 1 Aktifitas 1 WP 2 Aktifitas 2 Aktifitas 3 Aktifitas 4 WBS 2 WP 3 Aktifitas 5
Kegiatan
Create TR Done Create TN Create TN Create TN Create TR Done
Progress 18.16 14.28 50 100 0 0 0 0 33 50 100
Kegiatan Check TR Done Check TN (3)
Check TR Done
Progress
Kegiatan
40.86 42.48 75 100 37.5 50 50 50 49.7 75 100
Approve TR(2) Check TN (3) Done
Done
progres s 63.56 63.9 100 100 75 100 100 100 66.6 100 100
140 Tabel 4.3 Tabel simulasi perhitungan progress [bagian 3] Program Nodes Program 1 WBS 1 WP 1 Aktifitas 1 WP 2 Aktifitas 2 Aktifitas 3 Aktifitas 4 WBS 2 WP 3 Aktifitas 5
Kegiatan
Progress
Kegiatan
Progress
Kegiatan
Check TD Check TR Done Done
72.64 71.04 100 100 87.5 100 100 100 83.67 100 100
Approve TD TR
Done Done Create TR Done Done Done Create TD Done Done
63.56 63.9 100 100 75 100 100 100 66.6 100 100
Done Done Done Done Done
Done Done Done Done Done Done Done
progres s 81.72 78.18 100 100 100 100 100 100 100 100 100
Tabel 4.4 Tabel simulasi perhitungan progress [bagian 4] Program Nodes Program 1 WBS 1 WP 1 Aktifitas 1 WP 2 Aktifitas 2 Aktifitas 3 Aktifitas 4 WBS 2 WP 3 Aktifitas 5
Kegiatan
Progress
Kegiatan
Progress
Kegiatan
Check TD
86.26 85.32 100 100 100 100 100 100 100 100 100
Approve TD
Create TD Done Done Done Done Done Done Done Done Done
81.72 78.18 100 100 100 100 100 100 100 100 100
Done Done Done Done Done Done Done Done Done
Done Done Done Done Done Done Done Done Done
progres s 90.8 100 100 100 100 100 100 100 100 100 100
Tabel 4.5 Tabel simulasi perhitungan progress [bagian 5] Program Nodes Program 1 WBS 1 WP 1 Aktifitas 1 WP 2 Aktifitas 2 Aktifitas 3
Kegiatan
Progress
Kegiatan
Progress
Kegiatan
Create PD Done Done Done Done Done Done
90.8 100 100 100 100 100 100
Check PD Done Done Done Done Done Done
95.34 100 100 100 100 100 100
Approve PD Done Done Done Done Done Done
progres s 100 100 100 100 100 100 100
141 Aktifitas 4 WBS 2 WP 3 Aktifitas 5
4.2
Done Done Done Done
100 100 100 100
Done Done Done Done
100 100 100 100
Done Done Done Done
Perancangan Perancangan dimulai dengan basis data. Perancangan basis data sendiri dibagi
menjadi 3 tahapan yakni konseptual, logikal, dan fisikal. Lalu perancangan dilanjutkan dengan perancangan aplikasi. Perancangan aplikasi dimulai dengan use case diagram yang lalu dilanjutkan dengan sequencediagram dan classdiagram. Format tampilan layar yang direncanakan juga turut dimasukan di tahapan terakhir perancangan aplikasi.
4.2.1
Perancangan Basis Data Perancangan basis data terdiri dari 3 tahapan yang dimana masing -
masingnya memiliki tujual dan hasil yang digunakan pada tahapan selanjutnya. Berikut penjabarannya. 4.2.1.1
Perancangan Basis Data Konseptual Perancangan basis data konseptual merupakan proses
pembuatan model data konseptual menggunakan hasil analisa transaksi dan pengumpulan syarat pembuatan aplikasi. 4.2.1.1.1 Identifikasi Entitas Identifikasi entitas merupakan tahapan awal dalam perancangan konseptual data.
100 100 100 100
142 Tabel 4.6 Kamus Data Entity Nama Entitas
Deskripsi
Alias
Kejadian
Karyawan
Entitas yang berisi
Pegawai
Karyawan dapat
informasi mengenai
mengikuti satu atau
karyawan di PPKDT
lebih program
Jabatan_Perekayasa Entitas yang berisi
Tingkat_Perekayasa
Jabatan_Perekayasa
informasi mengenai
dapat dimiliki oleh
jabatan-jabatan yang
satu atau lebih
ada di dalam
karyawan
kerekayasaan Program
Entitas yang berisi
Program
Program dapat
informasi mengenai
memiliki satu atau
program yang ada di
lebih karyawan
PPKDT Dokumen_Program Entitas yang berisi
Dokumen_Kerja
Dokumen_Program
informasi mengenai
dimiliki oleh satu
dokumen-dokumen
program
hasil setiap program Rapat
Entitas yang berisi
Pertemuan
Rapat dibuat oleh sebuah program
informasi mengenai rapat yang diadakan oleh setiap program Absensi_Rapat
Entitas yang berisi
Daftar_Hadir
Absensi_Rapat
143 informasi mengenai
dimiliki oleh sebuah
karyawan yang hadir
rapat
pada setiap rapat Kegiatan
Entitas yang berisi
Angka_Kredit
Angka_Kredit
informasi mengenai
memiliki satu atau
daftar kegiatan untuk
lebih jabatan
mendapatkan angka
kerekayasaan
kredit Tim_Penilai
Entitas yang berisi
Tim_Penilai
informasi mengenai
Tim_Penilai menilai butir kegiatan
tim untuk menilai kinerja karyawan DUPAK
Entitas yang berisi
DUPAK
DUPAK memiliki
informasi mengenai
satu atau lebih surat
usulan angka kredit
pernyataan
yang dibuat oleh karyawan PAK
Entitas yang berisi
PAK
PAK memiliki satu
informasi mengenai
atau lebih butir
angka kredit yang
kegiatan
disetujui oleh tim penilai Surat_Pernyataan
Entitas yang berisi
Surat_Pernyataan
Surat_Pernyataan
144 informasi mengenai
memiliki satu atau
surat pernyataan
lebih butir kegiatan
yang dimiliki DUPAK Butir_Kegiatan
Thread
Entitas yang berisi
Daftar_Kegiatan
Butir_Kegiatan
informasi mengenai
memiliki satu atau
daftar angka kredit
lebih dokumen
karyawan
program
Entitas yang berisi
Topik
informasi mengenai
Thread memiliki satu atau lebih posting
topik-topik di forum Posting
Entitas yang berisi
Post
informasi mengenai
Posting dibuat oleh karyawan
posting-posting di setiap topik Pesan
Entitas yang berisi
Surat
Pesan dibuat oleh karyawan
informasi mengenai pesan-pesan yang dibuat oleh setiap karyawan File_Download
Entitas yang berisi informasi mengenai file-file yang dapat
Arsip_Unduhan
File_Download dibuat oleh karyawan
145 di download
4.2.1.1.2 Identifikasi Tipe Relasi Pada tahap ini setiap entitas akan dihubungkan terhadap entitas lain berdasarkan kegiatan yang dilakukan setiap entitas.
Gambar 4.1 Identifikasi Tipe Relasi
146 Tabel 4.7 Kamus Data Relationship Nama Entitas
Multiplicity Relationship Nama Entitas
Karyawan
1..*
M emiliki
Jabatan_Perekayasa 1..1
1..*
M emiliki
Program
1..*
1..1
M emiliki
PAK
1..*
1..1
M embuat
DUPAK
1..*
1..1
M embuat
Surat_Pernyataan
1..*
1..1
M embuat
Thread
1..*
1..1
M embuat
Posting
1..*
1..1
M embuat
Pesan
1..*
1..1
M embuat
File_Download
1..*
Jabatan_Perekayasa 1..1
Dimiliki
Karyawan
1..*
1..*
Dimiliki
Kegiatan
1..*
1..*
Dimiliki
Karyawan
1..*
1..1
M emiliki
Dokumen_Program
1..*
1..1
M embuat
Rapat
1..*
1..1
M engisi
Absensi_Rapat
1..*
1..1
M emiliki
Program
1..*
1..*
Dimiliki
Program
1..1
0..1
Dimiliki
Butir_Kegiatan
1..*
1..*
Dibuat
Program
1..1
1..1
M emiliki
Absensi_Rapat
1..*
1..*
Dimiliki
Rapat
1..1
Program
Dokumen_Program
Rapat
Absensi_Rapat
Multiplicity
147 1..*
Diisi
Program
1..*
M emiliki
Jabatan_Perekayasa 1..*
1..1
Dimiliki
Butir_Kegiatan
1..*
Tim_Penilai
1..*
M enilai
Butir_Kegiatan
1..*
DUPAK
1..*
Dibuat
Karyawan
1..1
1..1
M emiliki
Surat_Pernyataan
1..*
1..*
Dibuat
Karyawan
1..1
1..1
M emiliki
Butir_Kegiatan
1..*
1..1
M emiliki
Butir_Kegiatan
1..*
1..*
Dibuat
Karyawan
1..1
1..*
Dimiliki
Surat_Pernyataan
1..1
1..*
Dimiliki
PAK
1..1
1..*
Dinilai
Tim_Penilai
1..*
1..*
M emiliki
Dokumen_Program
0..1
1..*
M emiliki
Kegiatan
1..1
1..*
Dibuat
Karyawan
1..1
1..1
M emiliki
Posting
1..*
1..*
Dimiliki
Thread
1..1
1..*
Dibuat
Karyawan
1..1
Pesan
1..*
Dibuat
Karyawan
1..1
File_Download
1..*
Dibuat
Karyawan
1..1
Kegiatan
PAK
Surat_Pernyataan
Butir_Kegiatan
Thread
Posting
1..1
148 4.2.1.1.3 Identifikasi Atribut setiap Entitas Pada tahap ini akan menentukan atribut yang berhubungan dengan setiap entitas. Setiap atribut akan dilengkapi dengan deskripsi, tipe data dan panjang, dan menentukan apakah atribut tersebut dapat bernilai NULL atau multivalued. Tabel 4.8 Identifikasi Atribut Entitas Nama Entitas
Atribut
Deskripsi
Tipe
dan NULL Multivalued
Panjang Data Karyawan
NIP
Nomor
induk char (20)
no
no
no
no
no
no
no
no
no
no
karyawan yang unik NSKP
Nomor
seri varchar(30)
kartu pegawai Username
Nama masuk
untuk varchar(15) ke
aplikasi Sandi
Kata
sandi varchar(10)
untuk masuk ke aplikasi Nama_Karyawan
Nama lengkap varchar(100) karyawan
149 Pendidikan
Pendidikan
varchar(30)
no
no
yes
no
varchar(30)
no
no
varchar(15)
yes
no
varchar(15)
yes
no
varchar(100)
no
no
lahir varchar(15)
no
no
lahir date
no
no
Tanggal masuk date
no
no
yes
no
no
no
terakhir karyawan Foto
Lokasi
foto varchar(30)
karyawan
di
server Email
Email karyawan
Telepon
Telepon karyawan
HP
Handphone karyawan
Alamat
Alamat karyawan
Tempat_Lahir
Tempat karyawan
Tgl_Lahir
Tanggal karyawan
Tgl_M asuk
karyawan Tgl_Keluar
Tanggal keluar date karyawan
Jenis_Kelamin
Jenis
kelamin
char(1)
150 karyawan Peran
Peran
varchar(15)
no
no
varchar(30)
yes
no
Jawaban untuk varchar(30)
yes
no
yes
no
no
no
no
no
no
no
karyawan
di
aplikasi Pertanyaan
Pertanyaan untuk mendapat kata sandi
Jawaban
mendapat kata sandi Kd_JP
Kode
jabatan char(8)
kerekayasaan yang
dimiliki
karyawan Nick_Forum
Nama
yang varchar(15)
muncul ketika aktif di forum Sandi_Forum
Sandi masuk
untuk varchar(10) ke
forum Pangkat
Jataban forum
di varchar(15)
151 Status
Status
ID varchar(15)
no
no
no
no
no
no
yes
no
no
no
no
no
no
no
forum Jabatan_Perekayasa Kd_JP
Setiap
jabatan char(8)
memiliki kode yang unik Nama_JP
Nama
jabatan varchar(30)
kerekayasaan Deskripsi
Deskripsi
varchar(50)
mengenai jabatan kerekayasaan AK_M in
Angka
kredit decimal(10,2)
minimal untuk mencapai jabatan kerekayasaan AK_Aman
Angka
kredit decimal(10,2)
aman
untuk
tetap di suatu jabatan kerekayasaan AK_Naik
Angka untuk
kredit decimal(10,2)
152 mencapai kenaikan jabatan kerekayasaan Pangkat
Pangkat
varchar(30)
yes
no
varchar(10)
yes
no
no
no
sewaktu menjadi PNS Golongan
Golongan sewaktu menjadi PNS
Program
Kd_Program
Setiap program char(8) memiliki kode yang unik
Nama_Program
Nama program
varchar(30)
no
no
Deskripsi
Deskripsi
varchar(100)
yes
no
varchar(30)
no
no
varchar(30)
no
no
no
no
program Periode
Periode berlangsungnya program
Tingkatan
Tingkatan program
Budget_Awal
Budget
untuk decimal(15,2)
menjalankan
153 suatu program Budget_Terpakai
Budget
yang decimal(15,2)
no
no
yes
no
no
no
varchar(100)
no
no
varchar(30)
no
no
char(8)
no
no
varchar(30)
no
no
sudah dipakai Program_Induk
Kode program char(8) yang mengepalai program ini
NIP
Nomor
induk char (20)
pegawai
yang
mengambil program Nama_Karyawan
Nama karyawan yang mengambil program
Jabatan_Program
Jabatan karyawan
di
suatu program Dokumen_Program
Kd_Dokumen
Setiap dokumen memiliki kode yang unik
SN_File
Serial number
154 untuk
setiap
dokumen Tgl_Submit
Tanggal
date
no
no
date
yes
no
date
yes
no
Tanggal batas date
yes
no
yes
no
no
no
yes
no
mengumpulkan dokumen Tgl_Approved
Tanggal menyetujui suatu dokumen
Tgl_Checked
Tanggal mengecek suatu dokumen
Tgl_Deadline
akhir pengumpulan dokumen Deskripsi
Deskripsi
varchar(100)
mengenai dokumen yang dibuat Kd_Program
Kode program char(8) yang membuat dokumen
Lampiran
Lampiran
varchar(30)
155 dokumen Status
Status
varchar(30)
no
no
Jenis dokumen varchar(30)
no
no
no
no
no
no
no
no
varchar(100)
yes
no
varchar(30)
no
no
varchar(30)
no
no
no
no
no
no
dokumen terakhir Jenis_Dokumen
yang dibuat Rapat
Kd_Rapat
Setiap
rapat char(8)
memiliki kode yang unik Nama_Rapat
Nama rapat
Tgl_Rapat
Tanggal
varchar(30)
rapat datetime
diadakan Deskripsi
Deskripsi mengenai rapat
Tingkatan
Tingkatan suatu rapat
Lokasi
Lokasi diadakannya rapat
Kd_Program
Kode program char(8) yang membuat rapat
Hasil
Keterangan
varchar(50)
156 mengenai hasil rapat Lampiran
Lampiran hasil varchar(30)
yes
no
no
no
no
no
datetime
no
no
varchar(30)
yes
no
no
no
no
no
no
no
rapat Absensi_Rapat
Kd_Rapat
Kode
rapat char(8)
yang memiliki absensi Kd_Program
Kode program char(8) yang
hadir
waktu rapat Waktu
Waktu kedatangan
Keterangan
Keterangan mengenai absensi
Kegiatan
Kd_Kegiatan
Setiap
angka char(8)
kredit memiliki kode yang unik Unsur
Unsur
yang varchar(30)
menentukan angka kredit Sub_Unsur
Sub unsur yang varchar(30) menentukan
157 angka kredit Kegiatan
Kegiatan yang varchar(50)
no
no
no
no
no
no
yes
no
no
no
no
no
no
no
menentukan angka kredit Angka_Kredit
Besarnya
decimal(10,5)
angka kredit Satuan_Hasil
yang varchar(30)
Hasil
dibutuhkan sebagai pembuktian Kd_JP
Kode
jabatan char(8)
sebagai syarat mendapatkan angka kredit Tim_Penilai
Kd_Penilai
Setiap
penilai char(8)
memiliki kode yang unik Username
Nama masuk
untuk varchar(30) ke
aplikasi Sandi
Sandi masuk aplikasi
untuk varchar(30) ke
158 Nama
Nama lengkap varchar(50)
no
no
no
no
date
no
no
date
no
no
varchar(30)
no
no
yang varchar(30)
no
no
no
no
no
no
penilai DUPAK
Kd_DUPAK
Setiap
dupak char(8)
memiliki kode yang unik M asa_Penilaian_Awal
Tanggal mulainya penilaian
M asa_Penilaian_Akhir Tanggal berakhirnya penilaian Status
Status dupak
Instansi
Instansi
mengajukan dupak NIP
Nomor
induk char (20)
pegawai
yang
membuat dupak Nama_Karyawan
Nama karyawan yang mengajukan dupak
varchar(100)
159 Nama_Jabatan
Nama
jabatan varchar(30)
no
no
yes
no
no
no
no
no
no
no
no
no
no
no
no
no
karyawan yang mengajukan dupak Golongan
varchar(10)
Golongan karyawan yang mengajukan dupak
M asa_Kerja_Lama
M asa
kerja varchar(30)
lama karyawan M asa_Kerja_Baru
M asa
kerja varchar(30)
baru karyawan Unit_Kerja
varchar(30)
Lembaga tempat karyawan bekerja
PAK
Kd_PAK
Setiap
pak char(8)
memiliki kode yang unik Tanggal
Tanggal
date
dibuatnya pak Usulan_Pangkat
Usulan pangkat varchar(30) setelah melihat
160 hasil pak NIP
Nomor
induk char (20)
pegawai
yang
no
no
no
no
no
no
no
no
no
no
no
no
no
no
memiliki pak Surat_Pernyataan
Kd_SP
Setiap
surat char(8)
pernyataan memiliki kode yang unik Status
Status
surat varchar(30)
pernyataan Tanggal_SP
Tanggal
surat date
pernyataan dibuat Jenis_SP
Jenis
surat varchar(30)
pernyataan yang dibuat NIP
Nomor
induk char (20)
pegawai
yang
bertanggung jawab mengenai surat pernyataan Nama_Karyawan
Nama
varchar(100)
161 karyawan yang bertanggung jawab mengenai surat pernyataan Nama_Jabatan
Nama
jabatan varchar(30)
no
no
yes
no
no
no
no
no
karyawan yang bertanggung jawab mengenai surat pernyataan Golongan
varchar(10)
Golongan karyawan yang bertanggung jawab mengenai surat pernyataan
Kd_DUPAK
Kode dari
dupak char(8) surat
pernyataan yang dibuat Butir_Kegiatan
Kd_BK
Setiap kegiatan
butir char(8)
162 memiliki kode yang unik Kd_SP
Kode
surat char(8)
no
no
no
no
no
no
butir varchar(30)
no
no
Sub unsur butir varchar(30)
no
no
no
no
no
no
pernyataan untuk
setiap
butir kegiatan Kd_JP
Kode
Jabatan char(8)
untuk menentukan angka kredit Kd_Kegiatan
Kode
angka char(8)
kredit
untuk
butir kegiatan Unsur
Unsur kegiatan
Sub_Unsur
kegiatan Kegiatan
Kegiatan yang varchar(50) dikerjakan
Angka_Kredit
Angka
kredit decimal(10,5)
yang seharusnya dapat
di
163 Usulan_AK
Angka
kredit decimal(10,5)
no
no
yes
no
no
no
yes
no
no
no
yes
no
yes
no
yes
no
yang diusulkan Keterangan
Keterangan
varchar(30)
mengenai bukti kegiatan
yang
diusulkan Kd_Dokumen
Dokumen yang char(8) menjadi
bukti
suatu kegiatan Lampiran
Lokasi
bukti varchar(30)
kegiatan
di
server Status
varchar(15)
Status mengenai kegiatan
yang
diusulkan Hasil_AK
Angka
kredit decimal(10,5)
hasil penilaian Kd_Penilai
Kode
penilai char(8)
yang memberikan penilaian Kd_PAK
Kode
pak char(8)
164 untuk
setiap
kegiatan
yang
sudah dinilai Thread
Kd_Thread
Setiap
thread char(8)
no
no
memiliki kode yang unik Judul
Judul thread
varchar(30)
no
no
Tanggal
Tanggal
datetime
no
no
Induk char (20)
no
no
no
no
int
no
no
varchar(15)
no
no
no
no
dibuatnya suatu thread NIP
Nomor
Pegawai yang membuat thread Nick_Forum
Nick karyawan varchar(30) yang membuat thread
View
Banyaknya view
Posting
Status
Status thread
Kd_Posting
Setiap posting char(8) memiliki kode yang unik
165 Isi
Isi dari posting
NIP
Nomor
text
Induk char (20)
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
Pegawai yang melakukan posting Tanggal
Tanggal
datetime
dibuatnya posting Nick_Forum
Nick karyawan varchar(30) yang melakukan posting
Kd_Thread
Kode untuk
thread char(8) posting
tersebut berada Pesan
Kd_Pesan
Setiap
pesan char(8)
memiliki kode yang unik Isi
Isi pesan
text
NIP_Pengirim
Nomor
induk char (20)
pegawai
yang
membuat pesan Nama_Pengirim
Nama
varchar(100)
166 karyawan yang membuat pesan Tanggal_Kirim
Tanggal pesan datetime
no
no
no
yes
no
yes
yes
yes
varchar(30)
no
no
varchar(30)
yes
no
no
no
dikirim NIP_Penerima
Nomor
induk char (20)
pegawai
yang
menerima pesan Nama_Penerima
varchar(100)
Nama karyawan yang menerima pesan
Tanggal_Baca
Tanggal pesan datetime dibaca
Status
Status menunjukkan tingkat pentingnya suatu pesan
Lampiran
Lokasi lampiran pesan di server
Jenis_Pesan
Jenis
pesan varchar(30)
167 yang dibuat File_Download
Kd_File
Setiap
file char(8)
no
no
no
no
datetime
no
no
varchar(50)
no
no
Lokasi file di varchar(30)
no
no
memiliki kode yang unik NIP
Nomor
induk char (20)
pegawai
yang
membuat file Tanggal
Tanggal dibuatnya file
Keterangan
Keterangan mengenai
file
yang dibuat Lampiran
server
4.2.1.1.4 Identifikasi Domain Atribut Pada tahap ini akan mementukan domain untuk setiap atribut yang berada disetiap entitas. Tabel 4.9 Domain Setiap Atribut Nama Domain
Nama Field
Domain Atribut
NIP
NIP
20 karakter
NSKP
NSKP
M aksimal 30 karakter
168 Username
Username
M aksimal 30 karakter
Sandi
Sandi
M aksimal 30 karakter
Nama_Karyawan
Nama_Karyawan
M aksimal 100 karakter
Pendidikan
Pendidikan
M aksimal 30 karakter
Foto
Foto
M aksimal 30 karakter
Email
Email
M aksimal 30 karakter
Telepon
Telepon
M aksimal 15 karakter
HP
HP
M aksimal 15 karakter
Alamat
Alamat
M aksimal 100 karakter
Tempat_Lahir
Tempat_Lahir
M aksimal 15 karakter
Tgl_Lahir
Tgl_Lahir
Tipe data tanggal
Tgl_M asuk
Tgl_M asuk
Tipe data tanggal
Tgl_Keluar
Tgl_Keluar
Tipe data tanggal
Jenis_Kelamin
Jenis_Kelamin
1 karakter
Peran
Peran
M aksimal 15 karakter
Pertanyaan
Pertanyaan
M aksimal 30 karakter
Jawaban
Jawaban
M aksimal 30 karakter
Nick_Forum
Nick_Forum
M aksimal 30 karakter
Sandi_Forum
Sandi_Forum
M aksimal 30 karakter
Pangkat
Pangkat
M aksimal 15 karakter
Status
Status
M aksimal 15 karakter
Kd_JP
Kd_JP
8 karakter
Nama_JP
Nama_JP
M aksimal 30 karakter
169 Deskripsi
Deskripsi
M aksimal 50 karakter
AK_M inimal
AK_M in
10 digit dengan 2 angka desimal
AK_Aman
AK_Aman
10 digit dengan 2 angka desimal
AK_Naik
AK_Naik
10 digit dengan 2 angka desimal
Pangkat
Pangkat
M aksimal 30 karakter
Golongan
Golongan
M aksimal 10 karakter
Kd_Program
Kd_Program
8 karakter
Nama_Program
Nama_Program
M aksimal 30 karakter
Deskripsi
Deskripsi
M aksimal 100 karakter
Periode
Periode
M aksimal 30 karakter
Tingkatan
Tingkatan
M aksimal 30 karakter
Budget_Awal
Budget_Awal
15 digit dengan 2 angka desimal
Budget_Terpakai
Budget_Terpakai
15 digit dengan 2 angka desimal
Program_Induk
Program_Induk
8 karakter
Jabatan_Program
Jabatan_Program
M aksimal 30 karakter
Kd_Dokumen
Kd_Dokumen
8 karakter
SN_File
SN_File
M aksimal 30 karakter
Tgl_Submit
Tgl_Submit
Tipe data tanggal
Tgl_Approved
Tgl_Approved
Tipe data tanggal
Tgl_Checked
Tgl_Checked
Tipe data tanggal
Tgl_Deadline
Tgl_Deadline
Tipe data tanggal
Deskripsi
Deskripsi
M aksimal 100 karakter
Lampiran
Lampiran
M aksimal 30 karakter
170 Status
Status
M aksimal 30 karakter
Jenis_Dokumen
Jenis_Dokumen
M aksimal 30 karakter
Kd_Rapat
Kd_Rapat
8 karakter
Nama_Rapat
Nama_Rapat
M aksimal 30 karakter
Tgl_Rapat
Tgl_Rapat
Tipe data tanggal serta waktu
Deskripsi
Deskripsi
M aksimal 100 karakter
Tingkatan
Tingkatan
M aksimal 30 karakter
Lokasi
Lokasi
M aksimal 30 karakter
Hasil
Hasil
M aksimal 50 karakter
Lampiran
Lampiran
M aksimal 30 karakter
Waktu
Waktu
Tipe data tanggal serta waktu
Keterangan
Keterangan
M aksimal 30 karakter
Kd_Kegiatan
Kd_Kegiatan
8 karakter
Unsur
Unsur
M aksimal 30 karakter
Sub_Unsur
Sub_Unsur
M aksimal 30 karakter
Kegiatan
Kegiatan
M aksimal 50 karakter
Angka_Kredit
Angka_Kredit
10 digit dengan 2 angka desimal
Satuan_Hasil
Satuan_Hasil
M aksimal 30 karakter
Kd_Penilai
Kd_Penilai
8 karakter
Username
Username
M aksimal 30 karakter
Sandi
Sandi
M aksimal 30 karakter
Nama
Nama
M aksimal 50 karakter
Kd_DUPAK
Kd_DUPAK
8 karakter
171 M asa_Penilaian_Awal
M asa_Penilaian_Awal
Tipe data tanggal
M asa_Penilaian_Akhir M asa_Penilaian_Akhir
Tipe data tanggal
Status
Status
M aksimal 30 karakter
Instansi
Instansi
M aksimal 30 karakter
M asa_Kerja_Lama
M asa_Kerja_Lama
M aksimal 30 karakter
M asa_Kerja_Baru
M asa_Kerja_Baru
M aksimal 30 karakter
Unit_Kerja
Unit_Kerja
M aksimal 30 karakter
Kd_PAK
Kd_PAK
8 karakter
Tanggal
Tanggal
Tipe data tanggal
Usulan_Pangkat
Usulan_Pangkat
M aksimal 30 karakter
Kd_SP
Kd_SP
8 karakter
Status
Status
M aksimal 30 karakter
Tanggal_SP
Tanggal_SP
Tipe data tanggal
Jenis_SP
Jenis_SP
M aksimal 30 karakter
Usulan_AK
Usulan_AK
10 digit dengan 2 angka desimal
Keterangan
Keterangan
M aksimal 30 karakter
Lampiran
Lampiran
M aksimal 30 karakter
Status
Status
M aksimal 15 karakter
Hasil_AK
Hasil_AK
10 digit dengan 2 angka desimal
Kd_Thread
Kd_Thread
8 karakter
Judul
Judul
M aksimal 30 karakter
Tanggal
Tanggal
Tipe data tanggal serta waktu
View
View
Integer
172 Status
Status
M aksimal 15 karakter
Kd_Posting
Kd_Posting
8 karakter
Isi
Isi
M aksimal 30 karakter
Tanggal
Tanggal
Tipe data tanggal serta waktu
Kd_Pesan
Kd_Pesan
8 karakter
Isi
Isi
text
Tanggal_Kirim
Tanggal_Kirim
Tipe data tanggal serta waktu
Tanggal_Baca
Tanggal_Baca
Tipe data tanggal serta waktu
Status
Status
M aksimal 30 karakter
Lampiran
Lampiran
M aksimal 30 karakter
Jenis_Pesan
Jenis_Pesan
M aksimal 30 karakter
Kd_File
Kd_File
8 karakter
Tanggal
Tanggal
Tipe data tanggal serta waktu
Keterangan
Keterangan
M aksimal 50 karakter
Lampiran
Lampiran
M aksimal 30 karakter
4.2.1.1.5 Identifikasi Candidate Key dan Primary Key Tahap ini akan menentukan primary key yang berasal dari candidate key dari setiap entitas.
Tabel 4.10Candidate Key dan Primary Key Nama Entitas
Candidate Key
Primary key
173 Karyawan
1. NIP
NIP
2. NSKP 3. Username 4. Nama_Karyawan+Alamat+Tgl_Lahir 5. Nama_Karyawan+Tgl_M asuk 6. Nick_Forum
Jabatan_Pereka
1. Kd_Jabatan
yasa
2. Pangkat+golongan
Kd_Jabatan
3. Nama_JP+AK_M in
Program
1. Kd_Program
Kd_Program
2. Nama_Program+Periode Dokumen_Progr
1. Kd_Dokumen
am
2. SN_File+Jenis_Dokumen
Rapat
1. Kd_Rapat
Kd_Dokumen
Kd_Rapat
2. Nama_Rapat+Tgl_Rapat Absensi_Rapat
Kd_Rapat+Kd_Program
Kd_Rapat+Kd_Pro gram
Kegiatan
1. Kd_Kegiatan+Kd_JP
Kd_Kegiatan+Kd_
2. Unsur+Sub_Unsur+Kegiatan
JP
174 Tim_Penilai
1. Kd_Penilai
Kd_Penilai
2. Username DUPAK
1. Kd_DUPAK
Kd_DUPAK
2. M asa_Penilaian_Awal+M asa_Penilaia n_Akhir PAK
1. Kd_Pak
Kd_Pak
2. Tanggal+Usulan_Pangkat Surat_Pernyataa
1. Kd_SP
n
2. Tanggal_SP+Jenis_SP
Butir_Kegiatan
1. Kd_BK
Kd_SP
Kd_BK
2. Kd_SP+Kd_Kegiatan+Kd_JP Thread
1. Kd_Thread
Kd_Thread
2. Judul+Tanggal Posting
1. Kd_Posting
Kd_Posting
2. Isi+Tanggal Pesan
1. Kd_Pesan
Kd_Pesan
2. Isi+Lampiran+NIP File_Download
1. Kd_File 2. NIP+Keterangan+Tanggal
Kd_File
175 4.2.1.1.7 Validasi Model Konseptual dengan Transaksi User Pada tahap akan memeriksa transaksi yang dirancang pada tahap konseptual akan memenuhi kebutuhan transaski pengguna.
Gambar 4.2 Validasi Model Konseptual Lokal Terhadap Transaksi Pengguna
Keterangan gambar : a. Karyawan mengikuti program kerja b. Program membuat laporan hasil kegiatan kerjanya c. Program membawahi program yang lain d. Program dapat membuat rapat kerja dengan bawahan dan peserta rapat wajib mengisi absensi rapat
176 e. Karyawan dapat aktif di forum dengan membuat thread dan posting f. Karyawan dapat membuat usulan angka kredit untuk menambah angka kreditnya g. Setiap usulan angka kredit disertai surat pernyataan sebagai bukti kegiatan yang dilakukannya h. Surat pernyataan berisi butir – butir kegiatan dan angka kredit i. Kegiatan memiliki angka kredit berdasarkan jabatan perekayasa yang melakukan kegiatan tersebut j. Butir kegiatan berisi kegiatan yang dikerjakan oleh karyawan k. Butir kegiatan berisi lampiran berupa dokumen kerja sebagai bukti hasil kegiatannya l. Tim Penilai melakukan penilaian dan memvalidasi setiap usulan kegiatan m. Setiap butir kegiatan yang mendapat nilai akan dijadikan tambahan angka kredit kepada karyawan yang bersangkutan n. Karyawan memiliki daftar angka kredit yang telah dinilai atau disetujui oleh tim penilai
4.2.1.2
Perancangan Basis Data Logikal 4.2.1.2.1 Menghilangkan
Feature
yang
Tidak
Kompatibel Pada tahap ini akan menyempurnakan relasi – relasi antara entitas yang ada pada tahap konseptual.
177 1. M enghilangkan relasibinary many to many (*:*) a. Entitas Karyawan dan Program
178 b. Entitas Tim Penilai dan Butir Kegiatan
179 c. Entitas Kegiatan dan Jabatan Perekayasa
2. M enghilangkan Atribut yang Multivalued a. Entitas Pesan
180 4.2.1.2.2 Menentukan Relasi untuk Model Logikal Data Lokal Pada tahap ini akan membuat relasi dari model data logikal untuk menampilkan kembali entitas, hubungannya, dan atribut - atributnya. 1. Tipe Strong Entity •
Karyawan (NIP, NSKP, Nama_Karyawan, Username, Sandi, Pendidikan, Foto, Email, Alamat, Telepon, HP, Tempat_Lahir, Tgl_Lahir, Tgl_M asuk, Tgl_Keluar, Jenis_Kelamin, Peran, Pertanyaan, Jawaban, Kd_JP, Nick_Forum, Sandi_Forum, Pangkat, Status) Primary Key (NIP)
•
Jabatan_Perekayasa (Kd_JP, Nama_JP, Deskripsi, AK_M in, AK_Aman, AK_Naik, Pangkat, Golongan) Primary Key (Kd_JP)
•
Program (Kd_Program, Nama_Program, Deskripsi, Periode, Tingkatan, Budget_Awal, Budget_Terpakai, Program_Induk) Primary Key (Kd_Program)
181 •
Dokumen_Program Lampiran, Tgl_Approved,
(Kd_Dokumen,
SN_File,
Jenis_Dokumen,
Tgl_Submit,
Tgl_Checked,
Tgl_Deadline,
Deskripsi, Lampiran, Kd_Program) Primary Key (Kd_Dokumen)
•
Rapat
(Kd_Rapat,
Nama_Rapat,
Tgl_Rapat,
Deskripsi, Tingkatan, Lokasi, Kd_Program, Hasil, Lampiran) Primary Key (Kd_Rapat)
•
Kegiatan
(Kd_Kegiatan,
Unsur,
Sub_Unsur,
Kegiatan) Primary Key (Kd_Kegiatan)
•
Tim_Penilai (Kd_Penilai, Nama, Username, Sandi) Primary Key (Kd_Penilai)
•
DUPAK
(Kd_DUPAK,
M asa_Penilaian_Akhir, Nama_Karyawan,
M asa_Penilaian_Awal,
Status,
Instansi,
Nama_Jabatan,
NIP,
Golongan,
M asa_Kerja_Lama, M asa_Kerja_Baru, Unit_Kerja) Primary Key (Kd_DUPAK)
182 •
PAK (Kd_PAK, Tanggal, Usulan_Pangkat, NIP) Primary Key (Kd_PAK)
•
Surat_Pernyataan Jenis_SP,
NIP,
(Kd_SP,
Status, Tanggal_SP,
Nama_Karyawan,
Nama_Jabatan,
Golongan, Kd_DUPAK) Primary Key (Kd_SP)
•
Thread
(Kd_Thread,
Judul,
Tanggal,
NIP,
Nick_Forum, View, Status) Primary Key (Kd_Thread)
•
Posting (Kd_Posting, Isi, Tanggal, NIP, Nick_Forum, Kd_Thread) Primary Key (Kd_Posting)
•
Pesan
(Kd_Pesan,
Isi,
NIP_Pengirim,
Nama_Pengirim, Tanggal_Kirim, Status, Lampiran, Jenis_Pesan) Primary Key (Kd_Pesan)
183 •
File_Download
(Kd_File,
Tanggal,
Keterangan,
Lampiran, NIP) Primary Key (Kd_File)
2. TipeWeak Entity •
Jabatan_Program
(Kd_Program,
NIP,
Jabatan_Program) Primary Key (Kd_Program, NIP)
•
Absensi_Rapat (Kd_Rapat, Kd_Program, Waktu, Keterangan) Primary Key (Kd_Rapat, Kd_Program)
•
Angka_Kredit (Kd_Kegiatan, Kd_JP, Angka_Kredit, Satuan_Hasil) Primary Key (Kd_Kegiatan, Kd_JP)
•
Butir_Kegiatan
(Kd_BK,
Kd_SP,
Kd_Kegiatan,
Kd_JP, Unsur, Sub_Unsur, Kegiatan, Angka_Kredit, Usulan_AK, Keterangan, Kd_Dokumen, Lampiran) Primary Key (Kd_BK)
184 •
Hasil_Penilaian (Kd_Penilai, Kd_BK, Hasil_AK, Status, Kd_PAK) Primary Key (Kd_Penilai, Kd_BK)
•
Penerima_Pesan
(Kd_Pesan,
NIP_Penerima,
Nama_Penerima, Tgl_Baca) Primary Key (Kd_Pesan, NIP_Penerima)
3. Relasi Biner One to M any a. Entitas Jabatan Perekayasa dan Karyawan
b. Entitas Karyawan dan DUPAK
185 c. Entitas Karyawan dan PAK
d. Entitas Karyawan dan Surat Pernyataan
e. Entitas Karyawan dan Thread
186
f. Entitas Karyawan dan Posting
g. Entitas Karyawan dan Pesan
h. Entitas Karyawan dan Penerima Pesan
187 e. Entitas Karyawan dan File Download
f. Entitas Thread dan Posting
h. Entitas Program dan Program
188 i. Entitas Program dan Dokumen Program
j. Entitas Program dan Rapat
k. Entitas Program dan Absensi Rapat
189 l. Entitas DUPAK dan Surat Pernyataan
m. Entitas Surat Pernyataan dan Butir Kegiatan Meletakkan Primary Key Kd_SP ke dalam Butir_Kegiatan Untuk membangun relasi 1:*
Surat_P ernyataan (Kd_SP, Status, Tanggal_SP, Jenis_SP, NIP, Nama_Karyawan, Nama_Jabat an, Golongan, Kd_DUPAK) Primary Key (Kd_SP)
Butir_Kegiatan (Kd_BK, Kd_SP, Kd_Kegi atan, Kd_JP, Unsur, Sub_Unsur, Kegiat an, Angka_Kredit, Usulan_AK, Keterangan, Kd_Dokumen, Lampiran)
Foreign K ey (NIP) Reference Kary awan (NIP)
Primary Key (Kd_BK)
Foreign K ey (Kd_DUPAK) Reference DUPAK (Kd_DUPAK)
Foreign Key (Kd_SP) Reference Surat_Pernyat aan (Kd_SP)
n. Entitas Dokumen Program dan Butir Kegiatan
190 o. Entitas Angka Kredit dan Butir Kegiatan
p. Entitas PAK dan Hasil Penilaian
q. Entitas Rapat dan Absensi Rapat
191 4. Relasi Biner One to One Tidak ditemukan relasi one to one.
5. Relasi Biner Many to Many a. M enggabungkan Primary Key Kd_Kegiatan dan Kd_JP pada Angka_Kredit
b. M enggabungkan Primary Key Kd_BK dan Kd_Penilai pada Hasil Penilaian
192
c. M enggabungkan Primary Key Kd_Karyawan dan Kd_Program pada Jabatan Program
193
4.2.1.2.3 Validasi Relasi dengan Normalisasi Pada
tahap
ini
akan
memastikan
bahwa
perancangan yang dibuat tidak ada redudansi data. Karyawan 3NF Karyawan = NIP + NSKP + Nama_Karyawan + Username + Sandi + Pendidikan + Foto + Email + Alamat + Telepon + HP + Tempat_Lahir + Tgl_Lahir + Tgl_M asuk + Tgl_Keluar + Jenis_Kelamin + Peran + Pertanyaan + Jawaban + Kd_JP + Nick_Forum + Sandi_Forum + Pangkat + Status
Jabatan_Perekayasa 3NF Jabatan_Perekayasa = Kd_JP + Nama_JP + Deskripsi + AK_M in + AK_Aman + AK_Naik + Pangkat + Golongan
Program 3NF Program = Kd_Program + Nama_Program + Deskripsi + Periode + Tingkatan + Budget_Awal + Budget_Terpakai + Program_Induk
194 Dokumen_Program 2NF Dokumen_Program
=
Kd_Dokumen
+
SN_File +
Lampiran + Jenis_Dokumen + T gl_Submit + Tgl_Deadline + Tgl_Approved + Tgl_Checked + Deskripsi + Lampiran + Kd_Program 3NF Dokumen_Program
=
Kd_Dokumen
+
SN_File +
Lampiran + Kd_JD + Tgl_Submit + Tgl_Approved + Tgl_Checked + Tgl_Deadline + Deskripsi + Lampiran + Kd_Program Jenis_Dokumen= Kd_JD + Jenis_Dokumen + Keterangan Rapat 3NF Rapat = Kd_Rapat + Nama_Rapat + Tgl_Rapat + Deskripsi + Tingkatan + Lokasi + Kd_Program + Hasil + Lampiran
Kegiatan 2NF Kegiatan =Kd_Kegiatan + Unsur + Sub_Unsur + Kegiatan 3NF Unsur = Kd_Unsur + Nama_Unsur + Keterangan Sub_Unsur
=
Kd_SubUnsur
Keterangan + Kd_Unsur
+
Nama_SubUnsur
+
195 Kegiatan = Kd_Kegiatan + Nama_Kegiatan + Keterangan + Kd_SubUnsur
Tim_Penilai 3NF Tim_Penilai = Kd_Penilai + Nama + Username + Sandi
DUPAK 2NF DUPAK =
Kd_DUPAK
+ M asa_Penilaian_Awal +
M asa_Penilaian_Akhir + Status + Instansi + NIP + Nama_Karyawan
+
Nama_Jabatan
+
Golongan
+
M asa_Kerja_Lama + M asa_Kerja_Baru + Unit_Kerja 3NF DUPAK =
Kd_DUPAK
+ M asa_Penilaian_Awal +
M asa_Penilaian_Akhir + Status + Instansi + NIP + M asa_Kerja_Lama + M asa_Kerja_Baru + Unit_Kerja Karyawan = NIP + Nama_Karyawan Jabatan_Perekayasa
=
Kd_JP
+
Nama_Jabatan
Golongan
PAK 3NF PAK = Kd_PAK + Tanggal + Usulan_Pangkat + NIP
+
196
Surat_Pernyataan 2NF Surat_Pernyataan = Kd_SP + Status + Tanggal_SP + Jenis_SP + NIP+ Nama_Karyawan + Nama_Jabatan + Golongan + Kd_DUPAK 3NF Surat_Pernyataan = Kd_SP + Status + Tanggal_SP + Kd_JSP + NIP + Kd_DUPAK Karyawan = NIP + Nama_Karyawan + Nama_Jabatan + Golongan Jabatan_Perekayasa
=
Kd_JP
+
Nama_Jabatan
+
Golongan Jenis_S P = Kd_JSP + Jenis_SP + Keterangan
Thread 3NF Thread = Kd_Thread + Judul + Tanggal + NIP + View + Status Karyawan = NIP+ Nick_Forum
Posting 3NF Posting = Kd_Posting + Isi + Tanggal + NIP + Kd_Thread
197 Karyawan = NIP+ Nick_Forum
Pesan 3NF Pesan = Kd_Pesan + Isi + NIP_Pengirim + Tanggal_Kirim + Status + Lampiran + Kd_JenisPesan Karyawan = NIP+ Nama_Pengirim Jenis_Pesan = Kd_JenisPesan + Jenis_Pesan + Keterangan
File_Download 3NF File_Download = Kd_File + Tanggal + Keterangan + Lampiran + NIP
Jabatan_Program 3NF Jabatan_Program
=
Kd_Program
+
NIP
+
Jabatan_Program
Absensi_Rapat 3NF Absensi_Rapat = Kd_Rapat + Kd_Program + Waktu + Keterangan
198 Angka_Kredit 3NF Angka_Kredit = Kd_Kegiatan + Kd_JP + Angka_Kredit + Satuan_Hasil
Butir_Kegiatan 1NF Butir_Kegiatan = Kd_BK + Kd_SP + Kd_Kegiatan + Kd_JP + Unsur + Sub_Unsur + Kegiatan + Angka_Kredit + Usulan_AK + Keterangan + Kd_Dokumen + Lampiran 2NF Butir_Kegiatan = Kd_BK + Kd_SP + Kd_Kegiatan + Kd_JP + Usulan_AK + Keterangan + Kd_Dokumen + Lampiran Angka_Kredit = Kd_Kegiatan + Kd_JP + Angka_Kredit + Satuan_Hasil Kegiatan = Kd_Kegiatan + Nama_Kegiatan + Keterangan + Kd_SubUnsur Sub_Unsur
=
Kd_SubUnsur
+
Nama_SubUnsur
Keterangan + Kd_Unsur Unsur = Kd_Unsur + Nama_Unsur + Keterangan
Hasil_Penilaian 3NF
+
199 Hasil_Penilaian = Kd_Penilai + Kd_BK + Hasil_AK + Status + Kd_PAK
Penerima_Pesan 2NF Penerima_Pesan
=
Kd_Pesan
+
NIP_Penerima
+
Nama_Penerima + Tgl_Baca 3NF Penerima_Pesan = Kd_Pesan + NIP_Penerima + Tgl_Baca Karyawan = NIP+ Nama_Penerima
4.2.1.2.4 Validasi Relasi dalam Transaksi Pengguna Pada tahap ini akan memeriksa kembali semua transaksi yang dibutuhkan oleh user seperti yang telah didefinisikan pada tahap konseptual. •
Data Entry
1. M emasukkan data karyawan baru (admin). 2. M embuat program kerja baru dan rinciannya. 3. M engikuti program kerja yang ada. 4. M emasukkan dokumen hasil kegiatan kerjanya. 5. M engikuti rapat dan mengisi absensinya. 6. M embuat usulan angka kredit. 7. Penilai memberikan penilaian dan pengecekan dokumen. 8. M elakukan aktifitas di forum.
200
•
Data Update / Delete
1. M elakukan perubahan data karyawan (admin). 2. M elakukan perubahan rincian program. 3. M enghapus karyawan yang keluar.
•
Data Query
1. M elihat daftar karyawan yang mengikuti suatu program. 2. M elihat daftar program yang diikuti seorang karyawan. 3. M elihat isi forum. 4.2.1.2.5 Memeriksa Batasan Integritas Pada tahap ini akan memeriksa kembali semua transaksi yang dibutuhkan oleh user seperti yang telah didefinisikan pada tahap konseptual.
1. Required Data Kebutuhan data dari setiap entitas sudah termuat didalam kamus atribut entitas, dimana menjelaskan mengenai spesifikasi atribut yang diperlukan seperti boleh bernilai NULL, atau yang harus bernilai (tidak boleh NULL). 2. Attribute Domain Constraint Setiap atribut memiliki domainnya masing – masing yang berisi sekumpulan nilai yang sah untuk atribut tersebut (tipe
201 data dan panjangnya). Constraint ini sudah termuat di dalam kamus data domain atribut. 3. Entity Integrity Untuk melakukan validasi terhadap primarykey agar tidak mengandung nilai NULL. Sudah termuat di dalam kamus data atribut. 4. Referential Integrity Untuk
melakukan
validasi
terhadap
foreignkeyyang
menghubungkan entitas anak dan induknya yang memiliki primarykey yang cocok.
4.2.1.2.6 Meninjau kembali Model Data Logikal dengan Pengguna Pada tahap ini perlu dilakukan pertemuan dengan para
pengguna
untuk
memastikan
bahwa
setiap
kebutuhannya dapat terpenuhi berdasarkan perancangan basis data yang dibuat.
4.2.1.2.7 Menggabungkan Model Data Logikal menjadi Model Global Pada tahap ini model data lokal yang dibuat akan digabungkan menjadi sebuah model data logikal global. Hal ini bertujuan untuk memudahkan dalam tahap perancangan model data fisikal.
202
•
Karyawan (NIP, NSKP, Nama_Karyawan, Username, Sandi, Pendidikan, Foto, Email, Alamat, Telepon, HP, Tempat_Lahir,
Tgl_Lahir,
T gl_M asuk,
Tgl_Keluar,
Jenis_Kelamin, Peran, Pertanyaan, Jawaban, Kd_JP, Nick_Forum, Sandi_Forum, Pangkat, Status) Primary Key (NIP) Foreign Key (Kd_JP) Reference Jabatan_Perekayasa (Kd_JP)
•
Program (Kd_Program,
Nama_Program,
Deskripsi,
Periode, Tingkatan, Budget_Awal, Budget_Terpakai, Program_Induk) Primary Key (Kd_Program) Foreign Key (Program_Induk) Reference Program (Kd_Program)
•
Jabatan_Perekayasa
(Kd_JP,
Nama_JP,
Deskripsi,
AK_M in, AK_Aman, AK_Naik, Pangkat, Golongan) Primary Key (Kd_JP)
203 •
Dokumen_Program (Kd_Dokumen, SN_File, Lampiran, Kd_JD,
Tgl_Submit,
Tgl_Approved,
Tgl_Checked,
Tgl_Deadline, Deskripsi, Lampiran, Kd_Program) Primary Key (Kd_Dokumen) Foreign
Key
(Kd_Program)
Reference
Program
(Kd_Program) Foreign
Key (Kd_JD)
Reference
Jenis_Dokumen
(Kd_JD)
•
Jenis_Dokumen (Kd_JD, Jenis_Dokumen, Keterangan) Primary Key (Kd_JD)
•
Rapat (Kd_Rapat, Nama_Rapat, Tgl_Rapat, Deskripsi, Tingkatan, Lokasi, Kd_Program, Hasil, Lampiran) Primary Key (Kd_Rapat) Foreign
Key
(Kd_Program)
Reference
Program
Kd_Program,
Waktu,
(Kd_Program)
•
Absensi_Rapat
(Kd_Rapat,
Keterangan) Primary Key (Kd_Rapat, Kd_Program) Foreign
Key
(Kd_Program)
(Kd_Program)
Reference
Program
204 Foreign Key (Kd_Rapat) Reference Rapat (Kd_Rapat)
•
Unsur (Kd_Unsur, Nama_Unsur, Keterangan) Primary Key (Kd_Unsur
•
Sub_Unsur (Kd_SubUnsur, Nama_SubUnsur, Kd_Unsur, Keterangan) Primary Key (Kd_SubUnsur) Foreign Key (Kd_Unsur) Reference Unsur (Kd_Unsur)
•
Kegiatan
(Kd_Kegiatan,
Nama_Kegiatan,
Kd_SubUnsur, Keterangan) Primary Key (Kd_Kegiatan) Foreign Key (Kd_SubUnsur) Reference Sub_Unsur (Kd_SubUnsur)
•
Tim_Penilai (Kd_Penilai, Nama, Username, Sandi) Primary Key (Kd_Penilai)
•
DUPAK(Kd_DUPAK, M asa_Penilaian_Akhir,
M asa_Penilaian_Awal, Status,
Instansi,
M asa_Kerja_Lama, M asa_Kerja_Baru, Unit_Kerja)
NIP,
205 Primary Key (Kd_DUPAK) Foreign Key (NIP) Reference Karyawan (NIP)
•
PAK
(Kd_PAK,
Tanggal,
Usulan_Pangkat,
NIP)
Primary Key (Kd_PAK) Foreign Key (NIP) Reference Karyawan (NIP)
•
Surat_Pernyataan
(Kd_SP,
Status,
Tanggal_SP,
Kd_JSP, NIP, Kd_DUPAK) Primary Key (Kd_SP) Foreign Key (NIP) Reference Karyawan (NIP) Foreign
Key
(Kd_DUPAK)
Reference
DUPAK
(Kd_DUPAK) Foreign Key (Kd_JSP) Reference Jenis_SP (Kd_JSP)
•
Jenis_S P (Kd_JSP, Jenis_SP, Keterangan) Primary Key (Kd_JSP)
•
Thread (Kd_Thread, Judul, Tanggal, NIP, View, Status) Primary Key (Kd_Thread) Foreign Key (NIP) Reference Karyawan (NIP)
•
Posting (Kd_Posting, Isi, Tanggal, NIP, Kd_Thread)
206 Primary Key (Kd_Posting) Foreign Key (NIP) Reference Karyawan (NIP) Foreign
Key
(Kd_Thread)
Reference
Thread
(Kd_Thread)
•
Pesan (Kd_Pesan, Isi, NIP, Tanggal_Kirim, Status, Lampiran, Kd_JenisPesan) Primary Key (Kd_Pesan) Foreign Key (NIP) Reference Karyawan (NIP)
•
Jenis_Pesan (Kd_JenisPesan, Jenis_Pesan, Keterangan) Primary Key (Kd_JenisPesan)
•
Penerima_Pesan (Kd_Pesan, NIP, Tgl_Baca) Primary Key (Kd_Pesan, NIP) Foreign Key (NIP) Reference Karyawan (NIP) Foreign Key (Kd_Pesan) Reference Pesan (Kd_Pesan)
•
File_Download
(Kd_File,
Tanggal,
Keterangan,
Lampiran, NIP) Primary Key (Kd_File) Foreign Key (NIP) Reference Karyawan (NIP)
207
•
Jabatan_Program
(Kd_Program,
NIP,
Jabatan_Program) Primary Key (Kd_Program, NIP) Foreign Key (NIP) Reference Karyawan (NIP) Foreign
Key
(Kd_Program)
Reference
Program
(Kd_Program)
•
Angka_Kredit (Kd_Kegiatan, Kd_JP, Angka_Kredit, Satuan_Hasil) Primary Key (Kd_Kegiatan, Kd_JP) Foreign
Key
(Kd_Kegiatan)
Reference
Kegiatan
(Kd_Kegiatan) Foreign Key (Kd_JP) Reference Jabatan_Kerekayasaan (Kd_JP)
•
Butir_Kegiatan (Kd_BK, Kd_SP, Kd_Kegiatan, Kd_JP, Usulan_AK, Keterangan, Kd_Dokumen, Lampiran) Primary Key (Kd_BK) Foreign Key (Kd_SP) Reference Surat_Pernyataan (Kd_SP) Foreign Key (Kd_Kegiatan) Reference Angka_Kredit (Kd_Kegiatan)
208 Foreign Key (Kd_JP) Reference Angka_Kredit (Kd_JP)
•
Hasil_Penilaian (Kd_Penilai, Kd_BK, Hasil_AK, Status, Kd_PAK) Primary Key (Kd_Penilai, Kd_BK) Foreign
Key
(Kd_BK)
Reference
Butir_Kegiatan
(Kd_BK) Foreign
Key (Kd_Penilai)
Reference Tim_Penilai
(Kd_Penilai)
Gambar 4.3 Model Logikal Data Global
4.2.1.2.8 Memeriksa Perkembangan yang akan datang
209 Pada tahap
ini akan
dilakukan
peninjauan
terhadap perkembangan yang mungkin terjadi di masa yang akan datang. Dengan berdiskusi dengan pengguna, kami menyimpulkan perancangan ini dapat mengakomodasi perubahan, seperti penambahan jabatan kerekayasaan yang baru, jenis dokumen yang dibutuhkan dalam suatu program, unsur, sub unsur, maupun kegiatan untuk mendapatkan angka kredit, jabatan yang ada di dalam suatu program, jenis pesan yang dapat dibuat untuk keperluan di masa mendatang, data – data karyawan, dll. 4.2.1.3
Fisikal 4.2.1.3.1 Perancangan Relasional Basis Data Fisikal Tahap
ini memberikan
gambaran
mengenai
rancangan basis data dapat diimplementasikan kepada target DBM S.
1. Karyawan Domain
NIP
:
20 karakter
Domain
NSKP
:
M aksimal 30 karakter
Domain
Username
:
M aksimal 30 karakter
Domain
Sandi
:
M aksimal 30 karakter
Domain
Nama_Karyawan :
M aksimal 100 karakter
Domain
Pendidikan
M aksimal 30 karakter
:
210 Domain
Foto
:
M aksimal 30 karakter
Domain
Email
:
M aksimal 30 karakter
Domain
Telepon
:
M aksimal 15 karakter
Domain
HP
:
M aksimal 15 karakter
Domain
Alamat
:
M aksimal 100 karakter
Domain
Tempat_Lahir
:
M aksimal 15 karakter
Domain
Tgl_Lahir
:
Tipe data tanggal
Domain
Tgl_M asuk
:
Tipe data tanggal
Domain
Tgl_Keluar
:
Tipe data tanggal
Domain
Jenis_Kelamin
:
1 karakter
Domain
Peran
:
M aksimal 15 karakter
Domain
Pertanyaan
:
M aksimal 30 karakter
Domain
Jawaban
:
M aksimal 30 karakter
Domain
Kd_JP
:
8 karakter
Domain
Nick_Forum
:
M aksimal 30 karakter
Domain
Sandi_Forum
:
M aksimal 30 karakter
Domain
Pangkat
:
M aksimal 15 karakter
Domain
Status
:
M aksimal 15 karakter
CREATE TABLE Karyawan ( NIP char(20) NOT NULL, NSKP varchar(30) NOT NULL, Username varchar(30) NOT NULL, Sandi varchar(30) NOT NULL,
211 Nama_Karyawan varchar(100) NOT NULL, Pendidikan varchar(30) NOT NULL, Foto varchar(30) DEFAULT NULL, Email varchar(30) NOT NULL, Telepon varchar(15) DEFAULT NULL, HP varchar(15) DEFAULT NULL, Alamat varchar(100) NOT NULL, Tempat_Lahir varchar(30) NOT NULL, Tgl_Lahir Date NOT NULL, Tgl_M asuk Date NOT NULL, Tgl_Keluar Date DEFAULT NULL, Jenis_Kelamin char(1) NOT NULL, Peran varchar(15) NOT NULL, Pertanyaan varchar(30) DEFAULT NULL, Jawaban varchar(30) DEFAULT NULL, Kd_JP char(8) DEFAULT NULL, Nick_Forum varchar(30) NOT NULL, Sandi_Forum varchar(30) NOT NULL, Pangkat varchar(15) NOT NULL, Status varchar(15) NOT NULL,
PRIM ARY KEY (NIP), FOREIGN
KEY
Jabatan_Perekayasa (Kd_JP)
(Kd_JP)
REFERENCE
212 );
2. Jabatan_Perekayasa Domain
Kd_JP
:
8 karakter
Domain
Nama_JP
:
M aksimal 30 karakter
Domain
Deskripsi
:
M aksimal 50 karakter
Domain
AK_M in
:
10 digit dengan 2 angka desimal
Domain
AK_Aman
:
10 digit dengan 2 angka desimal
Domain
AK_Naik
:
10 digit dengan 2 angka desimal
Domain
Pangkat
:
M aksimal 30 karakter
Domain
Golongan
:
M aksimal 10 karakter
CREATE TABLE Jabatan_Perekayasa ( Kd_JP char(8) NOT NULL, Nama_JP varchar(30) NOT NULL, Deskripsi varchar(50) DEFAULT NULL, AK_M in decimal(10,2) NOT NULL, AK_Aman decimal(10,2) NOT NULL, AK_Naik decimal(10,2) NOT NULL, Pangkat varchar(30) DEFAULT NULL, Golongan varchar(10) DEFAULT NULL,
PRIM ARY KEY (Kd_JP) );
213
3. Program Domain
Kd_Program
:
8 karakter
Domain
Nama_Program
:
M aksimal 30 karakter
Domain
Deskripsi
:
M aksimal 100 karakter
Domain
Periode
:
M aksimal 30 karakter
Domain
Tingkatan
:
M aksimal 30 karakter 15 digit dengan 2 angka
Budget_Awal Domain
:
Domain
Budget_Terpakai :
desimal 15 digit dengan 2 angka desimal
Domain
Program_Induk
:
8 karakter
Domain
NIP
:
20 karakter
CREATE TABLE Program ( Kd_Program char(8) NOT NULL, Nama_Program varchar(30) NOT NULL, Deskripsi varchar(100) DEFAULT NULL, Periode varchar(30) DEFAULT NULL, Tingkatan varchar(30) NOT NULL, Budget_Awal decimal(15,2) NOT NULL, Budget_Terpakai decimal(15,2) NOT NULL, Program_Induk char(8) DEFAULT NULL, NIP char(20) NOT NULL,
214
PRIM ARY KEY (Kd_Program), FOREIGN KEY (Program_Induk) REFERENCE Program (Kd_Program), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP)); 4. Dokumen_Program Domain
Kd_Dokumen
: 8 karakter
Domain
SN_File
: M aksimal 30 karakter
Domain
Tgl_Submit
: Tipe data tanggal
Domain
Tgl_Approved
: Tipe data tanggal
Domain
Tgl_Checked
: Tipe data tanggal
Domain
Tgl_Deadline
: Tipe data tanggal
Domain
Deskripsi
: M aksimal 100 karakter
Domain
Lampiran
: M aksimal 30 karakter
Domain
Status
: M aksimal 30 karakter
Domain
Kd_JD
: 8 karakter
Domain
Kd_Program
: 8 karakter
CREATE TABLE Dokumen_Program ( Kd_Dokumen char(8) NOT NULL, SN_File varchar(30) NOT NULL, Tgl_Deadline Date DEFAULT NULL, Tgl_Submit Date NOT NULL, Tgl_Approved Date DEFAULT NULL,
215 Tgl_Checked Date DEFAULT NULL, Deskripsi varchar(100) DEFAULT NULL, Lampiran varchar(30) DEFAULT NULL, Status varchar(30) NOT NULL, Kd_JD char(8) NOT NULL, Kd_Program char(8) DEFAULT NULL,
PRIM ARY KEY (Kd_Dokumen), FOREIGN KEY (Kd_JD) REFERENCE Jenis_Dokumen (Kd_JD), FOREIGN KEY (Kd_Program) REFERENCE Program (Kd_Program) );
5. Jenis_Dokumen Domain
Kd_JD
:
8 karakter
Domain
Jenis_Dokumen
:
M aksimal 30 karakter
Domain
Keterangan
:
M aksimal 50 karakter
CREATE TABLE Jenis_Dokumen ( Kd_JD char(8) NOT NULL, Jenis_Dokumen varchar(30) NOT NULL, Keterangan varchar(100) DEFAULT NULL, PRIM ARY KEY (Kd_JD)
216 );
6. Rapat Domain
Kd_Rapat
Domain
Nama_Rapat :
M aksimal 30 karakter
Domain
Tgl_Rapat
:
Tipe data tanggal serta waktu
Domain
Deskripsi
:
M aksimal 100 karakter
Domain
Tingkatan
:
M aksimal 30 karakter
Domain
Lokasi
:
M aksimal 30 karakter
Domain
Hasil
:
M aksimal 50 karakter
Domain
Lampiran
:
M aksimal 30 karakter
Domain
Kd_Program :
:
8 karakter
8 karakter
CREATE TABLE Rapat ( Kd_Rapat char(8) NOT NULL, Nama_Rapat varchar(30) NOT NULL, Tgl_Rapat Date NOT NULL, Deskripsi varchar(100) DEFAULT NULL, Tingkatan varchar(30) NOT NULL, Lokasi varchar(30) NOT NULL, Hasil varchar(50) NOT NULL, Lampiran varchar(30) DEFAULT NULL, Kd_Program char(8) NOT NULL,
217 PRIM ARY KEY (Kd_Rapat), FOREIGN KEY (Kd_Program) REFERENCE Program (Kd_Program) );
7. Unsur Domain
Kd_Unsur
Domain
Nama_Unsur :
M aksimal 30 karakter
Domain
Keterangan
M aksimal 50 karakter
:
:
8 karakter
CREATE TABLE Unsur ( Kd_Unsur char(8) NOT NULL, Nama_Unsur varchar(30) NOT NULL, Keterangan varchar(50) DEFAULT NULL,
PRIM ARY KEY (Kd_Unsur) );
8. Sub_Unsur Domain
Kd_SubUnsur
Domain
Nama_SubUnsur :
M aksimal 30 karakter
Domain
Keterangan
M aksimal 50 karakter
:
:
8 karakter
218 Domain
Kd_Unsur
:
8 karakter
CREATE TABLE Sub_Unsur ( Kd_SubUnsur char(8) NOT NULL, Nama_SubUnsur varchar(30) NOT NULL, Keterangan varchar(50) DEFAULT NULL, Kd_Unsur char(8) NOT NULL,
PRIM ARY KEY (Kd_SubUnsur), FOREIGN
KEY
(Kd_Unsur)
REFERENCE
Unsur
(Kd_Unsur) );
9. Kegiatan Domain
Kd_Kegiatan
:
8 karakter
Domain
Nama_Kegiatan
:
M aksimal 50 karakter
Domain
Keterangan
:
M aksimal 50 karakter
Domain
Kd_SubUnsur
:
8 karakter
CREATE TABLE Kegiatan ( Kd_Kegiatan char(8) NOT NULL, Nama_Kegiatan varchar(50) NOT NULL, Keterangan varchar(50) DEFAULT NULL,
219 Kd_SubUnsur char(8) NOT NULL,
PRIM ARY KEY (Kd_SubUnsur), FOREIGN KEY (Kd_SubUnsur) REFERENCE SubUnsur (Kd_SubUnsur) );
10. Tim_Penilai Domain
Kd_Penilai
:
8 karakter
Domain
Username
:
M aksimal 30 karakter
Domain
Sandi
:
M aksimal 30 karakter
Domain
Nama
:
M aksimal 50 karakter
CREATE TABLE Tim_Penilai ( Kd_Penilai char(8) NOT NULL, Username varchar(30) NOT NULL, Sandi varchar(30) NOT NULL, Nama varchar(50) NOT NULL,
PRIM ARY KEY (Kd_Penilai) );
11. DUPAK
220 Domain
Kd_DUPAK
: 8 karakter
Domain
M asa_Penilaian_Awal
: Tipe data tanggal
Domain
M asa_Penilaian_Akhir : Tipe data tanggal
Domain
Status
: M aksimal 30 karakter
Domain
Instansi
: M aksimal 30 karakter
Domain
M asa_Kerja_Lama
: M aksimal 30 karakter
Domain
M asa_Kerja_Baru
: M aksimal 30 karakter
Domain
Unit_Kerja
: M aksimal 30 karakter
Domain
NIP
: 20 karakter
CREATE TABLE DUPAK ( Kd_DUPAK char(8) NOT NULL, M asa_Penilaian_Awal Date NOT NULL, M asa_Penilaian_Akhir Date NOT NULL, Instansi varchar(30) NOT NULL, Status varchar(30) NOT NULL, M asa_Kerja_Lama varchar(30) NOT NULL, M asa_Kerja_Baru varchar(30) NOT NULL, Unit_Kerja varchar(30) NOT NULL, NIP char(20) NOT NULL,
PRIM ARY KEY (Kd_DUPAK), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP) );
221
12. PAK Domain
Kd_PAK
:
8 karakter
Domain
Tanggal
:
Tipe data tanggal
Domain
Usulan_Pangkat :
M aksimal 30 karakter
Domain
NIP
20 karakter
:
CREATE TABLE PAK ( Kd_PAK char(8) NOT NULL, Tanggal Date NOT NULL, Usulan_Pangkat varchar(30) NOT NULL, NIP char(20) NOT NULL,
PRIM ARY KEY (Kd_PAK), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP) );
13. Surat_Pernyataan Domain
Kd_SP
:
8 karakter
Domain
Status
:
M aksimal 30 karakter
Domain
Tanggal_SP
:
Tipe data tanggal
Domain
Kd_JSP
:
8 karakter
Domain
NIP
:
20 karakter
222 Domain
Kd_DUPAK
:
8 karakter
CREATE TABLE Surat_Pernyataan ( Kd_SP char(8) NOT NULL, Tanggal_SP Date NOT NULL, Status varchar(30) NOT NULL, Kd_JSP char(8) NOT NULL, NIP char(20) NOT NULL, Kd_DUPAK char(8) NOT NULL,
PRIM ARY KEY (Kd_PAK), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP), FOREIGN
KEY (Kd_JSP)
REFERENCE Jenis_SP
(Kd_JSP), FOREIGN KEY (Kd_DUPAK) REFERENCE DUPAK (Kd_DUPAK) );
14. Jenis_S P Domain
Kd_JSP
:
8 karakter
Domain
Jenis_SP
:
M aksimal 30 karakter
Domain
Keterangan
:
M aksimal 50 karakter
CREATE TABLE Jenis_SP (
223 Kd_JSP char(8) NOT NULL, Jenis_SP varchar(30) NOT NULL, Keterangan varchar(50) DEFAULT NULL, PRIM ARY KEY (Kd_JSP) );
15. Thread Domain
Kd_Thread :
8 karakter
Domain
Judul
:
M aksimal 30 karakter
Domain
Tanggal
:
Tipe data tanggal serta waktu
Domain
View
:
Integer
Domain
Status
:
M aksimal 15 karakter
Domain
NIP
:
20 karakter
CREATE TABLE Thread ( Kd_Thread char(8) NOT NULL, Tanggal Date NOT NULL, Judul varchar(30) NOT NULL, View int NOT NULL, Status varchar(15) NOT NULL, NIP char(20) NOT NULL,
PRIM ARY KEY (Kd_Thread),
224 FOREIGN KEY (NIP) REFERENCE Karyawan (NIP) ); 16. Posting Domain
Kd_Posting :
8 karakter
Domain
Isi
:
text
Domain
Tanggal
:
Tipe data tanggal serta waktu
Domain
Kd_Thread
:
8 karakter
Domain
NIP
:
20 karakter
CREATE TABLE Posting ( Kd_Posting char(8) NOT NULL, Tanggal Date NOT NULL, Isi text NOT NULL, NIP char(20) NOT NULL, Kd_Thread char(8) NOT NULL,
PRIM ARY KEY (Kd_Posting), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP), FOREIGN KEY (Kd_Thread) REFERENCE Thread (Kd_Thread) ); 17. Pesan Domain
Kd_Pesan
:
8 karakter
225 Domain
Isi
Domain
Tanggal_Kirim :
Tipe data tanggal serta waktu
Domain
Kd_JenisPesan
:
8 karakter
Domain
NIP
:
20 karakter
Domain
Status
:
M aksimal 30 karakter
Domain
Lampiran
:
M aksimal 30 karakter
:
text
CREATE TABLE Pesan ( Kd_Pesan char(8) NOT NULL, Tanggal_Kirim Date NOT NULL, Isi text NOT NULL, Status varchar(30) NOT NULL, Lampiran varchar(30) DEFAULT NULL, NIP char(20) NOT NULL, Kd_JenisPesan char(8) NOT NULL,
PRIM ARY KEY (Kd_Pesan), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP), FOREIGN
KEY
(Kd_JenisPesan)
Jenis_Pesan (Kd_JenisPesan) );
18. Jenis_Pesan
REFERENCE
226 Domain
Kd_JenisPesan :
8 karakter
Domain
Jenis_Pesan
:
M aksimal 30 karakter
Domain
Keterangan
:
M aksimal 50 karakter
CREATE TABLE Jenis_Pesan ( Kd_JenisPesan char(8) NOT NULL, Jenis_Pesan varchar(30) NOT NULL, Keterangan varchar(50) DEFAULT NULL,
PRIM ARY KEY (Kd_JenisPesan) );
19. File_Download Domain
Kd_File
:
8 karakter
Domain
Tanggal
:
Tipe data tanggal serta waktu
Domain
Keterangan
:
M aksimal 50 karakter
Domain
Lampiran
:
M aksimal 30 karakter
Domain
NIP
:
20 karakter
CREATE TABLE File_Download ( Kd_File char(8) NOT NULL, Tanggal Date NOT NULL, Keterangan varchar(50) NOT NULL, Lampiran varchar(30) NOT NULL,
227 NIP char(20) NOT NULL,
PRIM ARY KEY (Kd_Thread), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP) );
20. Jabatan_Program Domain
Kd_Program
:
8 karakter
Domain
NIP
:
20 karakter
Domain
Jabatan_Program
:
M aksimal 30 karakter
CREATE TABLE Jabatan_Program ( Kd_Program char(8) NOT NULL, NIP char(20) NOT NULL, Jabatan_Program varchar(30) NOT NULL,
PRIM ARY KEY (Kd_Program, NIP), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP), FOREIGN KEY (Kd_Program) REFERENCE Program (Kd_Program) );
228 21. Absensi_Rapat Domain
Kd_Rapat
:
8 karakter
Domain
Kd_Program
:
8 karakter
Domain
Waktu
:
Tipe data tanggal serta waktu
Domain
Keterangan
:
M aksimal 30 karakter
CREATE TABLE Absensi_Rapat ( Kd_Program char(8) NOT NULL, Kd_Rapat char(8) NOT NULL, Waktu datetime DEFAULT NULL, Keterangan varchar(30) DEFAULT NULL,
PRIM ARY KEY (Kd_Program, Kd_Rapat), FOREIGN
KEY
(Kd_Rapat)
REFERENCE
Rapat
(Kd_Rapat), FOREIGN KEY (Kd_Program) REFERENCE Program (Kd_Program) );
22. Angka_Kredit Domain
Kd_Kegiatan
:
8 karakter
Domain
Kd_JP
:
8 karakter
Domain
Angka_Kredit
:
10 digit dengan 2 angka desimal
229 Domain
Satuan_Hasil
:
M aksimal 30 karakter
CREATE TABLE Angka_Kredit ( Kd_Kegiatan char(8) NOT NULL, Kd_JP char(8) NOT NULL, Angka_Kredit decimal(10,2) NOT NULL, Satuan_hasil varchar(30) NOT NULL,
PRIM ARY KEY (Kd_Kegiatan, Kd_JP), FOREIGN
KEY
(Kd_JP)
REFERENCE
Jabatan_Perekayasa (Kd_JP), FOREIGN KEY (Kd_Kegiatan) REFERENCE Kegiatan (Kd_Kegiatan) );
23. Butir_Kegiatan Domain
Kd_BK
:
8 karakter
Domain
Kd_SP
:
8 karakter
Domain
Kd_Kegiatan
:
8 karakter
Domain
Kd_JP
:
8 karakter
Domain
Usulan_AK
:
10 digit dengan 2 angka desimal
Domain
Keterangan
:
M aksimal 30 karakter
Domain
Lampiran
:
M aksimal 30 karakter
230 Domain
Kd_Dokumen
:
8 karakter
CREATE TABLE Butir_Kegiatan ( Kd_BK char(8) NOT NULL, Kd_SP char(8) NOT NULL, Kd_Kegiatan char(8) NOT NULL, Kd_JP char(8) NOT NULL, Usulan_AK decimal(10,2) NOT NULL, Keterangan varchar(30) DEFAULT NULL, Lampiran varchar(30) DEFAULT NULL, Kd_Dokumen char(8) DEFAULT NULL,
PRIM ARY KEY (Kd_BP), FOREIGN
KEY
(Kd_JP)
REFERENCE
Jabatan_Perekayasa (Kd_JP), FOREIGN KEY (Kd_Kegiatan) REFERENCE Kegiatan (Kd_Kegiatan), FOREIGN
KEY
(Kd_SP)
REFERENCE
Surat_Pernyataan (Kd_SP), FOREIGN
KEY
(Kd_Dokumen)
Dokumen_Program (Kd_Dokumen) );
REFERENCE
231 24. Hasil_Penilaian Domain
Kd_BK
:
8 karakter
Domain
Kd_Penilai
:
8 karakter
Domain
Hasil_AK
:
10 digit dengan 2 angka desimal
Domain
Status
:
M aksimal 15 karakter
Domain
Kd_PAK
:
8 karakter
CREATE TABLE Hasil_Penilaian ( Kd_BK char(8) NOT NULL, Kd_Penilai char(8) NOT NULL, Hasil_AK decimal(10,2) NOT NULL, Status varchar(15) NOT NULL, Kd_PAK char(8) NOT NULL,
PRIM ARY KEY (Kd_Penilai, Kd_BP), FOREIGN KEY (Kd_BK) REFERENCE Butir_Kegiatan (Kd_BK), FOREIGN KEY (Kd_Penilai) REFERENCE Tim_Penilai (Kd_Penilai), FOREIGN (Kd_PAK) );
KEY
(Kd_PAK)
REFERENCE
PAK
232 25. Penerima_Pesan Domain
Kd_Pesan
:
8 karakter
Domain
NIP
:
20 karakter
Domain
Tanggal_Baca
:
Tipe data tanggal serta waktu
CREATE TABLE Penerima_Pesan ( Kd_Pesan char(8) NOT NULL, Tanggal_Baca Date NOT NULL, NIP char(20) NOT NULL,
PRIM ARY KEY (Kd_Pesan,NIP), FOREIGN KEY (NIP) REFERENCE Karyawan (NIP), FOREIGN
KEY
(Kd_Pesan)
REFERENCE
Pesan
(Kd_Pesan) );
4.2.1.3.2 Merancang Constraints Pada tahap ini akan dibuat constraintsdi dalam DBM S berdasarkan kebutuhan perusahaan. Pada perancangan ini semua constraintsakan dilakukan pada aplikasi front end. Tidak dilakukan juga pada DBM S karena akan terjadi redudansi validasi.
4.2.1.3.3 Analisa Transaksi
233 Pada tahap ini setiap transaksi akan di analis a untuk memahami fungsionalitas transaksi tersebut dan kegunaannya di dalam basis data.
Tabel 4.11 Analisa Transaksi Transaksi Relasi Karyawan
a
b
c
d
e
R U I D R U I D R U I D R U I D R U I D x
x
x
Jabatan_Pereka yasa Program
x
x
x
Dokumen_Prog ram Rapat Absensi_Rapat Kegiatan Tim_Penilai DUPAK Surat_Pernyata an Butir_Kegiatan PAK Hasil_Penilaian
x x
234 Thread Posting Pesan File_Download Angka_Kredit
a. Pencatatan karyawan baru b. Perubahan data karyawan c. Karyawan mengikuti program d. Program mengadakan rapat kerja e. Program mengisi absensi rapat
Transaksi
f
g
h
i
j
Relasi
R U I D R U I D R U I D R U I D R U I D
Karyawan
x
x
Jabatan_Pereka yasa Program
x
Dokumen_Prog ram Rapat Absensi_Rapat Kegiatan
x
x
x
235 Tim_Penilai
x
DUPAK
x
x
Surat_Pernyata an
x
x
Butir_Kegiatan
x
x
x
PAK
x
Hasil_Penilaian
x
x
Thread Posting Pesan File_Download Angka_Kredit
x
f. Setiap program membuat dokumen program sebagai hasil pekerjaannya g. Karyawan mengajukan usulan angka kredit atas semua kegiatan yang telah dikerjakannya h. Setiap usulan disertai surat pernyataan yang berisi deskripsi kegiatan dan bukti kegiatannya i. Tim penilai akan memberikan penilaian terhadap usulan kegiatan untuk memberikan angka kredit j. Hasil penilaian tersebut akan masuk ke dalam PAK milik karyawan yang bersangkutan
236
Transaksi
k
l
m
n
o
Relasi
R U I D R U I D R U I D R U I D R U I D
Karyawan
x
x
x
x
x
Jabatan_Pereka yasa
x
x
Program
x
Dokumen_Prog ram
x
Rapat Absensi_Rapat Kegiatan
x
x
Tim_Penilai DUPAK Surat_Pernyata an Butir_Kegiatan PAK
x
Hasil_Penilaian Thread
x
Posting
x
Pesan File_Download
x
237 Angka_Kredit k. Karyawan dapat aktif di forum dengan membuat thread atau posting l. Karyawan dapat berkomunikasi dengan karyawan lain dengan menggunakan pesan m. Admin melakukan pencatatan jabatan perekayasa baru atau melakukan perubahan data n. Admin melakukan pencatatan kegiatan baru atau perubahan data o. Atasan dapat membuat laporan program sesuai kebutuhan
4.2.1.3.4 Merancang Organisasi File dan Indeks Pada tahap ini akan menentukan pemberian indeks terhadap setiap atribut di entitas yang sesuai.
Tabel 4.12 Pembuatan Indeks Untuk setiap Entitas Nama Tabel
Atribut
Indeks
Karyawan
NIP
Idx_NIP
Nama_Karyawan
Idx_NamaKary
Jabatan_Perekayasa Kd_JP
Program
Idx_KdJP
Nama_JP
Idx_NamaJP
Kd_Program
Idx_KdProg
Status
Idx_Status
238 Dokumen_Program
Kd_Dokumen
Idx_KdDok
Rapat
Kd_Rapat
Idx_KdRapat
Absensi_Rapat
Kd_Rapat
Idx_KdRapat
Kd_Program
Idx_KdProg
Kd_Kegiatan
Idx_KdKeg
Nama_Kegiatan
Idx_NamaKeg
Tim_Penilai
Kd_Penilai
Idx_KdPenilai
DUPAK
Kd_DUPAK
Idx_DUPAK
Surat_Pernyataan
Kd_SP
Idx_KdSP
Butir_Kegiatan
Kd_BK
Idx_KdBK
PAK
Kd_PAK
Idx_KdPAK
Hasil_Penilaian
Kd_Penilai
Idx_KdPenilai
Kd_BK
Idx_KdBK
Kd_Thread
Idx_KdThread
Judul
Idx_JudulT
Kd_Posting
Idx_KdPost
Isi
Idx_Isi
Pesan
Kd_Pesan
Idx_KdPesan
File_Download
Kd_File
Idx_KdFile
Angka_Kredit
Kd_Kegiatan
Idx_KdKeg
Kd_JP
Idx_KdJP
Jenis_SP
Kd_JSP
Idx_KdJSP
Jabatan_Program
Kd_Program
Idx_KdProg
Kegiatan
Thread
Posting
239 NIP
Idx_NIP
Jenis_Pesan
Kd_JenisPesan
Idx_KdJenisPesan
Penerima_Pesan
Kd_Pesan
Idx_KdPesan
NIP
Idx_NIP
Unsur
Kd_Unsur
Idx_KdUnsur
Sub_Unsur
Kd_SubUnsur
Idx_KdSU
Jenis_Dokumen
Kd_JD
Idx_KdJD
4.2.1.3.5 Merancang User View Pada tahap ini akan menentukan mengenai view yang akan digunakan untuk memudahkan proses query. 1. View untuk DUPAKdan rinciannya CREATE VIEW DUPAK_VW AS SELECT
bk.Kd_BK,
d.M asa_Penilaian_Akhir, d.M asa_Kerja_Lama, ak.Angka_Kredit,
d.M asa_Penilaian_Awal, d.Instansi,
d.Unit_Kerja,
d.M asa_Kerja_Baru, ak.Satuan_Hasil,
k.Kegiatan,
d.Kd_Dokumen,
d.Lampiran, d.Status, kr.NIP, kr.Nama_karyawan, kr.NSKP, kr.Tempat_Lahir, kr.Tgl_Lahir FROM Butir_Kegiatan bk, Karyawan
k,
DUPAK
Angka_Kredit ak,
Kegiatan
d,
Surat_Pernyataan
sp,
k, Dokumen_Program d
WHERE sp.Kd_SP = bk.Kd_SP AND sp.Kd_DUPAK = d.Kd_DUPAK AND ak.Kd_Kegiatan = bk.Kd_Kegiatan
240 AND ak.Kd_JP = bk.Kd_JP AND ak.Kd_Keg = k.Kd_Keg AND bk.Kd_Dokumen = d.Kd_Dokumen AND k.NIP = d.NIP AND k.Kd_JP = ak.Kd_JP
2. View untuk PAK dan rinciannya CREATE VIEW PAK_VW AS SELECT
pak.Kd_PAK,
kr.NIP,
hp.Hasil_AK,
p.Kd_Penilai, d.Kd_DUPAK FROM PAK, Karyawan kr, Hasil_Penilaian hp, Butir_Kegiatan bk, Surat_Pernyataan sp, DUPAK d WHERE pak.Kd_PAK = hp.Kd_PAK AND pak.NIP = kr.NIP AND hp.Kd_BK = bk.Kd_BK AND bk._Kd_SP
=
sp.Kd_SP
AND
sp.Kd_DUPAK
=
d.Kd_DUPAK
4.2.1.3.6 Estimasi Kebutuhan Disk Space Tahap ini untuk menentukan perkiraan kebutuhan kapasitas media penyimpanan untuk menyimpan basis data yang dirancang. Perkiraan dilakukan berdasarkan DBM S yang dipilih, besarnya tipe data antara lain : Varchar (n) = n bytes Char (n) = n bytes Date = 3 bytes Datetime = 8 bytes Int = 4 bytes
241 Decimal (m,d) = m+2 kalau d>0, m+1 kalau d=0, d+2 kalau m
Tabel 4.13 Estimasi Kebutuhan Disk Space Entitas
Atribut
Tipe Data
Panjang
Karyawan
NIP
char
20
NSKP
varchar
30
Username
varchar
15
Sandi
varchar
10
Nama_Karyawan
varchar
100
Pendidikan
varchar
30
Foto
varchar
30
Email
varchar
30
Telepon
varchar
15
HP
varchar
15
Alamat
varchar
100
Tempat_Lahir
varchar
30
Tgl_Lahir
date
3
Tgl_M asuk
date
3
Tgl_Keluar
date
3
Jenis_Kelamin
char
1
Peran
varchar
15
242 Pertanyaan
varchar
30
Jawaban
varchar
30
Kd_JP
char
8
Nick_Forum
varchar
15
Sandi_Forum
varchar
10
Pangkat
varchar
15
Status
varchar
15 573
Kapasitas dari 50 karyawan adalah 28650 bytes Jika dalam 1 tahun terdapat 10 karyawan baru maka dibutuhkan 573 * 10 = 5730 bytes + 28650bytes = 34380bytes Jabatan_Perekayasa
Kd_JP
char
8
Nama_JP
varchar
30
Deskripsi
varchar
50
AK_M in
decimal
12
AK_Aman
decimal
12
AK_Naik
decimal
12
Pangkat
varchar
30
Golongan
varchar
10 164
Kapasitas dari 20 jabatan perekayasa adalah 3280bytes Program
Kd_Program
char
8
Nama_Program
varchar
30
243 Deskripsi
varchar
100
Periode
varchar
30
Tingkatan
varchar
30
Budget_Awal
decimal
17
Budget_Terpakai
decimal
17
Program_Induk
char
8
NIP
char
20 260
Kapasitas dari 10 program adalah 2600 bytes Jika dalam 1 tahun terdapat 5 program baru maka dibutuhkan 260 * 5 = 1300 bytes + 2600 bytes = 3900 bytes Dokumen_Program
Kd_Dokumen
char
8
SN_File
varchar
30
Tgl_Submit
date
3
Tgl_Approved
date
3
Tgl_Checked
date
3
Tgl_Deadline
date
3
Deskripsi
varchar
100
Lampiran
varchar
30
Status
varchar
30
Kd_JD
char
8
Kd_Program
char
8 226
244 Kapasitas dari 300 dokumen program adalah 66900bytes Jika dalam 1 tahun terdapat 200 dokumen program baru maka dibutuhkan 223 * 200 = 44600 bytes + 66900 bytes = 111500 bytes Jenis_Dokumen
Kd_JD
char
8
Jenis_Dokumen
varchar
30
Keterangan
varchar
100 138
Kapasitas dari 10 jenis dokumen adalah 1300bytes Rapat
Kd_Rapat
char
8
Nama_Rapat
varchar
30
Tgl_Rapat
date
3
Deskripsi
varchar
100
Tingkatan
varchar
30
Lokasi
varchar
30
Hasil
varchar
50
Lampiran
varchar
30
Kd_Program
char
8 289
Kapasitas dari 30 rapat adalah 8670 bytes Jika dalam 1 tahun terdapat 20 rapat baru maka dibutuhkan 289 * 20 = 5780bytes + 8670 bytes = 14450 bytes Unsur
Kd_Unsur
char
8
Nama_Unsur
varchar
30
245 Keterangan
varchar
50 88
Kapasitas dari 5 unsur adalah 440 bytes Sub_Unsur
Kd_SubUnsur
char
8
Nama_SubUnsur
varchar
30
Keterangan
varchar
50
Kd_Unsur
char
8 96
Kapasitas dari 20 sub unsur adalah 1920 bytes Kegiatan
Kd_Kegiatan
char
8
Nama_Kegiatan
varchar
50
Keterangan
varchar
50
Kd_SubUnsur
char
8 116
Kapasitas dari 100 kegiatan adalah 11600 bytes Tim_Penilai
Kd_Penilai
char
8
Username
varchar
30
Sandi
varchar
30
Nama
varchar
50 118
Kapasitas dari 20 penilai adalah 2360 bytes Jika dalam 1 tahun terdapat 10 penilai baru maka dibutuhkan 118 * 10 = 1180bytes + 2360 bytes = 3540 bytes
246 DUPAK
Kd_DUPAK
char
8
M asa_Penilaian_Awal
date
3
M asa_Penilaian_Akhir
date
3
Status
varchar
30
Instansi
varchar
30
M asa_Kerja_Lama
varchar
30
M asa_Kerja_Baru
varchar
30
Unit_Kerja
varchar
30
NIP
varchar
20 184
Kapasitas dari 200 DUPAK adalah 36800 bytes Jika dalam 1 tahun terdapat 400 DUPAK baru maka dibutuhkan 184 * 400 = 73600bytes + 36800 bytes = 110400 bytes PAK
Kd_PAK
char
8
Tanggal
date
3
Usulan_Pangkat
varchar
30
NIP
char
20 61
Kapasitas dari 100 PAK adalah 6100 bytes Jika dalam 1 tahun terdapat 200 PAK baru maka dibutuhkan 61 * 200 = 12200 bytes + 6100 bytes = 18300 bytes Surat_Pernyataan
Kd_SP
char
8
Status
varchar
30
247 Tanggal_SP
date
3
Kd_JSP
char
8
NIP
char
20
Kd_DUPAK
char
8 77
Kapasitas dari 600 surat pernyataan adalah 46200 bytes Jika dalam 1 tahun terdapat 12000 surat pernyataan baru maka dibutuhkan 77 * 12000 = 924000 bytes + 46200 bytes = 970200 bytes Jenis_SP
Kd_JSP
char
8
Jenis_SP
varchar
30
Keterangan
varchar
50 88
Kapasitas dari 5 jenis surat pernyataan adalah 440 bytes Thread
Kd_Thread
char
8
Judul
varchar
30
Tanggal
date
3
View
int
4
Status
varchar
15
NIP
char
20 80
Kapasitas dari 5 thread adalah 400 bytes Jika dalam 1 tahun terdapat 100 thread baru maka dibutuhkan 80 * 100 = 8000 bytes + 400 bytes = 8400 bytes
248 Posting
Kd_Posting
char
8
Isi
text
65536
Tanggal
date
3
Kd_Thread
char
8
NIP
char
20 65575
Kapasitas dari 20 posting adalah 1311500 bytes Jika dalam 1 tahun terdapat 2000 posting baru maka dibutuhkan 65575 * 2000 = 131150000 bytes + 1311500 bytes = 132461500 bytes Pesan
Kd_Pesan
char
8
Isi
text
65536
Tanggal_Kirim
date
3
Kd_JenisPesan
char
8
NIP
char
20
Status
varchar
30
Lampiran
varchar
30 65635
Kapasitas dari 50 pesan adalah 3181800 bytes Jika dalam 1 tahun terdapat 150 pesan baru maka dibutuhkan 65636 * 150 = 9845400 bytes + 3181800 bytes = 13027200 bytes Jenis_Pesan
Kd_JenisPesan
char
8
Jenis_Pesan
varchar
30
Keterangan
varchar
50
249 88 Kapasitas dari 5 jenis pesan adalah 440 bytes File_Download
Kd_File
char
8
Tanggal
date
3
Keterangan
varchar
50
Lampiran
varchar
30
NIP
char
20 111
Kapasitas dari 5 file download adalah 555 bytes Jika dalam 1 tahun terdapat 25 file download baru maka dibutuhkan 111 * 25 = 2775 bytes + 555 bytes = 3330 bytes Jabatan_Program
Kd_Program
char
8
NIP
char
20
Jabatan_Program
varchar
30 58
Kapasitas dari 100 jabatan program adalah 5800 bytes Jika dalam 1 tahun terdapat 100 jabatan program baru maka dibutuhkan 58 * 100 = 5800 bytes + 5800 bytes = 11600 bytes Absensi_Rapat
Kd_Rapat
char
8
Kd_Program
char
8
Waktu
datetime
8
Keterangan
varchar
30 54
250 Kapasitas dari 100 absensi rapat adalah 5400 bytes Jika dalam 1 tahun ada 50 rapat baru maka dibutuhkan 54 * 50 = 2700 bytes + 5400 bytes = 8100 bytes Angka_Kredit
Kd_Kegiatan
char
8
Kd_JP
char
8
Angka_Kredit
decimal
12
Satuan_Hasil
varchar
30 58
Kapasitas dari 500 angka kredit adalah 29000 bytes Butir_Kegiatan
Kd_BK
char
8
Kd_SP
char
8
Kd_Kegiatan
char
8
Kd_JP
char
8
Usulan_AK
decimal
12
Keterangan
varchar
30
Lampiran
varchar
30
Kd_Dokumen
char
8 112
Kapasitas dari 1000 butir kegiatan adalah 112000 bytes Jika dalam 1 tahun ada 2000 butir kegiatan baru maka dibutuhkan 112 * 2000 = 224000 bytes + 112000 bytes = 336000 bytes Hasil_Penilaian
Kd_BK
char
8
Kd_Penilai
char
8
251 Hasil_AK
decimal
12
Status
varchar
15
Kd_PAK
char
8 51
Kapasitas dari 700 hasil penilaian adalah 35700 bytes Jika dalam 1 tahun terdapat 1500 hasil penilaian baru maka dibutuhkan 51 * 1500 = 76500 bytes + 35700 bytes = 112200 bytes Penerima_Pesan
Kd_Pesan
char
8
NIP
char
20
Tanggal_Baca
date
3 31
Kapasitas dari 150 penerima pesan adalah 4650 bytes Jika dalam 1 tahun terdapat 400 penerima pesan baru maka dibutuhkan 31 * 400 = 12400 bytes + 4650 bytes = 17050 bytes
4.2.2
Perancangan Aplikasi Tujuan utama dari perancangan aplikasi adalah membantu proses
pembuatan aplikasi dan dapat lebih efisien dan efektif dalam pengoperasian aplikasi ini sendiri. Perancangan aplikasi akan diawali dengan perancangan use case, yang dilanjutkan dengan sequence dan classdiagram. Sistem yang dirancang menggunakan metode M VC dimana PHP sendiri telah mendukung penggunaan kelas dan objek (class-object) yang sebelumnya hanya mendukung procedural saja.
252 Konsep M VC adalah memisahkan antara Model (database) dengan View (tampilan) dengan Controller (code / validasi).
Controller
VIEW
MODEL
Gambar 4.4 Diagram MVC dan penjelasan singkatnya Gambar 4.4 di atas merupakan skema pembagian M VC pada umumnya. Model berupa database. View merupakan tampilan yang dilihat pengguna dan controller sebagai validator / penghubung antara keduanya (tidak ada garis antar View dengan Model). Namun dalam sistem yang dirancang ini, ada penghubung antar view dengan model dalam bentuk pemrograman prosedural yang biasanya digunakan hanya untuk menampilkan data - data ke layar (mempersingkat proses query dibanding jika harus melewati objek dahulu), kekurangan dari metode ini memang ada, tetapi tidak dapat menjadi masalah yang besar karena tidak ada kegiatan lain selain penampilan data ke layar oleh hubungan view dengan model ini. Selain itu, semua kegiatan manipulasi database, perhitungan, logika, dan sebagainya dilakukan di controller.
253 Berikut ini adalah daftar dari pekerjaan apa saja yang bisa dilakukan oleh perekayasa dengan aplikasi ini (yang berhubungan dengan kegiatan kerekayasaan saja – karena ada juga fitur – fitur lain yang bersifat pendukung saja seperti fitur pesan). •
M engatur Program.
•
M engadakan rapat (dan daftar hadirnya).
•
M embuat decision sheet.
•
M embuat instruction sheet.
•
M embuat file – file level program.
•
M emproses file bawahan.
•
M engatur WBS.
•
M engadakan rapat (dan daftar hadirnya).
•
M embuat decision sheet.
•
M embuat instruction sheet.
•
M embuat file – file level WBS.
•
M emproses file bawahan.
•
M engatur WP.
•
M embuat Aktifitas
•
M engadakan rapat (dan daftar hadirnya).
•
M embuat decision sheet.
•
M embuat instruction sheet.
•
M embuat file – file level WP
Troika
Group Leader
Leader
254 •
M emproses file bawahan.
•
M engatur aktifitas.
•
M embuat file – file level Aktifitas.
Staff
Kegiatan pemantauan terhadap perkembangan dokumen terhadap waktu (deadline) dimulai ketika pembuatan program dan cabang – cabangnya, deadline bisa langsung ditentukan. Deadline tentu dapat dilihat oleh setiap anggota perekayasa sesuai dengan jabatannya. Atasan (1 level diatas level tersebut) dapat memantau dan mengingakan akan dokumen yang belum diproses maupun jika sudah melewati batas tanggal deadline.
255 4.2.2.1
Use Case Diagram
Gambar 4.5U seCasediagram perancangan sistem kegiatan kerekayasaan
256
Gambar 4.6 U seCasediagram perancangan sistem alur informasi kerekayasaan
257 4.2.2.2
SequenceDiagram
:AKController :Admin AKController(idAK) [idAK tidak ada]
Gambar 4.7 SequenceGagal Menghapus Angka Kredit yang Telah Terdaftar
:AKController
:AK
:Admin AKController(idAK) construct(idAK,detilAK,flag)
Gambar 4.8SequenceS ukses Menghapus Angka Kredit yang Telah Terdaftar
258
Gambar 4.9SequenceGagal Memperbaharui Angka Kredit yang Telah Terdaftar
Gambar 4.10SequenceS ukses Memperbaharui Angka Kredit yang Telah Terdaftar
259
Gambar 4.11SequenceGagal Mendaftarkan Angka Kredit Baru
Gambar 4.12SequenceS ukses Mendaftarkan Angka Kredit Baru
260
Gambar 4.13SequenceGagal Menghapus File yang Telah Terdaftar
Gambar 4.14SequenceS ukses Menghapus File yang Telah Terdaftar
261
Gambar 4.15SequenceGagal Mendaftarkan File Baru
Gambar 4.16SequenceS ukses Mendaftarkan File Baru
262
Gambar 4.17SequenceGagal Memperbaharui File yang Telah Terdaftar
Gambar 4.18SequenceS ukses Memperbaharui File yang Telah Terdaftar
263
Gambar 4.19SequenceGagal Menghapus Pegawai yang Telah Terdaftar
Gambar 4.20SequenceS ukses Menghapus Pegawai yang Telah Terdaftar
264
Gambar 4.21SequenceGagal Memperbaharui Data Pegawai yang Telah Terdaftar
Gambar 4.22SequenceS ukses Memperbaharui Data Pegawai Tanpa Mengubah Foto dan Tipe Pegawai
265
Gambar 4.23SequenceS ukses Memperbaharui Data dan Tipe Pegawai Tanpa Mengubah Foto
266
Gambar 4.24 SequenceS ukses Memperbaharui Data dan Foto Pegawai Tanpa Mengubah Tipe Pegawai
267
Gambar 4.25S equence S ukses Memperbaharui Data, Tipe dan Foto Pegawai yang Telah Terdaftar
268
Gambar 4.26Sequence Gagal Mendaftarkan Pegawai Baru
269
Gambar 4.27SequenceS ukses Mendaftarkan Data, Tipe dan Foto Pegawai Baru
270
Gambar 4.28SequenceS ukses Mendaftarkan Data dan Foto Pegawai Baru
271
Gambar 4.29 SequenceS ukses Mendaftarkan Data dan Tipe Pegawai Baru
272
Gambar 4.30SequenceS ukses Mendaftarkan Data Pegawai Baru
Gambar 4.31SequenceGagal Menghapus Tipe File yang Telah Terdaftar
273
Gambar 4.32SequenceS ukses Menghapus Tipe File yang Telah Terdaftar
Gambar 4.33SequenceGagal Mendaftarkan Tipe File Baru
274
Gambar 4.34SequenceS ukses Mendaftarkan Tipe File Baru
Gambar 4.35SequenceGagal Memperbaharui Tipe File yang Telah Terdaftar
275
Gambar 4.36SequenceS ukses Memperbaharui Tipe File yang Telah Terdaftar
Gambar 4.37SequenceGagal Memperbaharui Jabatan Fungsional yang Telah Terdaftar
276
Gambar 4.38SequenceS ukses Memperbaharui Jabatan Fungsional yang Telah Terdaftar
Gambar 4.39SequenceGagal Mendaftarkan Jabatan Fungsional Baru
277
Gambar 4.40SequenceS ukses Mendaftarkan Jabatan Fungsional Baru
:JFController :Admin JFController(idJPro,detilJPro) [idJPro/ detilJPro tidak ada]
Gambar 4.41SequenceGagal Memperbaharui Jabatan Fungsional yang Telah Terdaftar
278
Gambar 4.42SequenceS ukses Memperbaharui Jabatan Fungsional yang Telah Terdaftar
Gambar 4.43SequenceGagal Menghapus Jabatan Perekayasa yang Telah Terdaftar
279
Gambar 4.44SequenceS ukses Menghapus Jabatan Perekayasa yang Telah Terdaftar
Gambar 4.45SequenceGagal Mendaftarkan Jabatan Perekayasa Baru
280
Gambar 4.46SequenceS ukses Mendaftarkan Jabatan Perekayasa Baru
Gambar 4.47SequenceGagal Memperbaharui Jabatan Perekayasa yang Telah Terdaftar
281
Gambar 4.48SequenceS ukses Memperbaharui Jabatan Perekayasa yang Telah Terdaftar
Gambar 4.49SequenceGagal Melakukan Login
282
Gambar 4.50SequenceS ukses Melakukan Login
Gambar 4.51SequenceS ukses Melakukan Logout
Gambar 4.52SequenceGagal Menghapus Activity yang telah Terdaftar
283
Gambar 4.53SequenceS ukses Menghapus Activity yang telah Terdaftar
Gambar 4.54SequenceGagal Mendaftarkan Activity Baru
284
:ProgramController
Fungsi
MS_Employee
:Program
:Member ProgramController(idWP,detilAC) Construct()
Construct()
getEmployee_ID() idPeg Construct()
createNewID(Program) idAC Construct(idAC,namaAC,detilAC)
Construct()
createNewID(Employee_Work) idEW Construct(idEW,ES,detilEW)
Construct(idWP,child,detilWP)
Gambar 4.55SequenceS ukses Mendaftarkan Activity Baru
:Employee_Work
285
Gambar 4.56SequenceGagal Memperbaharui Activity yang Telah Terdaftar
Gambar 4.57 S equence S ukses Memperbaharui Activity yang Telah Terdaftar
286
Gambar 4.58SequenceGagal Menghapus WP yang Telah Terdaftar
Gambar 4.59SequenceS ukses Menghapus WP yang Telah Terdaftar
287
Gambar 4.60SequenceGagal Mendaftarkan WP Baru
288
Gambar 4.61SequenceS ukses Mendaftarkan WP Baru
289
Gambar 4.62SequenceGagal Memperbaharui WP yang Telah Terdaftar
Gambar 4.63SequenceS ukses Memperbaharui WP yang Telah Terdaftar
290
Gambar 4.64SequenceGagal Menghapus WBS yang Telah Terdaftar
291
Gambar 4.65SequenceS ukses Menghapus WBS yang Telah Terdaftar
292
Gambar 4.66SequenceGagal Mendaftarkan WBS Baru
293
Gambar 4.67SequenceS ukses Mendaftarkan WBS Baru
294
Gambar 4.68SequenceGagal Memperbaharui WBS yang Telah Terdaftar
Gambar 4.69SequenceS ukses Memperbaharui WBS yang Telah Terdaftar
295
Gambar 4.70SequenceGagal Menghapus Program yang Telah Terdaftar
296
Gambar 4.71SequenceS ukses Menghapus Program yang Telah Terdaftar
297
Gambar 4.72SequenceGagal Mendaftarkan Program Baru
298
Gambar 4.73SequenceS ukses Mendaftarkan Program Baru
299
Gambar 4.74SequenceGagal Memperbaharui Program yang Telah Terdaftar
300
Gambar 4.75SequenceS ukses Memperbaharui Program yang Telah Terdaftar
301
Gambar 4.76SequenceGagal Memperbaharui File Perekayasa yang Telah Terdaftar
302
Gambar 4.77SequenceS ukses Memperbaharui File Perekayasa yang Telah Terdaftar tanpa Cek dan Setuju
303
Gambar 4.78SequenceS ukses Memperbaharui File Perekayasa yang Telah Terdaftar dengan Cek dan Setuju
304
Gambar 4.79SequenceGagal Mendaftarkan File Kerekayasaan Baru
305
Gambar 4.80SequenceS ukses Mendaftarkan File Kerekayasaan Baru dengan Cek dan Setuju
306
Gambar 4.81SequenceS ukses Mendaftarkan File Kerekayasaan Baru tanpa Cek dan Setuju
307
Gambar 4.82SequenceGagal Mengecek atau Menyetujui File Kerekayasaan
308
Gambar 4.83SequenceS ukses Mengecek atau Menyetujui File Kerekayasaan
309
Gambar 4.84SequenceGagal Menghapus Pertemuan yang Telah Terdaftar
Gambar 4.85SequenceS ukses Menghapus Pertemuan yang Telah Terdaftar
310
Gambar 4.86SequenceGagal Mendaftarkan Pertemuan Baru
Gambar 4.87SequenceS ukses Mendaftarkan Pertemuan Baru
311
Gambar 4.88SequenceGagal Absensi Pertemuan
Gambar 4.89SequenceS ukses Absensi Pertemuan
312
Gambar 4.90SequenceGagal Menghapus Pesan yang Telah Terdaftar
:MessageController
:MS_Employee
:Message
:Member MessageController(idPesan,pengirim) Contruct()
getEmployee_ID() idPegawai Construct(idPesan,detilPesan,flag)
Gambar 4.91 SequenceS ukses Menghapus Pesan yang Telah Terdaftar
313
Gambar 4.92 SequenceGagal Mendaftarkan Lampiran Pesan Baru
314
Gambar 4.93SequenceS ukses Mendaftarkan Lampiran Pesan Baru
315 4.2.2.3
ClassDiagram
Gambar 4.94ClassDiagram perancangan sistem
316 Perancangan menunjukan sebuah struktur antar kelas - kelas seperti diagram (gambar 4.94). Kelas Standarization memiliki atribut atribut yang harus dimiliki oleh kelas - kelas yang lain, karena itu hubungannya bersifat inheritance. Multiplicity yang ada adalah one to one semua, karena satu komponen standarization hanya akan dipakai di tepat satu komponen kelas yang lainnya. Kebanyakan kelas - kelas ini dibentuk berdasarkan ERD tingkat terakhir, sehingga berkerja sebagai penghubung antara data / model dengan aplikasi (controller). Kelas - kelas ini sendiri memiliki method yang sama, yakni constructor (menerima semua parameter sesuai dengan atribut), destructor, dan setter-getter. Proses manipulasi data / model dilakukan bukan dengan cara method yang ditaruh di setiap kelas melainkan berbentuk satu framework yang menghubungkan mereka semua. Salah satu kelas yang bernama Fungsi berisi semua method yang tidak terikat secara langsung dengan satu kelas tertentu. Hubungan antara kelas ini dengan kelas yang lain hanya bersifat asociation dengan sifat menggunakan dan tidak digambarkan pada class diagram untuk memudahkan
pembacaan
diagram.
Khusus
kelas
ini
tidak
membutuhkan komponen Standarization.
4.2.2.4
Perancangan Layar Berikut ini adalah beberapa format tampilan layar yang akan
dibuat. M emang tidak menunjukan bagaimana setiap halaman nanti akan berbentuk, namun format ini akan (harus) menjadi pedoman
317 dalam perancangan setiap layar. (catatan: Hasil jadi tampilan layar bisa berbeda sedikit dengan perancangan awal, karena perubahan permintaan client).
Gambar 4.95 Format perancangan awal keseluruhan
Gambar 4.96Format perancangan tampilan setelah login
318
Gambar 4.97Format tampilan modul pencarian dan recoverypassword
Gambar 4.98Format tampilan modul biodata
319
Gambar 4.99Format awal tampilan F.A.Q.
Gambar 4.100Format awal tampilan forum
320
Gambar 4.101Format awal tampilan modul pesan (Messaging)
Gambar 4.102Format tampilan awal modul perekayasa
321 4.3
Pembuatan M odel projectmanagement yang digunakan untuk proyek ini adalah Prototyping.
Sehingga proses pembuatan berorientasi pada target pembuatan prototype. Hasilnya ada 3 prototype yang dibuat, dan protoype v.3 yang menjadi versi finalnya. Kegiatan pembuatan juga dilakukan secara bertahap. Dimulai dari modul - modul utama, dan dilanjutkan dengan modul - modul tambahan.
4.3.1
Koding Berikut ini adalah beberapa potongan program yang bisa dikatakan
penting dalam sistem aplikasi ini.
322
Gambar 4.103 Potongancodefungsi frameworksave (insert)
323
Gambar 4.104 Potongan codefungsi frameworkdelete (delete)
324
Gambar 4.105 Potongan code fungsi framework edit (update)
325
Gambar 4.106 Potongan code fungsi frameworkquery dan queryAll (query)
326
327
Gambar 4.107 Potongan codemethod dari kelas Fungsi yang berfungsi mengatur alur informasi / berkas / dokumen kerekayasaan
328
329
330
331
332
Gambar 4.108 Potongan codemethod dari kelas Fungsi yang bekerja sebagai pengatur mekanisme perhitungan progress dari program - program
4.4
Testing Kegiatan pengujian dibagi dua, yakni pengujian sendiri (oleh pembuat) dan oleh
orang lain (pegawai). Pengujian oleh kami sendiri disebut alpha-testing sedangkan pengujian yang dilakukan oleh pegawai disebut beta-testing. Alpha testing dilakukan selama 1 hari sebelum proses upload ke server BPPT. Beta testing dilakukan selama 1 hari pada saat rapat pleno.
333 4.4.1
Alpha Testing Pengujian alpha-testing selalu dilakukan setiap mendekati akhir
prototype untuk mencari tahu semua bug atau problem yang masih ditemui. Pengujian juga dilakukan disaat pembuatan berlangsung, terlebih saat pembuatan fungsi / method, pengujian sangat penting untuk mencari tahu apakah hasil yang didapat sesuai dengan harapan atau tidak. Karena aplikasi Prototype v.3 yang menjadi final dari sistem ini, maka yang kami tunjukan disini adalah alphatesting dari prototype v.3.
Alpha-Testingdilakukan dengan menguji satu persatu Function, Method, maupun Module yang terdapat di aplikasi ini. Berikut ini penjelasan singkat mengenai kategori komponen yang diuji : •
Function - berupa fungsi (berbeda dengan method, karena berdiri sendiri, bukan bagian dari kelas tertentu). Fungsi - fungsi ini merupakan fungsi yang bukan built-in PHP (maksudnya yang kami buat sendiri). Penulisan yang digunakan untuk kategori ini adalah "(Function) nama_fungsi()".
•
Method - merupakan komponen dari suatu kelas tertentu. Dimana fungsinya mirip dengan Function, namun berbeda cara pemanggilannya. Penulisan yang digunakan untuk kategori ini adalah "nama_kelas:nama_method()".
•
Module - merupakan sebuah gabungan dari beberapa fungsi sekaligus yang membentuk
suatu
proses
tertentu.
(contoh.
M odul
forum
=
mengatasnamakan semua kegiatan yang berhubungan dengan forum, seperti membuat thread, posting, dll). Proses pengujian module memang lebih sulit
334 dibanding yang lainnya karena sulit untuk diuji satu - persatu komponennya, sehingga hasil pengujiannya pun masih belum bisa dikatakan benar - benar sempurna. Penulisan yang digunakan untuk kategori ini adalah "(M odul) nama_modul".
Hasil pengujian pun ada beberapa level / kategori,
berikut
penjelasanya: •
High - artinya adalah komponen tersebut telah berhasil dengan sempurna dalam semua kemungkinan testing, secara single (berdiri sendiri)maupun integrated (tergabung dengan proses lainnya).
•
Medium - artinya adalah komponen tersebut berhasil dengan cukup baik dalam beberapa kemungkinan testing, bukan semua kemungkinan dan tidak ditemui kegagalan. Medium merupakan batas minimum dari hasil pengujian alpha-testing sebelum diperbolehkan lanjut ke beta-testing.
•
Low - artinya adalah komponen tersebut berhasil dalam beberapa pengujian, namun masih ditemukan kegagalan dalam satu atau beberapa pengujian. Jika komponen masih ada yang memiliki status ini, maka komponen masih harus diperbaiki dahulu sebelum bisa lanjut ke beta-testing.
Berikut ini merupakan tabel hasil pengujian alpha-testing: Tabel 4.14 Hasil pengujian alphatesting pada Prototype v.3 Hasil
Function / Method (class:method) No
Deskripsi Pengujian
/ Module 1
Fungsi:createEmptyFLC(arg)
Method ini berurusan dengan
High
335 fastLinkController[1], dimana membuat array dengan sebuah link utama sebagai [root]-nya. Method ini berurusan dengan 2
Fungsi:updateFLC(arg)
fastLinkController[1], dimana mengubah isi
High
dari array FLC yang sudah ada. Method ini berurusan dengan 3
Fungsi:showFLC(arg)
fastLinkController[1], dimana menampilkan
High
isi dari FLC. Method ini mengembalikan 2 karakter 4
Fungsi:getHead(arg)
pertama yang digunakan dalam pembuatan
High
ID baru (primary key). Method ini membuat primary key yang 5
High
Fungsi:createNewID(arg) digunakan saat insert. Method ini mirip dengan method ke.5. namun method ini bisa menerima
6
High
Fungsi:createNewIDSecondary(arg) parameter kolom sebagai penentu format ID barunya. Method ini memberikan nama baru untuk
7
High
Fungsi:createNewFileName(arg) setiap file yang di-upload. Method ini mengecek apakah username
8
Fungsi:cekUsernameValid(arg)
yang diinput sudah ada di database atau belum.
High
336 Method ini berkerja secara otomatis untuk 9
Fungsi:autoDeleteM essage()
[2]
High
mengosongkan shoutbox . Method yang kompleks ini membuat sebuah komponen website (drop down Fungsi:createSelectPeriodPicker(ar menu) yang berfungsi sebagai pilihan
10
High
g) periode (tahun-tahun / bulan-bulan / dan sebagainya).[3] Method ini mengubah input dari angka (111
Fungsi:getM onth(arg)
12) menjadi nama bulan (January-
High
December). Method ini mengembalikan array yang berisi komponen dari method ke.10. 12
Fungsi:parsePeriod(arg)
High Seperti bulan keberapa, tahun keberapa, dsb.[4] Method yang kompleks ini membuat
Fungsi:createSelectEmployeeDrop
komponen website (drop down menu) yang
13
High DownM enu(arg)
berisi pilihan pegawai yang terdaftar di database.[5] Method ini mengambil nama lengkap dari
14
High
Fungsi:getRealName(arg) [Employee_ID] dari database. Method ini berkebalikan dengan method
15
Fungsi:getIDfromFullName(arg)
ke.14. dimana mengembalikan ID dari nama lengkap yang dimasukan.
High
337 Method ini mengembalikan jumlah pesan / Fungsi:getNewUnreadM essageCou messages yang masih belum terbaca (new)
16
High
nt(arg) oleh pengguna. Method ini mengecek apakah pengguna Fungsi:cekPasswordRecoveryAda(a 17
sudah memiliki metode (pertanyaan dan
High
rg) jawaban) untuk proses recovery password. Method ini mengembalikan nama program 18
Fungsi:getProgramName(arg)
/ WBS / WP / aktifitas dari ID yang
High
dikirimkan. Method ini mengembalikan kategori dari 19
Fungsi:getCategoryFile(arg)
file yang di-upload. Apakah antara
High
program, WBS, WP, atau aktifitas. Method ini mengecek apakah file yang 20
Fungsi:cekFileNeedTobeCV(arg)
diinput harus melewati proses pengecekan
High
dan pengvalidasian atau tidak. Method yang sangat kompleks ini Fungsi:createSophisticatedReportR mengembalikan daftar dari laporan / report 21 esult(arg)
Medium [6]
/ file-file yang masih perlu diproses lagi (check / approve). Method ini mengirimkan pesan informasi
Fungsi:kirimNotifikasiPesanRapat( 22
untuk rapat ke orang - orang yang
High
arg) terdaftar. 23
Fungsi:updateProgramProgress(arg) Method yang kompleks ini
High
338 mengkalkulasikan perkembangan program untuk ditunjukan progress-nya. Cara kalkulasi sudah dijelaskan di sub-bab Kebutuhan Teknis. Method ini mengembalikan jumlah "anak" 24
Fungsi:countChildTotal(arg)
atau sub-program dari program yang
High
diinput. Fungsi:calculateM oneyProgress(arg Method ini mengkalkulasikan persentase High
25 )
penggunaan dana dari program. Method ini membuat komponen website
26
Fungsi:createProgressImage(arg)
(image) yang menunjukan perkembangan
High
(progress) dari parameter yang diinput. Fungsi yang kompleks ini mengurus semua 27
(Function) save(obj)
High kegiatan insert ke database. Fungsi yang kompleks ini mengurus semua
28
High
(Function) edit(obj) kegiatan update ke database. Fungsi yang kompleks ini mengurus semua
29
High
(Function) delete(obj) kegiatan delete dari database. Fungsi ini mengurus proses query dari
30
High
(Function) query(arg) database. Fungsi ini mengurus proses query dari
31
(Function) queryAll(obj)
database. Hanya saja fungsi ini akan mengembalikan semua isi / row dari tabel
High
339 yang bersangkutan. Fungsi ini mengurus semua PATH yang biasanya menjadi masalah pada PHP. 32
High
(Function) manipulate_caller() Fungsi ini memperbaiki posisi pathing ke posisi yang sebenarnya. Fungsi ini mengembalikan tanggal dengan
33
High
(Function) getNowDateTime() format tertentu [2000-12-24 13:55:59]. Fungsi ini mengembalikan tanggal dengan
34
High
(Function) getNowDate() format tertentu [2000-11-21]. Fungsi ini mengembalikan minggu
35
(Function) getNowWeek()
High keberapa dari tanggal sekarang.
M odul ini mengurus kegiatan seperti menambah, mengubah, dan menghapus 36
Medium
(modul) ak_controller data - data yang berhubungan dengan tabel Angka Kredit (AK). M odul ini mengurus kegiatan seperti menambah, mengubah, dan menghapus
37
Medium
(modul) df_controller data - data yang berhubungan dengan tabel Download File (unduh). M odul ini mengurus kegiatan seperti
38
(modul) employee_controller
menambah, mengubah, dan menghapus data - data yang berhubungan dengan tabel
Medium
340 Employee (karyawan). Dan juga mengurus proses login, logout, password-recovery. M odul ini mengurus kegiatan seperti menambah, mengubah, dan me-verifikasi 39
Medium
(modul) eng_controller data - data yang berhubungan dengan tabel Program Files. M odul ini mengurus kegiatan seperti menambah, mengubah, dan menghapus
40
Medium
(modul) filetype_controller data - data yang berhubungan dengan tabel File Type (tipe file). M odul ini mengurus kegiatan seperti menambah, mengubah, dan menghapus
41
Medium
(modul) jf_controller data - data yang berhubungan dengan tabel Jabatan Fungsional (jabatan program). M odul ini mengurus kegiatan seperti menambah, mengubah, dan menghapus
42
Medium
(modul) jp_controller data - data yang berhubungan dengan tabel Jabatan Perekayasa. M odul ini mengurus kegiatan seperti
43
(modul) meeting_controller
menambah, dan mengubah data - data yang
Medium
berhubungan dengan tabel M eeting (rapat). M odul ini mengurus kegiatan seperti 44
Medium
(modul) message_controller menambah, mengubah, dan menghapus
341 data - data yang berhubungan dengan tabel M essage (pesan). M odul ini mengurus kegiatan seperti menambah, mengubah, dan menghapus 45
Medium
(modul) program_controller data - data yang berhubungan dengan tabel Program. M odul ini mengurus kegiatan penunjang
46
Medium
(modul) other_controller website lainnya seperti error-redirection. M odul ini merupakan semua yang
47
(modul) forum
Medium berhubungan dengan mekanisme forum. M odul ini berhubungan dengan mekanisme
48
High
(modul) shoutbox shoutbox yang ada dihalaman index. M odul ini berhubungan dengan mekanisme
49
(modul) security
pengaman yang diimplementasikan di
Medium
website ini. M odul ini merupakan generalisasi dari 50
(modul) upload-download
kegiatan upload-download, dimana terletak
High
dibeberapa controller.
Catatan kaki. [1]
(FLC) atau FastLinkController merupakan mekanisme navigasi yang kami
buat, cara kerjanya mirip dengan sitemap yang terdapat di ASP.net. Dengan FLC
342 ini pengguna dapat dengan mudah kembali ke halaman sebelumnya, tanpa perlu menekan tombol "Back" pada Browser.
[2]
Shoutbox, merupakan fitur tambahan yang berfungsi seperti chat-box, dimana
pengguna dapat menggunakan seperti chatting tanpa perlu login terlebih dahulu. Hanya admin yang bisa menghapusnya. Fitur ini ada di halaman pertama (sebelum login - index).
[3]
Komponen website yang berupa drop-down-menu yang bisa dikustomisasi
sesuai kebutuhan, bisa membuat bentuk seperti berikut [ tahun: xxxx bulan: xx s/d tahun: xxxx bulan: xx ]. Tanpa perlu repot membuat setiap detail dari isinya, method ini sudah mengurus semua hal yang menjadi parameternya. Yang bis a ditangkap dari komponen ini adalah berupa textbox.
[4]
Method ini merupakan kebalikan dari komponen periodPicker, dimana
fungsinya adalah memisah - misahkan konten dari hasil period picker menjadi array
yang
bisa
digunakan
untuk
lainnya.
Contoh:
hasilnya
(array["year1"]=1997, array["year2"]=2003).
[5]
Method ini membuat komponen website mirip seperti komponen periodPicker
tapi membuat drop down menu yang berisikan daftar pegawai yang masih aktif dan dapat dipilih.
343 [6]
Method ini sebenarnya sedang dibuat dalam bentuk recursive, namun masih
bermasalah. Sehingga dibuatkan solusi sementara, namun efisiensi dari solusi ini masih dipertanyakan. Refactoring lebih lanjut masih sangat dibutuhkan.
4.5
Implementasi Implementasi dilakukan melalui beberapa tahapan. Berikut ini pemaparannya: •
Presentasi aplikasi Prototypev.3 pada rapat pleno PPKDT-BPPT. (kegiatan presentasi sudah didokumentasikan, beberapa foto ada di lampiran).
•
Upload aplikasi ke server BPPT sehingga bisa diakses dari internet (cara pengaksesan: http://ppkdt.bppt.go.id/labpkt).
•
Kegiatan traininguntuk para pegawai PPKDT, sekaligus sebagai sarana sosialisasi. (training juga digunakan sebagai sarana beta-testing, dimana respon pengguna menjadi hasilnya).
4.5.1
Hasil Jadi Tampilan Berikut ini beberapa tampilan hasil jadi aplikasinya. Tampilan
memang bisa jadi berbeda sedikit dengan perancangan awal karena terjadi perubahan permintaan penampilan, namun konsistensi tetap dipertahankan sejak perancangan awal.
344
Gambar 4.109 Tampilan jadi Halaman Pertama (login)
Gambar 4.110 Tampilan jadi Halaman PasswordRecovery
345
Gambar 4.111 Tampilan jadi Halaman Pencarian
Gambar 4.112 Tampilan jadi Halaman setelah login (sebagai administrator)
346
Gambar 4.113 Tampilan jadi Halaman setelah login (sebagai staff / perekayasa)
Gambar 4.114 Tampilan jadi Halaman setelah login (sebagai atasan / toplevel)
347
Gambar 4.115 Tampilan jadi Halaman biodata
Gambar 4.116 Tampilan jadi Halaman ubah biodata
348
Gambar 4.117 Tampilan jadi Halaman unduh file
Gambar 4.118 Tampilan jadi Halaman FAQ
349
Gambar 4.119 Tampilan jadi Halaman Help Desk
Gambar 4.120 Tampilan jadi Halaman pesan (messaging-inbox-outbox-trash)
350
Gambar 4.121 Tampilan jadi Halaman pesan (compose-reply-forward)
Gambar 4.122 Tampilan jadi Halaman forum (login)
351
Gambar 4.123 Tampilan jadi Halaman forum (setelah login)
Gambar 4.124 Tampilan jadi Halaman forum (new thread)
352
Gambar 4.125 Tampilan jadi Halaman pengaturan pegawai (employee management)
Gambar 4.126 Tampilan jadi Halaman tambah pegawai
353
Gambar 4.127 Tampilan jadi Halaman pemasukan AK pertama kali
Gambar 4.128 Tampilan jadi Halaman pengaturan program
354
Gambar 4.129 Tampilan jadi Halaman tambah program baru
Gambar 4.130 Tampilan jadi Halaman tambah WBS baru
355
Gambar 4.131 Tampilan jadi Halaman tambah WP baru
Gambar 4.132 Tampilan jadi Halaman tambah Aktifitas baru
356
Gambar 4.133 Tampilan jadi Halaman ubah / update program / wbs / wp / aktifitas
Gambar 4.134 Tampilan jadi Halaman pengaturan jabatan perekayasa
357
Gambar 4.135 Tampilan jadi Halaman tambah baru jabatan perekayasa
Gambar 4.136 Tampilan jadi Halaman pengaturan jabatan fungsional
358
Gambar 4.137 Tampilan jadi Halaman tambah baru jabatan fungsional
Gambar 4.138 Tampilan jadi Halaman pengaturan tipe file
359
Gambar 4.139 Tampilan jadi Halaman tambah baru tipe file
Gambar 4.140 Tampilan jadi Halaman pengaturan file unduhan
360
Gambar 4.141 Tampilan jadi Halaman tambah file unduhan
Gambar 4.142 Tampilan jadi Halaman pengaturan daftar AK (angka kredit)
361
Gambar 4.143 Tampilan jadi Halaman tambah daftar AK
Gambar 4.144 Tampilan jadi Halaman Kerekayasaan (pilih pekerjaan)
362
Gambar 4.145 Tampilan jadi Halaman kerekayasaan (salah satu item pekerjaan)
Gambar 4.146 Tampilan jadi Halaman kerekayasaan (buat file lain-lain)
363
Gambar 4.147 Tampilan jadi Halaman kerekayasaan (buat file tertentu)
Gambar 4.148 Tampilan jadi Lihat daftar file / laporan (history)
364
Gambar 4.149 Tampilan jadi Halaman buat rapat baru
Gambar 4.150 Tampilan jadi Halaman lihat daftar rapat
365
Gambar 4.151 Tampilan jadi Halaman pengisian absensi rapat
Gambar 4.152 Tampilan jadi Halaman kerekayasaan membuat file tertentu
366
Gambar 4.153 Tampilan jadi Halaman topleveluntuk melihat daftar programprogress-status
Gambar 4.154 Tampilan jadi Halaman toplevel untukmelihat daftar pegawai
367
Gambar 4.155 Tampilan jadi halaman review untuk melihat perkembangan file dan notifikasi
Gambar 4.156 Perkembangan dan Deadline project, notifikasi akan dikirimkan ke fitur pesan
368 4.6
Beta Testing Pengujian beta-testing dilakukan
saat
kegiatan training pegawai dan
menggunakan survey kuisioner untuk mendapatkan respon. Berikut ini hasil dari survey tersebut (19 responden): 1.
Apakah Bapak/Ibu seorang perekayasa?
Tidak, 7 Ya, 12
2.
Apa jabatan fungsional Bapak/Ibu saat ini? Troika, 1
Group Leader, 2 Leader, 1 Engineering Staff, 8
3.
Apakah aplikasi cukup mudah untuk digunakan dan dipelajari? Sangat mudah, 1
Sulit, 0 Sangat sulit, 0
Biasa saja, 4 Mudah, 9
369 4.
Apakah Fitur aplikasi yang ada sudah dapat memenuhi kebutuhan? Kurang, 1
Sangat Kurang, 0 Berlebihan, 0 Sangat berlebihan, 0 Cukup, 12
5.
Apakah aplikasi dapat membantu Bapak/Ibu dalam kegiatan perekayasaan? Tidak membantu, 0 Biasa saja, 5
Sangat tidak membantu, 0 Sangat membantu, 5
Membantu, 5
6.
Apakah menurut Bapak/Ibu masalah yang selama ini terjadi dalam kegiatan kerekayasaan dapat teratasi dengan menggunakan aplikasi ini? Sangat teratasi, 1 Sangat tidak teratasi, 0 Tidak teratasi, 3
teratasi, 5 Biasa saja, 6
370 7.
Apakah aplikasi menarik untuk digunakan (dalam segi tampilan dan design) ? Sangat menarik, 1
Buruk, 0 Sangat buruk, 0
Biasa saja, 8
8.
Menarik, 5
Apakah menurut Bapak/Ibu, aplikasi ini masih ada yang perlu diubah? Sangat tidak Sangat perlu, 1 perlu, 0 Tidak perlu, 2 Biasa saja, 2 Perlu, 8
9.
Apakah Bapak/Ibu ingin dan akan menggunakan aplikasi ini saat di-release nanti? Biasa Tidak ingin, 0 Sangat tidak saja, 0 ingin, 0 Sangat ingin, 4 Ingin, 9
371
10.
Apakah menurut Bapak/Ibu aplikasi ini dapat membantu dalam mengatasi masalah kerekayasaan di deputi lain? Biasa saja, 2 Tidak dapat, 0 Sangat tidak dapat, 0 Sangat dapat, 3 Dapat, 9
Komentar lainnya: -Tampilan, pilihan warna dan jenis tulisan mungkin bisa lebih diperbaiki.
Berdasarkan kegiatan beta-testing tersebut, dapat disimpulkan bahwa: 1. Sebagian besar responden merasa cukup terbantu dengan adanya aplikasi ini. 2. Sebagian besar responden ingin dan akan menggunakan aplikasi ini jika pada akhirnya sistem ini akan diberlakukan. 3. Responden menyatakan bahwa aplikasi ini masih ada yang perlu diubah, salah satunya adalah dari segi tampilannya. 4. Dari segi fitur dan fungsionalitas, responden menyatakan cukup.