bab i pendahuluan 1.1 latar...
TRANSCRIPT
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Tingkat persaingan bisnis saat ini sangatlah ketat. Kematangan suatu
perusahaan dalam menghadapi derasnya persaingan mutlak diperlukan agar tetap
dapat mempertahankan eksistensi usahanya dalam persaingan tersebut. Untuk
mencapai kematangan tersebut, tidak hanya diperlukan strategi bisnis yang baik,
namun diperlukan sumber daya yang kuat untuk menerapkan strategi bisnis
tersebut khususnya sumber daya manusia yang berperan sebagai penggerak usaha.
Para karyawan atau staff yang bertindak sebagai sumber daya manusia
yang dimiliki perusahaan membutuhkan motivasi yang tinggi agar kinerja
maksimal dapat diperoleh, sehingga diharapkan produktivitas usaha perusahaan
dapat meningkat. Oleh karena itu, biasanya perusahaan menerapkan kebijakan-
kebijakan terhadap para karyawan yang berkaitan dengan kinerja dalam bekerja,
misalnya dengan menerapkan promosi, demosi atau peningkatan maupun
penurunan rate salary. Karyawan atau staff yang memiliki kinerja yang baik
dalam bekerja tentunya berpotensi sangat besar mendapatkan promosi atau
peningkatan rate salarynya sebagai reward atas kinerja yang ditunjukkannya.
Begitu juga sebaliknya, karyawan atau staff yang memiliki kinerja yang buruk
tentunya akan berpotensi lebih besar mendapatkan punishment berupa demosi
ataupun penurunan rate salary dari perusahaan. Hal inilah yang membuat banyak
perusahaan yang menggunakan suatu sistem penilaian kinerja atau biasa yang
2
disebut job performance appraisal untuk mengukur kinerja pekerjaan para
karyawan atau staffnya.
PT. Learning Resources merupakan perusahaan konsultan yang
menyediakan sejumlah program-program pelatihan soft skill kelas dunia. Di
tengah ketatnya persaingan usaha bisnis saat ini, PT. Learning Resources
berupaya mengembangkan layanan baik dari sisi inovasi, kualitas dan kuantitas,
yakni salah satunya dengan menghadirkan layanan baru yakni sistem job
performance appraisal yang diperuntukkan bagi para perusahaan klien yang ingin
melakukan penilaian kinerja karyawan atau staffnya.
Selama ini sistem job performance appraisal yang dimiliki oleh PT.
Learning Resources yang digunakan untuk menilai kinerja kerja para karyawan
atau staff perusahaan kliennya masih manual, yakni masih banyak menggunakan
kertas dalam proses penilaiannya, kemudian kertas-kertas penilaian tersebut akan
diserahkan pada admin, dalam hal ini pihak PT.Learning Resources, dari kertas-
kertas data penilaian tersebut, akan diolah menggunakan Microsoft Excel, dan
proses perhitungan penilaiannya dan pengurutan rangkingnya pun masih manual
dengan melihat nilai tertinggi dari hasil perhitungan. Sehingga banyak masalah-
masalah yang terkadang muncul di saat pelaksanaan atau implementasi sistem
penilaian ini. Diantaranya human error yang terkadang terjadi seperti kesalahan
penghitungan nilai, hilangnya dokumen penilaian dan juga lamanya waktu
pendistribusian soal-soal monitoring checklist atau dokumen penilaian dari dan ke
kantor pusat perusahaan klien.
3
Ada banyak metode penilaian yang dapat digunakan untuk menilai kinerja
karyawan, antara lain skala penilaian grafis, checklist, penentuan peringkat,
distribusi paksa, kejadian penting, esai, tinjauan lapangan, pendekatan penilaian
perilaku, manajemen berdasarkan tujuan (Management By Objectives - MBO).
Namun, metode penilaian yang digunakan dalam sistem job performance
appraisal milik PT. Learning Resources ada metode checklist. Penilaian yang
objektif dan kemudahan dalam menilai menjadi alasan mendasar digunakannya
metode ini. Namun, karena tidak digunakan bobot penilaian dalam metode
penilaian pada sistem ini, muncul kemungkinan masalah yang mungkin terjadi,
yakni besarnya peluang munculnya nilai yang sama antar karyawan atau staff
yang dinilai. Hal ini tentunya membuat branch manager bingung dalam
menentukan nama staff atau karyawan sebagai staff terbaik di kantor cabang
tersebut. Staff terbaik tersebut akan dikirimkan sebagai delegasi staff terbaik dari
kantor cabang tersebut yang nantinya akan dijadikan calon delegasi staff terbaik
dari seluruh kantor cabang yang mana penentuan siapakah staff terbaik dari
seluruh kantor cabang didasarkan atas nilai tertinggi dari penilaian yang sudah
dilakukan di kantor cabang.
Dengan memperhatikan potensi masalah-masalah yang bisa timbul pada
penerapan sistem job performance appraisal yang masih manual tersebut, penulis
mencoba merancang dan mengembangkan sistem job performance appraisal yang
terkomputerisasi menggunakan CI Framework. Pemilihan CI Framework sebagai
application framework bukannya tanpa alasan, hal ini didasarkan pada kenyataan
bahwa PT. Learning Resources sampai saat ini belum memiliki dedicated server
4
sendiri atau sebuah PC (personal computer) milik sendiri yang dijadikan server
untuk menjalankan sistemnya, dan masih menggunakan jasa web hosting untuk
implementasi sistem yang terkomputerisasi, sehingga sangat tepat jika pilihan
jatuh pada CI Framework sebagai framework yang memiliki kompatibilitas dan
kapabilitas sangat baik terhadap sebagian besar web hosting saat ini dibanding
application framework yang lain. Dan tentunya dalam sistem job performance
appraisal ini masih menggunakan metode penilaian yang sama, yakni metode
checklist untuk menilai kinerja staff atau karyawan, namun penerapan bobot
penilaian akan diterapkan pada sistem job performance appraisal untuk
menghindari terjadinya kemungkinan nilai yang sama antar karyawan atau staff
yang dinilai.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang dipaparkan di atas, maka penulis
merumuskan permasalahan yang saat ini dihadapi, antara lain :
1. Bagaimana mencegah human error yang terkadang terjadi seperti
kesalahan penghitungan nilai?
2. Bagaimana mencegah kemungkinan hilangnya dokumen penilaian, baik
pada waktu pendistribusian soal-soal monitoring checklist atau dokumen
penilaian dari dan ke kantor pusat, atau pada saat waktu penilaian di
kantor cabang?
3. Bagaimana meningkatkan efektivitas dan mempersingkat lamanya waktu
pendistribusian soal dari dan ke kantor pusat?
5
4. Bagaimana mengurangi pemborosan dalam penggunaan sumber daya,
semisal kertas untuk dokumen penilaian?
5. Bagaimana mengimplementasikan sistem job performance appraisal yang
terkomputerisasi oleh PT.Learning Resources yang belum memiliki
dedicated server sendiri untuk memberikan layanan sistemnya, masih
menggunakan jasa web hosting?
6. Bagaimana meminimalisir kemungkinan terjadinya nilai yang sama antar
staff sangat tinggi yang disebabkan metode checklist yang digunakan pada
sistem yang berjalan belum menggunakan bobot?
6
1.3 Batasan Masalah
Penulis membatasi masalah yang dibahas pada penelitian dalam skripsi ini,
yaitu :
1. Dalam pengembangan sistem job performance appraisal pada PT.
Learning Resources, penulis menggunakan metode pengembangan sistem
dengan model Waterfall, mulai dari tahap Analysis (Analisis), Design
(Perancangan), Code (Pengkodean), Test (Ujicoba). Sedangkan, untuk
tahap Maintenance (Pemeliharaan) tidak penulis lakukan dalam penelitian
ini.
2. Sistem ini hanya bersifat simulasi yakni menggunakan sample data atau
bukan data sebenarnya.
3. Sistem ini berbasis web.
4. Pada sistem ini pula, penulis menggunakan XAMPP 1.7.0 sebagai
development toolkit yang berisi PHP versi 5.2.8 sebagai bahasa
pemrograman, MySQL versi 5.1.30 sebagai database server, dan Apache
Server versi 2.0 sebagai web server. Notepad++ versi 4.8.1 sebagai
Integrated Development Environment (IDE) dalam pembuatan aplikasi,
Microsoft Visio 2007 sebagai tools dalam pembuatan DFD dan flowchart
Power Designer untuk merancang ERD, dan CI Framework versi 1.7.2
sebagai application framework aplikasinya, fusion chart sebagai reporting
chart, Microsoft Windows Vista Home Premium SP1 sebagai sistem
operasi untuk simulasi, dan Mozilla Firefox 3.0.18 sebagai browsernya.
7
5. Sistem job performance appraisal ini menggunakan metode checklist
sebagai metode penilaiannya dengan bobot penilaian menggunakan rumus
yang penulis buat sesuai kebutuhan.
6. Penilaian hanya dilakukan oleh supervisor terhadap staff yang ditangani,
dan untuk setiap aspek penilaian terhadap masing-masing staff dilakukan
penilaian sebanyak 10 kali.
7. Dalam sistem ini, penggunanya terdiri atas administrator, head officer,
branch manager, dan supervisor.
8. Laporan yang dapat dihasilkan oleh sistem ini meliputi laporan staff
terbaik seluruh cabang perbulan, laporan staff terbaik seluruh cabang
pertahun, laporan aspek terbaik seluruh cabang perbulan yang dapat dilihat
oleh head officer. Dan laporan untuk branch manager adalah laporan staff
terbaik kantor cabang dan laporan aspek terbaik kantor cabang.
9. Tidak ada perubahan pada seluruh aspek penilaian dalam satu periode
penilaian yakni tiap bulan.
10. Untuk pengujian sistem, penulis hanya menggunakan black box testing.
8
1.4 Tujuan
Tujuan dari penelitian tentang pengembangan sistem job performance
appraisal menggunakan metode checklist menggunakan CI Framework pada PT.
Learning Resources ini adalah sebagai berikut :
1. Membuat alat bantu berupa sistem job performance appraisal bagi PT.
Learning Resources dalam memberikan layanan pada perusahaan klien
yang ingin melakukan penilaian kinerja menggunakan metode checklist
untuk metode penilaiannya yang bersifat objektif kepada para staffnya
dengan proses yang lebih efektif dan efisien.
2. Membangun sebuah aplikasi berbasis web yang memiliki kompatibilitas
yang baik terhadap sebagian besar web hosting yang ada dengan
menggunakan CI Framework, sehingga permasalahan tentang infrastruktur
yang belum dimiliki saat ini semisal dedicated server bisa diatasi. Dan
penggunaan CI Framework diharapkan aplikasi yang dibuat menjadi lebih
terstruktur, sehingga mudah dilakukan maintenance.
1.5 Manfaat
1.5.1 Bagi Penulis
a. Penulis dapat lebih mengenal dan mendalami konsep pengembangan
aplikasi web menggunakan PHP dan application framework menggunakan
CI Framework.
b. Penulis dapat menerapkan ilmu-ilmu dan materi yang telah penulis
dapatkan di kuliah, di antaranya analisa dan perancangan sistem, rekayasa
9
perangkat lunak, web programming, sistem informasi manajemen,
metodologi penelitian, dan sistem basis data.
c. Untuk memenuhi salah satu syarat kelulusan mahasiswa Teknik
Informatika UIN Syarif Hidayatullah Jakarta.
1.5.2 Bagi Akademik
a. Mengetahui kemampuan mahasiswa dalam menguasai materi teori yang
diperoleh selama kuliah.
b. Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan
sebagai bahan evaluasi.
c. Memberikan gambaran tentang kesiapan mahasiswa dalam menghadapi
dunia kerja dan hasil yang diperoleh selama kuliah.
1.5.3 Bagi Perusahaan
a. Tersedianya sistem job performance appraisal sebagai alat bantu penilaian
kinerja para staff perusahaan klien dari PT. Learning Resources.
b. Tersedianya sistem informasi untuk mengetahui kinerja dari masing-
masing staff di kantor cabang dan staff terbaik di kantor cabang dan antar
seluruh kantor cabang.
c. Mempercepat proses pendistribusian soal-soal monitoring checklist dan
penilaian kinerja staff.
d. Membantu administrator dalam mengolah data perusahaan klien, semisal
kantor cabang berikut para staffnya dan mengelola data-data soal-soal
monitoring checklist yang digunakan dalam melakukan penilaian.
10
1.6 Metodologi Penelitian
1.6.1 Metode Pengumpulan Data
Dalam penelitian ini penulis dalam melakukan pengumpulan data,
menggunakan beberapa metode yaitu wawancara, observasi, dan studi
kepustakaan (library research).
A. Observasi
Pengumpulan data dengan observasi langsung atau dengan pengamatan
langsung adalah cara pengambilan data dengan menggunakan mata tanpa
ada pertolongan alat standar lain untuk keperluan tersebut. (Pangestu,
2009)
B. Wawancara
Mengumpulkan data dengan cara tanya jawab, sambil bertatap muka
antara si penanya atau pewawancara dengan si penjawab atau responden
dengan menggunakan alat yang dinamakan interview guide (panduan
wawancara). (Pangestu, 2009)
(Hasil Wawancara terlampir pada Lampiran A)
11
1.6.2 Metode Pengembangan Sistem
Sedangkan untuk pengembangan sistem ini penulis menggunakan metode
System Development Life Cycle (SDLC) dengan menggunakan model waterfall
yang diciptakan oleh Rasmus Lerdorf (Al-Fatta, 2007: 26), berikut tahapan-
tahapan dalam metode Waterfall menurut Pressman (2001, 29) :
1. Analisis (Analysis)
Analisis merupakan tahap awal dimana dilakukan proses pengumpulan
data, identifikasi masalah, dan analisis kebutuhan sistem hingga aktivitas
pendefinisian sistem. Tahap ini bertujuan untuk menentukan solusi yang
didapat dari aktivitas-aktivitas tersebut.
2. Perancangan (Design)
Pada tahap ini dilakukan pembuatan model dari perangkat lunak. Maksud
pembuatan model ini adalah untuk memperoleh pengertian yang lebih baik
terhadap aliran data dan kontrol, proses-proses fungsional, tingkah laku
operasi dan informasi-informasi yang terkandung di dalamnya. Terdiri dari
aktivitas utama pemodelan proses, pemodelan data dan desain antarmuka.
3. Pengkodean (Code)
Pada tahap ini hasil dari perancangan mulai diterjemahkan ke dalam
bahasa mesin melalui bahasa pemrograman. Terdiri dari dua aktivitas yaitu
pembuatan kode program dan pembuatan antarmuka program untuk
navigasi sistem.
12
4. Ujicoba (Test)
Selanjutnya program harus diuji coba dimana di fokuskan terhadap tiga
aktivitas yakni logika internal perangkat lunak, pemastian bahwa semua
perintah yang ada telah dicoba, dan fungsi eksternal untuk memastikan
bahwa dengan masukan tertentu suatu fungsi akan menghasilkan keluaran
sesuai dengan yang dikehendaki.
1.7 Sistematika Penulisan
Untuk mempermudah penulis dalam melakukan penelitian ini, maka
penulis membagi sesuai dengan ruang lingkup yang dijelaskan sebelumnya secara
garis besar, yang dibagi menjadi beberapa bab yang secara ringkas dapat
dijabarkan sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi pendahuluan yang terdiri dari latar belakang,
perumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metode penelitian, waktu dan tempat penelitian dan
sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini berisi tentang definisi dan komponen pembangun yang ada
pada Sistem Job Performance Appraisal dengan metode checklist
pada PT. Learning Resources.
13
BAB III METODE PENELITIAN
Bab ini berisi tentang uraian penjelasan metodologi yang
digunakan dalam penelitian terhadap Pengembangan Sistem Job
Performance Appraisal dengan metode checklist pada PT.
Learning Resources secara keseluruhan.
BAB IV PEMBAHASAN SISTEM
Bab ini berisi tentang uraian penjelasan terhadap Pengembangan
Sistem Sistem Job Performance Appraisal dengan metode
checklist pada PT. Learning Resources secara keseluruhan.
BAB V PENUTUP
Pada bab ini penulis menyampaikan kesimpulan dari hasil
penelitian dan studi kasus yang dilaksanakan serta saran-saran
untuk lembaga.
14
BAB II
LANDASAN TEORI
2.1 Pengertian Pengembangan
Pengembangan adalah proses, cara, pembangunan secara bertahap dan
teratur yang menjurus ke sasaran yang dikehendaki (Kamus Besar Bahasa
Indonesia, 1988 : 414). Jadi pengembangan adalah suatu proses pembangunan
secara bertahap dan teratur yang menuju kepada tujuan yang diinginkan.
2.2 Konsep Dasar Sistem Informasi
2.2.1 Definisi Sistem
Definisi sistem berkembang pesat sesuai dengan konteks di mana
pengertian sistem itu digunakan. Berikut akan diberikan beberapa definisi sistem
secara umum :
1. Sistem dapat diartikan sebagai suatu kumpulan atau himpunan dari unsur
atau variabel-variabel yang saling terorganisasi, saling berinteraksi, dan
saling bergantung satu sama lain (Al Fatta, 2007:3).
2. Sistem adalah seperangkat elemen yang digabungkan satu dengan lainnya
untuk suatu tujuan bersama (Murdick dan Ross ,1993).
3. Sistem dalam adalah elemen-elemen yang saling berhubungan dan
membentuk satu kesatuan atau organisasi (kamus kamus Webster’s
Unbriged).
15
4. Sistem adalah kumpulan elemen-elemen yang berinteraksi untuk mencapai
suatu tujuan tertentu. (Jogiyanto, 2005 ).
5. Sistem merupakan sekelompok elemen-elemen yang terintegrasi dengan
maksud yang sama untuk mencapai suatu tujuan (Mc. Leod, 1995).
Menurut Scott (1996), sistem terdiri dari unsur-unsur seperti masukan
(input), pengolahan (processing), serta keluaran (output). Ciri pokok sistem
menurut Gapspert ada empat, yaitu sistem itu beroperasi dalam suatu lingkungan,
terdiri atas unsur-unsur, ditandai dengan saling berhubungan, dan mempunyai satu
fungsi atau tujuan utama (Al Fatta, 2007:3).
Gambar 2.1 Model Sistem
Sumber daya mengalir dari elemen output dan untuk menjamin prosesnya
berjalan dengan baik maka dihubungkan dengan mekanisme control. Untuk lebih
jelasnya elemen sistem tersebut dapat digambarkan dengan model sebagai berikut:
Gambar 2.2 Model hubungan elemen-elemen sistem
16
Pada gambar 2.2 menunjukkan bahwa sistem atau pendekatan sistem
minimal harus mempunyai empat komponen, yakni masukan, pengolahan,
keluaran, dan balikan atau control.
2.2.2 Beberapa Konsep Sistem yang Penting
Untuk lebih mudah memahami pengertian sistem dan sistem informasi
lebih jauh, maka perlu diingat beberapa konsep yang penting dalam
pengembangan sistem (Al Fatta, 2007:8), yaitu :
1. Dekomposisi
Untuk lebih menganalisa dan memahami secara menyeluruh
sebuah sistem yang besar, biasanya dibutuhkan waktu yang cukup lama.
Untuk mempermudah pekerjaan ini digunakan konsep dekomposisi.
Dekomposisi adalah pembagian sistem ke dalam komponen-komponen
yang lebih kecil (subsistem). Dekomposisi memiliki beberapa keuntungan,
di antaranya :
Analis menjadi lebih mudah mengatur dan menganalisa setiap
subsistem secara lebih detail.
Pada pengembangan sistem, sistem bisa didekomposisi menjadi
beberapa modul. Pengembangan beberapa modul bisa dilakukan secara
paralel dengan syarat tidak ada ketergantungan antar modul yang
dibangun.
17
2. Modularitas
Konsep modularitas berhubungan dengan dekomposisi. Pada saat
melakukan dekomposisi, diharapkan sistem yang besar terbagi menjadi
subsistem-subsistem yang relatif sama ukurannya. Dengan modul-modul
ini maka beban kerja mengembangkan sistem bisa didistribusikan secara
merata pada sumber daya yang ada. Pengembangan sistem jadi lebih
sederhana karenah hanya terfokus pada satu modul terlebih dahulu, baru
dilakukan integrasi antar modul.
3. Coupling
Dari modul-modul yang kita peroleh, kadang-kadang ditemukan
beberapa modul yang memiliki ketergantungan dengan modul yang lain.
Pada kasus seperti ini, modul-modul yang saling bergantung harus
dipasangkan (di-couple). Dengan cara ini bisa diketahui modul yang bisa
bekerja secara independen dan modul-modul yang harus diselesaikan
terlebih dahulu sebelum modul yang lain bisa bekerja.
4. Kohesi
Dari proses coupling antar modul, kita bisa dapatkan kelompok-
kelompok modul dengan karakteristik yang hampir sama. Di sini muncul
konsep kohesi di mana kelompok modul itu harus dianalisis bersama-sama
dengan kelompok modul yang saling berkohesi.
18
2.2.3 Pengertian Sistem Informasi
Untuk memahami pengertian sistem informasi, harus dilihat keterkaitan
antara data dan informasi sebagai entitas penting pembentuk sistem informasi.
Data merupakan nilai, keadaan, atau sifat yang berdiri sendiri lepas dari konteks
apapun. Sementara informasi adalah data yang telah diolah menjadi sebuah
bentuk yang berarti bagi penerimanya dan bermanfaat dalam pengambilan
keputusan saat ini atau mendatang (Davis, 1995). Mc Leod (1995) mengatakan
bahwa informasi adalah data yang telah diproses, atau data yang memiliki arti (Al
Fatta, 2007:9).
Sistem informasi adalah suatu sistem didalam satu organisasi yang
mempertemukan kebutuhan pengolahan transaksi, mendukung operasi, bersifat
manajerial, dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar
tetentu dengan laporan-laporan yang diperlukan. (Jogiyanto, 2005). Tujuannya
adalah untuk menyajikan informasi guna pengambilan keputusan pada
perencanaan, pemrakarsaan, pengorganisasian, pengendalian kegiatan operasi
subsistem suatu perusahaan, dan menyajikan sinergi organisasi pada proses
(Murdick dan Ross, 1993). Dengan demikian, sistem informasi berdasarkan
konsep (input, processing, output – IPO) dapat dilihat pada gambar berikut :
Gambar 2.3 Konsep sistem informasi
19
2.2.4 Komponen Sistem Informasi
Stair (1992) menjelaskan bahwa sistem informasi berbasis komputer
(CBIS) dalam suatu organisasi terdiri dari beberapa komponen (Al Fatta,
2007:10), antara lain :
a. Perangkat keras, yaitu perangkat keras komponen untuk melengkapi
kegiatan memasukkan data, memproses data, dan keluaran data.
b. Perangkat lunak, yaitu program dan instruksi yang diberikan ke komputer.
c. Database, yaitu kumpulan data dan informasi yang diorganisasikan
sedemikian rupa sehingga mudah diakses pengguna sistem informasi.
d. Telekomunikasi, yaitu komunikasi yang menghubungkan antara pengguna
sistem dengan sistem komputer secara bersama-sama ke dalam suatu
jaringan kerja yang efektif.
e. Manusia, yaitu personel dari sistem informasi, meliputi manajer, analis,
programmer, dan operator, serta yang bertanggung jawab terhadap
perawatan sistem.
f. Prosedur, yakni tata cara yang meliputi strategi, kebijakan, metode, dan
peraturan-peraturan dalam menggunakan sistem informasi berbasis
komputer.
2.2.5 Tipe-Tipe Sistem Informasi
CBIS biasanya dibedakan menjadi beberapa tipe aplikasi (Al Fatta,
2007:12), yaitu :
a. Transaction Processing System (TPS)
20
b. Management Information System (MIS)
c. Decision Support System (DSS)
d. Expert System and Artificial Intelegence (ES & AI)
Berikut penjelasan singkat tentang perbedaan masing-masing tipe aplikasi
sistem informasi tersebut (Al Fatta, 2007:12-13):
• Transaction Processing System
Transaction Processing System atau Sistem Pemrosesan Transaksi adalah
sistem informasi terkomputerisasi yang dikembangkan untuk memproses
sejumlah besar data untuk transaksi bisnis rutin. Adapun hal-hal yang bisa
dilakukan dalam sistem ini meliputi :
- Mengotomasi penanganan data-data aktifitas bisnis dan transaksi
yang bisa dianggap sebagai kejadian diskrit dalam kehidupan
organisasi.
- Menangkap data dari setiap transaksi.
- Memverifikasi transaksi untuk diterima atau ditolak.
- Menyimpan transaksi yang telah divalidasi untuk pengumpulan data
berikutnya.
- Menghasilkan laporan untuk menyediakan rangkuman dari setiap
transaksi.
- Memungkinkan memindah transaksi dari satu proses ke proses yang
lainnya untuk menangani seluruh aspek bisnis.
21
• Management Information System
Management Information System (MIS) atau Sistem Informasi Manajemen
adalah suatu sistem informasi pada level manajemen yang berfungsi untuk
membantu perencanaan, pengendalian, dan pengambilan keputusan
dengan menyediakan resume rutin dan laporan-laporan tertentu. SIM
mengambil data mentah dari TPS dan mengubahnya menjadi sekumpulan
data yang lebih berarti yang dibutuhkan manajer untuk menjalankan
tanggung jawabnya. Untuk mengembangkan suatu SIM, diperlukan
pemahaman yang baik tentang informasi apa saja yang dibutuhkan
manajer dan bagaimana mereka menggunakan informasi tersebut.
• Decision Support System
Decision Support System (DSS) atau Sistem Pendukung Keputusan
merupakan sistem informasi pada level manajemen dari suatu organisasi
yang mengkombinasikan data dan model analisis atau peralatan data
analisis untuk mendukung pengambilan yang semi terstruktur dan tidak.
DSS dirancang untuk membantu pengambilan keputusan organisasional.
DSS biasanya tersusun dari :
- Database (bisa diekstraksi dari TPS/MIS)
- Model grafis atau matematis, yang digunakan untuk proses bisnis.
- Antarmuka pengguna, yang digunakan oleh pengguna untuk
berkomunikasi dengan DSS.
22
• Expert System
Expert System (ES) atau Sistem Pakar merupakan representasi
pengetahuan yang menggambarkan cara seorang ahli dalam mendeteksi
suatu masalah. ES lebih berpusat pada bagaimana mengkodekan dan
memanipulasi pengetahuan dari informasi (misalnya aturan if...then).
Adapun cara kerja ES sebagai berikut :
a. Pengguna berkomunikasi dengan sistem menggunakan dialog
interaktif.
b. ES menanyakan pertanyaan (yang ditanyakan seorang pakar) dan
pengguna memberikan jawaban.
c. Jawaban digunakan untuk menentukan aturan mana yang dipakai dan
ES sistem menyediakan rekomendasi berdasarkan aturan yang telah
disimpan.
d. Seorang knowledge engineer bertanggung jawab pada bagaimana
melakukan akuisisi pengetahuan, sama seperti seorang analis tetapi
dilatih untuk menggunakan teknik yang berbeda.
23
2.3 Job Performance Appraisal
2.3.1 Pengertian Job Performance Appraisal
Kinerja (performance) pada dasarnya adalah apa yang dilakukan atau tidak
dilakukan oleh karyawan.
Kinerja karyawan yang umum untuk kebanyakan pekerjaan meliputi
elemen sebagai berikut (Mathis & Jackson, 2009:378) :
• Kuantitas dari hasil
• Kualitas dari hasil
• Ketepatan waktu dari hasil
• Kehadiran
• Kemampuan bekerja sama
Penilaian kinerja pekerjaan (job performance appraisal) atau yang biasa
disebut penilaian prestasi kerja ialah proses mengevaluasi seberapa baik karyawan
melakukan pekerjaan mereka jika dibandingkan dengan seperangkat standar, dan
kemudian mengomunikasikan informasi tersebut kepada karyawan (Mathis &
Jackson, 2009:382). Penilaian kinerja pekerjaan juga disebut pemeringkatan
karyawan, evaluasi karyawan, tinjauan kinerja, evaluasi kinerja, dan penilaian
hasil .
Penilaian kinerja dapat menjawab pertanyaan mengenai apakah pemberi
kerja telah bertindak adil atau bagaimana pemberi kerja mengetahui bahwa kinerja
karyawan tersebut tidak memenuhi standar. Meskipun pemberi kerja secara teknis
mungkin tidak membutuhkan alasan untuk memecat seorang karyawan, tetapi
24
secara praktis, penilaian dapat memberikan pembenaran untuk tindakan sejenis
jika dibutuhkan.
Gambar 2.4 Peran Penilaian Kinerja
Sistem penilaian kinerja sering kali menjadi penghubung antara
penghargaan yang diinginkan karyawan dan produktivitas mereka. Hubungan
tersebut dapat diperkirakan sebagai berikut :
Produktivitas -> Penilaian kinerja -> Penghargaan
Kompensasi yang berbasis kinerja menegaskan ide bahwa kenaikan gaji
seharusnya diberikan untuk pencapaian kinerja daripada untuk senioritas. Dalam
sistem ini, manajer secara historis telah menjadi pengevaluasi dari kinerja
bawahan dan juga yang membuat rekomendasi kompensasi untuk karyawan. Jika
ada bagian dari proses penilaian yang gagal, para karyawan yang berkinerja baik
tidak menerima kenaikan gaji yang lebih besar, yang akan menyebabkan adanya
ketidakadilan dalam kompensasi yang dirasakan karyawan.
25
Penilaian kinerja dapat dilakukan oleh siapapun yang mengetahui dengan
baik kinerja dari karyawan secara individual. Kemungkinannya adalah sebagai
berikut :
• Para supervisor yang menilai karyawan / staff mereka
• Para karyawan yang menilai atasan mereka
• Anggota tim yang menilai sesamanya
• Sumber-sumber dari luar
• Karyawan yang menilai diri sendiri
• Penilaian dan multisumber (umpan balik 360)
Gambar 2.5 Logika dan Proses Penilaian Kinerja
26
Penilaian karyawan / staff oleh supervisor atau manajer mereka adalah
metode yang paling umum. Atasan langsung mempunyai tanggung jawab utama
untuk mengadakan penilaian dalam kebanyakan organisasi, meskipun atasan
supervisor tersebut akan meninjau dan menyetujui penilaian tersebut. Semakin
banyaknya penggunaan tim dan adanya perhatian pada masukan pelanggan
memberi kontribusi pada dua sumber informasi penilaian yang tumbuh dengan
cepat : anggota tim dan sumber di luar organisasi. Penilaian dan multisumber (
atau umpan balik 360) mengkombinasikan banyak metode dan akhir-akhir in
penggunaannya meningkat.
Penilaian secara tradisional atas karyawan oleh supervisor didasarkan pada
asumsi bahwa supervisor langsung adalah orang yang paling memenuhi syarat
untuk mengevaluasi kinerja karyawan secara realistis dan adil. Untuk mencapai
tujuan ini, beberapa supervisor menyimpan catatan kinerja mengenai pencapaian
karyawan mereka. Catatan ini menyediakan contoh spesifik untuk digunakan
ketika menilai kinerja.
27
2.3.2 Metode-Metode Penilaian
Gambar 2.6 Berbagai Metode Penilaian Kinerja
Kinerja dapat dinilai dengan sejumlah metode, berbagai metode tersebut
dikategorikan ke dalam empat kelompok (Mathis & Jackson, 2009:394), yaitu :
1 Metode Penilaian Kategori
Metode yang paling sederhana untuk menilai kinerja adalah metode
penilaian kategori, yang membutuhkan seorang manajer untuk menandai
tingkat kinerja karyawan atau staffnya pada formulir khusus yang dibagi
ke dalam kategori kinerja. Metode penilaian kategori yang paling umum
yakni :
1.1 Skala penilaian grafis
1.2 Checklist
2 Metode Penilaian Komparatif
28
Metode komparatif memerlukan para manajer untuk membandingkan
secara langsung kinerja karyawan mereka terhadap satu sama lain. Sebagai
contoh, kinerja seorang operator pemasukan data (data entry) akan
dibandingkan dengan kinerja dari operator pemasukan data (data entry)
yang lain oleh supervisor. Metode yang digunakan terdiri dari :
2.1 Penentuan peringkat
2.2 Distribusi paksa
3 Metode Naratif
Para manajer dan spesialis SDM sering kali diharuskan untuk memberikan
informasi penilaian tertulis. Dokumentasi dan deskripsi adalah inti dari
metode kejadian penting, esai, dan tinjauan lapangan. Metode-metode ini
menguraikan tindakan karyawan atau staff dan juga dapat
mengindikasikan penilaian aktual. Metode yang digunakan terdiri dari :
3.1 Kejadian penting
3.2 Esai
3.3 Tinjauan lapangan
4 Metode Perilaku/Tujuan
Metode ini lebih berusaha untuk menilai perilaku karyawan dibandingkan
karakteristik yang lainnya. Beberapa dari pendekatan perilaku yang
berbeda adalah skala penilaian perilaku yang diharapkan (behaviorally
anchored rating scales – BARS), skala observasi perilaku (behavioral
observation scales – BOS), dan skala perilaku yang diharapkan
(behavioral expectation scales – BES). BARS membandingkan apa yang
29
dilakukan karyawan terhadap kemungkinan perilaku yang ditunjukkan
pada suatu pekerjaan. BOS menghitung jumlah berapa kali perilaku
tertentu diperlihatkan. BES mengurutkan perilaku pada rangkaian kesatuan
untuk mendefinisikan kinerja yang menonjol, rata-rata, dan tidak dapat
diterima.
Pendekatan penilaian perilaku menguraikan contoh dari perilaku karyawan
pada pekerjaan. Dengan menjelaskan secara terperinci setiap tingkatan
kinerja akan membantu meminimalkan masalah yang terlihat sejak awal
untuk pendekatan yang lain. Metode yang digunakan terdiri dari :
4.1 Pendekatan penilaian perilaku
4.2 Manajemen berdasarkan tujuan (Management By Objectives - MBO)
2.4 Metode Checklist
Metode checklist atau biasa disebut metode daftar periksa adalah alat
penilaian kinerja yang menggunakan daftar pernyataan atau kata-kata (Mathis &
Jackson, 2009:396). Penilai memberi tanda pernyataan yang paling representatif
dari karakteristik dan kinerja karyawan. Berikut ini adalah pernyataan-pernyataan
checklist yang umum:
• Dapat diharapkan untuk menyelesaikan pekerjaan tepat waktu
• Jarang bersedia untuk lembur
• Kooperatif dan penolong
• Bersedia menerima kritik
• Berusaha untuk mengembangkan diri
30
Checklist dapat dimodifikasi sehingga beragam bobot dapat diterapkan
pada pernyataan atau kata-kata tersebut. Hasilnya kemudian dijumlahkan.
Umumnya, supervisor yang memberi nilai tidak mengetahui bobot dari setiap
pernyataan satu per-satu karena bobot-bobot tersebut ditabulasikan oleh orang
lain, misalnya salah seorang staf SDM.
Tetapi, ada beberapa kesulitan yang muncul dengan adanya checklist : (1)
Seperti pada skala penilaian grafis, kata-kata atau pernyataan-pernyataannya
mempunyai arti yang berbeda bagi penilai yang berbeda. (2) Penilai tidak dapat
secara langsung melihat hasil penilaian jika menggunakan sebuah checklist yang
diberi bobot. (3) Para penilai tidak menyesuaikan bobot-bobot tersebut pada
faktor-faktor. Kesulitan ini membatasi penggunaan informasi ketika seorang
penilai mendiskusikan hasil checklist dengan seorang karyawan, di mana akan
menciptakan rintangan yang lebih besar menuju bimbingan pengembangan yang
efektif.
Metode checklist adalah metode Penilaian Prestasi Kerja dengan cara
memberi tanda checklist (V) pada uraian perilaku negatif atau positif
pegawai/karyawan yang namanya tertera dalam daftar. Masing-msing perilaku
tersebut diberi bobot nilai. Besarnya bobot nilai tergantung dari tingkat
kepentingan perilaku tersebut terhadap suksesnya suatu pekerjaan.
Keuntungan dari metode ini mudah untuk digunakan dan dapat
menghindari kecenderungan pemberian nilai rata-rata atau pemberian nilai karena
kemurahan hati. Namun karena keharusan adanya relevansi antara item perilaku
yang terdaftar dalam penilaian prestasi dengan pekerjaan yang dilaksanakan,
31
maka dibutuhkan keahlian khusus untuk membangun sejumlah item perilaku yang
berbeda untuk jenis pekerjaan dan tingkatan yang berbeda. Oleh karena itu
dibutuhkan bantuan tenaga profesional yang andal di bidang ini. Ketidakandalan
dalam membuat item perilaku dan kesesuaian bobot nilai masing-masing item
dapat mengakibatkan ketidaksesuaian di dalam pemberian ukuran-ukuran item.
Akibatnya para supervisor kesulitan di dalam mengiterprestasikan hasilnya.
Metode penilaian checklist biasanya penilai adalah atasan langsung, dan
pada metode ini menggunakan kalimat-kalimat atau kata-kata yang
menggambarkan prestasi kerja dan karakter-karakter karyawan, sehingga penilai
tinggal memilihnya. Pada checklist ini, terdapat item-item yang masing-masing
diberi bobot, dan pemberian bobot ini memungkinkan penilai dapat
dikwantifikasikan sehingga skor total dapat ditentukan. Metode checklist dapat
memberikan suatu gambaran prestasi kerja secara akurat, dan praktis serta
terstandardisasi.
PERUSAHAAN PT TERUS MAJU Instruksi : Periksa setiap item berikut dan terapkan pada karyawan yang namanya tertera di bawah ini : Nama Karyawan : …………………………………… Bagian : ………………………………
Nama Penilai : …………………………………… Tanggal : ………………………………
Bobot Aspek yang dinilai Cek di sini
(6,5) (4,0) (3,9) (…)
1. Karyawan tidak datang terlambat 2. Karyawan menggunakan atribut seragam lengkap 3. Karyawan tidak merokok ……………………………………………………………..
V
V
Gambar 2.7 Contoh Dokumen Penilaian Checklist
32
2.5 Pengertian Pengembangan Sistem Job Performance Appraisal dengan
Metode Checklist
Sesuai dengan landasan teori tentang arti pengembangan, sistem, job
performance appraisal, dan metode checklist, dapat disimpulkan Pengembangan
Sistem Job Performance Appraisal dengan metode checklist berarti proses
pembangunan secara bertahap suatu sistem proses mengevaluasi seberapa baik
karyawan melakukan pekerjaan mereka jika dibandingkan dengan seperangkat
standar menggunakan metode checklist yang mana penilai memberi tanda
pernyataan yang paling representatif dari karakteristik dan kinerja karyawan
dengan alat penilaian kinerja yang menggunakan daftar pernyataan atau kata-kata
yang mana masing-masing pernyataan tersebut diberi bobot nilai dan besarnya
bobot nilai tergantung dari tingkat kepentingan perilaku tersebut terhadap
suksesnya suatu pekerjaan.
2.6 Konsep Pengembangan Sistem
Pengembangan sistem (system development) dapat berarti menyusun suatu
sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau
memperbaiki sistem yang telah ada (Jogiyanto, 2005 : 35).
2.7 Metodologi Pengembangan
Metodologi adalah suatu kumpulan atau metode sistem, dasar aturan untuk
mengatur ketertiban dalam pengembangan sistem informasi atau manajemen
sistem informasi (Brown, 2002 : 35).
33
Metodologi adalah sebuah pendekatan yang dibuat dalam melaksanakan
penelitian, dimana di dalamnya terdapat rangkaian langkah-langkah dalam
melakukan penelitian dan hasilnya (Fitrianah, 2005 : 2).
Metodologi pengembangan sistem menyediakan pedoman yang mengikuti
secara lengkap setiap aktivitas di siklus hidup pengembangan sistem. Siklus hidup
pengembangan sistem adalah suatu proses secara keseluruhan yang terdiri dari
proses pembangunan, penyebaran, penggunaan, dan perubahan pada sistem
informasi (Satzinger, 2009 : 38). Dalam siklus hidup pengembangan sistem
(SDLC) terdiri dari pendekatan ramalan (predictive approach) dan pendekatan
penyesuaian (adaptive approach) (Satzinger, 2009 : 39). Berikut ini merupakan
penjelasan dari pendekatan SDLC :
a) Pendekatan ramalan adalah pendekatan siklus hidup pengembangan sistem
yang menganggap pengambangan projek dapat direncanakan dan
diorganisir dalam tingkat yang lebih tinggi dan sistem informasi baru
dapat dikembangkan ke dalam rencana. Dalam pendekatan metodologi ini
terdiri dari model waterfall.
b) Pendekatan penyesuaian adalah pendekatan siklus hidup pengambangan
sistem yang sangat fleksibel yang menganggap bahwa project tidak bisa
direncanakan secara lengkap tetapi harus dimodifikasi dalam
pengembangannya. Dalam pendekatan SDLC jenis ini terdiri dari model
spiral, prototype, dan iterasi.
34
Gambar 2.8 Perbedaan dari pendekatan siklus hidup pengembangan sistem
Metodologi pengembangan sistem atau aplikasi terdiri dari model,
perangkat, dan teknik yang khusus. Berikut ini merupakan gambar komponen
yang berhubungan dalam metodologi.
Gambar 2.9 Arsitektur metodologi
Model merupakan representasi aspek yang paling penting digambarkan
dalam dunia nyata. Dalam hal ini aplikasi dianggap sebagai model yang nyata
dalam mengembangkannya dalam rincian rancang bangun informasi yang
dibutuhkan untuk mengembangkan suatu aplikasi. Model digunakan dalam
35
pengembangan sistem terdiri dari input, output, proses, data, objek, interaksi
objek, lokasi, jaringan, dan alat. Kebanyakan model digambar dengan
menggunakan diagram dan grafik. Contoh model yang digunakan pada
pengembangan sistem seperti flowchart, Data Flow Diagram (DFD), UML
diagram (Satzinger, 2009 : 50).
Perangkat merupakan pendukung perangkat lunak yang membantu dalam
membuat model yang dibutuhkan dalam aplikasi. Perangkat secara sederhana
menerjemahkan model ke dalam program. Contoh perangkat yang digunakan
dalam pengembangan sistem yaitu IDE (Integrated Development Environment)
seperti Eclipse dalam pengembangan aplikasi ini dan perangkat pemodelan visual
(Satzinger, 2009 : 51).
Teknik merupakan kumpulan pedoman yang membantu dalam analisis
yang lengkap dari aktivitas pengembangan sistem. Teknik terdiri dari langkah-
langkah perintah untuk membuat sebuah model. Beberapa contoh teknik seperti
teknik wawancara dengan pengguna, teknik pemodelan data (Satzinger, 2009: 51).
Dalam sebuah perencanaan perangkat lunak diperlukan model-model
proses atau paradigma rekayasa perangkat lunak berdasarkan sifat aplikasi dan
proyeknya, metode dan alat bantu yang dipakai, dan kontrol serta penyampaian
yang dibutuhkan. Ada beberapa model dari proses perangkat lunak, yaitu: Model
Sekuensial Linear(Waterfall), Prototipe, RAD (Rapid Application Development),
Evolusioner, Formal (Pressman, 2002: 27). Beberapa metode dan perbedaannya
dapat dilihat pada tabel.
Tabel 2.1 Perbandingan antar metode pengembangan sistem
36
Metode Kelebihan Kekurangan Penggunaan
Secara Umum
Sequential Linier
(Waterfall) oleh
winston W Royce
pada tahun 1970
Metode ini baik
digunakan untuk
kebutuhan yang
sudah diketahui
dengan baik.
Iterasi yang sering
terjadi
menyebabkan
masalah baru bagi
pelanggan, sulit
menentukan
kebutuhan secara
eksplisit.
Bekerja dengan
baik pada proyek
skala kecil.
Prototype Metode ini efektif
dengan
mendapatkan
kebutuhan dan
aturan yang jelas
dan pelanggan
bisa langsung
melihat sistem
yang sebenarnya.
Pengembangan
terkadang
membuat
implementasi
sembarang, karena
ingin working
version selesai
dengan cepat
Prototyping dapat
bekerja dengan
baik jika ada
kerjsama yang
baik antara
pengembang
dengan pengguna.
RAD Metode ini lebih
cepat dari
waterfall jika
kebutuhan dan
batasan proyek
sudah diketahui
dengan baik dan
bisa untuk
dimodularisasi.
Karena proyek
dipecah menjadi
beberapa bagian,
maka dibutuhkan
banyak orang
untuk membentuk
suatu tim, karena
komponen-
komponen yang
sudah ada,
fasilitas-fasilitas
Cocok untuk
aplikasi ang tidak
mempunyai resiko
teknis yang tinggi.
RAD cocok untuk
proyek yang
memiliki SDM
yang baik dan
sudah
berpengalaman.
37
pada tiap
komponen belum
tentu digunakan
seluruhnya
sehingga kualitas
program bisa
menurun.
Incremental Fleksibel dan
mudah untuk
dikelola dan
pengujian yang
mudah.
Semua kebutuhan
tidak dikumpulkan
pada tahap awal
sehingga
menimbulkan
masalah serta sulit
untuk mengukur
progress karena
tidak ada
milestone.
Cocok untuk
aplikasi yang
kebutuhannya
telah diidentifikasi
dengan baik.
Iterative Fase desain,
pengkodean,
pengujian lebih
cepat.
Butuh waktu yang
banyak untuk
menganalisis dan
terlalu banyak
langkah yang
dibutuhkan model.
Hanya cocok
untuk software
berskala besar.
Spiral Model ini
digunakan untuk
skala besar,
membutuhkan
konsiderasi
langsung terhadap
resiko teknis,
Resiko utama
tidak ditemukan,
maka masalah bisa
muncul kemudian,
sehingga
membutuhkan
kemampuan
Hanya cocok
untuk software
berskala besar.
38
sehingga dapat
mengurangi
terjadinya resiko
yang lebih besar.
manajemen dan
perkiraan resiko
yang cukup tinggi.
Dalam penelitian ini, penulis menggunakan model Waterfall untuk
mengembangkan sistemnya. Di dalam bukunya, Pressman (2001 : 78)
menjelaskan model ini bisa juga disebut dengan linear sequential model,
menggunakan pendekatan sistematis dan sekuensial dalam pengembangan
aplikasi, dimulai melalui proses analisis, desain, pengkodean dan ujicoba.
Gambar 2.10 Model Waterfall
Model waterfall tersusun atas aktivitas- akivitas berikut ini :
1. Analysis (Analisis)
Hal pertama yang harus dilakukan dalam tahap analisis adalah komunikasi
dengan berbagai pihak yang terkait mulai dari mengidentifikasi dan
mendefinisikan permasalahan, menentukan keperluan untuk semua elemen
dan aplikasi.
39
Pengetahuan ini terasa perlu ketika aplikasi harus berinteraksi dengan
elemen-elemen yang lain seperti perangkat keras, manusia dan basis data.
2. Design (Perancangan)
Perancangan menentukan bagaimana suatu aplikasi menyelesaikan apa
yang harus diselesaikan. Pada tahap ini dilakukan pembuatan model dari
aplikasi. Maksud pembuatan model ini adalah untuk memperoleh
pengertian yang lebih baik terhadap aliran data dan kontrol, proses-proses
fungsional, tingkah laku operasi dan informasi-informasi yang terkandung
di dalamnya.
Perancangan dilakukan mulai dari tingkat global sampai ke tingkat rincian
tertentu. Pada tahap ini dilakukan beberapa aktivitas, seperti pemodelan
proses serta pemodelan data.
3. Code (Pengkodean)
Code atau pengkodean adalah tahap dimana aplikasi yang telah dianalisis
dan dirancang mulai diterjemahkan ke dalam bahasa mesin melalui bahasa
pemrograman. Jika rancangan dibuat secara detil maka pengkodean akan
menjadi aktivitas yang cepat. Pada tahap ini lakukan pengkodean program
dan juga antarmuka program.
4. Test (Ujicoba)
Ketika pengkodean telah selesai dilakukan selanjutnya aplikasi harus diuji
coba. Proses uji coba di fokuskan terhadap tiga aktivitas yakni logika
internal aplikasi, pemastian bahwa semua perintah yang ada telah dicoba,
40
dan fungsi eksternal, untuk memastikan bahwa dengan masukan tertentu
suatu fungsi akan menghasilkan keluaran sesuai dengan yang dikehendaki.
2.8 Alat Bantu Pemodelan Sistem
2.8.1 Flowchart
Pengertian Flowchart
Flowchart adalah penyajian yang sistematis tentang proses dan logika dari
kegiatan penanganan informasi atau penggambaran secara grafik dari langkah-
langkah dan urut-urutan prosedur dari suatu program (Anharku, 2009). Bagan alir
(flowchart) juga merupakan bagan (chart) yang menunjukkan alir (flow) di dalam
program atau prosedur sistem secara logika (Jogiyanto, 2005). Flowchart
menolong analis dan programmer untuk memecahkan masalah kedalam segmen-
segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif
lain dalam pengoperasian.
Pengertian System Flowchart
System flowchart adalah urutan proses dalam system dengan menunjukkan
alat media input, output serta jenis media penyimpanan dalam proses pengolahan
data. (Anharku, 2009)
Pengertian Program Flowchart
Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang
menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses
(instruksi) dengan proses lainnya dalam suatu program. (Anharku, 2009)
41
Pedoman-Pedoman Dalam Membuat Flowchart
Jika seorang analis dan programmer akan membuat flowchart, ada
beberapa petunjuk yang harus diperhatikan (Anharku, 2009), seperti :
1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan
definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan
deskripsi kata kerja, misalkan Melakukan penggandaan diri.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri
dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang
sedang digambarkan tidak perlu digambarkan pada flowchart yang sama.
Simbol konektor harus digunakan dan percabangannya diletakan pada
halaman yang terpisah atau hilangkan seluruhnya bila percabangannya
tidak berkaitan dengan sistem.
7. Gunakan simbol-simbol flowchart yang standar.
42
Tabel 2.2 Simbol-simbol flowchart
Contoh: Buatlah algoritma untuk menghitung sisa bagi antara bilangan dengan 2,
apakah sisa ataukah tidak sisa,jika sisa maka maka cetak genap jika tidak sisa
maka cetak ganjil. Gambar Flowchartnya:
Gambar 2.11 Contoh Flowchart
43
2.8.2 DFD
Data Flow Diagram (DFD) adalah pemodelan proses yang digunakan
untuk menggambarkan alur dari data yang melewati suatu sistem dan menjalankan
atau melakukan pengolahan melalui sistem tersebut (Whitten, 2004). DFD
merupakan cara formal untuk menggambarkan bagaimana bisnis beroperasi,
mengilustrasikan aktivitas-aktivitas yang dilakukan dan bagaimana data berpindah
di antara aktivitas-aktivitas itu (Al Fatta, 2007:105). Ada banyak cara untuk
merepresentasikan proses model. Cara yang popular adalah dengan menggunakan
data flow diagram (DFD). Ada dua jenis DFD, yaitu DFD Logis dan DFD Fisik.
DFD Logis menggambarkan proses tanap menyarankan bagaimana mereka akan
dilakukan, sedangkan DFD fisik menggambarkan proses model berikut
implementasi pemrosesan informasinya.
Untuk membaca suatu DFD kita harus memahami dulu, elemen-elemen
yang menyusun suatu DFD. Ada empat elemen yang menyusun suatu DFD (Al
Fatta, 2007:106-107), yaitu:
1. Proses
Aktivitas atau fungsi yang dilakukan untuk alas an bisnis yang spesifik,
biasa berupa manual maupun terkomputerisasi.
2. Data Flow
Satu data tunggal atau kumpulan logis suatu data, selalu diawali atau
berakhir pada suatu proses.
44
3. Data Store
Kumpulan data yang disimpan dengan cara tertentu. Data yang mengalir
disimpan dalam data store. Aliran data di-update atau ditambahkan ke data
store.
4. External Entity
Orang, organisasi, atau sistem yang berada di luar sistem tetapi
berinteraksi dengan sistem.
Masing-masing elemen akan diberi lambang tertentu untuk membedakan
satu dengan yang lain. Ada beberapa metode untuk menggambarkan
elemen-elemen tersebut. Untuk lebih jelasnya dapat dilihat pada gambar
berikut :
Tabel 2.3 Elemen-elemen DFD
45
Proses bisnis biasanya terlalu kompleks untuk ditujukan dalam satu DFD.
Dekomposisi adalah proses untuk menggambarkan sistem dalam hierarki
dari diagram DFD. Diagram anak menggambarkan proses yang lebih
detail dibandingkan dengan diagram induk. Harus ada proses balancing
untuk menjamin informasi yang disajikan dalam satu level dari suatu DFD
secara akurat direpresentasikan pada DFD level berikutnya.
a) Context Diagram : DFD pertama dalam proses bisnis.
Menunjukkan konteks di mana proses bisnis berada. Menunjukkan
semua proses bisnis dalam 1 proses tunggal (proses 0). Context
diagram juga menunjukkan semua entitas luar yang menerima
informasi dari atau memberikan informasi ke sistem.
b) Level 0 Diagram : menunjukkan semua proses utama yang
menyusun keseluruhan sistem. Level ini juga menunjukkan
komponen internal dari proses 0 dan menunjukkan bagaimana
proses-proses utama direlasikan menggunakan data flow. Pada
level ini juga ditunjukkan bagaimana proses-proses utama
terhubung dengan entitas eksternal. Pada level ini juga dilakukan
penambahan data store.
c) Level 1 Diagram : umumnya diagram level 1 diciptakan dari setiap
proses utama dari level 0. Level ini menunjukkan proses-proses
internal yang menyusun setiap proses-proses utama dalam level 0,
sekaligus menunjukkan bagaiman informasi berpindah dari satu
proses ke proses yang lainnya. Jika misalnya proses induk dipecah,
46
katakanlah menjadi 3 proses anak, maka 3 proses anak ini secara
utuh menyusun proses induk.
d) Level 2 Diagram : menunjukkan semua proses yang menyusun
sebuah proses pada level 1. Bisa saja penyusunan DFD tidak
mencapai level 2 ini. Atau mungkin harus dilanjutkan ke level
berikutnya (level 3, level 4, dan seterusnya).
Gambar 2.12 Hierarki DFD
47
2.8.3 ERD
Entity Relationship Diagram (ERD) adalah gambar atau diagram yang
menunjukkan informasi dibuat, disimpan, dan digunakan dalam sistem bisnis (Al
Fatta, 2007:121). Diagram hubungan entitas atau yang lebih dikenal dengan
sebutan E-R diagram (ERD), merupakan notasi grafik dari sebuah model data atau
sebuah model jaringan yang menjelaskan tentang data yang tersimpan (storage
data) dalam sistem secara abstrak. Diagram hubungan entitas tidak menyatakan
bagaimana memanfaatkan data, membuat data, mengubah data dan menghapus
data. (Ladjamudin, 2005).
Entitas biasanya menggambarkan jenis informasi yang sama. Dalam
entitas digunakan untuk menghubungkan antar entitas yang sekaligus
menunjukkan hubungan antar data. Pada akhirnya ERD bisa juga digunakan untuk
menunjukkan aturan-aturan bisnis yang ada pada sistem informasi yang akan
dibangun. Bagaimana menggunakan ERD untuk menunjukkan aturan bisnis? Ada
beberapa poin yang bisa dilihat untuk menjawab pertanyaan ini :
• Aturan bisnis adalah batasan yang harus diikuti ketika sistem beroperasi.
• Simbol ERD hanya menunjukkan satu instance dari entitas harus ada
sebelum instance lain dari suatu entitas. Sebagai contoh : seorang dokter
harus ada sebelum perjanjian ketemu dengan dokter dibuat.
• Simbol ERD dapat menunjukkan ketika salah satu instance dari suatu
entitas dapat direlasikan dengan satu anggota atau lebih dari entitas
lainnya. Sebagai contoh, satu dokter bisa memiliki banyak pasien, satu
pasien bisa jadi hanya memiliki satu dokter utama.
48
• Simbol ERD juga menunjukkan ketika eksistensi dari suatu instance dalam
suatu entity adalah opsional untuk sebuah relasi dengan instance lain dari
suatu entitas. Sebagai contoh, pasien mungkin memiliki atau mungkin
tidak memiliki biaya asuaransi.
Elemen-elemen ERD
Seperti halnya DFD, ERD juga menggunakan simbol-simbol khusus untuk
menggambarkan elemen-elemen ERD. Berikut simbol-simbol yang digunakan
dalam ERD :
Tabel 2.4 Elemen-elemen ERD
Keterangan :
Entitas
Entitas bisa berupa orang, kejadian, atau benda di mana data akan
dikumpulkan. Untuk menjadi sebuah entitas, suatu obyek harus menampilkan
beberapa kali event. Sebagai contoh, jika suatu firma hanya memiliki 1 gudang,
maka gudang tersebut bukan entitas. Tetapi jika perusahaan memiliki banyak
49
gudang, maka gudang bisa menjadi instance suatu entitas jika perusahaan ingin
menyimpan data untuk setiap anggota dari gudang.
Atribut
a. Informasi yang diambil tentang sebuah entitas.
b. Hanya yang digunakan oleh organisasi yang dimasukkan dalam model.
c. Nama atribut harus merupakan kata benda.
d. Kadang nama entitas diletakkan di depan nama atribut untuk ketelitian.
Identifier
a. Satu atau lebih atribut dapat menjadi identifier entitas, yang secara unik
mengidentifikasi setiap anggota dari entitas.
b. Concatenated identifier (identifier gabungan) terdiri dari beberapa atribut.
c. Identifier bisa saja artifisial, seperti dengan membuat nomor ID.
d. Identifier tidak akan dikembangkan sampai fase desain.
Relationships
a. Hubungan antar entitas.
b. Entitas pertama dalam relationship disebut entitas induk, entitas kedua
disebut sebagai entitas anak.
c. Relationship harus memiliki nama yang berupa kata kerja.
d. Relationship berjalan 2 arah.
Sebagai contoh, jika dimiliki dua entitas, yaitu buku dan toko buku, maka
bisa dibuat beberapa relationship, di antaranya :
a. Toko buku memesan buku.
b. Toko buku menampilkan buku.
50
c. Toko buku menstock buku.
d. Toko buku menjual buku.
e. Toko buku mengembalikan buku.
Relationship memesan, menampilkan, menstok, menjual dan
mengembalikan mendefinisikan hubungan yang relevan antara buku dan toko
buku.
Kardinalitas
a. Kardinalitas mengacu pada berapa kali instance dari suatu entitas dapat
berelasi dengan instance lain di entitas yang berbeda.
b. Satu instance dalam suatu entitas mengacu pada satu dan hanya satu
instance pada entitas lainnya (1:1).
c. Satu instance dalam suatu entitas mengacu ke satu atau lebih instance
yang berelasi (1:N)
d. Satu atau lebih instance dalam satu entitas mengacu pada satu atau lebih
instance pada entitas yang berelasi (M:N)
Modalitas
a. Mengacu pada apakah suatu instance dari entitas anak dapat ada tanpa
suatu relasi dengan instance dari entitas induk atau tidak.
b. Not null, berarti bahwa suatu instance pada entitas yang berelasi harus ada
untuk suatu instance dari entitas lain untuk disebut valid.
c. Null, berarti bahwa tidak ada instance dalam entitas yang berelasi yang
diperlukan untuk instance pada relasi lain untuk dikatakan valid.
51
Data dictionary dan metadata
a. Metadata adalah informasi yang tersimpan yang berisi komponen dari
model data.
b. Metadata disimpan dalam data dictionary sehingga bisa dibagi dengan
developer dan pengguna melalui SDLC.
c. Data dictionary yang lengkap dan bisa dibagi untuk membantu
meningkatkan kualitas sistem yang sedang dikembangkan.
Memvalidasi ERD
Untuk membuat ERD, diperlukan latihan dan jam terbang. Ada beberapa
pedoman yang perlu diperhatikan untuk membuat ERD, di antaranya :
a. Entitas harus memiliki banyak kejadian/realitas.
b. Hindari penggunaan atribut yang tidak perlu.
c. Berilah label yang jelas untuk semua komponen.
d. Pasangkan kardinalitas dan modalitas yang jelas dan benar.
e. Pecah atribut menjadi level serendah mungkin yang diperlukan.
f. Label harus merefleksikan istilah-istilah bisnis yang umum.
g. Asumsi harus disebutkan dengan jelas.
52
2.8.4 Normalisasi
Beberapa definisi normalisasi menurut Ladjamudin (2005 : 169), yaitu :
a) Normalisasi adalah suatu proses memperbaiki / membangun dengan model
data relasional, secara umum lebih tepat dikoneksikan dengan model data
logika.
b) Normalisasi adalah proses pengelompokkan data ke dalam bentuk tabel
atau relasi atau file untuk menyatakan entitas dan hubungan mereka
sehingga terwujud satu bentuk database yang mudah untuk dimodifikasi.
c) Normalisasi dapat berguna dalam menjawab 2 pertanyaan mendasar yaitu :
“Apa yang dimaksud dengan desain database logical ?” dan “Apa yang
dimakdud dengan disini database fisikal yang baik ? What is a Physical
good logical dabase design?”.
d) Normalisasi adalah suatu proses untuk mengidentifikasi “tabel” kelompok
atribut yang memiliki ketergantungan yang sangat tinggi antara satu
atribut dengan atribut lainnya.
e) Normalisasi bisa disebut juga sebagai proses pengelompokkan atribut –
atribut dari suatu relasi sehingga membentuk WELL STRUCTURED
RELATION.
53
Menurut Ladjamudin (2005 : 176-188), ada beberapa langkah dalam
pembentukan normalisasi, yaitu :
1. Bentuk Tidak Normal (Unnormalized Form)
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada
keharusan mengikuti format tertentu, dapat saja data tidak lengkap atau
terduplikasi. Data dikumpulkan apa adanya sesuai saat menginput.
2. Bentuk Normal kesatu (First Normal Form / 1NF)
Pada tahap ini dilakukan penghilangan beberapa grup elemen yang
berulang agar menjadi satu harga tunggal yang berinteraksi diantara setiap
baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang
atomic (bersifat atomic value). Atom adalah zat terkecil yang masih
memiliki sifat induknya, bila ia dipecah lagi maka ia tidak memiliki sifat
induknya.
Syarat normal kesatu (1-NF) :
a) Setiap data dibentuk dalam flat file, data dibentuk dalam satu record
demi satu record nilai dari field berupa “atomic value”.
b) Tidak ada set atribut yang berulang atau bernilai ganda.
c) Telah ditentukannya primary key untuk tabel / relasi tersebut.
d) Tiap atribut hanya memiliki satu pengertian.
3. Bentuk Normal kedua (Second Normal Form / 2NF)
Bentuk normal kedua didasari konsep full functional dependency
(ketergantungan fungsional sepenuhnya) yang dapat didefinisikan sebagai
berikut :
54
Jika A dan B adalah atribut-atribut dari suatu relasi, B dikatakan full
functional dependency (memiliki ketergantungan fungsional sepenuhnya)
terhadap A, tetapi tidak secara tepat memiliki ketergantungan fungsional
dari subset (himpunan bagian) dari A.
Syarat normal kedua (2-NF) :
a) Bentuk data telah memenuhi kriteria bentuk normal kesatu.
b) Atribut bukan key (non-key) haruslah memiliki ketergantungan
fungsional sepenuhnya (fully fungsional dependency) pada kunci
utama / primary key.
4. Bentuk Normal ketiga (Third Normal Form / 3NF)
Syarat normal ketiga (3-NF) :
a) Bentuk data telah memenuhi kriteria bentuk normal kedua.
b) Atribut bukan kunci (non-key) haruslah tidak memiliki ketergantungan
transitif, dengan kata lain suatu atribut bukan kunci (non-key) tidak
boleh memiliki ketergantungan fungsional (fungsional dependency)
terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada
suatu relasi hanya memiliki ketergantungan fungsional terhadap
primary key di relasi itu saja.
55
2.8.5 STD (State Transition Diagram)
State transition diagram (STD) merupakan suatu diagram yang
menggambarkan bagaimana state dihubungkan dengan state yanglainpada
satu waktu. State transition diagram menggambarkan suatu state yang
mempunyai kondisi dimana dapat menyebakan perubahan satu state ke state
yang lain (Hoffer & Valavich, 1996 : 364) .
State transition diagram pada dasarnya merupakan sebuah diagram yang
terdiri dari state dan transisi (perpindahan). Transisi state terdiri dari kondisi
dan aksi. Transisi dianatar akedua keadaan pada umumnya disebabkan oleh
suatu kondisi. Kondisi adalah suatu kejadian yang dapat di ketahui oleh
system. Sedangkan aksi adalah tindakan oleh sistem apabila terjadi perubahan
state atau merupakan reaksi sistem.
Gambar 2.13 Contoh Perubahan State
Adapun komponen atau simbol yang digunakan dalam diagram ini
adalah:
State 1
Aksi
State 1
1. Modul
Menggunakan simnol lingkran kecil (Gambar 2.3) yang mewakili modul
yang dipanggil apabila terjadi suatu tindakan.
56
Gambar 2.14 Notasi Modul
2. Tampilan kondisi (state)
Merupakan layer yang ditampilkan menurut keadaan atau atribut, untuk
memenuhi suatu tindakan pada waktu tertentu yang mewakili suatu bentuk
keberadaan atau kondisi tertentu, disimbolkan dengan gambar persegi
(Gambar 2.4).
Gambar 2.15 Notasi Tampilan
3. Tindakan (state transition)
Menggunakan simbol anak panah (Gambar 2.5) disertai keterangan
tindakan yang dilakukan.
Gambar 2.16 Notasi Tindakan
2.9 Alat Bantu Pengembangan Sistem
2.9.1 PHP
Dari sekian pemrograman server-side, PHP (Hypertext Preprocessor)
merupakan bahasa pemrograman open source yang telah dipakai secara luas untuk
tujuan umum yang secara khusus digunakan untuk pengembangan aplikasi
57
berbasis web dan dapat diintegrasikan dengan HTML (PHP Manual, 2007).
Dengan PHP kita mampu menghasilkan aplikasi dinamis. Terbukti sejak
dipublikasikan pertama kali oleh Rasmus Lerdorf untuk membuat situs
pribadinya, banyak kalangan merespon positif dan beramai-ramai menawarkan
jasa untuk mengembangkan.
Pada awal tahun 1995, Rasmus Lerdorf membuat produk bernama PHP/ FI
(Personal Home Page /Forms Interpreter). Produk yang merupakan cikal bakal
PHP ini ditulis menggunakan bahasa C, dan memiliki kemampuan untuk
berkomunikasi dengan database serta membuat halaman dinamis. Produk yang
cukup sukses ini dirilis dengan disertai source code-nya, sehingga setiap orang
dapat melihat dan menggunakannya secara bebas.
Beberapa tahun kemudian, tepatnya November 1997, Rasmus melepas
PHP/ FI versi 2.0. Namun tidak lama kemudian, Andi Gutmans dan Zeev Suraski
melepas PHP 3.0 yang dihasilkan dengan menulis ulang PHP/ FI, hal ini juga
berarti bahwa usia PHP/ FI tidak bertahan lama. Pada generasi ini pula disepakati
bahwa PHP merupakan singkatan dari PHP Hypertext Preprocessor. Hasil dari
produk ini juga cukup bagus, kurang lebih waktu itu 10% web server di Internet
telah memangsangnya.
Usia PHP 3 memang diramalkan tidak bertahan lama, karena tahun 1998
PHP ditulis ulang kembali. Akan tetapi baru tahun 2003 secara resmi PHP 4
dikeluarkan, dengan banyak kemampuan tambahan tentunya. Tujuan utama yang
ingin dicapai adalah meningkatkan performansi dari kompleksitas aplikasi dan
meningkatkan modularitas.
58
Akhirnya pada akhir Juni 2003, pengembang PHP secara resmi
meluncurkan PHP versi 4 tidak sia-sia memang, karena dapat dikatakan pada versi
4 ini PHP semakin popular dan banyak digunakan.
PHP versi 5 dengan rilis Beta 1. teknologi inilah yang kemudian akrab
disebut sebagai PHP 5, meskipun sampai saat itu pengembangannya masih terus
dilakukan, akan tetapi sudah mendapat respon cukup baik dikalangan pemrogram.
Sampai saat ini, pengembangan yang dilakukan telah mencapai versi 5.0.3
dan disebarkan secara luas sejak Desember 2004. beberapa bug yang ditemukan
pada versi-versi sebelumnya sudah banyak diperbaiki. Sebenarnya sejak versi
5.0.0 sudah sempat dikatakan sebagai final, akan tetapi satu bulan kemudian
disempurnakan dengan meluncurnya versi 5.0.1 dan sampai kini terus
dikembangkan lagi. (Prasetya, 2005: 30).
2.9.2 MySQL
MySQL adalah Relational Database Mangement Sistem (RDBMS) yang
didistribusikan secara gratis di bawah lisensi GPL (General Public License),
MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database
sejak lama, yaitu SQL (Structure Query Language), SQL adalah sebuah konsep
pengoperasian database, terutama untuk pemilihan/ seleksi dan pemasukan data,
yang memungkinkan pengoperasian data dikerjakan dengan mudah secara
otomatis. Sebagai database server yang memiliki konsep database modern,
MySQL memiliki banyak sekali keistimewaan.
59
Berikut ini beberapa keistimewaan yang dimiliki oleh MySQL (Prasetyo,
2003: 1-3) :
1. Protability, dapat berjalan stabil pada berbagai sistem operasi.
2. Open Source, dapat digunakan secara cuma-cuma.
3. Multi User, dapat digunakan oleh banyak user dalam waktu yang
bersamaan tanpa mengalami masalah atau konflik.
4. Performance Tuning, memiliki kecepatan dalam menangani query
sederhana, dengan kata lain dapat memproses lebih banyak SQL persatuan
waktu.
5. Column Type, memiliki tipe kolom yang sangat kompleks.
6. Command dan Fuctions, memiliki operator dan fungsi secara penuh yang
mendukung SELECT dan WHERE dalam query.
7. Security, memiliki beberapa lapisan keamanan seperti level subnetmask,
nama host, dan izin akses user dengan sistem perizinan yang mendetail
secara password.
8. Scalability dan Limits, mampu menangani database dalam skala besar,
dengan jumlah records lebih dari 50 juta dan 60 ribu tabel serta 5 miliar
baris.
9. Connectivity, dapat melakukan koneksi dengan client menggunakan
protokol TCP/ IP, Unix soket (Unix), atau Named Pipes (NT).
10. Localisation, dapat mendeteksi pesan kesalahan (error code) pada client
dengan menggunakan lebih dari dua puluh bahasa.
60
11. Interface, memiliki antarmuka terhadap berbagai aplikasi dan bahasa
pemrograman dengan menggunakan fungsi API (Application
Programming Interface).
12. Client dan Tools, dilengkapi dengan berbagai tool yang dapat digunakan
untuk administrasi database, dan pada setiap tool yang ada disertakan
petunjuk online.
13. Struktur Tabel, memiliki struktur tabel yang lebih fleksibel dalam
menangani ALTER TABLE, dibanding database lainnya semacam
PostgreSQL ataupun Oracle.
2.9.3 Apache Server
Web server adalah software yang memberikan layanan web. Web server
menggunakan protokol yang disebut dengan HTTP (HyperText Transfer
Protocol). Apache adalah nama web server yang dibuat berbasiskan kode sumber
dan ide-ide yang ada pada web server leluhurnya, yaitu web server NCSA. Sesuai
namanya, web server NCSA dibuat oleh National Center for Supercomputing
Applications. Tidak seperti proyek leluhurnya yang dibiayai oleh pemerintah
Amerika, web server Apache dikembangkan oleh sekelompok programmer yang
bekerja tanpa dibayar oleh siapapun. Mereka mengerjakan proyek ini dengan
berbagai macam alasan, akan tetapi alasan yang paling mendasar adalah mereka
senang jika perangkat lunak mereka digunakan oleh banyak orang. Apache adalah
web server yang kompak, modular, mengikuti standar protokol HTTP, dan tentu
61
saja sangat digemari. Kesimpulan ini bisa didapatkan dari jumlah pengguna yang
jauh melebihi para pesaingnya.
Sesuai hasil survai yang dilakukan oleh Netcraft, bulan Januari 2005 saja
jumlahnya tidak kurang dari 68% pangsa web server yang berjalan di Internet. Ini
berarti jika semua web server selain Apache digabung, masih belum bisa
mengalahkan jumlah Apache. Saat ini ada dua versi Apache yang bisa dipakai
untuk server produksi, yaitu versi mayor 2.0 dan versi mayor 1.3. Anda bisa
menggunakan salah satu dari keduanya. Tapi sangat dianjurkan Anda memakai
versi 2.0. Alasan menggunakan Apache:
1. Arsitektur modular.
2. Mendukung banyak sistem operasi, termasuk di dalamnya adalah
Windows NT/ 2000/ XP dan berbagai varian Unix.
3. Mendukung IP versi 6 (Ipv6).
4. Mendukung berjalannya CGI (Common Gateway Interface) dan SSI
(Server Side Include).
5. Mendukung otentifikasi dan kontrol akses.
6. Mendukung SSL (Secure Socket Layer) untuk komunikasi terenkripsi.
7. Konfigurasi yang mudah dipahami.
8. Mendukung Virtual Host.
9. Pesan kesalahan multi bahasa dan bisa dimodifi kasi.
2.9.4 HTML
HTML (Hypertext Markup Language) adalah bahasa yang menggunakan
perintah sederhana dalam standar dokumen teks ASCII untuk menyediakan suatu
62
tampilan visual yang terintegrasi. HTML terdiri atas perintah-perintah sederhana
yang menjelaskan bagaimana struktur dokumen, tetapi tidak memformatnya.
Browser yang menampilkan HTML akan memformat dan menyesuaikan tampilan
HTML sehingga sesuai dengan layer komputer pengunjung.
HTML menggunakan penanda berupa tag (<..>) yang mengindikasikan
bagaimana browser web meampilkan elemen halaman seperti teks atau grafik.
Metode HTML terletak diantara container tag diawali dengan <nametag> dan
diakhiri dengan </ nametag>.
HTML mempunyai tiga buah tag utama, yaitu HTML, HEAD, dan BODY.
Tag HTML berfungsi menyatakan suatu dokumen HTML, tag HEAD berfungsi
memberkan informasi tentang dokumen, dan tag BODY menetukan bagaimana isi
sebuah dokumen ditampilkan oleh browser.
2.9.5 CI / CodeIgniter
Pengertian Framework
Framework adalah kerangka kerja yang memudahkan programmer untuk
membuat sebuah aplikasi sehingga programmer akan lebih mudah melakukan
perubahan (customize) terhadap aplikasinya dan dapat memakainya kembali
untuk aplikasi lain yang sejenis (Shalahudin, 2008 : 13). Dengan framework
pengembang tidak harus menulis suatu aplikasi dari awal. Framework dibangun
dari kumpulan objek yang digabung dengan desain dan pengkodean dari
framework tersebut.
63
Pengertian CodeIgniter
CodeIgniter adalah sebuah Application Development Framework –
seperangkat alat bantu - bagi orang-orang yang membangun situs web
menggunakan PHP. Tujuannya adalah untuk memungkinkan Anda untuk
mengembangkan proyek-proyek yang jauh lebih cepat daripada yang dapat jika
Anda langsung mengkodekannya dari awal, dengan menyediakan berbagai library
fungsi yang dibutuhkan untuk membuat tugas-tugas umum, serta antarmuka yang
sederhana dan struktur logika dalam mengakses library fungsi tersebut.
CodeIgniter memungkinkan Anda menjadi lebih kreatif untuk fokus pada proyek
Anda dengan meminimalkan jumlah kode yang dibutuhkan untuk tugas tertentu
yang umum (http://www.codeigniter.com).
Kelebihan CodeIgniter
Ada beberapa kelebihan yang dimiliki CodeIgniter, antara lain adalah
sebagai berikut :
1. Hemat waktu
Anda tidak membutuhkan banyak waktu untuk mempelajari CI, dan
dengan cepat usaha anda untuk belajar akan terbayar dalam menghemat
waktu di kemudian hari. Kita bisa melihat contoh berikut, bagaimana CI
begitu menghemat serangkaian penggunaan kode yang dibutuhkan. Mari
kita ambil 2 contoh, kode PHP tanpa menggunakan CI dan yang
menggunakan CI.
Berikut contoh kode yang tanpa menggunakan CI :
$connection=mysql_connect("localhost","fred","12345");
mysql_select_db("websites", $connection);
64
$result=mysql_query ("SELECT * FROM sites",
$connection);
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
foreach ($row as $attribute)
print "{$attribute[1]}";
}
Berikut contoh kode yang menggunakan CI :
$this->load->database('websites');
$query = $this->db->get('sites');
foreach ($query->result() as $row)
{
print $row->url;
}
Cobalah membandingkan jumlah karakter atau huruf yang
digunakan, syntax tradisional (tanpa menggunakan CI) menggunakan 224
karakter, dan dengan CI hanya menggunakan 112 karakter.
2. Kokoh dan Aman
Meskipun kita tidak memerlukan untuk menulis banyak kode, CI
menyediakan banyak fungsi standar dengan keamanan yang lebih baik.
Berikut beberapa fitur keamanan yang dimiliki CI, yaitu :
• Mencegah serangan SQL Injection
Banyak cara yang bisa dilakukan untuk bisa menembus suatu system
berbasis web, salah satu yang paling popular dan sering digunakan
adalah SQL Injection. SQL injection merupakan suatu teknik
65
penyerangan dengan cara melakukan input dengan karakter tertentu
untuk dapat menjalankan kode SQL yang tidak terverifikasi dan
memiliki kerentanan terhadap keamanan data yang didapatkan dari
kode SQL yang dijalankan, sehingga biasanya hasil tersebut
digunakan oleh pihak yang tidak bertanggung jawab untuk
melakukan penyerangan lebih lanjut.
• Melindungi dari serangan XSS
XSS (cross site scripting) adalah jenis serangan yang rentan terjadi
yang mana memungkinkan beberapa kode yang tidak diinginkan
dilakukan dalam aplikasi kita, serangan phishing, pencurian data, dan
banyak lagi. Untuk menghindari ini Anda harus memvalidasi data
kita.
CodeIgniter membantu kita untuk melakukannya, dalam semua
aplikasi jika Anda mengatur filter XSS global dengan benar di dalam
file konfigurasi (config.php), atau kapan pun kita membutuhkannya:
$data = $this->input->xss_clean($data);
Kita bahkan dapat menggunakannya untuk memeriksa potensi
serangan XSS dalam file gambar:
$this->input->xss_clean ($file, TRUE);
Parameter kedua CI mengatakan bahwa itu adalah gambar yang
memerlukan validasi.
66
3. Konfigurasi yang mudah dan kompatibilitas yang baik terhadap jasa web
hosting
Beberapa PHP framework selain CI, semisal Symfony maupun Zend,
memiliki konfigurasi yang cukup rumit, bahkan sulit diterapkan pada
hosting standar karena harus melakukan perubahan pada file konfigurasi
pada web hosting yang mana kita tidak memiliki akses yang cukup untuk
melakukannya, semisal kita harus melakukan konfigurasi pada file
httpd.conf maupun php.ini. Inilah salah satu alasan mengapa banyak
pengembang sistem memilih CI sebagai framework dalam
mengembangkan sistemnya.
67
BAB III
METODOLOGI PENELITIAN
3.1 Kerangka Penelitian
Penelitian ini dilakukan untuk membantu PT.Learning Resources untuk
mengembangkan layanan sistem job performance appraisal untuk perusahaan-
perusahaan clientnya yang ingin melakukan penilaian prestasi kerja bagi para
karyawannya. Pendekatan yang digunakan adalah dengan mengembangkan sistem
job performance appraisal dengan teknik checklist berbasis web menggunakan CI
Framework. Penelitian ini diharapkan dapat membantu menyelesaikan berbagai
permasalahan yang ada. Metode kerja penelitian sesuai dengan Gambar 3.1.
68
Gambar 3.1 Metode Kerja Penelitian
Tahap Identifikasi Perumusan Masalah Studi Literatur dan
Pustaka
Tahap Analisis Pengembangan Sistem yang ada
Tahap Design Perancangan Basis Data
o ERD o LRS o Kamus Data
Perancangan Aplikasi o Flowchart o DFD o Screen Layout
C di
Tahap Implementasi Testing & Instalasi
Penyusunan kesimpulan
Pemilihan Awal Penelitian
3.2 Waktu dan Lokasi Penelitian
3.2.1 Waktu Pelaksanaan
Waktu penelitian dilakukan selama 3 bulan, mulai bulan Desember 2009
sampai dengan bulan Februari 2010 dengan melibatkan berbagai disiplin ilmu
pengetahuan antara Web Programming, DFD, ERD, PHP, Management
Information System (MIS) , dan Rekayasa Perancangan Lunak.
69
3.2.2 Lokasi Penelitian
Lokasi penelitian adalah pada PT.Learning Resources sebagai konsultan
dan penyedia layanan penilaian kinerja karyawan bagi perusahan-perusahaan
clientnya, sedangkan untuk mencari referensi-referensi dilakukan di perpustakaan
dan di internet.
3.3 Peralatan Penelitian
Peralatan yang akan digunakan dalam penelitian ini antara lain berupa
perangkat keras dan perangkat lunak :
3.3.1 Perangkat Keras
Perangkat keras yang digunakan dalam penelitian ini adalah sebuah
Notebook dengan spesifikasi sebagai berikut :
• Prosessor AMD Turion X2 RM 70 2 Ghz
• RAM 2 Gb
• HDD 160 Gb
3.3.2 Perangkat Lunak
Perangkat lunak yang digunakan pada penelitian ini antara lain :
• XAMPP 1.7.0 sebagai development toolkit yang berisi PHP versi 5.2.8
sebagai bahasa pemrograman, MySQL versi 5.1.30 sebagai database
server, dan Apache Server versi 2.0 sebagai web server.
• Notepad++ versi 4.8.1 sebagai Integrated Development Environment
(IDE) dalam pembuatan aplikasi,
70
• Microsoft Visio 2007 sebagai tools dalam pembuatan DFD, ERD, dan
Flowchart,
• CI Framework versi 1.7.2 sebagai framework aplikasinya,
• Microsoft Windows Vista Home Premium SP1 sebagai sistem operasinya.
• Dan Mozilla Firefox 3.0.18 sebagai browsernya.
3.4 Metode Penelitian
3.4.1 Teknik Pengumpulan Data
Pendekatan yang dilakukan adalah dengan cara melakukan wawancara,
observasi ke lapangan dan dengan cara studi pustaka. Wawancara dilakukan
dengan cara melakukan diskusi dengan pihak yang bisa memberikan informasi
mengenai aplikasi yang akan penulis buat. Sedangkan observasi dilakukan untuk
melihat secara langsung kejadian bagaimana suatu perusahaan dalam melakukan
aktifitasnya. Metode pengumpulan data yang terakhir adalah dengan studi
pustaka, oleh karena studi pustaka saja belum cukup untuk mendapatkan referensi,
maka penulis melakukan pencarian referensi melalui media internet.
71
3.4.2 Metode Pengembangan Sistem
Dalam perancangan sistem job performance appraisal dengan teknik rating
scale ini, penulis menggunakan metode pengembangan sistem SDLC (System
Development Life Cycle) dengan model waterfall, dengan beberapa alasan, antara
lain :
1. Kemudahan dalam proses penelitian yang dilakukan tahap demi tahap.
Setiap tahap dari penelitian mengikuti suatu pola yang teratur dan
dilakukan secara top-down. Sistem ini merupakan sistem yang membantu
para supervisor untuk menilai kinerja kerja bawahannya dan head office
untuk mendapatkan bawahan dengan kinerja terbaik. Diharapkan dengan
penggunaan model waterfall sebagai model pengembangan sistem, sistem
yang dikembangkan sesuai dengan kebutuhan dan sistem yang berjalan.
2. Sesuai dengan landasan teori, bahwa model waterfall ini merupakan
metode pengembangan sistem dengan pendekatan ramalan yang memiliki
ciri-ciri yakni kebutuhan sistem telah dipahami dan tergambar dengan baik
sehingga diharapkan resiko teknis dapat diminimalisir.
3. Metode yang paling luas dipakai dan sudah teruji dalam rekayasa
perangkat lunak serta mempunyai proses-proses yang jelas dan mudah
dipahami.
Model yang diciptakan oleh Winston W Royce pada tahun 1970 (Hanif
Al-Fatta , 2007: 26) ini menuntut suatu pendekatan sistematik-sekuensial dari
72
proses pengembangan perangkat lunak, dimulai pada tingkatan sistem dan
dilanjutkan dengan analisis, perancangan, pengkodean, uji coba, dan pemeliharaan
3.4.2.1 Analisis
Analisis digunakan untuk mengetahui perilaku sistem dan juga untuk
mengetahui aktivitas apa saja yang ada dalam sistem tersebut. Dalam tahap ini
akan diketahui apa saja yang menjadi kebutuhan sistem tersebut.
Tahap analisis merupakan tahap yang kritis dan sangat penting, karena
kesalahan pada tahap ini akan menyebabkan kesalahan pula pada tahap
selanjutnya. Oleh karena itu, penulis akan berusaha lebih hati-hati dalam
menganalisis dan merinci permasalahan yang ada.
Proses pengembangan diawali dari tahap analisis dimana dalam tahap
analisis ini penulis melakukan beberapa aktivitas, yaitu pengumpulan data,
identifikasi masalah, analisa kebutuhan aplikasi, hingga definisi proyek. Semua
aktivitas pada tahap ini akan dijelaskan dengan deskriptif analitis.
Di dalam analisis sistem ini penulis melakukan empat langkah dasar, yaitu
antara lain :
1. Data Gathering (Pengumpulan Data)
Penulis mengumpulkan data dengan melakukan observasi untuk
mengamati bagaimana metode yang digunakan PT.Learning Resources
dalam membantu kliennya untuk melakuan penilaian kinerja karyawannya.
Selain itu penulis juga mengamati fasilitas-fasilitas dan juga infrastruktur
73
yang dimiliki dan digunakan oleh PT.Learning Resources untuk
mendukung proses penilaian tersebut.
Selain melakukan observasi, penulis juga melakukan wawancara kepada
beberapa karyawan PT.Learning Resources guna menggali informasi lebih
dalam tentang proses penilaian kinerja karyawan yang mereka lakukan.
2. Identify (Identifikasi Masalah)
Selanjutnya dilakukan identifikasi permasalahan yang didapat dalam
aktivitas pengumpulan data sebelumnya. Dan juga didapatkan personel-
personel kunci yang terlibat pada sistem yang berjalan. Proses identifikasi
ini difokuskan pada keperluan masing-masing aktor pada aplikasi.
3. Software Requirement (Kebutuhan Aplikasi)
Berdasarkan identifikasi masalah di atas, penulis mulai menganalisis,
menentukan dan menggali lebih dalam kebutuhan-kebutuhan yang
diperlukan oleh sistem hingga akhirnya didapat solusi konkrit dari sistem
yang akan dikembangkan.
4. Project Definition (Definisi Proyek)
Project definition sebagai penjelasan akan solusi yang telah ditentukan
sebelumnya dibutuhkan untuk mendefinisikan sistem secara rinci, baik itu
nama, deskripsi, batasan-batasan serta fitur sistem.
74
3.4.2.2 Perancangan
Pada tahap ini terdapat tiga langkah perancangan, yaitu perancangan
sistem database, perancangan sistem aplikasi dan perancangan antarmuka.
Pada perancangan sistem database, penulis menggunakan teknik Entity
Relationship Diagram, Logical Record System (LRS), dan Kamus Data,
sedangkan pada perancangan aplikasi, penulis akan membuat diagram-diagram
atau pemodelan yang akan digunakan dalam perancangan sistem. Teknologi
pemodelan yang penulis gunakan adalah DFD yaitu Diagram Context, DFD Level
0, DFD Level 1 dan juga Flowchart serta arsitektur umum sistem job performance
appraisal.
3.4.2.3 Pengkodean
Setelah melakukan analisis sistem dan perancangan sistem secara rinci.
Tiba saatnya, sistem untuk diimplementasikan (pembuatan kode program).
Pengkodean adalah proses menterjemahkan rancangan yang telah dibuat ke dalam
bentuk bahasa yang bisa dibaca oleh mesin yakni menggunakan PHP versi 5.2.8
sebagai bahasa pemrogramannya dan MySQL versi 5.1.30 sebagai database
server untuk menyimpan datanya.
3.4.2.4 Uji Coba
Pada tahap ini dilakukan dengan pengujian masing-masing modul atau
unit program apakah sesuai dengan tugasnya. Kemudian dilakukan uji coba
terhadap integrasi keseluruhan unit program untuk mengetahui apakah sistem
75
yang telah dibuat sudah memenuhi kriteria yang dinginkan. Pengetesan ini
dilakuan dengan menggunakan metode black box testing, yaitu dengan mengecek
satu persatu komponen dengan menggunakan tabel pengetesan, apakah komponen
tersebut sudah sesuai dengan apa yang diharapkan atau belum.
3.4.2.5 Pemeliharaan
Tahap terakhir dalam metode pengembangan sistem menggunakan model
Waterfall adalah pemeliharaan (maintenance), yaitu setelah sistem
diimplementasikan dan diuji serta dicoba untuk memastikan bahwa sistem telah
terbebas dari bug. Pemeliharaan ini dilakukan terhadap sistem supaya jika
sewaktu-waktu terjadi kemungkinan kesalahan pada sistem di saat sistem sudah
berjalan, bisa ditangani dengan cepat dan tepat, sehingga tidak menyebabkan
terhambatnya penggunaan sistem oleh end user. Namun, sesuai dengan batasan
permasalahan yang penulis buat, yakni tidak menyertakan pemeliharaan sistem,
maka penulis tidak bisa membahasnya lebih jauh pada tahap pemeliharaan ini.
76
BAB IV
PEMBAHASAN
4.1 Gambaran Umum PT.Learning Resources
4.1.1 Sekilas PT. Learning Resources
PT.Learning Resources merupakan perusahaan konsultan yang berpusat di
Inggris yang menyediakan sejumlah program-program pelatihan soft skill kelas
dunia dari berbagai pelaku-pelaku konsultan yang sudah mapan dari Amerika,
Eropa dan Australia. Kantornya terletak di Kemang Point Lt.3, Jl.Kemang Raya
No.3, Jakarta 12730.
Para eksekutif dan manajemen PT.Learning Resources telah
mengembangkan program-program pelatihan kelas dunia melalui riset terbaru
tentang teknik pengembangan dan pelatihan lebih dari 15 tahun, membangun
fondasi yang kuat yang memiliki cakupan yang luas tentang kompetensi soft skill
dan perilaku meliputi :
• skill penjualan
• kepemimpinan
• motivasi
• membangun tim kerja
• layanan pelanggan
• dll.
Seluruh pelatihan yang diberikan menggunakan pendekatan pelatihan yang
inovatif menggunakan berbagai sarana dan teknologi terkini seperti video,
77
simulasi, simulasi, bisnis, activity boards, dan lainnya. Dan program-program
pelatihan tersebut telah diakui oleh Training Media Review (USA).
Lebih dari 3 tahun, PT.Learning Resources telah memiliki eksistensi
program pelatihan di beberapa negara seperti Indonesia, Singapura, Filipina dan
Thailand, serta sangat dihargai oleh penyedia penilaian independen untuk produk
dan jasa.
4.1.2 Visi dan Misi
1. Visi
a. Membangun manajemen organisasi lebih baik.
b. Mengoptimalkan sumber daya manusia.
c. Meningkatkan daya saing.
d. Menjadi perusahaan konsultan terbaik di Indonesia.
2. Misi
a. Menunjukan performa yang sangat baik kepada klien melalui perencanaan
yang efektif dan implementasi dari kemampuan dinamis yang fokus
kepada pasar sebagai dasar dari strategi perusahaan, untuk meraih daya
saing, kebaikan berstandar kelas dunia, dan citarasa konsumen secara total.
b. Meraih performa yang baik terhadap para karyawan dengan menciptakan
kreativitas, inovasi, dan komitmen untuk kemajuan yang berkelanjutan dan
belajar sepanjang waktu, untuk memaksimalkan pengetahuan dan
mengetahui bagaimana mengembangkan skil dan kompetensi yang sesuai
dalam manajemen perusahaan melalui training kelas dunia.
78
c. Memperkuat mitra kami dan organisasi untuk mengoptimalkan fungsi-
fungsi dari aset strategis dan sumber daya serta untuk menciptakan
keuntungan maksimum bagi para pengambil keputusan.
d. Menghasilkan lulusan pelatihan yang profesional sesuai pelatihan soft skill
yang diberikan.
e. Memberikan landasan moral dalam training soft skill yang diberikan.
f. Mengadakan penelitian dan pengembangan di bidang training.
4.2 Pengembangan Sistem
Pada sub bab ini, akan dibahas secara detail dan terperinci mengenai
pengembangan sistem yang akan di implementasikan dengan menerapkan
metodologi penelitian yang telah diuraikan pada bab sebelumnya.
4.2.1 Analisis
4.2.1.1 Data Gathering (Pengumpulan Data)
Penulis mengumpulkan data dengan melakukan observasi untuk
mengamati bagaimana metode yang digunakan PT.Learning Resources dalam
membantu kliennya untuk melakuan penilaian kinerja karyawannya. Selain itu
penulis juga mengamati fasilitas-fasilitas dan juga infrastruktur yang dimiliki dan
digunakan oleh PT.Learning Resources untuk mendukung proses penilaian
tersebut.
79
Selain melakukan observasi, penulis juga melakukan wawancara kepada
beberapa karyawan PT.Learning Resources guna menggali informasi lebih dalam
tentang proses penilaian kinerja karyawan yang mereka lakukan.
Berikut adalah flowchart dari sistem yang sedang berjalan :
a) Pihak PT.Learning Resources sebagai supporting data penilaian
prestasi kerja ini membuat dokumen monitoring checklist yang berisi
soal-soal yang telah disepakati konten soalnya oleh perusahaan klien
yang nantinya akan dicheklist oleh supervisor terhadap para staffnya
pada perusahaan klien.
b) Setelah dokumen-dokumen itu jadi, pihak PT.Learning Resources
memberikannya ke kantor pusat perusahaan klien.
c) Kantor pusat perusahaan klien akan memperbanyak dokumen
monitoring checklist sesuai dengan banyaknya kantor cabang yang
dimiliki, dan akan didistribusikan ke masing-masing cabang tersebut.
d) Dokumen itu diterima oleh pihak kantor cabang melalui branch
manager kantor cabang.
e) Branch Manager lalu menyerahkannya kepada masing-masing
supervisor yang ada di kantor cabang, oleh supervisor akan ditentukan
staff yang akan dinilai yakni staff-staff pada masing-masing bagian.
f) Setelah ditentukan siapa staff yang akan dinilai, maka penilaian bisa
dilakukan, penilaian sendiri dilakukan sebanyak 10 kali setiap
bulannya.
80
g) Setelah itu, pada akhir bulannya, hasil penilaian diserahkan oleh
masing-masing supervisor kepada branch manager, dari sinilah sang
branch manager akan menentukan staff terbaik pada masing-masing
bagian di kantor cabangnya menggunakan alat bantu berupa Microsoft
Excel untuk melakukan pengolahan datanya.
h) Lalu data-data staff terbaik pada masing-masing cabang akan
diserahkan ke kantor pusat.
i) Data-data itu diterima oleh head officer, kemudian oleh head officer
data-data staff terbaik pada semua cabang akan diberikan kepada pihak
PT.Learning Resources untuk ditentukan staff terbaik dari seluruh
cabang pada tiap-tiap bagian menggunakan Microsoft Excel.
j) Dokumen hasil staff terbaik dari seluruh cabang itu yang telah diproses
oleh pihak PT.Learning Resources lalu diserahkan kembali kepada
pihak kantor pusat melalui head officer, dan hasil itu akan dibuat
pengumuman dan didistribusikan kembali kepada masing-masing
kantor cabang.
Dari observasi dan wawancara yang dilakukan, didapatkan informasi
bahwa sistem job performance appraisal dengan metode checklist yang telah
diterapkan kepada para kliennya memiliki aspek-aspek penilaian yang tidak
berubah dalam minimal 1 periode(1 tahun) dan belum menggunakan bobot
penilaian. Belum digunakannya bobot penilaian menyebabkan kemungkinan nilai
sama yang dimiliki oleh para staff yang dinilai sangat tinggi. Tentunya ini
81
menjadi bermasalah, karena akan mempersulit pencarian staff terbaik, karena
kasus tersebut.
Gambar 4.1 Flowchart sistem yang berjalan
4.2.1.2 Identify (Identifikasi Masalah)
Selanjutnya dilakukan identifikasi permasalahan yang didapat dalam
aktivitas pengumpulan data sebelumnya. Dan juga didapatkan personel-personel
kunci yang terlibat pada sistem yang berjalan. Proses identifikasi ini difokuskan
pada keperluan masing-masing aktor pada aplikasi.
Setelah melakukan observasi serta wawancara terhadap pihak PT.Learning
Resources sebagai penyedia layanan penilaian prestasi kerja ini, penulis melihat
masalah – masalah yang terjadi serta kelemahan dari sistem yang berjalan yang
merupakan faktor timbulnya suatu masalah tersebut, yaitu :
82
1. Kurang efektifnya pendistribusian dokumen soal-soal monitoring
checklist, yakni setelah dokumen soal-soal monitoring checklist dibuat
oleh PT.Learning Resources, lalu diberikan kepada pihak kantor pusat
perusahaan klien yang bersangkutan, untuk kemudian akan didistribusikan
ke masing-masing kantor cabang.
2. Kurang efektifnya penentuan staff terbaik untuk seluruh cabang, yakni
setelah dilakukan penilaian oleh para supervisor di masing-masing kantor
cabang, lalu branch manager akan menentukan staff terbaik di kantor
cabangnya menggunakan cara konvensional yaitu Microsoft Excel yang
kemudian hasilnya beserta dokumen monitoring checklist dari staff terbaik
di kantor cabang untuk tiap-tiap bagian akan diserahkan kembali kepada
pihak kantor pusat, kemudian pihak kantor pusat akan memberikan seluruh
dokumen hasil dari masing-masing kantor cabang kepada pihak
PT.Learning Resources untuk menentukan staff terbaik dari seluruh kantor
cabang menggunakan Microsoft Excel.
3. Cukup memakan waktu yang banyak dan kurang efisien terutama di saat
pendistribusian dokumen monitoring cheklist dan pengumpulan hasil
penilaian dari masing-masing cabang.
4. Cukup boros dalam penggunaan sumber daya, semisal kertas untuk
dokumen monitoring checklist.
5. Kemungkinan terjadinya human error sangat tinggi, seperti hilangnya
dokumen monitoring checklist, kesalahan perhitungan penilaian staff, dan
lainnya, karena masih menggunakan cara manual.
83
4.2.1.3 Software Requirements (Kebutuhan Sistem)
Berdasarkan identifikasi masalah di atas, penulis mulai menganalisis,
menentukan dan menggali lebih dalam kebutuhan-kebutuhan yang diperlukan
oleh sistem hingga akhirnya didapat solusi konkrit dari sistem yang akan
dikembangkan.
Melihat masalah pada sistem yang sedang berjalan, maka kebutuhan
sistem adalah :
1. Fungsional
a. Sistem mampu menambah, mengubah, menghapus dan melihat data
service commitee / head officer, kantor cabang, PIC kantor cabang
(branch manager dan supervisor), bagian, aspek penilaian, grup
penilaian, soal dan staff yang dinilai.
b. Sistem mampu menyediakan form penilaian dengan metode checklist
sebanyak 10 kali untuk setiap aspek penilaian tiap bulannya bagi
supervisor untuk melakukan penilaian prestasi kerja terhadap para
staffnya, sehingga mampu menghemat sumber daya seperti kertas dan
menghindari resiko hilangnya dokumen monitoring checklist yang
telah dilakukan.
c. Sistem mampu melakukan perhitungan penilaian yang dilakukan oleh
supervisor secara akurat dan menentukan staff dengan nilai terbaik
untuk setiap bagian pada masing-masing kantor cabang, sehingga
branch manager tidak perlu lagi untuk menghitung secara manual.
Dan juga, pihak PT.Learning Resources yang bertindak sebagai
84
d. Sistem dapat mencegah terjadinya human error dalam melakukan
perhitungan penilaian untuk mendapatkan staff dengan nilai tertinggi
atau staff terbaik.
e. Sistem mampu menampilkan berbagai laporan yang dibutuhkan oleh
head officer seperti laporan aproval delegasi tercepat yakni laporan
pengiriman delegasi tiap-tiap cabang oleh branch manager yang waktu
approvalnya paling cepat, laporan staff terbaik dari seluruh cabang tiap
bulan, laporan staff terbaik tiap tahun, dan laporan staff terbaik tiap
aspek per bulan. Dan juga mampu menampilkan laporan yang
dibutuhkan oleh branch manager yakni laporan staff terbaik tiap aspek
per bulan.
f. Sistem mempunyai empat level user account yaitu : administrator,
head officer, branch manager, dan supervisor.
2. Non Fungsional
a. Sistem mampu meningkatkan efektivitas dan efisiensi dalam
melakukan penilaian prestasi kerja terhadap para staff perusahaan di
seluruh kantor cabang yang tidak bisa dilakukan dengan cukup baik
oleh sistem manual.
b. Sistem job performance appraisal online menggunakan metode
checklist yang bisa diakses secara realtime melalui jaringan internet.
85
4.2.1.4 Project Definition (Definisi Proyek)
Project definition sebagai penjelasan akan solusi yang telah ditentukan
sebelumnya dibutuhkan untuk mendefinisikan sistem secara rinci, baik itu nama,
deskripsi, batasan-batasan serta fitur sistem.
Berdasarkan analisa di atas, maka diperlukan suatu pemecahan masalah
terhadap masalah serta kelemahan – kelemahan yang ada. Adapun pemecahan
masalah yang penulis usulkan adalah sebgai berikut :
a) Adanya sistem job performance appraisal yang dapat membantu dalam
melakukan penilaian prestasi kerja terhadap para staff perusahaan klien
dari PT.Learning Resources yang menggunakan jasa sistem ini.
b) Adanya suatu sistem yang dapat membantu dalam pemrosesan data
dengan cepat serta mengurangi kesalahan yang disebabkan human error.
c) Adanya suatu aplikasi yang membantu dalam poses penyimpanan dan
pengarsipan data terutama yang berhubungan dengan pelaporan penilaian
prestasi kerja.
86
4.2.2 Perancangan
Pada tahapan ini penulis akan menjelaskan rancangan sistem yang penulis
buat yang dibagi dengan beberapa tahap, yaitu :
4.2.2.1 Desain Proses
Pada tahap ini penulis akan merancang usulan alur proses sistem dengan
dua metode :
1. Desain Physical System
Pada tahap ini penulis akan menunjukkan flowchart dari sistem baru yang
di usulkan. Berikut ini adalah flowchart dari sistem baru yang penulis usulkan :
a) Admin memasukkan data-data master seperti data perusahaan, kantor-
kantor cabang perusahaan, head officer / service committee, PIC (branch
manager dan supervisor), bagian, aspek penilaian, grup soal, dan soal.
Lalu mengirimkan user login head officer dan PIC (branch manager dan
supervisor) ke head officer.
b) Data user login head officer dan PIC (branch manager dan supervisor)
yang diterima dari pihak support data PT.Learning Resources selaku
admin sistem, akan didistribusikan via email ke masing-masing cabang
melalui branch manager.
c) Setelah supervisor mendapat user login, supervisor memasukkan data-data
staff yang dibawahinya.
d) Supervisor lalu melakukan penilaian dengan metode checklist pada form
yang telah disediakan oleh sistem untuk masing-masing aspek penilaian
terhadap setiap staffnya.
87
e) Setelah semua penilaian dilakukan oleh semua supervisor terhadap seluruh
staffnya, branch manager akan melakuan approval terhadap staff terbaik
yang akan di delegasikan ke kantor pusat. Selain itu, branch manager juga
dapat melihat staff terbaik untuk setiap aspek penilaian di kantor
cabangnya.
f) Setelah seluruh kantor cabang mengirim atau melakukan approval
terhadap staff terbaik yang didelegasikan ke kantor pusat, selanjutnya head
officer dapat melihat laporan staff terbaik dari seluruh cabang untuk
masing-masing bagian. Yang nantinya, hasil laporan ini bisa diumumkan
ke masing-masing kantor cabang.
Gambar 4.2 Flowchart sistem yang diusulkan
88
Di dalam sistem job performance appraisal ini, PT.Learning Resources
menggunakan metode checklist, yakni metode penilaian dengan cara memberi
tanda checklist (V) pada uraian penilaian yang diberikan terhadap staff yang
dinilai. Dalam penilaian ini, masing-masing staff dinilai berdasarkan aspek
penilaian. Biasanya terdapat lebih dari satu aspek penilaian sebagai acuan
penilaian terhadap masing-masing staff. Tiap-tiap aspek penilaian memiliki bobot
penilaian yang apabila dijumlahkan akan menghasilkan bobot penuh atau 100.
Bobot pada masing-masing aspek penilaian mengindikasikan seberapa besar atau
pentingkah aspek penilaian tersebut bagi para staff menurut pandangan
perusahaan.
Tabel 4.1 Contoh Bobot Aspek Penilaian
No Nama Aspek Penilaian Bobot
1. Kedisiplinan 20
2. Penampilan 30
3. Sikap Melayani 50
Setiap aspek penilaian memiliki soal-soal yang dijadikan sebagai
parameter penilaian, yang mana sejumlah soal tersebut akan dikelompokkan
dalam group soal yang berbeda-beda. Masing-masing soal pun memiliki bobot
skala penilaian yang menjadi variabel yang mempengaruhi penjumlahan nilai
pada penilaian staff. Seperti halnya bobot pada aspek penilaian, bobot pada soal
ini juga mengindikasikan seberapa besar atau pentingkah hal tersebut bagi para
staff menurut pandangan perusahaan dalam aspek penilaian tersebut. Bobot skala
89
dalam soal terdiri atas 1 sampai dengan 5. Berikut contoh dari pembobotan pada
soal dari suatu aspek penilaian beserta checklistnya :
Nama Staff : Budi
Tabel 4.2 Contoh Aspek Penilaian : Keterampilan Umum Check In (Bobot : 40)
No Soal Bobot Checklist
1. Mengucapkan salam saat nasabah
masuk bank
5 V
2. Memeriksa keadaan sekelilingnya 2
3. Membukakan pintu sambil
memperhatikan nasabah
4 V
Tabel 4.3 Contoh Aspek Penilaian : Kedisiplinan (Bobot : 60)
No Soal Bobot Checklist
1. Tidak datang terlambat masuk
kantor
4
2. Tidak merokok 5 V
Dari hasil penilaian di atas, didapatkan bahwa 2 soal di cheklist yaitu pada
soal no.1 dan 3 dengan bobot masing-masing 5 dan 4, sedangkan untuk soal no.2
dengan bobot 2 tidak di checklist pada aspek penilaian Keterampilan Umum
Check In yang memiliki bobot 40 dari seluruh penilaian yang dilakukan.
Sedangkan, didapatkan bahwa 1 soal di checklist pada soal no.2 dengan bobot 5,
dan soal no.1 dengan bobot 4 tidak di checklist pada aspek penilaian Kedisiplinan
90
yang memiliki bobot 60 dari seluruh penilaian yang dilakukan. Pemberian tanda
checklist pada masing-masing soal mengindikasikan bahwa poin tersebut
dilakukan oleh staff sesuai dengan pengamatan supervisor yang menilai. Berikut
ini adalah formulasi perhitungan nilai untuk aspek penilaian :
TN = ( (( tcA/tsbA) x bA) + (( tcB/tsbB) x bB) + ..... )
Dimana,
TN = Total nilai
tcA = Total bobot dari seluruh soal yang dicheklist pada aspek penilaian A
tsbA = Total bobot dari seluruh soal pada aspek penilaian A
bA = Bobot pada aspek penilaian A
tcB = Total bobot dari seluruh soal yang dicheklist pada aspek penilaian B
tsbB = Total bobot dari seluruh soal pada aspek penilaian B
bB = Bobot pada aspek penilaian B
Maka, dari formulasi di atas, didapatkan total nilai untuk staff Budi yaitu sebagai
berikut :
TN = ( ( 9/11 ) x 40 ) + ( ( 5/9 ) x 60 )
= 32.7 + 33.3
= 66.0
91
Gambar 4.3 Contoh Penilaian dan hasil penilaian dalam sistem
92
2. Desain Logical System
Pada tahap ini penulis akan menunjukan usulan alur proses sistem yang
akan penulis buat dengan menunjukkan fungsi – fungsi sistem informasi pada
user secara logika dengan menggunakan tools DFD (Data Flow Diagram), mulai
dari Context Diagram sampai dengan DFD Level 4.
Gambar 4.4 Context Diagram
93
Gambar 4.5 DFD Level 0
94
Gambar 4.6 DFD Level 1 dari proses 1.0
Gambar 4.7 DFD Level 1 dari proses 2.0
95
Gambar 4.8 DFD Level 1 dari proses 3.0
Gambar 4.9 DFD Level 1 dari proses 4.0
96
Gambar 4.10 DFD Level 2 dari proses 1.1
Gambar 4.11 DFD Level 2 dari proses 1.2
97
Gambar 4.12 DFD Level 2 dari proses 1.3
Gambar 4.13 DFD Level 2 dari proses 1.4
98
Gambar 4.14 DFD Level 2 dari proses 3.1
Gambar 4.15 DFD Level 2 dari proses 3.2
99
Gambar 4.16 DFD Level 2 dari proses 3.3
Gambar 4.17 DFD Level 3 dari proses 1.4.1
100
Gambar 4.18 DFD Level 3 dari proses 1.4.2
Gambar 4.19 DFD Level 3 dari proses 1.4.3
101
Gambar 4.20 DFD Level 4 dari proses 1.4.3.1
Gambar 4.21 DFD Level 4 dari proses 1.4.3.2
102
4.2.2.2 Desain Data
Pada tahap ini penulis, penulis akan melakukan desain data. Ada beberapa
langkah yang penulis lakukan, yakni :
1. ERD (Entity Relationship Diagram)
Berikut ini adalah bagan ERD yang penulis usulkan :
103
Gambar 4.22 Rancangan ERD yang diusulkan
104
2. Transformasi ERD ke LRS (Logical Record Structure)
Setelah merancang ERD, penulis mentransformasikan bagan ERD tersebut
ke dalam bentuk LRS (Logical Record Structure) sebagai berikut :
Gambar 4.23 Transformasi ERD ke LRS yang diusulkan
3. Normalisasi
Ada beberapa langkah yang penulis lakukan dalam tahap normalisasi,
yakni menjadikan seluruh entity dalam ERD sebagai bentuk awal dari tabel-tabel
data. Berikut adalah bentuk awal dari seluruh entity yang diduga sebagai bentuk
tidak normal (Unnormalize form) :
a. Cabang : id + nama + alamat + telepon + fax + cp + email
b. Bagian : id + nama
105
c. Level : id + nama
d. User : id + nip + username + password + nama + jk +
email + level + id_cabang
e. Aspek : id + nama + min + id_bagian + id_parent
f. Grup : id + nama + id_aspek + seq
g. Soal : id + isi + id_aspek + id_bagian + id_group +
bobot + seq
h. Staff : id + nip + nama + jk + cabang + bagian +
supervisor
i. Penilaian : id + id_staff + id_user + id_aspek + nilai + tgl +
init
j. Delegasi : id + cabang + bagian + staff + total + tgl
k. Perusahaan : id + nama + alamat + bidang + telp + fax + web +
kontak + logo
Setelah menjadikan seluruh entity dalam ERD sebagai bentuk awal dari
tabel-tabel data yang diduga sebagai bentuk tidak normal (Unnormalize form).
Maka, langkah selanjutnya adalah melakukan uji normalisasi terhadap bentuk-
bentuk data tersebut, untuk memastikan apakah bentuk awal tabel data tersebut
sudah normal atau belum, jika belum maka akan dilakukan normalisasi sampai
dengan bentuk normal yang diinginkan, akan tetapi jika bentuk data tersebut
sudah normal, maka akan dicek pada bentuk normal keberapakah bentuk awal
data tersebut.
106
Berikut adalah uji normalisasi dari tabel-tabel data tersebut :
a. Uji normalisasi tabel Cabang
Struktur tabel/entitas/relasi CABANG sebelum uji normalisasi dalam
bentuk tidak normal adalah :
id : nama, alamat, telepon, fax, cp, email
Hasil pengujian :
- Relasi atau tabel CABANG di atas sudah 1NF, karena semua
atributnya adalah bernilai atomik, dan tidak ada elemen data yang
berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi CABANG setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id : nama, alamat, telepon, fax, cp, email
107
b. Uji normalisasi tabel Bagian
Struktur tabel/entitas/relasi BAGIAN sebelum uji normalisasi dalam
bentuk tidak normal adalah :
id : nama
Hasil pengujian :
- Relasi atau tabel BAGIAN di atas sudah 1NF, karena semua
atributnya adalah bernilai atomik, dan tidak ada elemen data yang
berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi BAGIAN setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id : nama
108
c. Uji normalisasi tabel Level
Struktur tabel/entitas/relasi LEVEL sebelum uji normalisasi dalam bentuk
tidak normal adalah :
id nama
Hasil pengujian :
- Relasi atau tabel LEVEL di atas sudah 1NF, karena semua atributnya
adalah bernilai atomik, dan tidak ada elemen data yang berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi DIVISIONS setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id nama
109
d. Uji normalisasi tabel User
Struktur tabel/entitas/relasi USER sebelum uji normalisasi dalam bentuk
tidak normal adalah :
id nip, username, password, nama, jk,
email, level, id_cabang
Hasil pengujian :
- Relasi atau tabel USER di atas sudah 1NF, karena semua atributnya
adalah bernilai atomik, dan tidak ada elemen data yang berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi USER setelah uji normalisasi sampai ke bentuk
normal ke-3 (3NF) adalah :
id nip, username, password, nama, jk,
email, level, id_cabang
110
e. Uji normalisasi tabel Aspek
Struktur tabel/entitas/relasi ASPEK sebelum uji normalisasi dalam bentuk
tidak normal adalah :
id nama, min, id_bagian
Hasil pengujian :
- Relasi atau tabel ASPEK di atas sudah 1NF, karena semua atributnya
adalah bernilai atomik, dan tidak ada elemen data yang berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi ASPEK setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id nama, min, id_bagian
111
f. Uji normalisasi tabel Grup
Struktur tabel/entitas/relasi GRUP sebelum uji normalisasi dalam bentuk
tidak normal adalah :
id nama, id_aspek, seq
- Relasi atau tabel GRUP di atas sudah 1NF, karena semua atributnya
adalah bernilai atomik, dan tidak ada elemen data yang berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi GRUP setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id nama, id_aspek, seq
112
g. Uji normalisasi tabel Soal
Struktur tabel/entitas/relasi SOAL sebelum uji normalisasi dalam bentuk
tidak normal adalah :
id isi, id_aspek, id_group, bobot, seq
- Relasi atau tabel SOAL di atas sudah 1NF, karena semua atributnya
adalah bernilai atomik, dan tidak ada elemen data yang berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi SOAL setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id isi, id_aspek, id_group, bobot, seq
113
h. Uji normalisasi tabel Staff
Struktur tabel/entitas/relasi STAFF sebelum uji normalisasi dalam bentuk
tidak normal adalah :
id nip, nama, jk, cabang, bagian, supervisor
- Relasi atau tabel STAFF di atas sudah 1NF, karena semua atributnya
adalah bernilai atomik, dan tidak ada elemen data yang berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi STAFF setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id nip, nama, jk, cabang, bagian, supervisor
114
i. Uji normalisasi tabel Penilaian
Struktur tabel/entitas/relasi PENILAIAN sebelum uji normalisasi dalam
bentuk tidak normal adalah :
id id_staff, id_user, id_aspek, nilai, tgl, init
- Relasi atau tabel PENILAIAN di atas sudah 1NF, karena semua
atributnya adalah bernilai atomik, dan tidak ada elemen data yang
berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi PENILAIAN setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id id_staff, id_user, id_aspek, nilai, tgl, init
115
j. Uji normalisasi tabel Delegasi
Struktur tabel/entitas/relasi DELEGASI sebelum uji normalisasi dalam
bentuk tidak normal adalah :
id staff, total, tgl
- Relasi atau tabel DELEGASI di atas sudah 1NF, karena semua
atributnya adalah bernilai atomik, dan tidak ada elemen data yang
berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id ).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id ).
Struktur tabel/entitas/relasi DELEGASI setelah uji normalisasi sampai ke
bentuk normal ke-3 (3NF) adalah :
id staff, total, tgl
116
k. Uji normalisasi tabel Perusahaan
Struktur tabel/entitas/relasi PERUSAHAAN sebelum uji normalisasi
dalam bentuk tidak normal adalah :
id nama, alamat, bidang, telp, fax, web, kontak, logo
- Relasi atau tabel PERUSAHAAN di atas sudah 1NF, karena semua
atributnya adalah bernilai atomik, dan tidak ada elemen data yang
berulang.
- Relasi di atas sudah 2NF, karena
• Sudah dalam bentuk 1NF, dan
• Setiap atribut yang bukan kunci bergantung secara fungsi pada
primary key (id).
- Relasi di atas telah memenuhi kriteria 3NF, karena salah satu atau
beberapa atribut non-primary key tidak saling memiliki
ketergantungan fungsional terhadap atribut non-primary key lainnya,
dengan kata lain semua atribut non-primary key dari relasi di atas
hanya memiliki ketergantungan fungsional (Functional Depedency)
terhadap primary key (id).
Struktur tabel/entitas/relasi PERUSAHAAN setelah uji normalisasi sampai
ke bentuk normal ke-3 (3NF) adalah :
id nama, alamat, bidang, telp, fax, web, kontak, logo
117
4. Kamus Data
Berdasarkan ERD dan LRS yang telah penulis rancang, didapatkan kamus
data struktur database yang akan digunakan sebagai berikut :
Table 4.4 Perusahaan
Field Type Not Null
Comment
Id (PK) Int(1) No Id perusahaan.
Nama Varchar(100) No Nama perusahaan
Alamat Text No Alamat perusahaan
Bidang Varchar(100) No Bidang usaha perusahaan
Telp Varchar(40) No No.telp perusahaan
Fax Varchar(40) No No. fax perusahaan
Web Varchar(50) No url website perusahaan
Kontak Varchar(100) No Kontak personal perusahaan
Logo Varchar(300) No Alamat file logo perusahaan
Tabel 4.5 Kamus Data Tabel User Field Type Not
NullComment
Id (PK) Int(11) No Id user
Nip Varchar (20) No NIP (No.Induk Pegawai) user
Username Varchar (30) No Username user
Password Varchar (200) No Password user
Nama Varchar (50) No Nama user
Jk Enum (‘L’,’P’) No Jenis Kelamin user
Email Varchar (100) No Email user
Level (FK) Int(11) No Level user
Id_cabang (FK) Int(11) No Id_cabang
118
Tabel 4.6 Kamus Data Tabel Level. Field Type Not
NullComment
Id (PK) Int (11) No Id level
Nama Varchar(100) No Nama level
Tabel 4.7 Kamus Data Tabel Staff
Field Type Not Null
Comment
Id (PK) Int(11) No Id staff
Nip Varchar (20) No NIP (No.Induk Pegawai) staff
Nama Varchar (50) No Nama staff
Jk Enum (‘L’,’P’) No Jenis Kelamin staff
Cabang (FK) Int(11) No Id Cabang staff
Bagian (FK) Int(11) No Id Bagian staff
Tabel 4.8 Kamus Data Tabel Bagian
Field Type Not Null
Comment
Id (PK) Int (11) No Id bagian
Nama Varchar(50) No Nama bagian
Tabel 4.9 Kamus Data Tabel Cabang
Field Type Not Null
Comment
Id (PK) Int (11) No Id cabang
Nama Varchar (50) No Nama kantor cabang
Alamat Text No Alamat kantor cabang
Telepon Varcahar(40) No No.telp kantor cabang
Fax Varchar(40) No No.Fax kantor cabang
Cp Varchar(100) No Contact Person kantor cabang
Email Varchar(100) No Email kantor cabang
119
Tabel 4.10 Kamus Data Tabel Aspek
Field Type Not Nul
l
Comment
Id (PK) Int (11) No Id aspek penilaian
Nama Varchar (50) No Nama aspek penilaian
Min Int(5) No Nilai minimum penilaian per aspek
Id_bagian (FK) Int(11) No Id bagian aspek penilaian
Id_parent (FK) Int(11) No Id parent aspek penilaian
Tabel 4.11 Kamus Data Tabel Grup
Field Type Not Null
Comment
Id (PK) Int (11) No Id grup soal
Nama Varchar (50) No Nama grup soal
Id_aspek (FK) Int (11) No Id aspek penilaian
Seq Int (11) No Sequential / urutan grup
Tabel 4.12 Kamus Data Tabel Soal
Field Type Not Null
Comment
Id (PK) Int (11) No Id soal
Isi Text No Isi soal/pertanyaan
Id_aspek (FK) Int (11) No Id aspek penilaian
Id_group (FK) Int (11) No Id grup soal
Seq Int (11) No Urutan soal
120
Tabel 4.13 Kamus Data Tabel Penilaian
Field Type Not Null
Comment
Id (PK) Int (11) No Id penilaian staff
Id_staff (FK) Int (11) No Id staff yang dinilai
Id_user (FK) Int (11) No Id user (supervisor) yang melakukan penilaian
Id_aspek (FK) Int (11) No Id aspek yang dinilai
Nilai Int (11) No Nilai staff dari aspek yang dinilai
Tgl Date time No Waktu penilaian
Init Int (5) No Status penilaian
Tabel 4.14 Kamus Data Tabel Delegasi
Field Type Not Nul
l
Comment
Id (PK) Int (11) No Id delegasi
Staff (FK) Int (11) No Id staff yang di delegasikan
Total Int (11) No Total nilai dari staff yang di delegasikan
Tgl Datetime No Waktu pendelegasian
121
4.2.2.3 Desain dan Alur Arsitektur Sistem
Gambar 4.24 Arsitektur Sistem
122
Alur proses arsitektur dari sistem job performance appraisal yang dibuat
dalam penelitian tugas akhir ini adalah sebagai berikut, sesuai dengan rancangan
desain arsitektur yang telah dibuat :
1. Alur proses untuk melihat dan melakukan penilaian staff oleh supervisor,
yaitu sebagai berikut :
a. Supervisor yang ingin melihat dan melakukan penilaian terhadap
staffnya, terlebih dahulu melakukan login terlebih dahulu ke dalam
sistem, jika memang belum melakukan proses login sesuai dengan
username dan password yang dimiliki.
b. Setelah melakukan login, supervisor memilih menu monitoring
checklist yang akan memanggil tampilan dari modul pilih_checklist
untuk memilih staff yang ingin dilakukan penilaian checklist.
c. Setelah memilih staff yang ingin dinilai, maka pilihan tersebut
akan digunakan sebagai masukan oleh fungsi get_monitoring() dari
modul monitoring untuk memproses hasil penilaian dari
monitoring checklist staff yang telah dipilih.
d. Hasil penilaian dari fungsi get_monitoring() akan ditampilkan
pada tampilan di modul monitoring_view, sehingga terlihat berapa
kali staff tersebut sudah dinilai beserta hasil penilaiannya, di
dalamnya terdapat menu “history_penilaian” dari penilaian yang
telah dilakukan dan menu “mulai menilai” staff jika belum selesai
dilakukan penilaian, yakni sebanyak 10 kali penilaian.
123
e. Jika supervisor memilih menu history dari salah satu penilaian
yang telah dilakukan, maka akan memanggil modul tampilan
history_penilaian yang merupakan detail atau history penilaian
yang dilakukan, yang mana hasil dari detail atau history penilaian
tersebut didapatkan dari hasil pemanggilan fungsi get_history() di
modul monitoring.
f. Jika supervisor memilih menu untuk “mulai menilai”, maka akan
memanggil tampilan dari modul penilaian, akan tampil soal-soal
penilaian terhadap staff yang ingin dinilai. Setelah menchecklist
parameter atau soal-soal pada penilaian, supervisor akan
melakukan submit penilaian. Data soal-soal yang dichecklist
tersebut akan dikirimkan ke fungsi beri_nilai() pada modul
monitoring sebagai masukan penilaian terhadap staff tersebut.
2. Alur proses untuk melihat logbook penilaian staff oleh supervisor atau
branch manager, yaitu sebagai berikut :
a. Supervisor atau branch manager yang ingin melihat dan
melakukan penilaian terhadap staffnya, terlebih dahulu melakukan
login terlebih dahulu ke dalam sistem, jika memang belum
melakukan proses login sesuai dengan username dan password
yang dimiliki.
b. Setelah melakukan login, supervisor atau branch manager memilih
menu pilih_logbook untuk memilih staff yang ingin dilihat logbook
penilaiannya.
124
c. Pilihan staff pada modul tampilan pilih_logbook akan digunakan
sebagai masukan oleh fungsi get_logbook() yang terdapat di modul
logbook untuk mendapatkan logbook penilaian dari staff yang
dipilih tersebut.
d. Hasil dari penggunaan fungsi get_logbook() yakni logbook
penilaian staff akan ditampilkan pada modul tampilan
logbook_view.
3. Alur proses untuk melihat hasil penilaian aspek terbaik di cabang oleh
branch manager, yaitu sebagai berikut :
a. Branch manager yang ingin melihat aspek penilaian terbaik dari
para staff di kantor cabangnya yang didapatkan setelah setiap
supervisor melakuan penilaian terhadap para staffnya, terlebih
dahulu melakukan login terlebih dahulu ke dalam sistem, jika
memang belum melakukan proses login sesuai dengan username
dan password yang dimiliki.
b. Setelah melakukan login, branch manager memilih menu
pilih_best_aspek_cabang untuk memilih aspek penilaian yang
ingin dilihat urutan staff dengan nilai tertinggi pada aspek
penilaian yang dipilih.
c. Aspek penilaian yang dipilih oleh branch manager di modul
tampilan pilih_best_aspek_cabang, akan digunakan sebagai
masukkan pada fungsi get_best_aspek_cabang() yang terdapat
pada modul logbook, dan akan diproses oleh fungsi tersebut untuk
125
menghasilkan urutan staff berdasarkan nilai tertinggi pada aspek
penilaian yang dipilih.
d. Hasil dari fungsi get_best_aspek_cabang() akan ditampilkan pada
modul best_aspek_cabang_view.
4. Alur proses untuk melakukan approval atau pengiriman delegasi oleh
branch manager, yaitu sebagai berikut :
a. Branch manager yang ingin melakukan approval atau pengiriman
delegasi staffnya yang memiliki nilai tertinggi di kantor
cabangnya, terlebih dahulu melakukan login terlebih dahulu ke
dalam sistem, jika memang belum melakukan proses login sesuai
dengan username dan password yang dimiliki.
b. Setelah melakukan login, branch manager memilih menu
lihat_approval untuk melihat staff dengan total nilai tertinggi di
kantor cabangnya pada tiap-tiap bagian sekaligus untuk melakukan
approval atau pengiriman delegasi staffnya yang memiliki total
nilai tertinggi tersebut.
c. Pada saat memilih menu lihat_approval, modul tampilan
lihat_approval akan memanggil fungsi get_approval() yang
terdapat pada modul approval yang akan menghasilkan staff
terbaik dengan total nilai tertinggi di kantor cabangnya pada tiap-
tiap bagian. Hasil tersebut akan ditampilkan pada modul tampilan
lihat_approval.
126
d. Setelah memastikan pemilihan staff terbaik dengan total nilai
tertinggi dari seluruh aspek penilaian yang dinilai pada tiap-tiap
bagian, branch manager lalu melakukan submit pengiriman
delegasi ke kantor pusat, yang nantinya akan digunakan sebagai
perwakilan atau delegasi untuk memperebutkan staff terbaik dari
seluruh kantor cabang. Dalam melakukan submit, secara otomatis
akan melakukan pemanggilan fungsi save_delegasi() yang terdapat
pada modul approval. Dan hasil submit tersebut akan digunakan
sebagai masukkan oleh fungsi save_delegasi() untuk melakukan
pengiriman delegasi ke kantor pusat melalui sistem yang tersedia.
5. Alur proses untuk melihat laporan pengiriman delegasi atau approval
tercepat oleh head officer, yaitu sebagai berikut :
a. Head officer yang ingin melihat laporan pengiriman delegasi atau
approval tercepat oleh masing-masing kantor cabang, terlebih
dahulu melakukan login terlebih dahulu ke dalam sistem, jika
memang belum melakukan proses login sesuai dengan username
dan password yang dimiliki.
b. Setelah melakukan login, head officer memilih menu
pilih_app_fastest untuk memilih periode bulan yang ingin dilihat
laporan pengiriman delegasi atau approval tercepat.
c. Periode bulan yang dipilih oleh head officer di modul tampilan
pilih_app_fastest, akan digunakan sebagai masukkan pada fungsi
get_app_fastest() yang terdapat pada modul ho, dan akan diproses
127
oleh fungsi tersebut untuk menghasilkan urutan kantor cabang
berdasarkan waktu tercepat pengiriman delegasi pada periode
bulan yang dipilih.
d. Hasil dari fungsi get_app_fastest() akan ditampilkan pada modul
app_fastest_view.
6. Alur proses untuk melihat laporan staff terbaik dari seluruh cabang tiap
bulan per bagian oleh head officer, yaitu sebagai berikut :
a. Head officer yang ingin melihat laporan staff terbaik dari masing-
masing delegasi yang terpilih di kantor cabangnya, terlebih dahulu
melakukan login terlebih dahulu ke dalam sistem, jika memang
belum melakukan proses login sesuai dengan username dan
password yang dimiliki.
b. Setelah melakukan login, head officer memilih menu
pilih_app_highest untuk memilih periode bulan yang ingin dilihat
laporan staff terbaik dengan total nilai tertinggi dari seluruh aspek
penilaian yang dinilai untuk seluruh kantor cabang per bulan.
c. Periode bulan yang dipilih oleh head officer di modul tampilan
pilih_app_highest, akan digunakan sebagai masukkan pada fungsi
get_app_highest() yang terdapat pada modul ho, dan akan diproses
oleh fungsi tersebut untuk menghasilkan urutan staff terbaik dari
seluruh kantor cabang pada tiap-tiap bagian sesuai periode bulan
yang dipilih.
128
d. Hasil dari fungsi get_app_highest() akan ditampilkan pada modul
app_highest_view.
7. Alur proses untuk melihat laporan staff terbaik dari seluruh kantor cabang
tiap tahun per bagian oleh head officer, yaitu sebagai berikut :
a. Head officer yang ingin melihat laporan staff terbaik dari masing-
masing delegasi yang terpilih di kantor cabangnya tiap tahun per
bagian, terlebih dahulu melakukan login terlebih dahulu ke dalam
sistem, jika memang belum melakukan proses login sesuai dengan
username dan password yang dimiliki.
b. Setelah melakukan login, head officer memilih menu
pilih_periodic_year untuk memilih periode tahun yang ingin
dilihat laporan staff terbaik dengan total nilai tertinggi dari seluruh
aspek penilaian yang dinilai untuk seluruh kantor cabang per tahun.
c. Periode tahun yang dipilih oleh head officer di modul tampilan
pilih_periodic_year, akan digunakan sebagai masukkan pada
fungsi get_periodic_year() yang terdapat pada modul ho, dan akan
diproses oleh fungsi tersebut untuk menghasilkan urutan staff
terbaik dari seluruh kantor cabang pada tiap-tiap bagian sesuai
periode tahun yang dipilih.
d. Hasil dari fungsi get_periodic_year() akan ditampilkan pada modul
periodic_year_view.
8. Alur proses untuk melihat laporan aspek terbaik tiap bagian per bulan dari
seluruh delegasi oleh head officer, yaitu sebagai berikut :
129
a. Head officer yang ingin melihat laporan aspek terbaik tiap bagian
per bulan dari seluruh delegasi, terlebih dahulu melakukan login
terlebih dahulu ke dalam sistem, jika memang belum melakukan
proses login sesuai dengan username dan password yang dimiliki.
b. Setelah melakukan login, head officer memilih menu
pilih_aspek_terbaik untuk memilih periode bulan dan aspek
penilaian yang ingin dilihat laporan aspek terbaik tiap bagian per
bulan dari seluruh delegasi.
c. Periode bulan dan aspek penilaian yang dipilih oleh head officer di
modul tampilan pilih_aspek_terbaik, akan digunakan sebagai
masukkan pada fungsi get_aspek_terbaik() yang terdapat pada
modul ho, dan akan diproses oleh fungsi tersebut untuk
menghasilkan laporan aspek terbaik tiap bagian per bulan dari
seluruh delegasi sesuai periode bulan dan aspek penilaian yang
dipilih.
d. Hasil dari fungsi get_aspek_terbaik() akan ditampilkan pada modul
aspek_terbaik_view.
4.2.2.4 Desain Input / Output
1. Desain Input
Input (masukan) pada sistem yang penulis rancang terdiri dari:
a) input data perusahaan klien
b) input data service committee / head officer
130
c) input data kantor cabang
d) input data PIC kantor cabang
e) input data bagian
f) input data aspek penilaian
g) input data grup soal
h) input data soal
i) input data staff
j) input penilaian staff per aspek
2. Desain Output
Rancangan output (keluaran) yang dihasilkan sesuai dengan proses dan
kebutuhan sistem. Output yang penulis rancang terdiri dari :
a) laporan pengiriman / approval delegasi tercepat antar cabang
b) laporan staff terbaik dari seluruh cabang tiap bagian per bulan
c) laporan staff terbaik dari seluruh cabang tiap bagian per tahun
d) laporan staff terbaik dari seluruh cabang tiap aspek penilaian per bulan
131
4.2.2.5 Desain Antarmuka (Inteface)
Secara umum, kerangka desain antarmuka adalah sebagai berikut :
Gambar 4.25 Kerangka Umum Desain Antarmuka
Tahapan desain antarmuka yang akan penulis usulkan terbagi menjadi
empat menu tampilan yang dipengaruhi hak aksesnya, yaitu :
1. Halaman Administrator
Pada halaman ini administrator mempunyai hak akses untuk mengelola
data – data sebagai berikut :
- Mengelola Data Perusahaan Klien :
Administrator mempunyai hak akses untuk masukkan maupun
mengubah data profil perusahaan klien / kantor pusat, termasuk di
dalamnya logo perusahaan.
- Mengelola Data Head Officer
Administrator mempunyai hak akses untuk menambah data head
officer / service committee, memodifikasi, menghapus, melihat data
head officer / service committee.
132
- Mengelola Data Kantor Cabang
Administrator mempunyai hak akses untuk menambah data kantor
cabang, memodifikasi, menghapus, melihat data kantor cabang.
- Mengelola Data PIC dari Kantor Cabang
Administrator mempunyai hak akses untuk menambah data PIC
(Branch Manager dan Supervisor) dari Kantor Cabang, memodifikasi,
menghapus, melihat data PIC (Branch Manager dan Supervisor) dari
Kantor Cabang.
- Mengelola Data Bagian
Administrator mempunyai hak akses untuk menambah data bagian,
memodifikasi, menghapus, melihat data bagian.
- Mengelola Data Aspek Penilaian
Administrator mempunyai hak akses untuk menambah data aspek
penilaian, memodifikasi, menghapus, melihat data aspek penilaian.
- Mengelola Data Grup Soal
Administrator mempunyai hak akses untuk menambah data grup soal
memodifikasi, menghapus, melihat data grup soal.
- Mengelola Data Soal
Administrator mempunyai hak akses untuk menambah data soal
memodifikasi, menghapus, melihat data soal.
- Mengubah Data Profil Pribadi
Administrator mempunyai hak akses untuk memodifikasi data profil
pribadi.
133
- Ganti Password
Administrator mempunyai hak akses untuk mengganti passwordnya
sendiri.
2. Halaman Supervisor
Pada halaman ini Supervisor mempunyai hak akses untuk mengelola
berbagai data sebagai berikut :
- Mengelola Data Staff
Supervisor mempunyai hak akses untuk menambah data staff,
memodifikasi, menghapus, melihat data staff.
- Melakukan Penilaian
Supervisor mempunyai hak akses untuk menilai kinerja staffnya.
- Melihat LogBook Penilaian
Supervisor melihat detail penilaian staffnya.
- Mengubah Data Profil Pribadi
Supervisor mempunyai hak akses untuk memodifikasi data profil
pribadi.
- Ganti Password
Supervisor mempunyai hak akses untuk mengganti passwordnya
sendiri.
134
3. Halaman Branch Manager
Pada halaman ini Branch Manager mempunyai hak akses untuk
melakukan hal-hal berikut :
- Melihat LogBook Penilaian
Branch Manager mempunyai hak akses untuk melihat penilaian para staff
di kantor cabangnya yang dilakuan oleh supervisor.
- Mengirim / Melakukan Approval Delegasi Staff Terbaik di Kantor Cabang
Branch Manager mempunyai hak akses untuk melakukan approval atau
mengirim delegasi staff terbaik dari kantor cabangnya yang telah
dilakukan penilaian oleh supervisor.
- Melihat Staff Terbaik
Branch Manager mempunyai hak akses untuk melihat staff terbaik di
kantor cabangnya berdasarkan aspek penilaian.
- Mengubah Data Profil Pribadi
Branch Manager mempunyai hak akses untuk memodifikasi data profil
pribadi.
- Ganti Password
Branch Manager mempunyai hak akses untuk mengganti passwordnya
sendiri.
135
4. Halaman Head Officer
Pada halaman ini Head Officer mempunyai hak akses untuk melakukan
hal-hal berikut :
- Melihat Laporan Delegasi Tercepat
Head Officer mempunyai hak akses untuk melihat laporan pengiriman /
approval delegasi tercepat atau status pengiriman delegasi antar cabang.
- Melihat Laporan Staff Terbaik
Head Officer mempunyai hak akses untuk melihat laporan staff terbaik
tiap bagian antar cabang per bulan.
- Melihat Laporan Staff Terbaik Tiap Tahun
Head Officer mempunyai hak akses untuk melihat laporan staff terbaik
tiap bagian antar cabang per tahun.
- Melihat Laporan Staff Terbaik Per Aspek Tiap Bulan
Head Officer mempunyai hak akses untuk melihat laporan staff terbaik per
aspek penilaian tiap bulan.
- Mengubah Data Profil Pribadi
Head Officer mempunyai hak akses untuk memodifikasi data profil
pribadi.
- Ganti Password
Head Officer mempunyai hak akses untuk mengganti passwordnya
sendiri.
Penulis melampirkan desain-desain antarmuka pada lampiran E.
136
4.2.2.6 STD (State Transition Diagram)
STD adalah sebuah model tingkah laku yang bertumpu pada definisi dari
serangkaian keadaan sistem. Seperti halnya desain antarmuka, STD pun penulis
bagi menjadi empat berdasarkan hak akses pengguna dalam sistem ini.
1. STD Administrator
Berikut ini adalah bagan STD dari Administrator :
Gambar 4.26 STD Administrator
137
2. STD Supervisor
Berikut ini adalah bagan STD dari Supervisor :
Gambar 4.27 STD Supervisor
3. STD Branch Manager
Berikut ini adalah bagan STD dari Branch Manager :
Gambar 4.28 STD Branch Manager
138
4. STD Head Officer
Berikut ini adalah bagan STD dari Head Officer :
Gambar 4.29 STD Head Officer
4.2.3 Pengkodean
Setelah melakukan analisis sistem dan perancangan sistem secara rinci.
Tiba saatnya, sistem untuk diimplementasikan (pembuatan kode program).
Pengkodean adalah proses menterjemahkan rancangan yang telah dibuat ke dalam
bentuk bahasa yang bisa dibaca oleh mesin yakni menggunakan PHP 5 sebagai
bahasa pemrogramannya dan MySQL sebagai database server untuk menyimpan
datanya serta CI / Codeigniter sebagai PHP frameworknya.
139
Penulis memilih menggunakan PHP 5 dan MySQL dalam pengembangan
sistem job performance appraisal karena PT.Learning Resources belum memiliki
dedicated server, dan masih menggunakan web hosting dalam
mengimplementasikan sistem ini, serta tidak semua klien dari PT.Learning
Resources ini memiliki dedicated server juga, sehingga yang paling
memungkinkan untuk menerapkan sistem job performance appraisal adalah
mengembangkannya dengan development tools tersebut. Berbeda jika penulis
menggunakan bahasa pemrograman lain semisal Java atau C# maupun database
server lain semisal Oracle atau SQL Server, tentunya membutuhkan dedicated
server untuk implementasinya.
Dalam pengembangan sistem ini, tak lupa penulis juga menggunakan
framework untuk mempercepat proses pembuatannya dan menjadikan sistem ini
lebih kokoh dan terstruktur. Penulis menjatuhkan pilihan pada CodeIgniter
sebagai PHP Frameworknya, karena CodeIgniter sangat kompatibel dengan
berbagai web hosting yang ada lantaran memiliki karakter yakni zero
configuration. Berbeda dengan framework lain semisal Zend atau Symfony yang
membutuhkan konfigurasi tambahan pada file konfigurasi php.ini ataupun
httpd.conf yang mana pada web hosting tidak diperkenankan melakukan
perubahan konfigurasi pada kedua file konfigurasi tersebut, kecuali jika kita
menggunakan VPS (Virtual Private Server) yang mana layaknya memiliki
dedicated server dan tentunya biayanya juga cukup besar. Penulis akan
menunjukkan konfigurasi minimum yang dibutuhkan jika kita menggunakan
framework Symfony, berdasarkan dokumentasi pada situs resmi Symfony
140
(http://www.symfony-project.org), untuk dapat menggunakan Symfony, kita harus
memastikan beberapa extensions telah terinstall dan beberapa value konfigurasi
harus diubah sesuai dengan minimum requirements pada framework Symfony,
berikut screenshoot dari konfigurasi yang dibutuhkan untuk dapat menjalankan
Symfony :
Gambar 4.30 Konfigurasi Minimum Framework Symfony
Dari gambar di atas, dapat terlihat bahwa ada beberapa settingan yang
FAILED, lantaran konfigurasi pada web hosting tidak sesuai dengan kebutuhan
minimum dari framework Symfony, tentunya ini menyebabkan aplikasi yang
dikembangkan dengan Symfony tidak akan berjalan pada web hosting yang
141
bersangkutan. Karena secara default, semisal extension PHP Accelerator (APC)
pada web hosting dracoola dan eazysmart tidak di install.
Begitu pula dengan framework Zend, berdasarkan buku Beginning Zend
Framework terbitan Appress, untuk dapat menggunakan framework Zend, kita
harus memastikan bahwa modul mod_rewrite harus diaktifkan, dan konfigurasi
virtual host harus diubah dan disesuaikan untuk aplikasi berbasis framework Zend
yang kita gunakan yang terdapat pada file konfigurasi httpd.conf. Biasanya pada
beberapa web hosting (yakni dalam hal ini web hosting eazysmart dan dracoola
untuk mewakili sebagian besar web hosting yang ada), modul mod_rewrite tidak
diaktifkan, yakni pada file konfigurasi httpd.conf kodenya adalah sebagai berikut :
#LoadModule rewrite_module modules/mod_rewrite.so
Untuk mengaktifkannya kodenya harus diubah menjadi sebagai berikut :
LoadModule rewrite_module modules/mod_rewrite.so
Dan jika sudah diubah, web server harus direstart, agar modul tersebut
dapat diload dan dijalankan. Sedangkan, seperti telah penulis jelaskan bahwa
sebagian besar web hosting tidak memberikan fasilitas dan wewenang untuk
mengubah file konfigurasi php.ini maupun httpd.conf, apalagi untuk melakukan
restart pada web server. Tentunya penggunaan framework semisal Zend atau
Symfony akan menyebabkan aplikasi yang dikembangkan tidak memiliki
kompatibilitas yang baik terhadap sebagian besar web hosting yang ada dan
mengakibatkan aplikasi tidak akan dapat berjalan sama sekali pada web hosting.
Namun, jika kita menggunakan framework CodeIgniter / CI, masalah-masalah
terkait kompatibilitas terhadap web hosting tidak akan terjadi, karena framework
142
CI secara default tidak membutuhkan perubahan konfigurasi pada file konfigurasi
php.ini ataupun httpd.conf.
Versi CodeIgniter yang digunakan penulis adalah 1.7.2, dan saat penulis
menulis penelitian ini versi tersebut merupakan rilis yang terbaru. Sebelum dapat
menggunakan CodeIgniter ini, ada beberapa langkah yang harus dilakukan agar
seluruh fungsi, helper dan library yang dibutuhkan bisa berjalan dengan baik.
Ada beberapa fungsi helper yang penulis gunakan dalam pengembangan sistem
ini, yaitu url dan form helper, sedangkan library yang digunakan adalah library
session dan database.
Library session mengizinkan developer untuk mengelola kondisi
pengguna dan melacak aktivitas mereka ketika menjelajah di dalam sistem.
Semua informasi session untuk masing-masing pengguna disimpan dalam data
yang terenkripsi di cookie. Dan informasi session tersebut juga bisa disimpan di
dalam database untuk meningkatkan keamanan dan kemudahan pengelolaan
session, tetapi dengan menambahkan konfigurasi dan membuat tabel di database
untuk menyimpan informasi session. Sedangkan, library database digunakan agar
CodeIgniter bisa mengelola seluruh tabel yang ada di database yang digunakan
dalam sistem.
Untuk mengaktifkan kedua library tersebut, perlu melakukan perubahan
konfigurasi pada file autoload.php yang terletak di dalam folder
system/application/config.
Yakni, ubahlah kode berikut :
$autoload['libraries'] = array();
143
Menjadi seperti berikut :
$autoload['libraries'] = array('database','session');
Dengan melakukan perubahan konfigurasi tersebut, secara otomatis kedua
library tersebut bisa langsung digunakan dalam pengkodean menggunakan
framework CodeIgniter. Contoh kode untuk mengakses seluruh data yang ada di
suatu tabel menggunakan library database dengan fungsi get adalah sebagai
berikut :
$this->db->get($nama_tabel);
Dan kita pun juga bisa memanfaatkan fungsi yang ada di library session,
semisal untuk melakukan penyimpanan dan pengambilan informasi session
pengguna.
Contoh kode untuk menyimpan informasi session menggunakan fungsi
set_userdata yang terdapat pada library session adalah sebagai berikut :
$newdata = array( 'username' => 'john', 'email' =>
$this->session->set_userdata($newdata);
Agar informasi session tersimpan di dalam database, perlu
perubahan konfigurasi pada file config.php yang terletak di dalam folder
system/application/config.
Yakni, ubahlah kode berikut :
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
Menjadi seperti berikut :
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
144
Untuk $config['sess_table_name'] disesuaikan dengan nama tabel yang
akan digunakan sebagai tabel untuk menyimpan informasi session. Kita bisa
merubah jika kita ingin menggunakan tabel lain untuk menyimpan informasi
session. Jika kita belum memiliki tabel ci_sessions untuk menyimpan informasi
session, kita terlebih dahulu membuat tabel tersebut, berikut kode SQL untuk
membuat tabel ci_sessions yang sudah disesuaikan untuk dapat menyimpan
informasi session :
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id)
);
Dan contoh kode untuk mengambil informasi session yang telah
disimpan sebelumnya menggunakan fungsi userdata yang terdapat pada
library session adalah sebagai berikut :
echo “Username is ”.$this->session->userdata(‘username’);
Sama halnya dengan cara mengaktifkan secara otomatis kedua library
sebelumnya, untuk mengaktifkan kedua helper yakni url dan form helper, kita
perlu mengubah konfigurasi yang ada pada file autoload.php yang terletak di
dalam folder system/application/config.
Yakni, ubahlah kode berikut :
$autoload['helper'] = array();
Menjadi seperti berikut :
145
$autoload['helper'] = array('url','form');
Setelah mengaktifkan kedua helper tersebut, berarti secara otomatis kedua
helper bisa langsung digunakan dalam pengkodean tanpa perlu me-load ulang
kedua helper tersebut.
Url helper digunakan untuk membantu developer untuk membuat link, dan
form helper membantu developer untuk membuat elemen form yang lebih aman
daripada form yang biasa karena mampu menangani serangan SQL Injection
melalui form input.
Contoh kode untuk membuat link dengan memanfaatkan fungsi yang ada
pada url helper yaitu anchor adalah sebagai berikut :
echo anchor(’http://mail.google.com’,’Google Mail’);
Maka, kode di atas tersebut sama halnya dengan kode HTML sebagai
berikut :
<a href=’http://mail.google.com’>Google Mail</a>
Sedangkan, contoh kode untuk membuat form input dengan
memanfaatkan fungsi yang ada pada form helper yaitu form_input adalah sebagai
berikut :
echo form_input(’username’,’John’);
Maka, kode di atas tersebut sama halnya dengan kode HTML sebagai
berikut :
<input type=’text’ name=’username’ value=’John’ />
Untuk melindungi dari serangan XSS, kita perlu melakukan perubahan
konfigurasi pada file config.php yang terletak di dalam folder
system/application/config.
146
Yakni, ubahlah kode berikut :
$config['global_xss_filtering'] = FALSE;
Menjadi seperti berikut :
$config['global_xss_filtering'] = TRUE;
Dan penulis juga mengkonfigurasi base_url atau url dasar untuk sistem,
sehingga memudahkan proses development selanjutnya, yakni pada baris berikut
pada file yang sama, berikut contoh konfigurasi yang penulis gunakan :
$config['base_url'] = "http://localhost/reinforcement";
Agar bisa terkoneksi dengan database, perlu perubahan konfigurasi pada
file database.php yang terletak di dalam folder system/application/config.
Yakni ubahlah beberapa parameter berikut dengan memberikan value sesuai
dengan konfigurasi sistem yang dimiliki, $db[‘default’][‘hostname’] dengan
value nama host yang terdapat database server yang ingin dikoneksikan,
$db['default']['username'] dengan memberikan value username di database
server, $db['default'][‘password’] dengan memberikan value password dari
username tersebut, dan $db['default']['database'] dengan value nama database
yang ingin digunakan pada database server, dan $db['default']['dbdriver']
dengan value jenis driver yang disesuaikan dengan database server yang ingin
digunakan. Berikut contoh konfigurasi yang penulis gunakan :
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "reinforcement";
$db['default']['dbdriver'] = "mysql";
147
Setelah melakukan seluruh konfigurasi di atas, secara umum kita sudah
dapat melanjutkan proses pengkodean di controller maupun view. Dalam
penelitian ini, penulis hanya menggunakan controller dan view saja, dengan tidak
menggunakan model dalam pengembangan sistem. Hal ini disebabkan penulis
sudah membuat dan menggunakan generic functions untuk melakukan akses
database dengan mudah seperti halnya di saat kita menggunakan model. Seluruh
generic functions penulis buat dalam satu file yakni fungsi.php yang terletak di
controller atau di dalam folder system/application/controllers. Pertama, kita
melakukan include file fungsi.php di seluruh file controller yang digunakannya,
lalu, untuk dapat menggunakan generic functions tersebut, seluruh class di
controller melakukan extends ke class Fungsi di dalam fungsi.php yang berisi
generic functions tersebut dan melakukan inisialisasi constructor ke dirinya
sendiri dan parent class (class Fungsi). Dengan melakukan hal ini, berbagai
generic functions tersebut bisa digunakan dengan mudah, terutama di saat
menggunakannya untuk membuat CRUD (Create Read Update and Delete).
Berikut contoh kode untuk melakukan inisialisasi constructor ke class Bagian dan
Fungsi oleh class Bagian :
//file bagian.php
<?php
include "fungsi.php";
class Bagian extends Fungsi{
private $max;
private $action;
function __construct(){
$table = "bagian";
148
$pk = "id";
$this->action = "bagian";
$this->max = 10;
$session = 2;
$role = array(1,2);
$this->init($table,$pk);
}
Sebagai contoh, untuk mengambil seluruh data di suatu tabel dalam
database, penulis membuat fungsi tersendiri yang diadopsi dari fungsi yang ada di
CodeIgniter yaitu get, namun jika sudah melakukan inisialisasi constructor, kita
tidak perlu lagi memberikan parameter nama tabel yang ingin diambil seluruh
datanya. Perhatikan contoh kode berikut :
$this->getAllData(); //mengambil semua data di tabel bagian
Akan sama dengan kode berikut :
$this->db->get(’bagian’);
Masih ada beberapa generic functions yang bisa digunakan dalam proses
pengkodean, dan penulis merasakan kemudahan dibandingkan penggunaan secara
murni dari fungsi-fungsi yang telah disediakan CodeIgniter tanpa
memodifikasinya. Dan seluruh kode program telah penulis lampirkan pada
Lampiran F.
4.2.4 Uji Coba
Pada tahap ini dilakukan pengujian sistem yakni terhadap masing-masing
fitur dan fungsi yang tersedia untuk mengetahui apakah aplikasi dapat bekerja
dengan semestinya. Ujicoba dilakukan 2 kali, yakni pertama, pengujian sistem
149
secara mandiri, dan kedua, pengujian sistem oleh pihak user yakni Bapak Munir
Ahmad dan Laksmi Indrawati dari PT. Learning Resources dengan melakukan
testing mengenai apakah fitur-fitur aplikasi sudah berjalan dengan semestinya
atau tidak. Dalam ujicoba mandiri maupun oleh pihak user ini penulis
menggunakan metode black box testing yaitu ujicoba menggunakan metode
pengujian logika program dengan contoh kasus atau masalah yang diajukan.
(Hasil testing terlampir pada Lampiran D).
4.2.5 Pemeliharaan
Tahap terakhir dalam metode pengembangan sistem menggunakan model
Waterfall adalah pemeliharaan (maintenance), yaitu setelah sistem
diimplementasikan dan diuji serta dicoba untuk memastikan bahwa sistem telah
terbebas dari bug. Pemeliharaan ini dilakukan terhadap sistem supaya jika
sewaktu-waktu terjadi kemungkinan kesalahan pada sistem di saat sistem sudah
berjalan, bisa ditangani dengan cepat dan tepat, sehingga tidak menyebabkan
terhambatnya penggunaan sistem oleh end user. Namun, sesuai dengan batasan
permasalahan yang penulis buat, yakni tidak menyertakan pemeliharaan sistem,
maka penulis tidak bisa membahasnya lebih jauh pada tahap pemeliharaan ini.
150
BAB V
PENUTUP
5.1 Kesimpulan
Kesimpulan dari hasil penelitian yang telah penulis lakukan, adalah
sebagai berikut:
1. Sistem job performance appraisal dengan metode checklist dapat bekerja
dengan baik menurut pihak user yakni Bapak Munir Ahmad dan Laksmi
Indrawati dari PT.Learning Resources sebagai alat bantu bagi PT.
Learning Resources kepada perusahaan kliennya yang ingin melakukan
penilaian kinerja menggunakan metode yang objektif kepada para staffnya
secara efektif dan efisien.
2. Penulis telah dapat mengembangkan sebuah aplikasi berbasis web yang
memiliki kompatibilitas yang baik terhadap sebagian besar web hosting
yang ada dengan menggunakan CI Framework, sehingga permasalahan
tentang infrastruktur yang belum dimiliki saat ini semisal dedicated server
bisa diatasi. Dan penggunaan CI Framework membuat aplikasi yang
dikembangkan menjadi lebih terstruktur, sehingga mudah dilakukan
maintenance.
151
5.2 Saran
Saran yang hendak penulis sampaikan kepada pembaca atau mahasiswa
lain yaitu sebagai berikut :
1. Diperlukan fitur tambahan fitur penilaian lain semisal penilaian staff
berdasarkan target pekerjaan.
2. Adanya fitur penilaian secara offline, dan sinkronisasi data penilaian ke
kantor pusat.
152
DAFTAR PUSTAKA
L.Mathis, Robert, Human Resource Management, Salemba Empat, 2009
Whitten, Jeffrey L. 2004. System Analysis & Design Methods : Sixth Edision.
New York: McGraw-Hill.
Upton, David, CodeIgniter for Rapid PHP Application Development, PACKT
Publishing, 2007
Al Fatta, Hanif, Analisis & Perancangan Sistem Informasi, Andi ; 2007
Al-Bahra Bin Ladjamudin, Analisis dan Desain Sistem Informasi, Graha Ilmu,
Yogyakarta, 2005.
Pressman, Roger S, 2002, Software Enginering A Practitioner’s Approach Sixth
Edition, Canada, McGraw.Hill.
Jogiyanto, 2005, Analisis dan Desain sistem Informasi : Pendekatan Terstruktur,
Penerbit Andi, Yogyakarta
Satzinger, John W., System Analysis and Design Method In A Changing World
Fifth Edition, 2009, Course Technology, Boston USA.
Anharku, Flowchart, Ilmu Komputer.com, 2009
Basuki Pribadi, Awan, Membangun Web Berbasis PHP dengan framework
CodeIgniter, Loko Media, 2010
http://www.codeigniter.com diakses pada 5 Juli 2010 pukul 15.30 WIB
http://www.symfony-project.org diakses pada 3 Juli 2010 pukul 13.00 WIB
http://ronawajah.wordpress.com/2009/08/08/merancang-sistem-penilaian-kinerja-
karyawan/ diakses pada 2 Juli 2010 pukul 17.00 WIB
SKRIPSI
PENGEMBANGAN SISTEM JOB PERFORMANCE APPRAISAL
DENGAN METODE CHECKLIST MENGGUNAKAN CI FRAMEWORK
(Studi Kasus : PT. Learning Resources)
Oleh :
Muhammad Tri Wibowo
105091002845
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI
SYARIF HIDAYATULLAH
JAKARTA
2010
i
PENGEMBANGAN SISTEM JOB PERFORMANCE APPRAISAL
DENGAN METODE CHECKLIST MENGGUNAKAN CI FRAMEWORK
(Studi Kasus : PT. Learning Resources)
Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar
Sarjana Komputer Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh
Muhammad Tri Wibowo
105091002845
Menyetujui,
Pembimbing 1
Imam M Shofi, MT NIP. 150 408 905
Pembimbing 2
Slamet Aji Pamungkas, M.Eng NIP. 19670618 199301 1 001
Mengetahui, Ketua Program Studi Teknik Informatika
Yusuf Durrachman, M.Sc, M.IT NIP. 150 378 017
ii
PENGESAHAN UJIAN Skripsi yang berjudul “Pengembangan Sistem Job Performance Appraisal dengan metode checklist menggunakan CI Framework, Studi Kasus : PT. Learning Resources”, telah diuji dan dinyatakan lulus dalam Sidang Munaqosah Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, pada hari Jum’at tanggal 9 Agustus 2010. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Program Teknik Informatika
Jakarta, September 2010
Tim Penguji,
Penguji I
Viva Arifin, MMSI NIP. 150 378 016
Penguji II
Andrew Fiade, M.Kom
Tim Pembimbing,
Pembimbing I
Imam M Shofi, MT NIP. 150 408 905
Pembimbing II
Slamet Aji Pamungkas, M.Eng NIP. 19670618 199301 1 001
Mengetahui,
Dekan Fakultas Sains Dan Teknologi
DR. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956
Ketua Program Studi Teknik Informatika
Yusuf Durrachman MIT M.Sc NIP. 150 378 017
iii
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, 23 September 2010
Muhammad Tri Wibowo 105091002845
iv
ABSTRAK
Muhammad Tri Wibowo, Pengembangan Sistem Job Performance Appraisal dengan Metode Checklist Menggunakan CI Framework (studi kasus : PT.Learning Resources) , dibimbing oleh Imam M.Shofi, MT dan Slamet Aji Pamungkas, M.Eng.
Saat ini PT. Learning Resources telah memiliki sistem job performance appraisal dengan metode penilaian checklist untuk mengukur kinerja karyawan perusahaan kliennya, namun masih manual dan belum menggunakan bobot dalam penilaiannya, sehingga mengurangi efisiensi dan efektivitas penilaian. Oleh karena itu, penulis mencoba mengembangkan sistem job performance appraisal yang terkomputerisasi dengan metode checklist yang berbobot dalam penilaiannya agar proses penilaian menjadi lebih efisien dan efektif, dan hasil penilaian yang didapatkan juga akurat dan cepat.
Kebutuhan sistem yang sudah jelas, membuat penulis memutuskan untuk
menggunakan model Waterfall sebagai metode pengembangan sistemnya yang meliputi analisis, perancangan, pengkodean, uji coba, dan perawatan. Tools pemodelan menggunakan Data Flow Diagram (DFD) untuk memodelkan prosesnya, sedangkan untuk memodelkan datanya menggunakan Entity Relationship Diagram (ERD). Untuk bahasa pemrograman yang digunakan dalam mengimplementasikan sistem ini adalah bahasa pemrograman PHP 5, dan teknologi-teknologi lain yang mendukung yakni MySQL versi 5, serta menggunakan CI (CodeIgniter) Framework sebagai application frameworknya agar aplikasi yang dibangun menjadi lebih terstruktur dan memiliki kompatibilitas yang baik terhadap web hosting pada umumnya.
Dari penelitian ini, penulis menarik kesimpulan bahwa pihak terkait yakni
perusahaan klien dari PT. Learning Resources yang menggunakan sistem job performance appraisal dengan metode checklist menggunakan CI Framework dapat melakukan proses penilaian dengan efisien dan efektif, dan hasil penilaian semisal daftar staff terbaik antar kantor cabang dapat diperoleh dengan cepat dan akurat, ini terjadi karena penggunaan bobot penilaian dalam metode penilaian checklist meminimalisir kemungkinan terjadinya kesamaan nilai antar staff. Dan juga dengan sistem ini, mereka dapat mengevaluasi kinerja para karyawannya, sehingga diharapkan kebijakan perusahaan terkait dengan kinerja karyawannya seperti promosi, demosi, training dan lainnya, dapat berjalan dengan optimal.
Kata Kunci : CI Framework, CodeIgniter, Job Performance Appraisal, Metode Checklist, Waterfall Jumlah Halaman : 152 halaman Jumlah Daftar Pustaka : 13 sumber
v
KATA PENGANTAR
Bismillahirrahmannirrahiim………
Segala puji dan syukur penulis panjatkan kepada Allah SWT, Yang Maha
Kuasa dan telah memberikan berkah dan anugerahNya kepada penulis sehingga
penulis mampu melaksanakan tugas untuk menyelesaikan skripsi ini dengan
sebaik-baiknya. Shalawat serta salam tak lupa juga penulis haturkan kepada
junjungan kita Nabi Besar Muhammad SAW.
Skripsi ini penulis buat sebagai syarat kelulusan dalam menempuh
pendidikan jenjang Strata-1 (S1) di Universitas Islam Negeri Syarif Hidayatullah
Jakarta. Selain itu juga penulis berharap apa yang penulis teliti, yang dijelaskan di
dalam skripsi ini, dapat dipergunakan dengan baik oleh semua pihak yang
membutuhkan, sehingga perkembangan ilmu pengetahuan dan teknologi
khususnya di Program Studi Teknik Informatika UIN Syarif Hidayatullah Jakarta
dapat lebih maju dan lulusannya dapat bekerja secara kooperatif dengan semua
elemen informatika dari seluruh dunia.
Pada kesempatan ini, penulis mengucapkan terima kasih kepada pihak-
pihak yang telah membantu penulis menyelesaikan skripsi ini :
1. Bapak Dr. Syopiansyah jaya Putra M.Sis selaku Dekan Fakultas Sains dan
Teknologi.
2. Bapak Yusuf Durrachman M.Sc, MIT selaku ketua Program Studi Teknik
Informatika atas kesempatan untuk dapat melakukan penelitian skripsi.
3. Ibu Viva Arifin MMSi yang telah bersedia memberikan acc kepada saya
untuk menyusun skripsi ini.
vi
4. Bapak Imam Shofi, MT dan Bapak Slamet Aji Pamungkas, M.Eng yang
telah rela meluangkan waktunya untuk mendukung dan membimbing
penulis dalam menyelesaikan skripsi ini.
5. Bapak Munir Ahmad dan Ibu Laksmi Indrawati selaku wakil dari PT.
Learning Resources yang telah bekerja sama dengan baik dalam
pengembangan sistem ini.
6. Pandu Hidayat, Zaini Miftah, Irfan Fadmara, Afrialdi, Neni Ferawati dan
Sidik serta teman-teman lain yang tidak bisa saya sebutkan satu persatu
yang telah membantu saya merancang sistem ini.
7. Nurfitriyanto yang telah memberi motivasi kepada saya dalam
mengerjakan skripsi.
8. Annisha Primasari yang telah meminjamkan buku-buku penunjang skripsi
kepada saya.
9. R.Ayu W. dan Shidiq Nouvarinzky yang telah memberikan semangat
kepada saya secara langsung dan tidak langsung dalam pembuatan skripsi
ini.
10. Dosen-Dosen Fakultas Sains dan Teknologi, baik itu Bapak Taufik Edy S.,
Bapak Rizal Bahawerez, dan lainnya yang tak bisa saya sebutkan satu
persatu yang telah mengajarkan kepada penulis berbagai macam ilmu yang
dapat penulis terapkan dalam penulisan skripsi ini.
11. Kedua orang tua penulis, Suharsono H.S dan Astutiningsih yang telah
memberikan dukungan moril, semangat dan materiil sehingga
memperlancar proses penyusunan skripsi ini.
vii
12. Kedua kakak penulis, Hartati Setyawati, S.Psi dan Bintari, S.Farm, dan
kedua adik penulis, Rahmat Adi S. dan Mardelia Nur Fatanah yang telah
menjadi tempat penulis melepaskan penat dalam penyusunan Skripsi ini.
13. Saudara-saudara saya, yakni pakde Sadirin, budhe, mas Didi, Wira, dan
lainnya yang telah mensupport saya supaya cepat lulus.
14. Teman-Teman seperjuangan TI UIN 2005, terutama TI-B-05 atas
dukungan kalian semua.
Penulis menyadari masih terdapat banyak kekurangan dalam penelitian ini,
baik penulisan maupun analisis dan desain sistemnya sendiri. Oleh karena itu
penulis mengharapkan saran dan kritik yang dapat membangun skripsi ini lebih
baik lagi.
Jakarta, September 2010
Penulis
viii
DAFTAR ISI
Halaman
HALAMAN JUDUL …………………………………………… i
PERSETUJUAN PEMBIMBING………………………......… ii
HALAMAN PENGESAHAN …...………………………......… iii
HALAMAN PERNYATAAN …...………………………......… iv
ABSTRAK …...……………………….....................................… v
KATA PENGANTAR ................................................................ vi
DAFTAR ISI …..………………………………………………. ix
DAFTAR TABEL ….………………………………………….. xiv
DAFTAR GAMBAR ……………………………………….…. xv
DAFTAR LAMPIRAN .……………………………………….. xviii
BAB I. PENDAHULUAN
1.1. Latar Belakang ....................................................... 1
1.2. Rumusan Masalah .................................................. 4
1.3. Batasan Masalah .................................................... 6
1.4 Tujuan .................................................................... 8
1.5 Manfaat .................................................................. 8
1.5.1 Manfaat Bagi Penulis.............................................. 8
1.5.2 Manfaat Bagi Akademik........................................ 9
1.5.3 Manfaat Bagi Perusahaan........................................ 9
1.6 Metodologi Penelitian ............................................ 10
1.6.1 Metode Pengumpulan Data..................................... 10
ix
1.6.2 Metode Pengembangan Sistem............................... 11
1.7 Sistematika Penulisan ............................................ 12
BAB II. LANDASAN TEORI
2.1 Pengertian Pengembangan..................................... 14
2.2 Konsep Dasar Sistem Informasi............................. 14
2.2.1 Pengertian Sistem .................................................. 14
2.2.2 Beberapa Konsep Sistem Yang Penting ................. 16
2.2.3 Pengertian Sistem Informasi ................................... 18
2.2.4 Komponen Sistem Informasi .................................. 19
2.2.5 Tipe-tipe Sistem Informasi ...................................... 19
2.3 Job Performance Appraisal...................…........….. 23
2.3.1 Pengertian Job Performance Appraisal................... 23
2.3.2 Metode-Metode Penilaian........................................ 27
2.4 Metode Checklist ..................................................... 29
2.5 Pengertian Pengembangan Sistem Job Performance
Appraisal dengan Metode Checklist.......................... 32
2.6 Konsep Pengembangan Sistem.................................. 32
2.7 Metodologi Pengembangan....................................... 32
2.8 Alat Bantu Pemodelan Sistem................................... 40
2.8.1 Flowchart ................................................................. 40
2.8.2 DFD........................................................................... 43
2.8.3 ERD........................................................................... 47
2.8.4 Normalisasi................................................................ 52
x
2.8.4 STD (State Transition Diagram)............................... 55
2.9 Alat Bantu Pengembangan Sistem............................. 56
2.9.1 PHP ........................................................................... 56
2.9.2 MySQL..................................................................... 58
2.9.3 Apache Server............................................................ 60
2.9.4 HTML……................................................................ 61
2.9.5 CodeIgniter................................................................ 62
BAB III. METODOLOGI PENELITIAN
3.1 Kerangka Penelitian………..…................................ 67
3.2 Waktu dan Lokasi Penelitian……………………… 68
3.2.1 Waktu Pelaksanaan………………………………... 68
3.2.2 Lokasi Penelitian………………………………….. 69
3.3 Peralatan Penelitian.…………………..…………… 69
3.3.1 Perangkat Keras…..………………………………... 69
3.3.2 Perangkat Lunak..………………………………….. 69
3.4 Metode Penelitian.……………...……..…………… 70
3.4.1 Teknik Pengumpulan Data......…....………………... 70
3.4.2 Metode Pengembangan Sistem........................…….. 71
3.4.1.1 Analisis...................................…....………………... 72
3.4.2.2 Perancangan.....................................................…….. 74
3.4.1.3 Pengkodean.............................…....………………... 74
3.4.2.4 Uji Coba...........................................................…….. 74
xi
3.4.1.5 Pemeliharaan...........................…....………………... 75
BAB IV. PEMBAHASAN
4.1 Gambaran Umum PT.Learning Resources………… 76
4.1.1 Sekilas PT. Learning Resources.............…………... 76
4.1.2 Visi dan Misi.......………………………………….. 77
4.2 Pengembangan Sistem......……...……..…………… 78
4.2.1 Analisis...................................…....………………... 78
4.2.1.1 Data Gathering (Pengumpulan Data)......………….. 78
4.2.2.2 Identify (Identifikasi Masalah).........................…….. 81
4.2.1.3 Software Requirements (Kebutuhan Sistem)………. 83
4.2.2.4 Project Definition (Definisi Proyek)................…….. 85
4.2.2 Perancangan............................…....………………... 86
4.2.2.1 Desain Proses..........................…....………………... 86
4.2.2.2 Desain Data.............................…....………………... 102
4.2.2.3 Desain dan Alur Arsitektur Sistem............................ 121
4.2.2.4 Desain Input / Output..............…....………………... 129
4.2.2.5 Desain Antarmuka (Inteface) .…....………………... 131
4.2.2.6 STD (State Transition Diagram) .......……………... 136
4.2.3 Pengkodean.....................................………………... 138
4.2.4 Uji Coba...................................…...………………... 148
4.2.5 Pemeliharaan...................................………………... 149
xii
BAB V. PENUTUP
5.1. Kesimpulan ..................................................................... 150
5.2. Saran ............................................................................... 151
DAFTAR PUSTAKA ...................................................................... 152
LAMPIRAN-LAMPIRAN
xiii
DAFTAR TABEL
Halaman
Tabel 2.1. Perbandingan antar metode pengembangan sistem.............. 35
Tabel 2.2. Simbol-simbol flowchart...................................................... 42
Tabel 2.3. Elemen-elemen DFD............................................................ 44
Tabel 2.4. Elemen-elemen ERD............................................................ 48
Tabel 4.1. Contoh Bobot Aspek Penilaian............................................. 88
Tabel 4.2. Contoh Aspek Penilaian : Keterampilan Umum Check In
(Bobot : 40) .......................................................................... 89
Tabel 4.3. Contoh Aspek Penilaian : Kedisiplinan (Bobot : 60)............ 89
Tabel 4.4. Kamus Data Tabel Perusahaan.............................................. 117
Tabel 4.5. Kamus Data Tabel User......................................................... 117
Tabel 4.6. Kamus Data Tabel Level……………................................... 118
Tabel 4.7. Kamus Data Tabel Staff...…….............................................. 118
Tabel 4.8. Kamus Data Tabel Bagian...................................................... 118
Tabel 4.9. Kamus Data Tabel Cabang…................................................. 118
Tabel 4.10. Kamus Data Tabel Aspek..................................................... 119
Tabel 4.11. Kamus Data Tabel Grup....................................................... 119
Tabel 4.12. Kamus Data Tabel Soal........................................................ 119
Tabel 4.13. Kamus Data Tabel Penilaian................................................. 120
Tabel 4.14. Kamus Data Tabel Delegasi.................................................. 120
xiv
DAFTAR GAMBAR
Halaman
Gambar 2.1. Model Sistem .............................................................. 15
Gambar 2.2. Model Hubungan elemen-elemen sistem...................... 15
Gambar 2.3. Konsep Sistem Informasi............................................. 18
Gambar 2.4 Peran Penilaian Kinerja................................................. 24
Gambar 2.5 Logika dan Proses Penilaian Kinerja............................. 25
Gambar 2.6 Berbagai Metode Penilaian Kinerja............................... 27
Gambar 2.5. Contoh Dokumen Penilaian Checklist.......................... 31
Gambar 2.8. Perbedaan dari pendekatan siklus hidup pengembangan
Sistem.............................................................................. 34
Gambar 2.9. Arsitektur Metodologi..................................................... 34
Gambar 2.10.Model Waterfall.............................................................. 38
Gambar 2.11.Contoh Flowchart........................................................... 42
Gambar 2.12.Hierarki DFD.................................................................. 46
Gambar 2.13.Contoh Perubahan State.................................................. 46
Gambar 2.14.Notasi Modul.................................................................. 56
Gambar 2.15.Notasi Tampilan.............................................................. 56
Gambar 2.16.Notasi Tindakan.............................................................. 56
Gambar 3.1. Metode Kerja Penelitian................................................. 68
Gambar 4.1. Flowchart sistem yang berjalan...................................... 81
Gambar 4.2. Flowchart sistem yang diusulkan.................................... 87
Gambar 4.3. Contoh Penilaian dan hasil penilaian dalam sistem........ 91
xv
Gambar 4.4. Context Diagram ............................................................ 92
Gambar 4.5. Level 0 DFD .................................................................. 93
Gambar 4.6. Level 1 DFD dari proses 1.0 .......................................... 94
Gambar 4.7. Level 1 DFD dari proses 2.0 .......................................... 94
Gambar 4.8. Level 1 DFD dari proses 3.0 .......................................... 95
Gambar 4.9. Level 1 DFD dari proses 4.0 ........................................... 95
Gambar 4.10. Level 2 DFD dari proses 1.1 .......................................... 96
Gambar 4.11. Level 2 DFD dari proses 1.2 ......................................... 96
Gambar 4.12. Level 2 DFD dari proses 1.3 ......................................... 97
Gambar 4.13. Level 2 DFD dari proses 1.4 ......................................... 97
Gambar 4.14. Level 2 DFD dari proses 3.1 ......................................... 98
Gambar 4.15. Level 2 DFD dari proses 3.2 ......................................... 98
Gambar 4.16. Level 2 DFD dari proses 3.3 ......................................... 99
Gambar 4.17. Level 3 DFD dari proses 1.4.1....................................... 99
Gambar 4.18. Level 3 DFD dari proses 1.4.2....................................... 100
Gambar 4.19. Level 3 DFD dari proses 1.4.3....................................... 100
Gambar 4.20. Level 4 DFD dari proses 1.4.3.1.................................... 101
Gambar 4.21. Level 4 DFD dari proses 1.4.3.2.................................... 101
Gambar 4.22. Rancangan ERD yang diusulkan.... ............................... 103
Gambar 4.23. Transformasi ERD ke LRS yang diusulkan................... 104
Gambar 4.24. Arsitektur Sistem ........................................................... 121
Gambar 4.25. Kerangka Umum Desain Antarmuka.............................. 131
Gambar 4.26. STD Administrator......................................................... 136
xvi
Gambar 4.27. STD Supervisor.............................................................. 137
Gambar 4.28. STD Branch Manager..................................................... 137
Gambar 4.29. STD Head Officer........................................................... 138
Gambar 4.30 Konfigurasi Minimum Framework Symfony................. 140
xvii
xviii
DAFTAR LAMPIRAN
LAMPIRAN A (WAWANCARA)
LAMPIRAN B (SURAT KET. MELAKUKAN PENELITIAN)
LAMPIRAN C (SURAT KET. TELAH WAWANCARA)
LAMPIRAN D (PENGUJIAN SISTEM / BLACK BOX TESTING)
LAMPIRAN E (DESAIN ANTARMUKA / INTERFACE)
Lampiran E.1. Desain Antarmuka untuk Administrator....................... E - 1
Lampiran E.2. Desain Antarmuka untuk Supervisor............................ E - 7
Lampiran E.3. Desain Antarmuka untuk Branch Manager.................. E - 9
Lampiran E.4. Desain Antarmuka untuk Head Officer........................ E - 10
Lampiran E.5. Desain Antarmuka Lainnya.......................................... E - 11
LAMPIRAN F (SOURCE CODE)
Lampiran F.1. Controller………………………………..................... F - 1
Lampiran F.2. View............................................................................. F - 16
LAMPIRAN A
WAWANCARA
Tanggal : 7 Maret 2010
Narasumber : Bapak Munir Ahmad
Peran Narasumber : Supervisor Reinforcement
Lokasi : PT.Learning Resources
Penulis : Apakah perusahaan anda memiliki sistem penilaian kinerja
karyawan atau bahasa kerennya job performance appraisal?
Narasumber : Ya, perusahaan kami selaku penyedia training dan konsultan telah
memiliki sistem penilaian kinerja karyawan atau job performance appraisal untuk
digunakan kepada klien-klien kami.
Penulis : Apakah sistem tersebut (job performance appraisal) tersebut
sudah terkomputerisasi?
Narasumber : Sistem tersebut yang kami gunakan untuk saat ini belum
terkomputerisasi, masih manual, menggunakan kertas dokumen penilaian untuk
melakukan penilaian, dan menggunakan microsoft Excel untuk melakukan
penghitungannya.
Penulis : Bagaiamana alur atau cara kerja sistem penilaian tersebut?
lalu, narasumber menjelaskan seperti halnya pada yang penulis tuliskan di analisa
sistem berjalan.
Penulis : Metode apa yang digunakan dalam sistem tersebut untuk
melakukan penilaian?
A-1
Narasumber : Metode penilaian yang digunakan dalam sistem tersebut yaitu
metode checklist.
Penulis : Kita tahu bahwa banyak metode yang bisa digunakan dalam
penilaian kinerja, mengapa perusahaan anda menggunakan metode checklist
dalam penilaiannya?
Narasumber : Setelah saya pelajari ternyata metode penilaian yang cukup
mudah diimplementasikan, maksudnya sang penilai tidak terlalu pusing dengan
penentuan skala nilai seperti halnya di metode rating scale yang cenderung
subjektif dan cukup menguras pikiran dalam pemberian nilainya. Dan metode
checklist merupakan metode penilaian yang objektif sehingga mudah
diaplikasikan oleh penilai dalam hal ini supervisor, misalnya ada pertanyaan
”apakah karyawan tidak terlambat kerja?” maka jawabannya Cuma ada 2 yakni ya
atau tidak, sehingga penilai dengan mudah melakukan penilaian, jika staffnya hari
itu tidak terlambat kerja, maka akan di checklist, yang menandakan bahwa
staffnya tidak terlambat kerja. Berbeda dengan pertanyaan yang terdapat di
metode rating scale yang sifatnya subjektif, misalnya ”bagaimana pekerjaan staff
anda?” dan skala penilaiannya ada 5 yakni, sangat baik, baik, cukup baik, kurang
baik, buruk. Maka tentunya penilai akan kesulitan dan berpikir ekstra untuk
menentukan skala nilai dari staff yang dinilai.
Penulis : Apa saja kendala yang mungkin terjadi dalam sistem yang sedang
berjalan ini?
A-2
A-3
Narasumber : Ya, namanya manual, permasalahan yang sering terjadi adalah
human error semisal hilangnya dokumen penilaian, salah melakukan perhitungan
nilai, dan cukup lamanya distribusi dokumen penilaian dari dan ke pusat.
LAMPIRAN D
PENGUJIAN SISTEM (BLACK BOX TESTING)
No Modul Prasyarat Hasil yang diharapkan
Hasil uji coba
mandiri
Hasil uji coba Oleh
Pihak user1 Lihat (Read)
data perusahaan
Login sebagai admin
Dapat melihat data-data perusahaan, seperti alamat, bidang usaha, logo, dll.
OK OK
2 Memasukkan (Input) data perusahaan
Login sebagai admin
Dapat memasukkan data perusahaan dengan sukses
OK OK
3 Ubah (Update) data perusahaan
Login sebagai admin
Dapat mengubah data perusahaan dengan sukses.
OK OK
4 Lihat (Read) data head officer
Login sebagai admin
Dapat melihat daftar head officer perusahaan klien.
OK OK
5 Tambah (Add) data head officer
Login sebagai admin
Dapat memasukkan data head officer dengan sukses
OK OK
6 Ubah (Update) data head
Login sebagai admin
Dapat mengubah data head
OK OK
D-1
officer officer dengan sukses.
7 Hapus (Delete) data head officer
Login sebagai admin
Dapat menghapus data head officer yang telah ada pada database
OK OK
8 Lihat (Read) data kantor cabang
Login sebagai admin
Dapat melihat daftar kantor cabang perusahaan klien.
OK OK
9 Tambah (Add) data kantor cabang
Login sebagai admin
Dapat menambah daftar kantor cabang dengan sukses.
OK OK
10 Ubah (Update) data kantor cabang
Login sebagai admin
Dapat mengubah data kantor cabang dengan sukses.
OK OK
11 Hapus (Delete) data kantor cabang
Login sebagai admin
Dapat menghapus data kantor cabang dengan sukses
OK OK
12 Lihat (Read) daftar PIC (Branch Manager, Supervisor) tiap kantor cabang
Login sebagai admin, dan sudah membuat kantor cabang yang bersangkutan
Dapat melihat daftar PIC tiap kantor cabang perusahaan klien.
OK OK
13 Tambah (Add) daftar PIC (Branch Manager, Supervisor)
Login sebagai admin, dan sudah membuat kantor cabang
Dapat menambah daftar PIC tiap kantor cabang
OK OK
D-2
tiap kantor cabang
yang bersangkutan
perusahaan klien.
14 Ubah (Update) data PIC (Branch Manager, Supervisor) tiap kantor cabang
Login sebagai admin, dan sudah membuat kantor cabang yang bersangkutan
Dapat mengubah data PIC tiap kantor cabang perusahaan klien.
OK OK
15 Hapus (Delete) data PIC (Branch Manager, Supervisor) tiap kantor cabang
Login sebagai admin, dan sudah membuat kantor cabang yang bersangkutan
Dapat menghapus data PIC tiap kantor cabang perusahaan klien.
OK OK
16 Lihat (Read) daftar bagian
Login sebagai admin
Dapat melihat daftar bagian pada perusahaan klien.
OK OK
17 Tambah (Add) daftar bagian
Login sebagai admin
Dapat melihat daftar bagian pada perusahaan klien.
OK OK
18 Ubah (Update) data bagian
Login sebagai admin
Dapat mengubah data bagian pada perusahaan klien.
OK OK
19 Hapus (Delete) data bagian
Login sebagai admin
Dapat menghapus data bagian pada perusahaan klien.
OK OK
20 Lihat (Read) daftar aspek penilaian
Login sebagai admin, dan sudah membuat daftar bagian
Dapat melihat daftar aspek penilaian di perusahaan
OK OK
D-3
pada perusahaan klien
klien.
21 Tambah (Add) data aspek penilaian
Login sebagai admin, dan sudah membuat daftar bagian pada perusahaan klien
Dapat menambah data aspek penilaian di perusahaan klien.
OK OK
22 Ubah (Update) data aspek penilaian
Login sebagai admin, dan sudah membuat daftar bagian pada perusahaan klien
Dapat mengubah data aspek penilaian di perusahaan klien.
OK OK
23 Hapus (Delete) data aspek penilaian
Login sebagai admin, dan sudah membuat daftar bagian pada perusahaan klien
Dapat menghapus data aspek penilaian di perusahaan klien.
OK OK
24 Lihat (Read) daftar grup soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat melihat daftar grup soal di perusahaan klien.
OK OK
25 Tambah (Add) data grup soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat menambah data grup soal di perusahaan klien.
OK OK
26 Ubah (Update) data grup
Login sebagai admin, dan sudah
Dapat mengubah data grup
OK OK
D-4
soal membuat daftar aspek penilaian pada perusahaan klien
soal di perusahaan klien.
27 Hapus (Delete) data grup soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat menghapus grup soal di perusahaan klien.
OK OK
28 Lihat (Read) daftar soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat melihat daftar soal di perusahaan klien.
OK OK
29 Tambah (Add) data soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat menambah data soal di perusahaan klien.
OK OK
30 Ubah (Update) data soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat mengubah data soal di perusahaan klien.
OK OK
31 Hapus (Delete) data soal
Login sebagai admin, dan sudah membuat daftar aspek penilaian pada perusahaan klien
Dapat menghapus soal di perusahaan klien.
OK OK
32 Lihat (Read) Login sebagai Dapat OK OK
D-5
daftar staff yang akan dinilai
supervisor, dan admin sudah membuat daftar kantor cabang dan bagian
melihat daftar staff yang akan dinilai.
33 Tambah (Add) data staff yang akan dinilai
Login sebagai supervisor, dan admin sudah membuat daftar kantor cabang dan bagian
Dapat menambah data staff yang akan dinilai.
OK OK
34 Ubah (Update) data staff yang akan dinilai
Login sebagai supervisor, dan admin sudah membuat daftar kantor cabang dan bagian
Dapat mengubah data staff yang akan dinilai.
OK OK
35 Hapus (Delete) data staff yang akan dinilai
Login sebagai supervisor, dan admin sudah membuat daftar kantor cabang dan bagian
Dapat menghapus data staff yang akan dinilai.
OK OK
36 Melakukan penilaian / monitoring checklist terhadap staff
Login sebagai supervisor, staff yang akan dinilai sudah dibuat
Melakukan penilaian terhadap staff oleh supervisor
OK OK
37 Melihat logbook penilaian staff
Login sebagai supervisor atau branch manager, supervisor sudah melakukan penilaian terhadap
Melihat logbook penilaian staff
OK OK
D-6
D-7
staffnya. 38 Melakukan
approval atau pengiriman delegasi staff terbaik di kantor cabang
Login sebagai branch manager, semua supervisor telah melakukan seluruh penilaian terhadap para staffnya.
Melakukan approval atau pengiriman delegasi staff terbaik di kantor cabang oleh branch manager
OK OK
39 Melihat laporan approval atau pengirman delegasi tercepat
Login sebagai head officer, kantor cabang telah melakukan approval atau pengiriman delegasi.
Melihat laporan approval atau pengirman delegasi tercepat antar kantor cabang
OK OK
40 Melihat laporan staff terbaik per bulan dari seluruh kantor cabang
Login sebagai head officer, kantor cabang telah melakukan approval atau pengiriman delegasi.
Melihat laporan staff terbaik dengan total penilaian tertinggi per bulan dari seluruh kantor cabang oleh branch manager
OK OK
41 Melihat laporan staff terbaik per tahun dari seluruh kantor cabang
Login sebagai head officer, telah menyelesaikan seluruh penilaian selama setahun oleh seluruh kantor cabang
Melihat laporan staff terbaik dengan total penilaian tertinggi per tahun dari seluruh kantor cabang oleh branch manager
OK OK
LAMPIRAN E
DESAIN ANTARMUKA (INTERFACE)
E.1 Desain Antarmuka untuk Administrator
• Mengelola Data Perusahaan Klien :
o Lihat data perusahaan
o Ubah Data Perusahaan
o
E-1
• Mengelola Data Head Officer
o Lihat Data Head Officer/Service Committe
o Tambah/Ubah Data Head Officer/Service Committe
• Mengelola Data Kantor Cabang
o Lihat Data Kantor Cabang
E-2
o Upload Data Kantor Cabang
o Tambah/Ubah Data Kantor Cabang
• Mengelola Data PIC Branch Manager dan Supervisor) dari Kantor
Cabang
o Lihat data PIC (Branch Manager dan Supervisor).
E-3
o Tambah/Ubah Data PIC (Branch Manager dan Supervisor).
o
• Mengelola Data Bagian
o Lihat data bagian.
o T
o Tambah/Ubah Data Bagian
E-4
• Mengelola Data Aspek Penilaian
o Lihat data aspek penilaian.
o Tambah/Ubah data Aspek Penilaian
• Mengelola Data Grup Soal
o Lihat data grup soal.
E-5
o Tambah/Ubah data grup soal
• Mengelola Data Soal
o Lihat data soal
o Tambah/Ubah data soal
o
E-6
E.2 Desain Antarmuka untuk Supervisor
• Mengelola Data Staff
o Lihat Data Staff.
o Upload Data Staff
o Tambah/Ubah Data Staff
E-7
• Melakukan Penilaian
o Lihat Checklist Staff per Aspek.
o Checklist Staff
• Melihat LogBook Penilaian
E-8
E.3 Desain Antarmuka untuk Branch Manager
• Melihat LogBook Penilaian
• Mengirim / Melakukan Approval Delegasi Staff Terbaik di Kantor Cabang
• Melihat Staff Terbaik
E-9
E.4 Desain Antarmuka untuk Head Officer
• Melihat Laporan Delegasi Tercepat
• Melihat Laporan Staff Terbaik
• Melihat Laporan Staff Terbaik Tiap Tahun
E-10
• Melihat Laporan Staff Terbaik Per Aspek Tiap Bulan
E.5 Desain Antarmuka Lainnya
• Login
• Lihat Profil
E-11
• Ubah Profil
• Ubah Password
E-12
LAMPIRAN F
SOURCE CODE
F.1 Controller
//fungsi.php <?php class Fungsi extends Controller{ private $table; private $pk; private $role; //private $db; function init($table,$pk){ $this->table = $table; $this->pk = $pk; $this->Controller(); //session_start(); $this->load->library('session'); $this->loadHelper(array("form","url")); $this->cekLogin(); } function init_not_login($table,$pk){ $this->table = $table; $this->pk = $pk; $this->Controller(); //session_start(); $this->load->library('session'); $this->loadHelper(array("form","url")); //$this->cekLogin(); } function initRole($role){ $this->role = $role; } function cekLogin(){ if(($this->session->userdata('username'))==null) redirect('auth/not_login'); } function cekRole($role){ foreach($this->role as $r){ if($r==$role) return true; } return false; } function Fungsi(){ parent::Controller(); } function Controller(){ parent::Controller(); } function getAllData($table = ""){ $table = empty($table)?$this->table:$table;
F-1
$query = $this->db->get($table); return $this->objectToArray($query->result()); } function getPaginate($rowData,$page,$n){ $a = (($page-1)*$n); $max_page = ceil(count($rowData)/$n); $data['value'] = array_slice($rowData,$a,$n); //if($page>=1&&$page<=$max_page) { $data['paginate']['prev'] = $page>1&&$page<=$max_page?true:false; $data['paginate']['next'] = $max_page>$page?true:false; $data['paginate']['start'] = $a+1; $data['paginate']['finish'] = $page==$max_page?count($rowData):$a+$n; $data['paginate']['total'] = count($rowData); $data['paginate']['active'] = $page>=1&&$page<=$max_page; } return $data; } function objectToArray( $object ){ if( !is_object( $object ) && !is_array( $object ) ) { return $object; } if( is_object( $object ) ) { $object = get_object_vars( $object ); } return array_map(array('Fungsi','objectToArray'), $object ); } function getCount($data){ return $data->num_rows(); } function getRowData($data){ return $this->objectToArray($data->result()); } function getColumn($table){ $sql = "desc ".$table; $query = $this->db->query($sql); $data = $this->getRowData($query); //print_r($data); foreach($data as $d){ $col[] = $d['Field']; } return $col; } function filterValue($data,$table=""){ $table = empty($table)?$this->table:$table; $col = $this->getColumn($table); $col_data = array_keys($data); $filter = array(); //var_dump($data);
F-2
foreach($col_data as $cd){ $cek = false; foreach($col as $c){ //echo "cd:".$cd."== c:".$c."<br/>"; if(strtolower($cd) == strtolower($c)){ //echo "masuk<br/>"; $cek = true; } } if($cek) $filter[$cd] = $data[$cd]; } //var_dump($filter); //exit(); return $filter; } function getDataById($id,$table ="",$pk =""){ $table = empty($table)?$this->table:$table; $pk = empty($pk)?$this->pk:$pk; if(is_array($id)){ if(count($id)>0){ $idx = 0; $n = count($id); $param_id = ""; foreach($id as $id_loop){ $param_id .= $pk."='".$id_loop."'"; if(++$idx<$n) $param_id .=" or "; } $sql = "select * from ".$table." where ".$param_id; //return $sql; $query = $this->db->query($sql); $data = $this->objectToArray($query->result()); return $data; } else return array(); } else{ if(!empty($id) && $id!=null){ $sql = "select * from ".$table." where ".$pk."='".$id."'"; //return $sql; $query = $this->db->query($sql); $data = $this->objectToArray($query->result()); return $data[0]; } else return array(); } } function getNullData($table = ""){ $table = empty($table)?$this->table:$table; $col = $this->getColumn($table); foreach($col as $c){
F-3
$data[$c] = ""; } return $data; } function getValueURL($idx){ return $this->uri->segment($idx); } function loadHelper($arr){ foreach($arr as $a){ $this->load->helper($a); } } function loadCRUD($table){ $table = empty($table)?$this->table:$table; $this->load->scaffolding($table); } function persist($data,$table = ""){ $table = empty($table)?$this->table:$table; $this->db->insert($table,$data); } function transient($id,$table = "",$pk =""){ $table = empty($table)?$this->table:$table; $pk = empty($pk)?$this->pk:$pk; $this->db->delete($table,array($pk=>$id)); } function merge($data,$id,$table = "",$pk = ""){ $table = empty($table)?$this->table:$table; $pk = empty($pk)?$this->pk:$pk; $this->db->update($table,$data,array($pk=>$id)); } function getPk(){ return $this->pk; } function getRefTable($table,$pk){ $temp = $this->getAllData($table); $data = array(); foreach($temp as $t){ $data[$t[$pk]] = $t; } return $data; } function getCustomData($sql){ $query = $this->db->query($sql); return $this->objectToArray($query->result()); } } ?> //logbook.php <?php include "fungsi.php"; class Logbook extends Fungsi{ private $max; private $action;
F-4
function __construct(){ $table = "aspek"; $pk = "id"; $this->action = "aspek"; $this->max = 2; $session = 2; $role = array(1,2); $this->init($table,$pk); $this->loadHelper(array("form","url")); //$this->initRole($role); //if(!$this->cekRole($session)) redirect('error'); //$this->loadCRUD(); //mean $this->load->scaffolding('cabang'); } function show_year(){ $sql = "SELECT min(YEAR(tgl)) as tahun FROM penilaian group by( YEAR(tgl))"; $year = $this->getCustomData($sql); return $year; } function index(){ $data['year'] = $this->show_year(); $sql1 = "select * from staff where supervisor='".$this->session->userdata("uid")."'"; $rs = $this->getCustomData($sql1); $data['staff'] = $rs; $this->load->view('logbook_view_sup',$data); } function finalnya(){ $data['year'] = $this->show_year(); $this->load->view('logbook_view',$data); } function final_view(){ $bulan = date("m");//$_POST['bulan']; $wulan = intval($bulan); $tahun = date("Y");//$_POST['tahun']; $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $sql = "select sum(nilai) as nilai, min(id_user) as id from penilaian where tgl>='".$now_month."' and tgl<'".$next_month."' group by(id_user) order by sum(nilai) desc"; //echo $sql; $id_cabang = $this->session->userdata('id_cabang'); $sql2 = "select * from bagian"; $bagian_data = $this->getCustomData($sql2); foreach($bagian_data as $bd){ $error = false; $id_bagian = $bd['id']; $sql3 = "select * from staff where bagian='".$id_bagian."' and cabang='".$id_cabang."'"; $staff_data = $this->getCustomData($sql3); $staff_in = "";
F-5
//print_r($staff_data); for($i=0;$i<count($staff_data);$i++){ $staff_in .= "'".$staff_data[$i]['id']."'"; if($i<count($staff_data)-1) $staff_in .= ","; } //print_r($staff_in); if($staff_in=="") $error = true; if(!$error){ $sql = "select sum(nilai) as nilai, min(id_user) as id from penilaian where id_staff in (".$staff_in.") and tgl>='".$now_month."' and tgl<'".$next_month."' group by(id_user) order by sum(nilai) desc"; $temp = $this->getCustomData($sql); $nilai_max = $temp[0]['nilai']; foreach($temp as $t){ if($nilai_max==$t['nilai']) $data['nilai'][$id_bagian][] = $t; } } } $data['bagian'] = $this->getAllData("bagian"); print_r($data['nilai']); //$data['year'] = $this->show_year(); if($error) echo "error"; //$this->load->view('approval',$data); } function save_delegasi() { $idc = $_POST['cabang']; $a = $this->db->query("SELECT * FROM bagian"); $b = $a->result(); foreach($b as $idb) { $stf = $_POST['ck-' . $idb->id]; $nil_tot = $_POST['nilai-' . $idb->id]; $bagian = $idb->id; $now = date("Y-m-d H:i:s"); $we = $this->db->query("INSERT INTO delegasi VALUES('','$idc','$bagian','$stf','$nil_tot','$now')"); } redirect('logbook'); } function view(){ $staff = $_POST['staff']; $detail_staff = $this->getDataById($staff,"staff","id"); $bagian = $detail_staff['bagian']; //print_r($detail_staff); $bulan = $_POST['bulan']; $tahun = $_POST['tahun']; $data = $this->detail_logbook2($staff,$bagian,$bulan,$tahun);
F-6
$this->load->view('logbook',$data); } function detail(){ $staff = $this->uri->segment(3); $bagian = $this->uri->segment(4); $bulan = date("m"); $tahun = date("Y"); $data = $this->detail_logbook($staff,$bagian,$bulan,$tahun); $this->load->view('detail_logbook',$data); } function detail_logbook($staff,$bagian,$bulan,$tahun){ $wulan = intval($bulan); $data['detail_staff'] = $this->getDataById($staff,"staff","id"); $data['periode'] = $bulan . '-' . $tahun; $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $sd = "select * from staff where id='$staff'"; $data['stf'] = $this->getCustomData($sd); $sql = "select * from penilaian where id_staff='".$staff."' and tgl>='".$now_month."' and tgl<'".$next_month."'"; $data['value'] = $this->getCustomData($sql); $sql = "select * from aspek where id_bagian='".$bagian."' AND min > 0"; $data['aspek'] = $this->getCustomData($sql); //echo $sql."=".count($data['aspek']); $row = 0; foreach($data['aspek'] as $da){ $sql = "select id from soal where id_aspek='".$da['id']."' and id_bagian='".$bagian."'"; $temp = $this->getCustomData($sql); $max = count($temp); $data['nilai_max'][$row++] = $max; } return $data; } function detail_logbook2($staff,$bagian,$bulan,$tahun){ $wulan = intval($bulan); $data['detail_staff'] = $this->getDataById($staff,"staff","id"); $data['periode'] = $bulan . '-' . $tahun; $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $sql = "select * from aspek where id_bagian='".$bagian."' and id_parent='0'"; $parent = $this->getCustomData($sql);
F-7
foreach($parent as $p){ $sql = "select * from aspek where id_bagian='".$bagian."' and id_parent='".$p['id']."'"; $child[$p['id']] = $this->getCustomData($sql); if(count($child[$p['id']])>0){ foreach($child[$p['id']] as $c){ $sql = "select * from penilaian where id_aspek='".$c['id']."' and id_staff='".$staff."' and tgl>='".$now_month."' and tgl<'".$next_month."' order by tgl asc"; $nilai[$c['id']] = $this->getCustomData($sql); $sql = "select id from soal where id_aspek='".$c['id']."' and id_bagian='".$bagian."'"; $temp = $this->getCustomData($sql); $max = count($temp); $data['nilai_max'][$c['id']] = $max; } } else{ $sql = "select * from penilaian where id_aspek='".$p['id']."' and id_staff='".$staff."' and tgl>='".$now_month."' and tgl<'".$next_month."' order by tgl asc"; $nilai[$p['id']] = $this->getCustomData($sql); $sql = "select id from soal where id_aspek='".$p['id']."' and id_bagian='".$bagian."'"; $temp = $this->getCustomData($sql); $max = count($temp); $data['nilai_max'][$p['id']] = $max; } } $data['nilai'] = $nilai; $data['parent'] = $parent; $data['child'] = $child; return $data; } function best_aspek(){ $data['year'] = $this->show_year("penilaian"); $data['bagian'] = $this->getRefTable("bagian","id"); $this->load->view('log_aspek',$data); } function tbl_log_aspek() { if($_POST['view']) { $bulan = $_POST['bulan']; $tahun = $_POST['tahun']; $bagian = $_POST['bagian']; $aspek = $_POST['aspek']; $data['bulan'] = $bulan; $data['tahun'] = $tahun; $data['bag'] = $bagian; $data['asp'] = $aspek; $bln = intval($bulan);
F-8
$n_m_m = $bln+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bln."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $data['blnini'] = $now_month; $data['blndpn'] = $next_month; $idcbg = $this->session->userdata('id_cabang'); $sql = $this->db->query("SELECT * FROM staff WHERE cabang='$idcbg' AND bagian='$bagian'"); $data['stafflist'] = $sql->result(); $this->load->view('tbl_logbook_aspek',$data); } } function graph_aspek() { $idcbg = $this->session->userdata('id_cabang'); $bagian = $this->getValueURL(3); $idasp = $this->getValueURL(4); $bln = $this->getValueURL(5); $tahun = $this->getValueURL(6); $n_m_m = $bln+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bln."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $data['bln_ini'] = $now_month; $data['bln_dpn'] = $next_month; $sql = $this->db->query("SELECT * FROM staff WHERE cabang='$idcbg' AND bagian='$bagian'"); $data['stafflist'] = $sql->result(); $data['id_aspek'] = $idasp; $q1 = $this->db->query("SELECT * FROM aspek WHERE id='$idasp'"); $dq1 = $q1->row_array(); $data['nama_aspek'] = $dq1['nama']; $data['min'] = $dq1['min']; $q2 = $this->db->query("SELECT * FROM bagian WHERE id='$bagian'"); $dq2 = $q2->row_array(); $data['nama_bagian'] = $dq2['nama']; $data['bulan'] = $bln; $data['tahun'] = $tahun; $this->load->view('grafik_aspek',$data); } function baru(){ $data['title'] = "Tambah Aspek"; $data['action'] = "insert";
F-9
$data['tombol'] = "Simpan"; $data['value'] = $this->getNullData(); $data['bag'] = $this->getAllData("bagian"); $data['parent'] = $this->getAllData(); $this->load->view('add_aspek',$data); } function insert(){ $data = $this->filterValue($_POST); $this->persist($data); redirect($this->action.'/index'); } function edit(){ $id = $this->getValueURL(4); $data['value'] = $this->getDataById($id); $data['aspk'] = $this->getAllData(); $data['divisi'] = $this->getAllData('bagian'); $data['action'] = "update"; $data['tombol'] = "Edit"; $this->load->view('edit_aspek',$data); } function update(){ $data = $this->filterValue($_POST); $this->merge($data,$_POST[$this->getPk()]); redirect($this->action.'/index'); } function delete(){ $id = $this->getValueURL(4); $this->transient($id); redirect($this->action.'/index'); } } ?> //ho.php <?php include "fungsi.php"; class Ho extends Fungsi{ private $max; private $action; function __construct(){ $table = "user"; $pk = "id"; $this->action = "ho"; $this->max = 10; $session = 2; $role = array(1,2); $this->init($table,$pk); $this->loadHelper(array("form","url")); //$this->initRole($role); //if(!$this->cekRole($session)) redirect('error'); //$this->loadCRUD(); //mean $this->load->scaffolding('cabang'); } function index(){
F-10
$page = $this->getValueURL(4); $page = empty($page) || $page==1?1:$page; $sql = "select * from user where level='4'"; $datasource = $this->getCustomData($sql); $data = $this->getPaginate($datasource,$page,$this->max); $data['page'] = $page; $data['css_id'] = 'bagian-head'; $this->load->view('ho',$data); } function baru(){ $data['title'] = "Tambah Head Officer"; $data['action'] = "insert"; $data['tombol'] = "Simpan"; $data['value'] = $this->getNullData(); $this->load->view('ho_form',$data); } function insert(){ $data = $this->filterValue($_POST); $this->persist($data); redirect($this->action.'/index'); } function show_year($table="penilaian",$col="tgl"){ $sql = "SELECT min(YEAR(".$col.")) as tahun FROM ".$table." group by( YEAR(".$col."))"; $year = $this->getCustomData($sql); return $year; } function edit(){ $id = $this->getValueURL(4); $data['value'] = $this->getDataById($id); $data['action'] = "update"; $data['tombol'] = "Edit"; $this->load->view('ho_form',$data); } function update(){ $data = $this->filterValue($_POST); $this->merge($data,$_POST[$this->getPk()]); redirect($this->action.'/index'); } function delete(){ $id = $this->getValueURL(4); $this->transient($id); redirect($this->action.'/index'); } function app_fastest(){ $data['year'] = $this->show_year("delegasi"); if($_POST['view']){ $bulan = $_POST['bulan']; $tahun = $_POST['tahun']; $wulan = intval($bulan); $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00";
F-11
$sql = "select min(cabang) as cabang, min(tgl) as tgl from delegasi where tgl>='".$now_month."' and tgl<'".$next_month."' group by(cabang) order by min(tgl) desc"; $fast = $this->getCustomData($sql); $cabang_data = $this->getRefTable("cabang","id"); $data['ref_cabang'] = $cabang_data; $data['fast'] = $fast; foreach($cabang_data as $cd){ $valid = true; foreach($fast as $f){ if($f['cabang']==$cd['id']) $valid=false; } if($valid) $not_app[] = $cd; } $data['not_app']=$not_app; } $this->load->view('app_fastest',$data); } function graph_fastest() { $bulan = $this->getValueURL(3); $tahun = $this->getValueURL(4); $data['year'] = $this->show_year("delegasi"); $wulan = intval($bulan); $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $sql = "select min(cabang) as cabang, min(tgl) as tgl from delegasi where tgl>='".$now_month."' and tgl<'".$next_month."' group by(cabang) order by min(tgl) desc"; $fast = $this->getCustomData($sql); $this->load->view('grafik_fastest',$data); } function app_highest(){ $data['year'] = $this->show_year("delegasi"); if($_POST['view']){ $bulan = $_POST['bulan']; $tahun = $_POST['tahun']; $wulan = intval($bulan); $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $bagian_data = $this->getRefTable("bagian","id"); $data['ref_bagian'] = $bagian_data; $cabang_data = $this->getRefTable("cabang","id"); $data['ref_cabang'] = $cabang_data; $staff_data = $this->getRefTable("staff","id"); $data['ref_staff'] = $staff_data; $aspek_data = $this->getRefTable("aspek","id"); $data['ref_aspek'] = $aspek_data; foreach($bagian_data as $bd){
F-12
$sql = "select cabang, staff, total from delegasi where bagian='".$bd['id']."' and tgl>='".$now_month."' and tgl<'".$next_month."' order by total desc"; $high[$bd['id']] = $this->getCustomData($sql); if(count($high[$bd['id']])>0){ foreach($high[$bd['id']] as $H){ $sql = "select * from aspek where id_bagian='".$bd['id']."' and id_parent='0'"; $parent = $this->getCustomData($sql); $colspan[$bd['id']] = count($parent); $aspek[$bd['id']] = $parent; foreach($parent as $p){ $id2_asp = " id_aspek='".$p['id']."' "; $sql = "select * from aspek where id_bagian='".$bd['id']."' and id_parent='".$p['id']."'"; $child[$p['id']] = $this->getCustomData($sql); if(count($child[$p['id']])>0){ foreach($child[$p['id']] as $c){ $id2_asp.= " or id_aspek='".$c['id']."' "; } } unset($temp); $sql = "select sum(nilai) as nilai from penilaian where (".$id2_asp.") and id_staff='".intval($H['staff'])."' and tgl>='".$now_month."' and tgl<'".$next_month."' group by(id_staff) order by tgl asc"; $temp = $this->getCustomData($sql); //if($H['staff']==0 && $p['id']==7) echo $sql."<br/>"; $nilai["p-".$H['staff']][$p['id']] = $temp[0]['nilai']; } foreach($cabang_data as $cd){ $valid = true; foreach($high[$bd['id']] as $h){ if($h['cabang']==$cd['id']) $valid=false; } if($valid) $not_app[$bd['id']][] = $cd; } } } } $data['high'] = $high; $data['nilai'] = $nilai; //print_r($high); $data['aspek'] = $aspek; $data['colspan'] = $colspan;
F-13
$data['not_app']=$not_app; } $this->load->view('app_highest',$data); } function aspek_view(){ if($_POST['view']){ //print_r($_POST); $TEMP = explode("/",$_POST['bagian']); echo $bd['id'] = $TEMP[0]; $p['id'] = $_POST['aspek']; $bulan = $_POST['bulan']; $tahun = $_POST['tahun']; $wulan = intval($bulan); $n_m_m = $wulan+1; $n_m_y = $n_m_m>12?$tahun+1:$tahun; $n_m_m = $n_m_m%12>=10?$n_m_m%12:"0".($n_m_m%12); $now_month = $tahun."-".$bulan."-01 00:00:00"; $next_month = $n_m_y."-".$n_m_m."-"."01 00:00:00"; $bagian_data = $this->getRefTable("bagian","id"); $data['ref_bagian'] = $bagian_data; $cabang_data = $this->getRefTable("cabang","id"); $data['ref_cabang'] = $cabang_data; $staff_data = $this->getRefTable("staff","id"); $data['ref_staff'] = $staff_data; $aspek_data = $this->getRefTable("aspek","id"); $data['ref_aspek'] = $aspek_data; $temp = $this->getDataById($bd['id'],"bagian","id"); $data['bagian'] = array("0"=>$temp); //foreach($bagian_data as $bd) { $sql = "select cabang, staff, total from delegasi where bagian='".$bd['id']."' and tgl>='".$now_month."' and tgl<'".$next_month."' order by total desc"; $high[$bd['id']] = $this->getCustomData($sql); print_r($high[$bd['id']]); echo "sql bagian = ".$sql." hasilnya = ".print_r($high[$bd['id']])."<br/>"; if(count($high[$bd['id']])>0){ foreach($high[$bd['id']] as $H){ /* $sql = "select * from aspek where id_bagian='".$bd['id']."' and id_parent='0'"; $parent = $this->getCustomData($sql); $colspan[$bd['id']] = count($parent); $aspek[$bd['id']] = $parent; foreach($parent as $p) */ { $aspek[$bd['id']] = $this->getDataById($p['id'],"aspek","id"); $id2_asp = " id_aspek='".$p['id']."' "; $sql = "select * from aspek where id_bagian='".$bd['id']."' and id_parent='".$p['id']."'";
F-14
$child[$p['id']] = $this->getCustomData($sql); if(count($child[$p['id']])>0){ foreach($child[$p['id']] as $c){ $id2_asp.= " or id_aspek='".$c['id']."' "; } } unset($temp); $sql = "select sum(nilai) as nilai from penilaian where (".$id2_asp.") and id_staff='".intval($H['staff'])."' and tgl>='".$now_month."' and tgl<'".$next_month."' group by(id_staff) order by tgl asc"; $temp = $this->getCustomData($sql); //if($H['staff']==0 && $p['id']==7) echo $sql."<br/>"; $nilai["p-".$H['staff']][$p['id']] = $temp[0]['nilai']; } foreach($cabang_data as $cd){ $valid = true; foreach($high[$bd['id']] as $h){ if($h['cabang']==$cd['id']) $valid=false; } if($valid) $not_app[$bd['id']][] = $cd; } } } } $data['high'] = $high; $data['nilai'] = $nilai; print_r($nilai); $data['aspek'] = $aspek; $data['colspan'] = $colspan; $data['not_app']=$not_app; } $this->load->view('aspek_view',$data); } function app_aspek(){ $data['year'] = $this->show_year("delegasi"); $data['bagian'] = $this->getRefTable("bagian","id"); $this->load->view('app_aspek_view',$data); } function periodic(){ $data['year'] = $this->show_year("delegasi"); $data['ref_bagian'] = $this->getRefTable("bagian","id"); $this->load->view('periodic',$data); } function periodic_view(){ $tahun = $_POST['tahun'];
F-15
$bagian = $_POST['bagian']; $next_tahun = intval($tahun)+1; $now = $tahun."-01-01 00:00:00"; $next = (intval($tahun)+1)."-01-01 00:00:00"; $sql = "select sum(total) as total, min(cabang) as cabang, min(staff) as staff from delegasi where bagian='".$bagian."' and tgl>='".$now."' and tgl<'".$next."' group by(staff) order by sum(total) desc"; $rank = $this->getCustomData($sql); $sql = "select total, staff, MONTH(tgl) as bulan from delegasi where bagian='".$bagian."' and tgl>='".$now."' and tgl<'".$next."'"; $temp = $this->getCustomData($sql); $detail = array(array()); //print_r($temp); for($i=0;$i<count($temp);$i++){ $detail[$temp[$i]['staff']][intval($temp[$i]['bulan'])] = $temp[$i]['total']; } //print_r($rank); $data['rank'] = $rank; $data['detail'] = $detail; $data['ref_cabang'] = $this->getRefTable("cabang","id"); $data['ref_staff'] = $this->getRefTable("staff","id"); $data['info_bagian'] = $this->getDataById($bagian,"bagian","id"); $this->load->view('periodic_view',$data); } } ?>
Untuk Source Code Controller lainnya dapat dilihat pada folder aplikasi
controllers (home_app/system/application/controllers).
F.2 View
//perusahaan.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Online Reinforcement System</title> <link rel="stylesheet" type="text/css" media="all" href="<?=base_url()?>css/style.css" /> </head>
F-16
<body id="body"> <?php include "header.php"; ?> <div id="content"> <div id="content-inner"> <div id="message"> </div> <div id="headbar"> <div id="menubar" align="right"> <div class="menuicon service"> <?php echo anchor('ho/index','<img src="' . base_url() . 'css/images/add_data.png" width="32" height="32" title="Service Committee" /><br />Service Committee') ?> </div> </div> <div id="title-head"> <div id="<? //$css_id?>"> <h2>Data Perusahaan</h2> </div> </div> </div> <div id="inner-cont"> <?php if($ada) echo form_open_multipart('perusahaan/edit'); else echo form_open_multipart('perusahaan/insert'); ?> <input type="hidden" value="<?php echo $value['id']; ?>" name="id" /> <?php function makeForm($name,$type=1,$value=""){ switch($type){ case 0: return '<input type="hidden" name="'.$name.'" value="'.$value.'" />'; case 1: return '<input type="text" name="'.$name.'" value="'.$value.'" />'; case 2: return '<input type="file" name="'.$name.'" value="'.$value.'" />'; default: return '<textarea name="'.$name.'">'.$value.'</textarea>'; } }
F-17
?> <table class="ors-form"> <tr> <td>Nama Perusahaan</td> <td>:</td> <td><?php if($ada) echo $value['nama']; else echo makeForm('nama'); ?></td> </tr> <tr> <td>Alamat</td> <td>:</td> <td><?php if($ada) echo $value['alamat']; else echo makeForm('alamat',3); ?></td> </tr> <tr> <td>Bidang Usaha</td> <td>:</td> <td><?php if($ada) echo $value['bidang']; else echo makeForm('bidang'); ?></td> </tr> <tr> <td>No. Telepon</td> <td>:</td> <td><?php if($ada) echo $value['telp']; else echo makeForm('telp'); ?></td> </tr> <tr> <td>Fax</td> <td>:</td> <td><?php if($ada) echo $value['fax']; else echo makeForm('fax'); ?></td> </tr> <tr> <td>Website</td>
F-18
<td>:</td> <td><?php if($ada) echo $value['web']; else echo makeForm('web'); ?></td> </tr> <tr> <td>Logo</td> <td>:</td> <td><?php if($ada) echo "<img width='250' height='79' src='".base_url()."/uploads/logo.jpg' alt='logo perusahaan' />"; else echo makeForm('image',2); ?></td> </tr> </table> <p> <?php if($ada){?> <input type="submit" name="submit" class="button" value=" Edit " /> <?php }else{ ?> <input type="submit" name="submit" class="button" value=" Simpan " /> <?php }?> <input type="button" class="button" value=" Kembali " onclick="history.back()" /></p> <?php ?> </div> </div> </div> </div> </div> </div> </div> <div id="footer"> <div id="footer-inner"> Online Reinforcement System . © <?php echo date("Y"); ?> . Learning Resources, PT </div> </div> </div> </body> </html>
F-19
F-20
Untuk Source Code View lainnya dapat dilihat pada folder aplikasi views
(home_app/system/application/views).