159
i PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN RESOURCES INFORMATION SYSTEM ( HRIS ) (Studi Kasus Pada PT Repex Wahana) Oleh : Muhammed Razib Dwinaldi Putra NIM. 107091002908 Skripsi Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UIN SYARIF HIDAYATULLAH JAKARTA 1435 H/ 2014 M

PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

  • Upload
    ngonga

  • View
    243

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

i

PENGEMBANGAN FITUR ABSENSI PADA APLIKASI

HUMAN RESOURCES INFORMATION SYSTEM ( HRIS )

(Studi Kasus Pada PT Repex Wahana)

Oleh :

Muhammed Razib Dwinaldi Putra

NIM. 107091002908

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar

Sarjana Komputer

Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UIN SYARIF HIDAYATULLAH

JAKARTA

1435 H/ 2014 M

Page 2: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

ii

PENGEMBANGAN FITUR ABSENSI PADA APLIKASI

HUMAN RESOURCES INFORMATION SYSTEM ( HRIS )

(Studi Kasus Pada PT Repex Wahana)

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar

Sarjana Komputer

Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh :

Muhammed Razib Dwinaldi Putra

107091002908

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

1435 H/ 2014 M

Page 3: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

iii

Page 4: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

iv

Page 5: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

v

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, Agustus 2014

Muhammad Razib Dwinaldi Putra

Page 6: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

vi

Muhammed Razib Dwinaldi Putra, Pengembangan Fitur Absensi Pada Aplikasi

Human Resources Information System (HRIS) (Studi Kasus Pada PT Repex

Wahana) (Dibawah bimbingan Husni Teja Sukmana, Ph. D dan Hendra Bayu

Suseno, M. Kom)

ABSTRAK

PT. REPEX WAHANA merupakan perusahaan jasa pengiriman barang

yang memenuhi semua kebutuhan customer. Cepat, mudah, dan bisa diandalkan.

Dalam penelitian karya tulis ini penulis melakukan analisa mengenai sistem HRIS

yang sedang berjalan saat ini. Sistem absensi yang saat ini ternyata masih kurang

mendapat data yang akurat bagi karyawan, dikarenakan karyawan yang

melakukan absen masih menggunakan pencatatan secara manual. Untuk

mengatasi masalah seperti ini, maka penulis bermaksud untuk mencoba

menangani proses absensi dengan merancang suatu sistem informasi absen

berbasis web dengan menggunakan bahasa pemrograman PHP dan MySQL.

Sistem ini menggunakan 3 tahap metode. Pertama, metode pengumpulan data

dilakukan dengan tiga cara, yaitu metode observasi, metode wawancara, dan studi

pustaka. Kedua, metode pengembangan sistem yang akan digunakan adalah model

pengembangan RAD (Rapid Application Development) yang meliputi 3 tahap

yaitu, Requirement Analysis, Design Workshop, dan Implementation. Serta

menggunakan notasi UML (Unified Modeling Language) sebagai tools. Ketiga,

pengujian sistem menggunakan metode black box testing dengan hasil pengujian

bahwa desain dalam sistem telah sesuai dengan implementasi.

Kata kunci : Human Resources Information System (HRIS), Database

Kepegawaian, Sistem Absensi, PT. REPEX WAHANA.

V Bab + XXV + 76 + 18 Tabel + 29 Gambar + 9 Simbol + 7 Lampiran

Page 7: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

vii

KATA PENGANTAR

Bismillaahirrahmaanirrahiim………

Segala puji dan syukur penulis panjatkan kehadirat Allah SWT atas segala

karunia, rahmat dan kekuatan, juga segala petunjuk dan kemudahan sehingga

penulis dapat menyelesaikan penulisan skripsi ini dengan judul “Pengembangan

Fitur Absensi Pada Aplikasi Human Resources Information System (HRIS)

(Studi Kasus Pada PT Repex Wahana)”. Shalawat serta salam selalu kita

haturkan kepada junjungan kita Nabi besar Muhammad SAW, beserta

keluarganya, para sahabatnya, dan para pengikutnya.

Skripsi ini disusun untuk memenuhi salah satu syarat dalam

menyelesaikan program S1 pada Program Studi Teknik Informatika di Universitas

Islam Negeri Syarif Hidayatullah Jakarta.

Pada kesempatan yang berbahagia ini, penulis mengucapkan terima kasih

kepada pihak-pihak yang telah membantu dalam menyelesaikan skripsi ini.

Mereka yang berdedikasi tinggi diantaranya:

1. Bapak Dr. Agus Salim, M.Si., selaku Dekan Fakultas Sains dan

Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta.

2. Ibu Nurhayati, Ph.D., selaku Ketua Program Studi Teknik

Informatika, Fakultas Sains dan Teknologi, Universitas Islam Negeri

Syarif Hidayatullah Jakarta.

Page 8: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

viii

3. Ibu Viva Arifin, MMSI., selaku Sekretaris Program Studi Teknik

Informatika, Fakultas Sains dan Teknologi, Universitas Islam Negeri

Syarif Hidayatullah Jakarta.

4. Husni Teja Sukmana, Ph.D, Hendra Bayu Suseno, M.Kom., selaku

dosen pembimbing yang senantiasa sabar dan selalu meluangkan

waktunya di tengah-tengah berbagai kesibukannya untuk

membimbing penulis dalam proses penyusunan skripsi ini.

5. Seluruh Dosen Program Studi Teknik Informatika yang tidak mungkin

penulis sebutkan satu persatu.

6. Staff karyawan Fakultas Sains dan Teknologi dan Prodi TI (Ibu

Fitroh, Ibu Tari, Pak Amin, Pak Tommy, Niki, dan semuanya).

7. Karib kerabat yang selalu memberikan semangat kepada penulis.

Akhirnya, penulis berharap semoga skripsi ini dapat bermanfaat. Saran dan

kritik untuk kesempurnaan skripsi ini sangat penulis harapkan.

Jakarta, Agustus 2014

Penulis

Muhammed Razib D. P

Page 9: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

ix

LEMBAR PERSEMBAHAN

Skripsi ini terkhusus penulis persembahkan kepada mereka yang telah

mendukung, baik moril maupun materil, baik melalui doa ataupun sua dalam

menyelesaikan skripsi ini.

1. Teruntuk Keluarga. Semoga Allah SWT selalu melimpahkan rahmat,

rahim dan ampunan-Nya kepada mereka. Amin.

2. Teruntuk teman-teman satu perjuangan, Wahyudianto, Zickra Auliya,

Dodi Susanto, Zakkir, Trie Harie Haziz, Muhammad Iqbal, Yudha

Perwira, Sarifuddin Dayani, Iche Berlianty, Finna, Selvy, Wulan,

Cherry, Eva, dan Imam Dwijosyahputo. Terima kasih atas segala

bantuan dan semangatnya.

3. Teman-teman seperjuangan Teknik Informatika dan Sistem Informasi

UIN angkatan 2007. Terima kasih untuk semua kenangan terindahnya.

4. Dan seluruh pihak yang telah membantu penulis, baik langsung

maupun tidak langsung dalam menyelesaikan skripsi ini.

Page 10: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

x

DAFTAR ISI

Halaman

Halaman Judul ................... .............................................................................. ii

Lembar Persetujuan Pembimbing .................................................................... iii

Lembar Persetujuan Penguji ............................................................................ iv

Lembar Pernyataan .......................................................................................... v

Abstrak ............................................................................................................ vi

Kata Pengantar ................................................................................................ vii

Lembar Persembahan ....................................................................................... ix

Daftar Isi. ......................................................................................................... x

Daftar Gambar . ................................................................................................ xvi

Daftar Tabel ..................................................................................................... xix

Daftar Simbol ................................................................................................... xx

Daftar Istilah..................................................................................................... xxiv

BAB I PENDAHULUAN .............................................................................. 1

1.1. Latar Belakang .................................................................................. 1

1.2. Perumusan Masalah .......................................................................... 2

1.3. Pembatasan Masalah ......................................................................... 2

1.4. Tujuan Penelitian dan Manfaat Penelitian ........................................ 3

1.4.1. Tujuan Penelitian………......................................................... 3

1.4.2. Manfaat Penelitian .................................................................. 4

1.5. Metodologi Penelitian ....................................................................... 4

Page 11: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xi

1.5.1. Metode Pengumpulan Data .................................................... 4

1.5.2. Analisis Pengembangan Sistem .............................................. 5

1.6. Sistematika Penulisan ....................................................................... 7

BAB II LANDASAN TEORI ........................................................................ 8

2.1. Konsep Dasar Sistem …………………………................................ 8

2.1.1. Karakteristik Sistem................................................................ 10

2.1.2. Klasifikasi Sistem …............................................................... 12

2.2. Konsep Dasar Informasi ..……….. ................................................... 14

2.3. Konsep Dasar Sistem Informasi . ...................................................... 14

2.3.1. Komponen Sistem Informasi .................................................. 15

2.4. Pengolahan Data................................................................................ 17

2.5. Analisis Sistem .................................................................................. 17

2.5.1. Definisi Analisis Sistem ......................................................... 17

2.5.2. Fungsi Analisis Sistem ........................................................... 18

2.6. Perancangan Sistem .......................................................................... 18

2.7. Konsep Dasar RAD (Rapid Aplication Development) ...................... 19

2.7.1. Definisi RAD........................................................................... 19

2.7.2. Tahapan RAD .......................................................................... 19

2.8. Alat Bantu Perancangan .................................................................... 21

2.8.1. Unified Modeling Language (UML) ....................................... 21

2.8.2. Diagram UML ......................................................................... 22

Page 12: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xii

2.9. Bahasa Pemrograman PHP ............................................................... 25

2.9.1. Tipe Data Dalam PHP ............................................................ 26

2.9.2. Variabel Dalam PHP .............................................................. 26

2.9.3. Operator Dalam PHP .............................................................. 27

2.9.4. Fungsi Dalam PHP ................................................................. 27

2.10. JQuery………. .................................................................................. 28

2.11. Sumber Daya Manusia (SDM) .......................................................... 29

2.12. Pengujian Aplikasi ............................................................................ 30

2.13. Studi Literatur ................................................................................... 31

BAB III METODOLOGI PENELITIAN .................................................... 34

3.1. Metode Pengummpulan Data ............................................................ 34

3.2. Metode Pengembangan Sistem ......................................................... 35

3.3. Kerangka Berfikir.............................................................................. 36

BAB IV HASIL DAN PEMBAHASAN ...................................................... 37

4.1. Profil Perusahaan PT Repex Wahana ............................................... 37

4.1.1.Visi dan Misi PT Repex Wahana ................................................ 38

4.2. Perancangan Sistem Model RAD ...................................................... 38

4.2.1. Requirements Planning .............................................................. 38

4.2.1.1. Analisis Data..................................................................... 38

4.2.1.2. Analisis Sistem ................................................................. 39

Page 13: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xiii

4.2.1.3. Analisis Permasalahan ...................................................... 41

4.2.1.4. Solusi Permasalahan ......................................................... 42

4.2.2. Design Workshop ....................................................................... 42

4.2.2.1. Usecase Diagram ............................................................. 42

4.2.2.2. Class Diagram .................................................................. 53

4.2.2.2.1. Spesifikasi Database………………………….. 53

4.2.2.3. State Diagram ................................................................... 58

4.2.2.4. Activity Diagram............................................................... 63

4.2.2.5. Sequence Diagram ............................................................ 65

4.2.3. Implementation ........................................................................... 69

4.2.3.1. Coding .............................................................................. 71

4.2.3.2. Testing .............................................................................. 71

BAB V KESIMPULAN DAN SARAN ......................................................... 73

5.1. Kesimpulan ....................................................................................... 69

5.2. Saran .................................................................................................. 69

DAFTAR PUSTAKA ......................................................................................75

LAMPIRAN-LAMPIRAN

Page 14: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xiv

DAFTAR GAMBAR

Halaman

Gambar 2.1. Model Umum Sistem (Input – Proses – Output/IPO) .................... 09

Gambar 2.2. Model Umum Pemrosesan Data ..................................................... 17

Gambar 2.3. Tahapan RAD .................................................................................. 20

Gambar 2.4. Use Case Diagram.......................................................................... 22

Gambar 2.5. Class Diagram ................................................................................ 23

Gambar 2.6. Statechart Diagram ........................................................................ 23

Gambar 2.7. Activity Diagram............................................................................. 24

Gambar 2.8. Use Case Diagram.......................................................................... 24

Gambar 3.1. Tahapan RAD (Kendall, 2008) ....................................................... 35

Gambar 3.2. Kerangka Berfikir ........................................................................... 36

Gambar 4.1. Bagan alir (Flowchart) sistem yang sedang berjalan ..................... 40

Gambar 4.2. Alur Usecase Diagram Sistem Informasi Absensi ........................ 43

Gambar 4.3. Class Diagram ............................................................................... 53

Gambar 4.4. State Diagram Login ...................................................................... 59

Gambar 4.5. State Diagram View Time Schedule .............................................. 59

Gambar 4.6. State Diagram View Time Holiday ................................................ 60

Gambar 4.7. State Diagram View Employee Time Holiday ............................... 60

Gambar 4.8. State Diagram View Print Individual ............................................. 61

Gambar 4.9. State Diagram View Print Departement ......................................... 61

Gambar 4.10. State Diagram View Print SBU .................................................... 62

Page 15: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xv

Gambar 4.11. State Diagram Logout .................................................................. 62

Gambar 4.12. Activity Diagram .......................................................................... 64

Gambar 4.13. Sequence Diagram Login ............................................................. 65

Gambar 4.14 Sequence Diagram Time Schedule ............................................... 66

Gambar 4.15. Sequence Diagram Time Holiday ................................................ 66

Gambar 4.16. Sequence Diagram Employee Time Schedule ............................. 67

Gambar 4.17. Sequence Diagram Print Individual ............................................. 67

Gambar 4.18. Sequence Diagram Print Department .......................................... 68

Gambar 4.19. Sequence Diagram Print SBU ...................................................... 68

Page 16: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xvi

DAFTAR TABEL

Halaman

Tabel 4.1. Cause-and-Effect Analysis ................................................................ .. 41

Tabel 4.2. Usecase Skenario Login ................................................................... .. 44

Tabel 4.3. Usecase Skenario Time Schedule ..................................................... .. 45

Tabel 4.4. Usecase Skenario Time Holiday ....................................................... .. 46

Tabel 4.5. Usecase Skenario Employee Time Schedule .................................... .. 47

Tabel 4.6. Usercase Skenario Print Individual ................................................. .. 49

Tabel 4.7. Usecase Skenario Print Departement ............................................... .. 50

Tabel 4.8. Usercase Skenario Print SBU ........................................................... .. 51

Tabel 4.9. Usecase Skenario Logout ................................................................. .. 52

Tabel 4.10. Spesifikasi tabel user ...................................................................... .. 54

Tabel 4.11. Spesifikasi tabel user level ............................................................. .. 54

Tabel 4.12. Spesifikasi tabel user menu ............................................................ .. 55

Tabel 4.13. Spesifikasi tabel user menu access ................................................. .. 55

Tabel 4.14. Spesifikasi tabel master time schedule ........................................... .. 56

Tabel 4.15. Spesifikasi tabel employee time schedule ....................................... .. 56

Tabel 4.16. Spesifikasi tabel attendance admin ................................................ .. 56

Tabel 4.17. Spesifikasi tabel attendance days ................................................... .. 57

Tabel 4.18. Spesifikasi tabel attendance code ................................................... .. 58

Page 17: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xvii

Simbol Bagan Alir (Flowchart)

Simbol Nama Fungsi

Alternate Symbol Simbol yang

menunjukkan pergantian

proses awal/akhir

Process Symbol Menunjukkan kegiatan

proses dari operasi

computer

Data Penjelasan tentang Data

Multi document Dokumen yang diolah

computer

Data Flow Simpanan data dalam

database

Display menghubungkan use case

dasar ke use case

tambahan

Arus Data Menjelaskan Aliran Data

Page 18: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xviii

DFD (Data Flow Diagram)

Simbol Nama Fungsi

Process Menunjukkan

kegiatan proses

operasi dari

sistem

Entitas Luar Entitas yang

memberi dan

menerima data

Data Storage Tempat

penyimpanan dan

pengambilan file

data

Arus Data Menunjukkan

arah/arus dari

data yang

diproses

Page 19: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xix

ERD (Entity Relationship Diagram)

Simbol Nama Fungsi

Entity Komponen yang

berupa file-file

dan untuk

diproses oleh

sistem

Relasi Penghubung

antara entitas lain

Atribut Atribut dari

entitas yang

tersedia

Notasi Derajat Relasi Minimum dan

Maksimum

1 : 1

1 : M

M : N

Simbol State Transition Diagram (STD)

Simbol Nama Fungsi

Tindakan Menggambarkan

Tindakan yang diambil

jika suatu event terjadi

Tampilan Menggambarkan

tayangan atau layer

yang tampil

1 1

1 m

m n

Page 20: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xx

Simbol Use Case Diagram

NO GAMBAR NAMA KETERANGAN

1

Actor

Menspesifikasikan himpuan peran yang

pengguna mainkan ketika berinteraksi

dengan use case.

2

Dependency

Hubungan dimana perubahan yang terjadi

pada suatu elemen mandiri (independent)

akan mempengaruhi elemen yang

bergantung padanya elemen yang tidak

mandiri (independent).

3

Generalizatio

n

Hubungan dimana objek anak (descendent)

berbagi perilaku dan struktur data dari objek

yang ada di atasnya objek induk (ancestor).

4

Include Menspesifikasikan bahwa use case sumber

secara eksplisit.

5

Extend

Menspesifikasikan bahwa use case target

memperluas perilaku dari use case sumber

pada suatu titik yang diberikan.

6

Association Apa yang menghubungkan antara objek satu

dengan objek lainnya.

7

System

Menspesifikasikan paket yang menampilkan

sistem secara terbatas.

8

Use Case

Deskripsi dari urutan aksi-aksi yang

ditampilkan sistem yang menghasilkan

suatu hasil yang terukur bagi suatu aktor

Page 21: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xxi

9

Collaboration

Interaksi aturan-aturan dan elemen lain

yang bekerja sama untuk menyediakan

prilaku yang lebih besar dari jumlah dan

elemen-elemennya (sinergi).

10

Note

Elemen fisik yang eksis saat aplikasi

dijalankan dan mencerminkan suatu sumber

daya komputasi

Simbol Class Diagram

NO GAMBAR NAMA KETERANGAN

1

Generalization

Hubungan dimana objek anak

(descendent) berbagi perilaku dan

struktur data dari objek yang ada di

atasnya objek induk (ancestor).

2

Nary

Association

Upaya untuk menghindari asosiasi

dengan lebih dari 2 objek.

3

Class

Himpunan dari objek-objek yang

berbagi atribut serta operasi yang

sama.

4

Collaboration

Deskripsi dari urutan aksi-aksi yang

ditampilkan sistem yang

menghasilkan suatu hasil yang

terukur bagi suatu aktor

5

Realization

Operasi yang benar-benar dilakukan

oleh suatu objek.

6

Dependency

Hubungan dimana perubahan yang

terjadi pada suatu elemen mandiri

(independent) akan mempegaruhi

elemen yang bergantung padanya

elemen yang tidak mandiri

7

Association

Apa yang menghubungkan antara

objek satu dengan objek lainnya

Page 22: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xxii

Simbol Sequence Diagram

NO GAMBAR NAMA KETERANGAN

1

LifeLine

Objek entity, antarmuka yang saling

berinteraksi.

2

Message

Spesifikasi dari komunikasi antar

objek yang memuat informasi-

informasi tentang aktifitas yang

terjadi

3

Message

Spesifikasi dari komunikasi antar

objek yang memuat informasi-

informasi tentang aktifitas yang

terjadi

Simbol StateChart Diagram

NO GAMBAR NAMA KETERANGAN

1

State Nilai atribut dan nilai link pada suatu waktu

tertentu, yang dimiliki oleh suatu objek.

2 Initial Pseudo

State Bagaimana objek dibentuk atau diawali

3

Final State Bagaimana objek dibentuk dan dihancurkan

4

Transition

Sebuah kejadian yang memicu sebuah state

objek dengan cara memperbaharui satu atau

lebih nilai atributnya

5

Association Apa yang menghubungkan antara objek satu

dengan objek lainnya.

Page 23: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xxiii

6

Node

Elemen fisik yang eksis saat aplikasi

dijalankan dan mencerminkan suatu sumber

daya komputasi.

Simbol Actifity Diagram

NO GAMBAR NAMA KETERANGAN

1

Actifity

Memperlihatkan bagaimana masing-

masing kelas antarmuka saling

berinteraksi satu sama lain

2

Action State dari sistem yang mencerminkan

eksekusi dari suatu aksi

3

Initial Node Bagaimana objek dibentuk atau

diawali.

4 Actifity Final

Node

Bagaimana objek dibentuk dan

dihancurkan

5

Fork Node Satu aliran yang pada tahap tertentu

berubah menjadi beberapa aliran

Page 24: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xxiv

DAFTAR ISTILAH

Customizable Penyesuaian penggunaan

Reminder Hal Pengingat kondisi.

Input Pemasukkan data kedalam penyimpanan data.

Output Keluaran data

User Pengguna dari sistem

RAD Rapid Aplication Development. Pengembangan

aplikasi secara cepat

Testing Tahapan dimana pengembangan software

melakukan uji coba terhadap aplikasi.

Programmer Orang yang ahli dalam membuat suatu aplikasi

program.

User Friendly Bersahabat untuk digunakan, sehingga user

mudah untuk menggunakan.

Design Tahapan dimana pengembangan software

melakukan perancangan.

Coding Tahapan dimana pengembangan software

Page 25: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

xxv

melakukan pembangunan aplikasi.

Blackbox Suatu jenis pengujian perangkat lunak

berdasarkan dengan input, output pemakai.

open source Sumber yang dapat digunakan. Aplikasi yang

dapat digunakan secara bebas oleh pengguna.

Knowledge Based System Pengetahuan mendasar seseorang terhadap sistem

Internet Jaringan yang saling behubungan. istilah umum

yang dipakai untuk menunjukkan network tingkat

dunia yang terdiri dari komputer dan layanan

service atau sekitar 30 sampai 50 juta pemakai

komputer

Electronic Mail (Email) Surat elektronik. Pengiriman pesan melalui

jaringan komputer.

World Wide Web Jaringan Internet seluruh dunia

Page 26: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Seiring dengan perkembangan teknologi yang begitu pesat, sistem

informasi yang berbasis web dimanfaatkan sebagai sarana peningkatan

informasi. Pemanfaatan tersebut akan mempermudah suatu pekerjaan seperti

pengolahan data lebih cepat, keputusan yang akan diambil lebih tepat,

menghemat waktu dan biaya. Selain itu, sistem informasi yang berbasis web

juga dapat menjadi sarana promosi yang efesien dan sumber informasi yang

dapat diakses oleh pengguna internet yang semakin lama semakin luas.

Sebagian besar informasi bisnis saat ini masih dalam format kertas.

Kertas dokumen masih memenuhi laci penyimpanan dokumen. Kegiatan

mencari kembali dokumen-dokumen di tempat penyimpanan merupakan

pengalaman yang melelahkan. Dokumen dapat salah letak atau bahkan

hilang, dan sangat jarang ada cadangan (back-up) dokumen seperti ini.

Sistem kerja secara manual masih terjadi PT Repex Wahana. Semua

pemprosesan data, khususnya di bagian kepegawaian masih dilakukan secara

manual seperti dalam proses absensi, dan pembuatan laporan absensi masih

menggunakan Microsoft excel. Dampaknya berpengaruh dalam kegiatan

operasionalnya, yakni pada pembuatan laporan bulanan yang memerlukan

waktu yang cukup lama.

Page 27: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

2

Untuk dapat memudahkan bagian kepegawaian mendapatkan informasi

yang berhubungan dengan absensi secara lengkap dan terperinci, penulis akan

menganalisis kebutuhan PT. REPEX WAHANA, bidang kepegawaian. Di

analisis tersebut, akhirnya ditemukan gagasan untuk itu, penulis akan

mengembangkan sistem. Suatu program yang mempermudah penghimpunan

informasi absensi atau absensi data kepegawaian. Gagasan ini tertuang

menjadi bahan skripsi yang berjudul “Pengembangan Fitur Absensi Pada

Aplikasi Human Resources Information System (HRIS) Di PT. Repex

Wahana.”

1.2. Rumusan Masalah

Atas dasar permasalahan yang dipaparkan, maka perumusan masalah

dalam penelitian ini adalah bagaimana melakukan pengembangan aplikasi

HRIS di PT. Repex Wahana?

1.3. Batasan Masalah

Agar penyusunan dan penulisan skripsi ini lebih terarah maka ruang

lingkup pembahasan akan dibatasi pada permasalahan sebagai berikut :

1. Pengembangan sistem pada aplikasi HRIS PT. Repex Wahana

menggunakan metode berorentasi obyek dengan model Rapid Application

Development (RAD) dan tools Unified Modeling Language (UML).

Dengan memiliki 3 tahapan rencana kebutuhan, proses desain dan

implemetasi.

Page 28: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

3

2. Pengembangan aplikasi HRIS PT. Repex Wahana menggunakan aplikasi

XAMPP 1.8.2, dengan bahasa pemrograman PHP 5.4.16 dan DBMS

MySQL 5.0.10 serta JqueryUI 1.7.2 sebagai tampilan.

3. Security di dalam sistem ini terdiri dari dua akses yaitu administrator dan

attendance, untuk tambah, edit dan hapus data hanya dilakukan oleh

admin yang sudah ditunjuk.

1.4 Tujuan dan Manfaat Penelitian

1.4.1 Tujuan Penelitian

Penelitian ini dilakukan dengan maksud dan tujuan tentang apa

yang akan dibuat, yang nantinya akan mencapai hasil yang diinginkan.

Adapun tujuan dari penelitian ini adalah sebagai berikut:

1. Merancang suatu sistem absensi yang langsung mencatat

kehadiran dan pulang karyawan dalam sistem aplikasi HRIS.

2. Memberikan alternatif solusi untuk memperbaiki

permasalahan absensi dan prosedur yang lebih luas lagi yang

terjadi pada sistem tersebut agar lebih efektif dan efesien

dengan dukungan teknologi.

1.4.2 Manfaat Penelitian

Manfaat yang dapat diperoleh dari penelitian ini adalah :

1. Bagi Penulis

Bertambah wawasan dan pengalaman penulis dalam bidang

programming dan teknologi informasi dalam hal-hal yang berkaitan

dengan metodologi penulisan tugas akhir.

Page 29: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

4

2. Bagi Perusahaan

Merancang suatu aplikasi yang mempermudah kinerja bidang

kepegawaian dalam hal absensi serta mendapatkan informasi-

informasi yang berhubungan dengan absensi secara lengkap dan

terperinci.

1.5 Metode Penelitian

Metode adalah suatu cara atau teknik yang sistematis untuk mengerjakan

atau menyelesaikan suatu penelitian. Adapun metode penelitian yang

digunakan penulis untuk menyelesaikan berbagai permasalahan yang

ditemukan adalah :

1.5.1. Pengumpulan Data

Penulis memperoleh data dengan melakukan riset secara langsung

kepada instansi terkait dalam prosedur yang sistematik dan standar

sehingga mendapatkan data-data yang baik dan benar dengan model

pengumpulan data sebagai berikut:

a. Observasi

Melalui pengamatan secara langsung atau observasi yang

dilakukan di perusahaan guna mendapatkan data yang dimaksud

(Jogiyanto, 2008: 59).

b. Wawancara

Wawancara memungkinkan untuk mendapatkan data secara lebih

mendalam karena bertatapan langsung dengan narasumber

(Jogiyanto, 2008: 59).

Page 30: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

5

c. Studi Pustaka

Studi pustaka dilakukan untuk menambah referensi teori-teori

yang diperlukan dalam penelitian dengan cara membaca dan

mempelajari literatur yang mendukung penelitian ini,

diantaranya yaitu: jurnal, buku-buku, makalah dan artikel

(Jogiyanto, 2008: 59).

1.5.2. Analisis Pengembangan Sistem

Metode pengembangan sistem yang penulis gunakan adalah metode

Rapid Application Development (RAD), yang memiliki tahapan

sebagai berikut (Kendall dan Kendall, 2008: 267) :

a. Rencana Kebutuhan (Requirement Planning).

Pada tahap ini, user dan analyst melakukan semacam

pertemuan untuk melakukan identifikasi tujuan dari aplikasi

atau system dan melakukan identifikasi kebutuhan informasi

untuk mencapai tujuan. Hal terpenting pada tahap ini adalah

adanya keterlibatan dari kedua belah pihak, bukan

hanya sekedar persetujuan akan proposal yang sudah dibuat.

Untuk lebih jauh lagi, keterlibatan user bukan hanya dari satu

tingkatan pada suatu organisasi, melainkan beberapa

tingkatan organisasi sehingga informasi yang dibutuhkan

untuk masing-masing user dapat terpenuhi dengan baik.

Page 31: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

6

b. Proses Desain (RAD Design Workshop).

Pada tahap ini adalah melakukan proses desain dan

melakukan perbaikan-perbaikan apabila masih terdapat

ketidaksesuaian desain antara user dan analyst. Untuk tahap

ini maka keaktifan user yang terlibat sangat menentukan

untuk mencapai tujuan, karena user bisa langsung

pemberikan komentar apabila terdapat ketidaksesuaian pada

desain. Biasanya, user dan analyst berkumpul menjadi satu

dan duduk di meja melingkar dimana masing-masing orang

bias melihat satu dengan yang lain tanpa ada halangan.

c. Implementasi (Implementation).

Setelah desain dari sistem yang akan dibuat sudah disetujui

baik itu oleh user dan analyst, maka pada tahap ini

programmer mengembangkan desain menjadi suatu program.

1.6 Sistematika Penulisan

Dalam penulisan laporan ini, penulis akan melakukan pembahasan

dengan membagi ke dalam 5 bab, yaitu :

BAB I PENDAHULUAN

Dalam bab ini dibahas secara singkat latar belakang masalah

untuk penentuan judul, identifikasi masalah, pembatasan

masalah, perumusan masalah, metode pembahasan, dan

sistematika penulisan.

Page 32: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

7

BAB II LANDASAN TEORI

Dalam bab ini berisikan tentang teoritis pengertian-

pengertian, metode penyusunan data serta bahasa

pemrograman yang digunakan.

BAB III METODOLOGI PENELITIAN

Dalam bab ini membahas tentang metodologi yang

digunakan, dimulai dengan metode pengumpulan data dan

tahapan-tahapan analisa dan pengembangan yang diterapkan

dalam aplikasi HRIS PT. Repex Wahana.

BAB IV PEMBAHASAN

Dalam bab ini menguraikan tentang latar belakang instansi

dan menjelaskan pengembangan aplikasi HRIS PT. Repex

Wahana yang menggunakan beberapa tahap perancangan

sistem “Rapid Application Development (RAD).

BAB V PENUTUP

Dalam bab ini menguraikan tentang kesimpulan dan

rekomendasi untuk penelitian selanjutnya.

Page 33: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

8

BAB II

LANDASAN TEORI

2.1 Konsep Dasar Sistem

Sistem bukan lagi sebagai hal asing bagi kebanyakan orang dalam

kehidupan sehari-hari. Sering kali orang menganggap sebuah sistem adalah

seperangkat computer. Sistem juga bisa mengarah kepada arti yang lebih

luas seperti sistem tata surya, sistem pernapasan dan sistem-sistem lainnya.

Menurut Sutarman (2012:13), Sistem adalah kumpulan elemen yang saling

berhubungan dan berinteraksi dalam satu kesatuan untuk menjalankan suatu

proses pencapaian suatu tujuan utama.

Berdasarkan pemahaman tersebut dapat dijabarkan bahwa “Sistem adalah

sekumpulan elemen yang membentuk suatu jaringan yang saling terkaint

satu sama lain untuk mencapai suatu tujuan tertentu”. Ada beberapa elemen

yang membentuk suatu sistem (Yakub, 2012:3), yaitu:

1. Tujuan (Goal)

Sebuah sistem pasti memiliki suatu tujuan baik satu tujuan

atau pun banyak tujuan. Dengan adanya suatu tujuan yang jelas

akan menghasilkan suatu sistem yang terarah dan terkendali.

Tujuan suatu sistem dibuat berdasarkan pada kegiatan pembuatan

sistem yang sedang ditangani. Ada 3 (tiga) tujuan umum, yaitu;

a. Untuk mendukung fungsi kepengurusan manajemen.

b. Untuk mendukung pengambilan keputusan manajemen.

Page 34: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

9

c. Untuk mendukung kegiatan operasi sistem.

2. Masukan (Input)

Sistem adalah segala sesuatu yang masuk ke dalam sistem

dan selanjutnya menjadi bahan untuk diproses. Masukan berupa

data transaksi, data non transaksi dan instruksi atau perintah.

3. Proses (Process)

Proses adalah bagian yang melakukan perubahan atau

transformasi dari masukan menjadi keluaran yang berguna. Dalam

sistem informasi, proses berupa perhitungan, pengurutan data dan

peringkasan data.

4. Keluaran (Output)

Keluaran merupakan hasil dari sebuah pemrosesan. Pada

sistem informasi seperti suatu informasi, saran, laporan dan

sebagainya.

Elemen-elemen tersebut di atas dapat digambarkan seperti gambar dibawah

ini:

Gambar 2.1 Model Umum Sistem (Input – Proses – Output/IPO) (Yakub, 2012:5)

input

Proses Output

Page 35: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

10

2.1.1 Karakteristik Sistem

Model umum sebuah sistem adalah input, proses, dan output. Hal ini

merupakan konsep sebuah sistem yang sangat sederhana sebab sebuah sistem

dapat mempunyai beberapa masukan dan keluaran. Selain itu, sebuah sistem

mempunyai karakteristik atau sifat-sifat tertentu yang mencirikan bahwa hal

tersebut bisa dikatakan sebagai suatu sistem. Adapun karakteristik yang dimaksud

adalah sebagai berikut (Sutabri, 2012:13):

1. Komponen Sistem (Component)

Komponen-komponen sistem tersebut dapat berupa suatu bentuk

subsistem. Setiap subsistem memiliki sifat dari sistem yang menjalankan

suatu fungsi tertentu dan mempengaruhi proses sistem secara

keseluruhan.

2. Batasan Sistem (Boundary)

Ruang lingkup sistem merupakan daerah yang membatasi antara

sistem dengan sistem yang lain atau sistem dengan lingkungan luarnya.

Batasan sistem ini memungkinkan suatu sistem dipandang sebagai satu

kesatuan yang tidak dapat dipisahkan.

3. Lingkungan Luar Sistem (Environment)

Bentuk apapun yang ada diluar ruang lingkup atau batasan sistem

yang mempengaruhi operasi sistem tersebut disebut lingkungan luar

sistem. Lingkungan luar sistem ini dapat bersifat menguntungkan dan

dapat juga bersifat merugikan sistem tersebut.

Page 36: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

11

4. Penghubung (Interface)

Media yang menghubungkan sistem dengan subsistem yang lain

disebut penghubung sistem atau interface. Penghubung ini

memungkinkan sumber-sumber daya mengalir dari satu subsistem ke

subsistem lain. Bentuk keluaran dari satu subsistem akan menjadi

masukan untuk subsitem lain melalui penghubung tersebut. Dengan

demikian, dapat terjadi suatu integrasi sistem yang membentuk satu

kesatuan.

5. Masukan Sistem (Input)

Energi yang dimasukkan ke dalam sistem disebut masukan sistem,

yang dapat berupa pemeliharaan (maintenance input) dan sinyal (signal

input).

6. Keluaran Sistem (Output)

Hasil energi yang diolah dan diklasifikasikan menjadi keluaran

yang berguna. Keluaran ini dapat mennjadi masukan bagi subsistem

yang lain seperti sistem informasi. Keluaran yang dihasilkan adalah

informasi. Informasi ini dapat digunakan sebagai masukan untuk

pengambilan keputusan atau hal-hal lain yang menjadi input bagi

subsitem lain.

7. Pengolah Sistem (Process)

Suatu sistem dapat mempunyai suatu proses yang akan mengubah

masukan menjadi keluaran.

Page 37: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

12

8. Sasaran (Objectives) dan Tujuan (Goal)

Suatu sistem mempunyai tujuan dan sasaran yang pasti dan bersifat

deterministik. Kalau suatu sistem tidak memiliki sasaran maka operasi

sistem tidak ada gunanya. Suatu sistem dikatakan berhasil bila

mengenai sasaran atau tujuan yang telah direncanakan.

Suatu sistem dikatakan berhasil apabila mengenai sasaran atau tujuannya.

Jika suatu sistem tidak mempunyai sasaran, maka operasi sistem tidak akan ada

gunanya.

2.1.2 Klasifikasi Sistem

Menurut Mustakini (2009:53), Suatu sistem dapat diklasifikasikan:

1. Sistem abstrak (abstact system) dan sistem fisik (phisical system)

Sistem abstrak adalah sistem yang berupa pemikiran atau ide-

ide yang tidak tempak secara fisik, misalnya sistem teknologi yaitu

sistem yang berupa pemikiran-pemikiran hubungan antara manusia

dengan Tuhan. Sitem fisik merupakan sistem yang ada secara fisik.

2. Sistem Alami (natural system) dan Sistem Buatan Manusia (human

made system)

Sistem alami adalah sistem yang keberadaannya terjadi secara

alami/natural tanpa campuran tangan manusia. Sedangkan sistem

buatan manusia adalah sebagai hasil kerja manusia. Contoh sistem

alamiah adalah sistem tata surya yang terdiri dari atas sekumpulan

planet, gugus bintang dan lainnya. Contoh sistem abstrak dapat

Page 38: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

13

berupa sistem komponen yang ada sebagai hasil karya teknologi

yang dikembangkan manusia.

3. Sistem pasti (deterministic system) dan sistem tidak tentu

(probobalistic system)

Sistem tertentu adalah sistem yang tingkah lakunya dapat

ditentukan/diperkirakan sebelumnya. Sedangkan sistem tidak tentu

sistem tingkah lakunya tidak dapat ditentukan sebelumnya. Sistem

aplikasi komputer merupakan contoh sistem yang tingkah lakunya

dapat ditentukan sebelumnya. Program aplikasi yang dirancangdan

dikembangkan oleh manusia dengan menggunakan prosedur yang

jelas, terstruktur dan baku.

4. Sistem Tertutup (closed system) dan Sistem Terbuka (open system)

Sistem tertutup merupakan sistem yang tingkah lakunya tidak

dipengaruhi oleh lingkungan luarnya. Sebaliknya, sistem terbuka

mempunyai prilaku yang dipengaruhi oleh lingkungannya. Sistem

aplikasi komputer merupakan sistem relative tertutup, karena

tingkah laku sistem aplikasi komputer tidak dipengaruhi oleh

kondisi yang terjadi diluar sistem.

Page 39: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

14

2.2. Konsep Dasar Informasi

Definisi informasi menurut Krismiaji (2010:15) dalam bukunya yang

berjudul Sistem Informasi Akuntansi menjelaskan bahwa Informasi adalah

data yang telah diorganisasi dan telah memiliki kegunaan dan manfaat.

Sedangkan pengertian informasi menurut Susanto (2009:40) dalam

bukunya yang berjudul Sistem Informasi Manajemen, adalah Informasi

merupakan hasil dari pengolahan data, akan tetapi tidak semua hasil dari

pengolahan tersebut bisa menjadi informasi, hasil pengolahan data yang

tidak memberikan makna atau arti serta tidak bermanfaat bagi seseorang

bukanlah merupakan informasi bagi orang tersebut.

Menurut penjabaran tersebut, dapat dikatakan bahwa “informasi adalah

data yang telah diolah menjadi sebuah bentuk yang bermanfaat dan dapat

digunakan untuk pengmabilan keputusan”. Dengan demikian, informasi

merupakan aset penting bagi kegiatan proses bisnis di sebuah perusahaan.

Informasi yang baik, benar, jelas dan tepat akan menghasilkan suatu

keputusan yang sangat bermanfaat bagi sebuah perusahaan.

2.3. Konsep Dasar Sistem Informasi

Sistem Informasi ini mengumpulkan, memproses, menyimpan,

menganalisis, meyebarkan informasi untuk tujuan tertentu. Seperti sistem

lainnya, sebuah sistem informasi terdiri atas input (data, instruksi) dan

output (laporan, kalkulasi). Sistem Informasi memproses input dan

menghasilkan output yang dikirim kepada pengguna atau sistem yang

lainnya. Mekanisme timbal balik yang mengontrol operasi pun bisa

Page 40: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

15

dimasukkan. Seperti sistem lainnya, sebuah sistem informasi beroperasi di

dalam sebuah lingkungan. Dalam mempelajari sistem informasi, perlu

diketahui mengenai perbedaan data, informasi, dan pengetahuan (Sutarman,

2009: 13).

Berdasarkan pemahaman tersebut dapat disimpulkan bahwa “sistem

informasi adalah rangkaian prosedur dimana data dikelompokkan dan

diproses menjadi suatu informasi yang bermanfaat untuk pengambilan

keputusan”.

2.3.1. Komponen Sistem Informasi

Menurut Mulyanto (2009:31), “sistem informasi terdiri dari lima

sumber daya yang dikenal sebagai komponen sistem informasi. Kelima

sumber daya tersebut adalah manusia, hardware, software, data, dan

jaringan. Kelima komponen tersebut memainkan peranan yang sangat

penting dalam suatu sistem informasi. Namun dalam kenyataannya, tidak

semua sistem informasi mencakup kelima komponen tersebut”. berikut

merupkan penjelasan komponen dari sistem informasi :

A. Sumber Daya Manusia

Manusia mengambil peranan yang penting bagi sistem informasi.

Manusia dibutuhkan untuk mengoperasikan sistem informasi. Sumber daya

manusia dapat dibedakan menjadi dua kelompok yaitu pengguna akhir dan

pakar sistem informasi. Pengguna akhir adalah orang-orang yang

menggunakan informasi yang dihasilkan dari sistem informasi, sedangkan

Page 41: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

16

pakar sistem informasi orang-orang yang mengembangkan dan

mengoperasikan sistem informasi.

B. Sumber Daya Hardware

Sumber daya hardware adalah semua peralatan yang digunakan dalam

pemrosesan informasi. Sumber daya ini tidak hanya sebatas komputer

saja, melainkan semua media data seperti lembaran kertas dan disk

magnetic atau optikal.

C. Sumber Daya Software

Sumber daya software adalah semua rangkaian perintah (instruksi)

yang digunakan untuk memproses informasi. Sumber daya ini tidak hanya

berupa program saja, tetapi juga berupa prosedur.

D. Sumber Daya Data

Sumber daya data bukan hanya sekedar bahan baku untuk memasukan

sebuah sistem informasi, melainkan sebagai dasar membentuk sumber

daya organisasi.

E. Sumber Daya Jaringan

Sumber daya jaringan merupakan media komunikasi yang

menghubungkan komputer, memproses komunikasi, dan peralatan lainnya,

serta dikendalikan melalui software komunikasi. Sumber daya ini dapat

berupa media komunikasi seperti kabel, satelit dan dukungan jaringan

seperti modem, software pengendali, serta prosesor antar jaringan.

Page 42: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

17

2.4. Pengolahan Data

Dalam bukunya, Putra dan Subiyakto (2006:15) menjelaskan bahwa

pengolahan data adalah proses transformasi dari fakta-fakta mentah yang

belum dievaluasi menjadi informasi yang terintegrasi dan menyeluruh. Data

adalah masukan dari suatu modelpengolahan data yang menghasilkan

pengeluaran berupa informasi.

Proses pengolahan data umumnya terdiri dari tiga tahap aktifitas, yaitu:

1. Input, memasukkan data yang akan diproses.

2. Proses, melakukan proses untuk mengubah input menjadi output.

3. Output, mengeluarkan hasil pengolahan data berupa informasi.

Model umum pemrosesan ini dapat digambarkan seperti di bawah ini:

Gambar 2.2 Model Umum Pemrosesan Data (Putra dan Subiyakto, 2006:15)

2.5. Analisis sistem

2.5.1. Definisi Analisis sistem

Informasi di dalam suatu organisasi sangatlah penting dan tidak dapat

dikembangkan keberadaannya, karena informasi dapat membuat suatu

organisasi meraih tujuan dari didirikannya organisasi tersebut. Dengan

informasi suatu organisasi dapat menyelesaikan masalah yang dihadapinya

dan dengan informasi juga suatu organisasi dapat mengontrol semua

aktifitas yang ada di dalamnya.

Input (data)

Proses Output (Informasi)

Page 43: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

18

Menurut Goal (2008:73), “Analisa sistem adalah sebagai penguraian

dari suatu sistem informasi yang utuh kedalam bagian-bagian

komponennya dengan maksud untuk mengidentifikasikan dan

mengevaluasi permsalahan-permasalahan, kesempatan-kesempatan,

hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat

diusulkan perbaikan-perbaikannya”.

2.5.2. Fungsi Analisis Sistem

Menurut Goal (2008:74), adapun fungsi analisa sistem adalah :

1. Mengidentifikasi masalah-masalah kebutuhan pemakai (user).

2. Menyatakan secara spesifik sasaran yang harus dicapai untuk

memenuhi kebutuhan pemakai.

3. Memilih alternatif-alternatif metode pemecahan masalah yang paling

tepat.

4. Merencanakan dan menetapkan rancangan sistem

2.6. Perancangan Sistem

Perancangan sistem didefinisikan oleh John dan Grudnitski (2007:57)

”Perancangan sistem adalah berupa penggambaran perancangan dan

pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah

kedalam satu kesatuan yang utuh dan berfungsi”. Secara garis besar tujuan

dari perancangan sistem adalah untuk memenuhi kebutuhan kepada

pemakai sistem, dan untuk memberikan gambaran yang jelas dan

rancangan bangun yang lengkap kepada pemogram komputer dan ahli-ahli

teknik lainnya yang terlibat.

Page 44: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

19

2.7. Konsep Dasar RAD (Rapid Application Development)

2.7.1. Definisi RAD

RAD atau pengembangan aplikasi cepat adalah pendekatan berorientasi

objek untuk pengembangan sistem yang meliputi metode pengembangan

serta perangkat lunak (Kendall dan Kendall, 2008: 239).

a. RAD merupakan alat yang digunakan untuk menghasilkan layar dan

menunjukkan aliran keseluruhan aplikasi.

b. Pengguna menyetujui rancangan dan menandatangani model visual.

c. Implementasi kurang karena pengguna membantu untuk merancang

aspek bisnis dari sistem.

2.7.2. Tahapan RAD

Ada tiga fase RAD, yaitu:

a. Rencana Kebutuhan (Requirement Planning).

Pada tahap ini, user dan analyst melakukan semacam pertemuan untuk

melakukan identifikasi tujuan dari aplikasi atau system dan melakukan

identifikasi kebutuhan informasi untuk mencapai tujuan. Hal terpenting

pada tahap ini adalah adanya keterlibatan dari kedua belah pihak, bukan

hanya sekedar persetujuan akan proposal yang sudah dibuat. Untuk lebih

jauh lagi, keterlibatan user bukan hanya dari satu tingkatan pada suatu

organisasi, melainkan beberapa tingkatan organisasi sehingga informasi

yang dibutuhkan untuk masing-masing user dapat terpenuhi dengan baik.

Page 45: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

20

b. Proses Desain (RAD Design Workshop)

Pada tahap ini adalah melakukan proses desain dan melakukan

perbaikan-perbaikan apabila masih terdapat ketidaksesuaian desain antara

user dan analyst. Untuk tahap ini maka keaktifan user yang terlibat sangat

menentukan untuk mencapai tujuan, karena user bisa langsung

pemberikan komentar apabila terdapat ketidaksesuaian pada desain.

Biasanya, user dan analyst berkumpul menjadi satu dan duduk di meja

melingkar dimana masing-masing orang bias melihat satu dengan yang

lain tanpa ada halangan.

c. Penerapan (Implementation)

Setelah desain dari sistem yang akan dibuat sudah disetujui baik itu

oleh user dan analyst, maka pada tahap ini programmer mengembangkan

desain menjadi suatu program.

Gambar 2.3 Tahapan RAD (Kendall dan Kendall, 2008:164)

Page 46: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

21

2.8. Alat Bantu Perancangan

2.8.1. Unified Modeling Language (UML)

Menurut Nugroho (2010:6), “Unified Modelling Language adalah bahasa

pemodelan untuk sistem atau perangkat lunak yang berpradigma berorientasi

objek”. Pemodelan (modeling) sesungguhnya digunakan untuk penyederhanaan

permasalahan-permasalahan yang kompleks sedemikian rupa sehingga lebih

mudah dipelajari dan dipahami.

Menurut Padeli (2008:70) Unified Modelling Language (UML)

didefinisikan oleh Good Corporate sebagai berikut:

Unified Modelling Language (UML) adalah “suatu alat bantu

yang sangat handal dalam bidang pengembangan yang

berorientasi objek. Hal ini disebabkan karena uml menyediakan

bahasa pemodelan visual yang memungkinkan pengembang

sistem untuk membuat cetak cetak biru atas visi mereka dalam

bentuk baku”.

Dari beberapa pengertian yang dikemukan diatas, dapat disimpulkan

bahwa Unified Modelling Language (UML) adalah sebuah bahasa pemodelan

yang berorientasi obyek dan menjadi standar dalam visualisasi, merancang, dan

mendokumentasi sistem perangkat lunak untuk penyederhanaan permasalahan-

permasalahan yang kompleks.

Page 47: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

22

2.8.2. Diagram UML

Ada beberapa jenis diagram resmi yang digunakan dalam UML untuk

menggambarkan sebuah sistem berdasarkan objeknya (Henderi, 2008:5),

yaitu:

1. Use Case Diagram, menggambarkan sekumpulan use case dan actor

dan hubungan antara mereka. Use Case Diagram mempunyai peranan

penting dalam pengorganisasian dan pemodelan behavior dari sistem.

Gambar 2.4 Use Case Diagram (Henderi, 2008:71)

2. Class Diagram terdiri dari sekumpulan class dan interface lengkap

dengan kolaborasi dan hubungan antara mereka. Pada class diagram,

terdapat simbol-simbol:

a. Simbol ‘+’ untuk menandakan public

b. Simbol ‘-‘ untuk menandakan private

c. Simbol ‘#’ untuk menandakan protected

Page 48: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

23

Class 1

- Attribute 1

# Attribute 2

+ operation 1

+ operation 2

Gambar 2.5 Class Diagram (Henderi, 2008:72)

3. Statechart Diagram, gambaran dari perubahan keadaan (state) suatu

objek.

Gambar 2.6 Statechart Diagram (Henderi, 2008:73)

4. Activity Diagram, menggambarkan berbagai alir aktivitas dalam sistem

yang sedang dirancang.

Page 49: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

24

Gambar 2.7 Activity Diagram (Henderi, 2008:74)

5. Sequence Diagram, diagram interaksi yang menekankan pada urutan

waktu dari pertukaran message.

Gambar 2.8 Sequence Diagram (Henderi, 2008:75)

Page 50: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

25

2.9. Bahasa Pemrograman PHP

PHP merupakan kependekan dari kata Hypertext Preprocessor. PHP

tergolong sebagai perangkat lunak open source yang diatur dalam aturan

general purpose licences (GPL). PHP dilekatkan pada script HTML atau

sebaliknya dan PHP dikhususkan untuk pengembangan web dinamis

(Supriyanto, 2008: 243).

PHP tergolong juga sebagai bahasa pemrograman yang berbasis

server (server side scripting). Ini berarti semua script PHP diletakkan di

server dan diterjamahkan oleh web server terlebih dahulu dan kemudian

hasil terjemahan dikirim ke browser client. Secara teknologi, bahasa

pemrograman PHP memiliki kesamaan dengan bahasa ASP (Active Server

Page), Cold Fusion, JSP (Java Server Page) dan Perl.

Pemrograman dengan menggunakan bahasa pemrogrmana PHP selalu

ditandai dengan adanya tag pembuka (“<?php”) dan tag penutup (“?>”).

Hal tersebut juga yang menandakan PHP mulai menerjemahkan baris-baris

kode PHP serta mengakhiri sampai tag penutup. Sedangkan baris di luar

tag pembuka dan tag penutup tidak diterjemahkan oleh PHP.

Karakteristik yang paling unggul dan paling kuat dalam PHP adalah

lapisan integrasi database (database integration layer). Database yang

mendukung PHP, yaitu Oracle, Adabas-D, Sysbase, mSQL, Velocis,

MySQL, Informix, Solid, dBase, ODBC, Unix dbm dan PostgreSQL

(Suwarno, 2008: 56). Contoh script PHP sederhana terdapat pada Listing 1.

Page 51: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

26

Listing Contoh Script PHP

<?php Print "Hello, World!"; ?>

<?php Echo "Hello, World!"; ?>

2.9.1. Tipe Data Dalam PHP

Menurut Supriyanto (2008: 245), PHP mendukung delapan jenis tipe

data, antara lain:

a. Tipe scalar, merupakan tipe dasar yang tidak bisa dipecahkan menjadi

bagian yang lebih kecil. Tipe ini adalah Boolean, Integer, Float

(floating point, ’double’) dan string.

b. Tipe compound atau tipe campuran, tipe ini terdiri dari array dan

objek.

c. Tipe special atau tipe khusus, resource dan null.

2.9.2. Variabel dalam PHP

Varibael PHP diawali dengan tanda dolar ($) kemudian diikuti dengan

nama variabel. Semua nama variabel bersifat case-sensitive. Nama variabel

yang valid harus diawali huruf atau garis bawah yang diikuti oleh jumlah

huruf, angka atau garis bawah. Variabel dapat diisi nilai maupun referensi.

Ketika variabel diisi nilai, seluruh nilai dari ekspresi asli diisikan variabel

tujuan. Setelah diisi, variabel asli bersifat independen, sehingga perubahan

pada satu variabel tidak terpengaruh yang lain (Suwarno, 2008: 57).

Page 52: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

27

2.9.3. Operator dalam PHP

Supriyanto (2008: 243) menjelaskan bahwa ada tiga jenis operator

utama yang dikenal dalam PHP, antara lain:

a. Operator Unary, operator yang mengoprasikan hanya satu nilai

variable, contohnya operator lawan atau negasi (”!”), operator

penambahan (increment, ”+ +”) dan operator pengurangan (decrement,

”-”). Operator ini dikenal dengan operator aritmatika.

b. Operator Binary, terdiri dari beberapa operator yang

mempertimbangkan urutan penyelesaian. Operator ini sering

digunakan dalam PHP.

c. Operator Ternary, operator yang membandingkan dua pertanyaan

dimana kebenarannya ditentukan oleh ekspresi ketiga.

2.9.4. Fungsi dalam PHP

Supriyanto (2008: 243) menggambarkan bahwa fungsi adalah

sekumpulan baris program yang terdiri atas serangkaian perintah program

disusun sedemikian rupa sehingga menjadi satu modul saja. Adapun

manfaat dari penggunaan fungsi adalah sebagai berikut:

a. Mengurangi penulisan program yang sama.

b. Kemudahan untuk melacak dan memperbaiki program.

c. Bisa dipanggil dimana saja, termasuk fungsi yang lain.

Dalam segi pembuatan, fungsi dalam PHP dibagi menjadi 2 (dua)

antara lain:

Page 53: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

28

1. Fungsi built-in yang disediakan PHP, fungsi ini tinggal dilakukan

pemanggilan saja.

2. Fungsi buatan sendiri, fungsi yang dibuat oleh pembuat program

sendiri jika fungsi yang dibutuhkan tidak disediakan dalam PHP.

2.10. JQuery

Menurut Hakim (2010: 8), JQuery adalah Javascript Library yang

merupakan kumpulan kode/fungsi javascript siap pakai, sehingga

mempermudah dan mempercepat kita dalam membuat kode javascript.

Dengan JQuery, suatu halaman web yang menjadikan aplikasi web, jika

dilihat sumbernya, akan terlihat seperti dokumen HTML biasa; tidak ada

kode javascript yang terlihat langsung. Teknik pemrograman web seperti

ini disebut sebagai unobstrusive javascript programming.

JQuery merupakan salah satu librari yang membuat program web di

sisi klien, tidak terlihat sebagai program javascript biasa, yang harus secara

eksplisit disisipkan pada dokumen web. Pada teknik pemrograman sisi

klien dengan menggunakan javascript biasa, setiap elemen yang memiliki

event, akan secara eksplisit terlihat ada event yang dilekatkan pada elemen

tersebut.

JQuery dikembangkan pertama kali oleh John Resig, yang dibuat lebih

ramping dari librari prototype yang menjadi inspirasi dari librari JQuery ini.

Secara pemrograman, JQuery memiliki kemiripan seperti prototype.

Page 54: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

29

JQuery, merupakan librari yang sangat ramping, core dari librari ini dalam

keadaan terkompres hanya berukuran sekitar 19KB.

2.11. Sumber Daya Manusia (SDM)

SDM di dalam organisasi perusahaan merupakan kunci keberhasilan

perusahaan, karena pada dasarnya Sumber Daya Manusia yang merancang,

memasang, mengoperasikan dan memelihari dari sistem integral dari

perusahaan (Sembiring, 2010: 78). Untuk membangun perusahaan

diperlukan input yang terdiri dari, material, informasi, energi, yang diproses

melalui mesin, peralatan, software sehingga menghasilkan output berupa,

produk fisik maupun jasa. Kepentingan Sumber Daya Manusia terhadap

organisasi tidak dapat diabaikan, mutlak diperlukan karena manusialah

yang mengelola Sumber Daya yang ada di dalam organisasi sebagaimana

dalam konsep Matsushita Electric yang menyatakan membuat orang dulu,

baru membuat barang.

Agar daur hidup organisasi dapat tumbuh dan berkembang secara

berkelanjutan, maka salah satu fokus utama di dalam organisasi adalah

bagaimana kita mengolah SDM mulai dari tahapan rekrutmen, seleksi,

penempatan, pengembangan, sampai dengan tahapan pensiun ataupun

Pemutusan Hubungan Kerja (PHK). Sistem pengelolaan SDM yang baik di

dalam perusahaan akan memberikan kepuasan kerja bagi karyawan yang

pada akhirnya akan dapat meningkatkan kinerja organisasi. Dapat

diasumsikan pengelolaan SDM di dalam organisasi tak ubahnya seperti

Page 55: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

30

mengelola industri di mana bahan bau diterima, kemudian diproses melalui

beberapa tahapan sampai kepada produk di tangan konsumen. Agar kualitas

produk yang dihasilkan memenuhi standar maka setiap tahapan proses

harus direncanakan dan dikendalikan sesuai dengan standard an spesifikasi

yang telah diterapkan. Demikian juga di dalam pengelolaan SDM harus

disesuaikan dengan standaryang telah ditetapkan dari setiap jabatan mulai

dari tahapan rekrutmen, seleksi, penempatan, pengembangan karir dan

pemutusan hubungan kerja.

2.12. Pengujian Aplikasi

Menurut Simarmata (2010: 323) menyebutkan bahwa “Pengujian

adalah sebuah proses terhadap aplikasi atau program untuk menemukan

segala kesalahan dan segala kemungkinan yang akan menimbulkan

kesalahan sesuai dengan spesifikasi perangkat lunak yang telah ditentukan

sebelum aplikasi tersebut diserahkan kepada pelanggan”.

Adapun metode untuk pengujian aplikasi, yaitu:

1. Blackbox, yaitu pengujian terhadap program secara fungsional.

2. Whitebox, yaitu pengujian terhadap alur yang ada di dalam modul

program.

Dikarenakan permintaan dari pihak HR (Human Resources) mengenai

kemudahan antarmuka (user-friendly) pada aplikasi agar dapat mudah

dimengerti dan dioperasikan, maka rencananya pengujian aplikasi akan

dilakukan dengan metode blackbox, yaitu menguji aplikasi dari segi

fungsionalnya saja.

Page 56: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

31

2.13. Studi Literatur

Studi literatur adalah mencari referensi teori yang relefan dengan kasus atau permasalahan yang ditemukan. Referensi ini dapat

dicari dari buku, jurnal, artikel laporan penelitian, dan situs-situs di internet. Output dari studi literatur ini adalah terkoleksinya

referensi yang relefan dengan perumusan masalah.

Tujuannya adalah untuk memperkuat permasalahanserta sebagai dasar teori dalam melakukan studi dan juga menjadi dasar

untuk melakukan desain rancang sistem aplikasi sistem. Berikut beberapa studi literature penulis:

No. Judul Tahun Metode

Pengembangan

Sistem

Rumusan

Masalah

Objek

Penelitian

Hasil Kelebihan Kekurangan

1. Rancang Bangun

Aplikasi Sistem

Informasi

Eksekutif SDM

(Sumber Daya

Manusia) Untuk

Mempercepat

Pengambilan

Keputusan

2012 RAD (Rapid

Application

Development)

Bagaimana

Melakukan

analisis dan

rancang

bangun

aplikasi

sistem

Eksekutif

ESDM

PT. Telkom

Jakarta

Selatan

Aplikasi

berbasis

web

Menggunaka

n metode

Mean

Absolute

Percentage

Error

Pembahasan

metode

Mean

Absolute

Percentage

Errormasih

tidak cukup

jelas

2. Perancangan

Sistemn

Informasi Cuti

Karyawan

Berbasis Web

Pada

2012 SDLC (System

Development

Life Cycle)

Ketidak

jelasan

laporan

tentang

karyawan

yang

mengajukan

cuti

PT. Integrasi

Tri Tama

Cendekia

Aplikasi

Cuti

Online

Aplikasi cuti

online yang

dapat

diakses oleh

karyawan

Sistem

keamanan

kurang dan

tampilan

aplikasi yang

kurang

menarik

Page 57: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

32

3. Aplikasi

Monitoring

Produktivitas

Kinerja Mitra

Perusahaan

2012 Model Proses

Incremental

Bagaimana

membangun

aplikasi

monitoring

produktivitas

kerja PDAM

PDAM

Provinsi DKI

Jakarta

Aplikasi

berbasis

web

Menggunaka

n model

proses

incremental

(Incremental

Process

Model)

Aplikasi

hanya

mencakup

untuk skala

kecil

Page 58: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

33

Dari studi literature dia atas penulis mendapat gambaran menyeluruh

untuk pembuatan dan rangan aplikasi absensi. Aplikasi absensi memiliki

kelebihan dalam sekuriti sistem. Sekuriti sistem ini memiliki beberapa hak

akses yang dibedakan. Pada aplikasi absensi juga menggunakan jquery

untuk tampilan. Sedangkan untuk kekurangan sistem aplikasi absensi

belom bisa dilihatnya daftar hadir oleh setiap karyawan.

Page 59: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

34

BAB III

METODOLOGI PENELITIAN

Dalam melakukan pengembangan terhadap aplikasi HRIS, penulis

menggunakan metode penelitian sebagai berikut :

3.1. Metode Pengumpulan Data

Metode pengumpulan data dalam pengembangan aplikasi ini terbagi

menjadi beberapa tahap sebagai berikut :

1. Observasi

Melalui pengamatan secara langsung atau observasi yang dilakukan di

perusahaan guna mendapat data yang dimaksud (Jogiyanto, 2008: 59).

Observasi dilakukan dengan mengamati langsung proses sistem yang

berjalan sejak 1 Juni 2014 sampai dengan 31 Agustus 2014

2. Wawancara

Wawancara memungkinkan untuk mendapatkan data secara lebih

mendalam karena bertatapan langsung dengan narasumber (Jogiyanto,

2008: 59). Wawancara dilakukan dengan Analis Sistem PT. Repex

Wahana pada tanggal 7 Agustus 2014. (Hasil wawancara terlampir pada

halaman L-3)

3. Studi Pustaka

Studi pustaka dilakukan untuk menambah referensi teori-teori yang

diperlukan dalam penelitian dengan cara membaca dan mempelajari

Page 60: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

35

literatur yang mendukung penelitian ini, diantaranya: jurnal, buku-buku,

makalah dan artikel (Jogiyanto, 2008: 59).

3.2. Metode Pengembangan Sistem

Seperti yang disebutkan dalam bab sebelumnya, metode pengembangan

sistem yang digunakan penulis adalah metode RAD dengan proses tahapan

requirement planning (rencana kebutuhan), design workshop (proses desain),

implementation (Penerapan), seperti digambarkan kembali pada Gambar 3.1.

Gambar 3.1 Tahapan RAD

(Kendall dan Kendall, 2008: 165)

Page 61: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

36

Kesimpulan dan Saran

Pengumpulan Data

START

Identifikasi Masalah

Observasi

Wawancara

Studi Pustaka

Pengembangan Sistem

Requirement Planning

Design Workshop

Implementation

Analisis Data

Analisis Sistem

Usecase Diagram

Class Diagram

State Diagram

Sequence Diagram

Activity Diagram

Coding

Testing

3.3. Kerangka Berfikir

Gambar 3.2 Kerangka Berfikir

Metode Observasi (Jogiyanto, 2008)

Metode Wawancara (Jogiyanto, 2008)

Metode Studi Pustaka (Jogiyanto, 2008)

Metode RAD (Kendall, 2008)

Page 62: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

37

BAB IV

HASIL DAN PEMBAHASAN

4.1. Profile perusahaan PT. Repex Wahana

PT. Repex Wahana merupakan holding company yang menaungi

beberapa anak perusahaan atau Strategic Business Unit (SBU).

Sebagai holding company PT. Repex Wahana bertindak sebagai

supporting company atau sebagai pendukung kegiatan SBU dalam kegiatan

usahanya masing-masing. Misalnya membantu mengatur masalah

kompensasi dan benefit bagi karyawan SBU, mempersiapkan para karyawan

tersebut dengan pelatihan-pelatihan yang dibutuhkan kemudian

memudahkan kegiatan operasional dengan membuatkan sistem computer

yang canggih. Termasuk di dalam PT. Repex Wahana adalah Corporate

Servive (HRD; ITD; GA, Safety, & Legal; dan Security), QSE, Internal

Audit, Purchasing, Marketing, SCM, Finance & Accounting.

Sebagai One Stop Logistics Provider, Repex Wahana senantiasa

menawarkan pelayanan yang berkesinambungan, yang merupakan jawaban

atas kebutuhan pelanggan dewasa ini. Untuk mencapai hal tersebut maka

Repex Wahana melakukan re-branding, dengan tujuan menyatukan misi

serta meyamaratakan kualitas pelayanan kepada pelanggan. Dengan

demikian diharapkan pelanggan akan mendapatkan pelayanan yang seragam

dari seluruh strategic business unit.

Page 63: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

38

4.1.1. Visi dan Misi PT. Repex Wahana

a. Visi

RPX Group memberikan kualitas layanan, keahlian besar, dan

dedikasi untuk One-Stop-Logistic.

b. Misi

1. Untuk memberikan yang terbaik One-Stop Logistics solusi melalui

inovasi, teknologi modern, dan berkomitmen tenaga kerja.

2. Untuk berbaur perencanaan strategis dengan teknologi modern dan

berkomitmen tenaga kerja untuk memberikan yang terbaik One-

Stop Logistics solusi.

4.2. Perancangan Sistem Model RAD

4.2.1. Requirements Planning

4.2.1.1. Analisis Data

Analisis data dilakukan untuk melihat kebutuhan user (pengguna)

mengenai aplikasi yang akan dibuat. Analisis data kebutuhan user

berdasarkan aplikasi ini adalah sebagai berikut:

1. Menentukan objek dari sistem yang dibuat

Objek dari sistem yang akan dibuat adalah user (pengguna) yang

terdiri dari supervisor HR.

2. Mempelajari organisasi yang terkait

Mempelajari oraganisasi yang terkait diperlukan untuk

memudahkan dalam pembuatan aplikasi dan memudahkan bagi

Page 64: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

39

user dalam implemetasi sistem yang telah dibuat nantinya. Selain

itu, mempelajari organisasi yang terkait juga memudahkan dalam

mengumpulkan data dan informasi mengenai kebutuhan user.

3. Menganalisis output yang telah ada

Output yang telah ada disini berupa analisis data

4. Mempelajari sistem yang telah berjalan

Sistem yang berjalan belum diterapkan secara maksimal oleh

karena itu, untuk memperoleh informasi secara cepat, dilakukan

pendefinisian mengenai sistemyang telah ada atau berjalan.

4.2.1.2. Analisis Sistem

1. Analisa Sistem yang sedang berjalan

Analisa yang dilakukan pada sistem yang sedang berjalan di HRIS

menggunakan Bagan alir (Flowchart). Alur kerja dari sistem yang

sedang berjalan dilakukan dengan tahap sebagai berikut (lihat Gambar

4.1) :

1. Administrator, melakukan login pada sistem HRIS.

2. Administrator, melakukan input data pegawai pada menu

HRIS.

3. Administrator, melakukan update data pegawai pada menu

HRIS.

Page 65: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

40

F

Y

Gambar 4.1 Bagan alir (Flowchart) sistem yang sedang berjalan

Pada gambar 4.1 diatas, dijelaskan flowchart dari integrasi sistem.

Dimulai penentuan parameter kinerja yang akan digunakan dengan

melakukan login dan input data pegawai sehingga dapat menghasilkan

aplikasi HRIS.

tSatS

nigoL

eCabaaSa aeC

Ceaaot

SCLabunet

eLdaSbaaSabdCgapao

eCabaaSa aeC

DNE

Page 66: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

41

2. Kelemahan Sistem yang sedang berjalan

Berdasarkan flowchart sistem yang sedang berjalan, didapat

kelemahan dari sistem yang sedang berjalan. Kelemahannya sebagai

berikut :

1. Saat ini layanan yang diberikan oleh HRIS yaitu layanan hanya

pada penginputan dan pengupdetan data pegawai.

2. Informasi kehadiran pegawai masih belum secara sistem.

4.2.1.3. Analisis Permasalahan

Setelah melakukan survey dan observasi pada HRIS maka dapat

diidentifikasi kekurangan sistem yang sedang berjalan yang

digambarkan dalam tabel Cause and Effect sebagai berikut:

Table 4.1 Cause-and-Effect Analysis

Cause and Effect

Permasalahan Cause and Effect

Sistem absensi masih bersifat

manual.

Penggunaan kartu

absensi masih kurang

efektif.

Tingatan hak pengelolaan HRIS

belum tertata dengan baik.

Tiap pegawai HRD memiliki hak

yang sama dalam

memasukkan dan

pembaharuan data

pegawai.

Proses pengiriman informasi

masih bersifat manual.

Pengiriman

informasi dilakukan

melalui selembar kertas

dianggap kurang efektif

untuk menjangkau

setiap pihak penerima infromasi.

Page 67: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

42

4.2.1.4. Solusi Permasalahan

Dengan melihat kendala pada sistem yang telah ada, maka

dibutuhkan suatu media yang dapat mengurangi permasalahan tersebut

dan menjadikan kinerja Sistem HRIS dapat berjalan lebih baik dan

bermanfaat. Oleh karena itu penulis mengusulkan perancangan suatu

sistem attendance yang ditopang dengan alat absensi sidik jari.

attendance ini bertujuan dalam memantau kehadiran pegawai.

Pembuatan Aplikasi HRIS dibentuk berdasarkan klasifikasi user

pengguna sistem.

4.2.2. Design Workshop

4.2.2.1. Usecase Diagram

Usecase diagram menjelaskan hubungan fungsional yang

diharapkan dari perancangan sebuah sistem. Dalam hal ini yang lebih

ditekankan adalah “apa” yang dapat diperbuat sistem, bukan

“bagaimana”. Sebuah usecase menggambarkan sebuah interaksi yang

terjadi antara actor dan sistem. Usecase merupakan sebuah pekerjaan

tertentu, misalnya login user ke sistem, membuat daftar nama pegawai,

membuat jadwal jam kerja pegawai, dan lain sebagainya. Seorang/

sebuah aktor adalah sebuah entitas manusia atau mesin yang dapat

berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan

tertentu. Usecase diagram dapat sangat membantu, terutama saat kita

sedang menyusun requirement dari sebuah sistem, membuat

Page 68: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

43

perencanaan modul dalam sistem, mengkomunikasikan rancangan

sistem dengan klien, dan merancang test case untuk semua feature yang

ada pada sistem. Jadi, usecase diagram sangat berpengaruh dalam

perancangan sebuah sistem atau dapat dikatakan bahwa usecase

diagram adalah dasar dari perencanaan sistem.

1) Usecase diagram Sistem absensi dalam HRIS

Gambar 4.2 Usecase Diagram Sistem Informasi Absensi

Page 69: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

44

Tabel 4.2 Usecase Skenario Login

Usecase Name Login

Actor User yaitu admin HR

Brief Description User melakukan login pada menu

utama melalui login user dengan

menginput username dan

password pada form yang telah

disediakan. Setelah itu, sistem

akan melakukan validasi username

dan password ke dalam database.

Basic Flow 1) Masuk terlebih dahulu ke

dalam menu utama dengan

menuliskan alamat link yang

telah disediakan oleh

pengembang (developer)

2) Masukkan username dan

password

3) Validasi username dan

password ke dalam database

4) Sistem menampilkan informasi

jika username atau password

yang diinputkan salah akan

muncul pesan yang

Page 70: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

45

memberikan informasi

penginputan username atau

password salah dan link

kembali ke menu login user.

Jika username dan password

yang diinputkan benar akan

menampilkan tampilan menu

home user.

Alternate Flow Jika user salah menuliskan link

maka modul menu utama tidak

akan tampil dalam web browser

Pre Condition Tampilan menu user

Table 4.3 Usecase Skenario Time Schedule

Usecase Name Time Schedule

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan list time

schedule dan dalam usecase ini

user dapat mengupdate, menginput

dan hapus time schedule

Basic Flow 1) User memilih menu time

schedule

2) Tampil halaman menu time

Page 71: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

46

schedule

3) User memilih menu untuk

add, update dan delete

Alternative Flow Jika user salah memilih menu time

schedule maka menu time

schedule tidak akan tampil sampai

user memilih menu yang benar

Pre Condition User harus memilih menu time

schedule yang telah disediakan

dengan benar

Post Condition Menu time schedule yang berisi

list schedule, menu add, update

dan delete

Tabel 4.4 Usecase Skenario Time Holiday

Usecase Name Time Holiday

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan list time

holiday dan dalam usecase ini user

dapat mengupdate, menginput dan

hapus time holiday

Basic Flow 1) User memilih menu time

holiday

Page 72: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

47

2) Tampil halaman menu time

holiday

3) User memilih menu untuk

add, update dan delete

Alternative Flow Jika user salah memilih menu time

holiday maka menu time holiday

tidak akan tampil sampai user

memilih menu yang benar

Pre Condition User harus memilih menu time

holiday yang telah disediakan

dengan benar

Post Condition Menu time holiday yang berisi list

holiday, menu add, update dan

delete

Tabel 4.5 Usecase Skenario Employee Time Schedule

Usecase Name Employee Time Holiday

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan list

employee time holiday dan dalam

usecase ini user dapat mengupdate

employee time holiday

Basic Flow 1) User memilih menu time

Page 73: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

48

holiday

2) Tampil halaman menu time

holiday

3) User memilih menu untuk

update employee time

schedule

Alternative Flow Jika user salah memilih menu

employee time schedule maka

menu employee time schedule

tidak akan tampil sampai user

memilih menu yang benar

Pre Condition User harus memilih menu

employee time schedule yang telah

disediakan dengan benar

Post Condition Tampilan menu employee time

schedule

Page 74: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

49

Tabel 4.6 Usercase Skenario Print Individual

Usecase Name Print Individual

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan list print

individual. User melakukan print

laporan berdasarkan employee id

dan berdasarkan tanggal yang akan

di print

Basic Flow 1) User memilih menu print

individual

2) Tampil halaman menu print

individual

3) User memilih menu print

individual untuk membuat

laporan absensi individu

Alternative Flow Jika user salah memilih menu

print individual maka menu print

individual tidak akan tampil

sampai user memilih menu yang

benar

Pre Condition User harus memilih menu print

individual yang telah disediakan

dengan benar

Page 75: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

50

Post Condition Tampilan Menu print individual

Tabel 4.7 Usecase Skenario Print Departement

Usecase Name Print Departement

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan list print

departement. User melakukan

print laporan berdasarkan

departement id dan berdasarkan

bulan yang akan di print

Basic Flow 1) User memilih menu print

departement

2) Tampil halaman menu print

departement

3) User memilih menu print

departement untuk membuat

laporan absensi per

departemen

Alternative Flow Jika user salah memilih menu

print departement maka menu

print department tidak akan tampil

sampai user memilih menu yang

benar

Page 76: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

51

Pre Condition User harus memilih menu print

departement yang telah disediakan

dengan benar

Post Condition Tampilan Menu print departement

Tabel 4.8 Usercase Skenario Print SBU

Usecase Name Print SBU

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan list print

SBU. User melakukan print

laporan berdasarkan SBU id dan

berdasarkan bulan yang akan di

print

Basic Flow 1) User memilih menu print SBU

2) Tampil halaman menu print

SBU

3) User memilih menu print SBU

untuk membuat laporan

absensi per SBU

Alternative Flow Jika user salah memilih menu

print SBU maka menu print SBU

tidak akan tampil sampai user

memilih menu yang benar

Page 77: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

52

Pre Condition User harus memilih menu print

SBU yang telah disediakan dengan

benar

Post Condition Tampilan Menu print SBU

Tabel 4.9 Usecase Skenario Logout

Usecase Name Logout

Actor User yaitu admin HR

Brief Description Usecase ini menampilkan menu

login user dan menandakan bahwa

user telah keluar dari modul user

Basic Flow 1) User memilih menu logout

2) Keluar dari modul user

3) Masuk ke menu login

Alternative Flow Jika user salah memilih menu

logout maka user tidak akan keluar

dari modul user sampai user

memilih menu yang benar

Pre Condition User harus memilih menu logout

dengan benar

Post Condition Tampilan Menu logout dan

tampilan menu login user

Page 78: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

53

4.2.2.2. Class Diagram

Class diagram menjelaskan tentang hubungan antara class yang

terdapat pada aplikasi absensi HRIS. Class tersebut dibentuk oleh

entity/object yang mempunyai atribut dan operasi. Dari class tersebut

dapat terbentuk sebuah tabel yang dapat berasosiasi dengan tabel

lainnya, sehingga memungkinkan terbentuknya sebuah database.

Penjelasa mengenai class diagram Sistem absensi HRIS sebagai

berikut:

Gambar 4.3 Class Diagram

4.2.2.2.1. Spesifikasi Database

Dari penjelasan kelas-kelas yang terdapat pada gambar 4.3 dapat

terbentuk sebuah database. Di dalam database tersebut terdapat 9 tabel,

penjelasan dari spesifikasi database adalah sebagai berikut:

Page 79: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

54

1. Tabel user

Tabel 4.10 Spesifikasi tabel user

No Nama field Type Data Panjang field Keterangan

1. user_id Varchar 15 Username

2. group_id Varchar 6 Group user

3. password Varchar 50 Password

4. full_name Varchar 50 Nama lengkap

5. user_alias_name Varchar 6 Nama alias

6. imployee_id Varchar 10 Nomor ID

pegawai

7. station_id Char 3 ID station

8. create_date Datetime - Tanggal di buat

user pertama kali

9. valid_from Datetime - Masa aktif user

10. Valid_to Datetime - Masa habis user

11. email_address Varchar 60 Email user

12. user_level_id Tinyint 1 User level

13. all_division Enum (‘Y’,’N’) Lihat divisi

14. access_priv Enum (‘Y’,’N’) Akses private

15. last_login Datetime - Login terakhir

2. Tabel user level

Tabel 4.11 Spesifikasi tabel user level

No. Nama field Type Data Panjang field Keterangan

1. user_level_id Tinyint 3 Identitas user

level

2. user_level_desc Varchar 30 Deskripsi user

level

Page 80: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

55

3. Tabel user menu

Tabel 4.12 Spesifikasi tabel user menu

No. Nama field Type Data Panjang field Keterangan

1. menu_id Int 11 Identitas menu

user

2. menu_name Varchar 50 Nama menu user

3. description Varchar 100 Deskripsi menu

4. parent_id Int 11 Golongan menu

5. status Tinyint 1 Status menu

6. no_urut Tinyint 3 Nomor urut

menu

7. additional_link Tinyint 4 Link lain

8. type_menu Tinyint 3 Tipe menu

9. type_link Varchar 15 Tipe link

10. menu_file_name Varchar 50 Nama menu file

11. image_link Varchar 75 Link gambar

4. Tabel user menu access

Tabel 4.13 Spesifikasi tabel user menu access

No. Nama field Type Data Panjang field Keterangan

1. user_id Varchar 20 Identitas menu

user access

2. menu_id Int 10 Identitas menu

user

Page 81: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

56

5. Tabel master time schedule

Tabel 4.14 Spesifikasi tabel master time schedule

No. Nama field Type Data Panjang field Keterangan

1. time_schedule_id Tinyint 2 Identitas master

time schedule

2. time_from Time - Jam masuk

3. time_to Time - Jam keluar

4. time_desc Varchar 30 Deskripsi jam

5. working_hours float - Jumlah jam kerja

6. user_update Varchar 15 User update

7. datetime_updated Datetime - Waktu update

6. Tabel employee time schedule

Tabel 4.15 Spesifikasi tabel employee time schedule

No. Nama field Type Data Panjang field Keterangan

1. employee_id Varchar 10 Nomor pegawai

2. time_schedule_id Int 11 Identitas master

time schedule

3. user_update Varchar 30 User update

4. datetime_updated Datetime - Waktu update

7. Tabel attendance admin

Tabel 4.16 Spesifikasi tabel attendance admin

No. Nama field Type Data Panjang field Keterangan

1. employee_id Varchar 10 Nomor pegawai

2. employee

_attendance

Varchar 10 Employee

attendeance

Page 82: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

57

8. Tabel attendance days

Tabel 4.17 Spesifikasi tabel attendance days

No. Nama field Type Data Panjang

field

Keterangan

1. attendance_date Datetime - Tanggal

masuk

2. employee_id Varchar 10 Identitas

employee

3. datetime_in_sys Datetime - Tanggal dan

waktu masuk

4. door_access_in Smallint 5 Pintu access

in

5. datetime_out_sys Datetime - Tanggal dan

waktu keluar

6. door_access_in Smallint 5 Pintu access

out

7. terminal_no Int 11 Terminal

8. total_hour_sys Float (4,2) Total jam

9. attendance_code_id_sys Char 1 -

10. attendance_code_id_update Char 1 -

11. attendance_comment Varchar 50 -

12. user_update Varchar 15 User update

13. datetime_update Datetime - Waktu update

Page 83: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

58

9. Tabel attendance code

Tabel 4.18 Spesifikasi tabel attendance code

No. Nama field Type Data Panjang field Keterangan

1. attendance_code_id Char 1 Code attendance

2. attendance_code_desc Varchar 25 Deskripsi code

3. user_update Varchar 15 User update

4. datetime_update Datetime - Waktu update

4.2.2.3. State Diagram

State diagram menggambarkan transisi dan perubahan keadaan

(dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat

dari stimuli yang diterima. Pada umumnya state diagram

menggambarkan class tertentu (satu class dapat memiliki lebih dari satu

state diagram). Dalam UML, state digambarkan berbentuk segi empat

dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu.

Transisi antar state umumnya memiliki kondisi guard yang merupakan

syarat terjadinya transisi yang bersangkutan, ditulis dalam kurung siku.

Action yang dilakukan sebagai akibat dari event tertentu dituliskan

dengan diawali garis miring. Titik awal dan akhir digambarkan

berbentuk lingkaran berwarna penuh dan berwarna setengah. Berikut ini

adalah state diagram dari sistem absensi HRIS

Page 84: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

59

1. State Diagram Login

Gambar 4.4 State Diagram Login

User menginput username dan password ke dalam sistem. Setelah

username dan password diinputkan, tekan tombol login. Setelah itu,

sistem akan memvalidasi username dan password ke dalam database.

Kemudian, dilakukan pengecekan ke dalam database. Jika berhasil

menu home aktif dan jika gagal sistem kembali ke menu login.

2. State Diagram View Time Schedule

Gambar 4.5 State Diagram View Time Schedule

Page 85: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

60

Menu time schedule dikatakan aktif apabila menu time schedule

dipilih. Menu time schedule dikatakan pasif apabila menu time schedule

tidak dipilih dan aktif lagi jika dipilih. User sudah tidak masuk menu

time schedule apabila keluar dari sistem.

3. State Diagram View Time Holiday

Gambar 4.6 State Diagram View Time Holiday

Menu time holiday dikatakan aktif apabila menu time holiday

dipilih. Menu time holiday dikatakan pasif apabila menu time holiday

tidak dipilih dan aktif lagi jika dipilih. User sudah tidak masuk menu

time holiday apabila keluar dari sistem.

4. State Diagram View Employee Time Schedule

Gambar 4.7 State Diagram View Employee Time Holiday

Page 86: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

61

Menu employee time schedule dikatakan aktif apabila menu

employee time schedule dipilih. Menu employee time schedule

dikatakan pasif apabila menu employee time schedule tidak dipilih dan

aktif lagi jika dipilih. User sudah tidak masuk menu employee time

schedule apabila keluar dari sistem.

5. State Diagram View Print Individual

Gambar 4.8 State Diagram View Print Individual

Menu print individual dikatakan aktif apabila menu print individual

dipilih. Menu print individual dikatakan pasif apabila menu print

individual tidak dipilih dan aktif lagi jika dipilih. User sudah tidak

masuk menu print individual apabila keluar dari sistem.

6. State Diagram View Print Departement

Gambar 4.9 State Diagram View Print Departement

Page 87: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

62

Menu print departement dikatakan aktif apabila menu print

departement dipilih. Menu print departement dikatakan pasif apabila

menu print departement tidak dipilih dan aktif lagi jika dipilih. User

sudah tidak masuk menu print departement apabila keluar dari sistem.

7. State Diagram View Print SBU

Gambar 4.10 State Diagram View Print SBU

Menu print SBU dikatakan aktif apabila menu print SBU dipilih.

Menu print SBU dikatakan pasif apabila menu print SBU tidak dipilih

dan aktif lagi jika dipilih. User sudah tidak masuk menu print SBU

apabila keluar dari sistem.

8. State Diagram Logout

Gambar 4.11 State Diagram Logout

Menu logout dikatakan aktif apabila menu logout dipilih dan

sistem memanggil module menu logout. User sudah keluar sistem.

Page 88: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

63

4.2.2.4. Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam

sistem yang sedang dirancang, bagaimana masing-masing alir berawal,

decision yang mungkin terjadi, dan bagamana mereka berakhir. Activity

diagram juga dapat menggambarkan proses paralel yang mungkin

terjadi pada beberapa eksekusi. Activity diagram merupakan state

diagram khusus, dimana sebagian besar state adalah action dan

sebagain sebesar transisi ditrigger oleh selesainya state sebelumnya

(internal processing). Oleh karena itu, activity diagram tidak

menggambarkan behavior internal sebuah sistem (dan interaksi antar

subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan

jalur-jalur aktivitas dari level atas secara umum. Berikut ini adalah

activity diagram dari sistem absen HRIS

Page 89: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

64

1. Activity Diagram

User Web

Gambar 4.12 Activity Diagram

Membuka web Menampilkan web

login Menampilkan Hal. Login

Home

Time schedul

e

Time holiday

Employee Time

schedule

logout

Menampilkan Hal. Home

Menampilkan Hal. Time Schedule

Menampilkan Hal. Time Schedule

Menampilkan Hal. Time Schedule

Page 90: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

65

4.2.2.5. Sequence Diagram

Sequence diagram adalah suatu diagram yang memperlihatkan atau

menampilkan interaksi-interaksi antar objek di dalam sistem yang

disusun pada sebuah urutan atau rangkaian waktu. Interaksi antar objek

tersebut termasuk pengguna, display, dan sebagainya berupa

pesan/message.

Sequence diagram digunakan untuk menggambarkan skenario atau

rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari

suatu kejadian/event untuk menghasilkan output tertentu. Sequence

diagram diawali dari apa yang meng-trigger aktivitas tersebut, proses

dan perubahan apa saja yang terjadi secara internal dan output apa yang

dihasilkan. Berikut adalah sequence diagram pada sistem absen di

HRIS

1. Sequence Diagram Login

Gambar 4.13 Sequence Diagram Login

Page 91: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

66

2. Sequence Diagram Time Schedule

Gambar 4.14 Sequence Diagram Time Schedule

3. Sequence Diagram Time Holiday

Gambar 4.15 Sequence Diagram Time Holiday

Page 92: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

67

4. Sequence Diagram Employee Time Schedule

Gambar 4.16 Sequence Diagram Employee Time Schedule

5. Sequence Diagram Print Individual

Gambar 4.17 Sequence Diagram Print Individual

Page 93: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

68

6. Sequence Diagram Print Department

Gambar 4.18 Sequence Diagram Print Department

7. Sequence Diagram Print SBU

Gambar 4.18 Sequence Diagram Print SBU

Page 94: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

69

4.2.3. Implementation

Dalam perancangan aplikasi multiuser yang terintegrasi diperlukan

dua komponen utama, diantaranya :

1. Software, meliputi pemilihan aplikasi perangkat lunak yang

digunakan dalam pengembangan sistem yaitu diantaranya :

a. Web browser digunakan sebagai antarmuka dalam

pengembangan aplikasi berbasis web.

b. Web server digunakan untuk pengembangan aplikasi

berbasis web yang dapat melayani permintaan dari klien

melalui web browser.

c. Database digunakan sebagai tempat penyimpanan data.

d. Bahasa pemrograman yang dapat menghubungkan aplikasi

database dengan server.

Spesifikasi untuk perangkat lunak diantaranya :

a. Sistem Operasi Windows 7/8.

b. Apache HTTP Server Versi 3.2.1.

c. PHP versi 4 sampai 5.3.0.

d. MySQL versi 1.3 sampai dengan 5.0

e. Web browser Mozilla firefox / Google Chrome.

Page 95: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

70

2. Hardware, meliputi pemilihan perangkat keras yang digunakan

sebagai alat pendukung pengembangan aplikasi diantaranya :

a. Bentuk fisik komputer digunakan sebagai alat input/output

dalam pengembangan aplikasi.

b. Topologi dan arsitektur jaringan digunakan untuk

mengintegrasikan data dalam pengembangan aplikasi.

Spesifikasi untuk perangkat keras diantaranya sebagai berikut :

a. Processor minimal Pentium Core 2 233 Mhz keatas .

b. RAM/Memory minimal 2 Gb.

c. Monitor dengan resolusi sampai 1366 x 768.

d. Keyboard dan mouse sejenis serial, PS/2, maupun USB.

e. Teknologi jaringan berupa internet atau LAN.

Menu aplikasi yang ditawarkan yaitu :

a. Bagi Administrator : input, update dan delete seluruh data

pada menu HRIS. melakukan setting terhadap kemampuan

user dalam penggunaan aplikasi.

b. Bagi Attendance : input, update dan delete seluruh data

pada menu HRIS.

Aplikasi HRIS memiliki hak akses untuk; view, input, delete,

akses menu dan edit user.

Semua admin melakukan proses login dengan tampilan antar

muka login yang sama. Administrator melakukan setting hak user

dalam mengelola HRIS. Dalam hal ini administrator merupakan super

Page 96: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

71

admin yang dapat melakukan semua kegiatan dalam HRIS. Berikut

dijelaskan gambaran hak pengelolaan aplikasi kalender :

1. Administrator

a. View semua data pegawai, organization, attendance, payroll

dan user.

b. Input, edit dan delete data user yang akan mengelola HRIS.

2. Attendance

a. View dan edit data HRIS.

4.2.3.1. Coding

Setelah melakukan intalasi maka tahap selanjutnya adalah

pembuatan program. Dalam membuat program (coding) dapat

mempermudah penulisan kode program khususnya yang berbasis web

(hypertext), aplikasi tersebut diantaranya : Notepad, Wordpad,

Dreamweaver, Ultraedit, Frontpage, dan lain sebagainya. Pada tahap

ini dapat dilihat pada lampiran C.

4.2.3.2. Testing

Pengujian pada dasarnya adalah menemukan serta menghilangkan

‘bug’ (kesalahan-kesalahan) yang ada di sistem atau perangkat lunak

itu. Adapun pengujian terhadap sistem yang dilakukan adalah

bertujuan untuk menemukan kesalahan yang masih ada pada sistem.

Pengujian dilakukan dengan menggunakan pendekatan black-box

testing. Dengan menggunakan pendekatan black-box testing kita dapat

Page 97: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

72

mengetahui apakah sistem dapat memberikan keluaran seperti yang

kita harapkan.

Hasil pengujian black-box testing dapat dilihat pada lampiran D.

Dalam tabel tersebut berisi persyaratan fungsional sistem yang diuji

bersama pengguna. Walaupun sistem telah diuji beberapa kali, tidak

menutup kemungkinan adanya kesalahan. Oleh karena itu, pengujian

dan perbaikan harus terus dilakukan seiring dengan digunakannya

sistem ini.

Page 98: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

73

BAB V

KESIMPULAN DAN SARAN

Setelah melakukan serangkaian penelitian, maka pada bab ini penulis akan

menguraikan kesimpulan dan saran yang dapat diambil dari rangkaian penelitian

tersebut. Saran yang diberikan diharapkan dapat bermanfaat bagi pihak-pihak

yang akan melanjutkan pengembangan penelitian ini.

5.1. Kesimpulan

Dari penelitian dan penulis yang telah penulis uraikan, maka dapat

ditarik kesimpulan sebagai berikut:

1. Sistem Informasi Absensi HRIS dianalisis dan dirancang dengan

metode RAD (Rapid Application Development) dan dengan tools UML

(Unified Modeling Language). Dengan memiliki 3 tahapan rencana

kebutuhan, proses desain dan implemetasi.

2. Pengembangan Sistem yang dibuat dapat memudahkan pihak HR

(Human Resources) dalam melakukan pengolahan data dan laporan

absen pegawai melalui fitur absensi pada aplikasi HRIS (Humas

Resources Information System) yang telah dibuat.

Page 99: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

74

5.2. Saran

Sistem ini tentu saja masih belum sempurna. Masih banyak hal yang

dapat dilakukan untuk mengembangkan sistem ini agar menjadi lebih baik

lagi. Diharapkan pengembangan tidak hanya sebatas absensi, akan tetapi

dapat dikembangkan menjadi bentuk penyampaian informasi kegiatan HRD

melalui aplikasi HRIS.

Page 100: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

75

DAFTAR PUSTAKA

Arifin, Johar. 2002. Manajemen Koperasi Berbasis Komputer. PT. Elex Media

Komputindo.

Bodic, Gwanaël Le. 2005. Mobile Messaging Technologies and Services : SMS,

EMS and MMS. Second Edition. Chichester : John Wiley & Sons.

McComb, Gordon. 1990. Gordon Mccomb’s Gatgatter’s Goldmine : Chichester :

Mcgrow Hill.

Hariyanto, Bambang. 2005. Rational Rose untuk Pemodelan Berorientasi Objek

Informatika:Bandung.

Jogiyanto, Hartono Mustakin. 2008. Analisis & Desain Sistem Informasi:

Pendekatan Terstruktur Teory dan Praktek Aplikasi Bisnis. Yogyakarta:

ANDI

Kadir, Abdul. 2003. Pengenalan Sistem Informasi. Yogyakarta: Andi.

Kendall, Kenneth . dan Kendall, Julie . 2008. Analisis dan Perancangan Sistem.

Jakarta : Pearson Education Asia Pte. Ltd dan PT. Prenhallindo.

Ladjamudin, Albahra. 2005. Analisis dan Desain Sistem Informasi. Yogyakarta

Graha Ilmu.

Misky, Dudi. 2005. Kamus Informasi dan Teknologi. Edsa Mahkota.

O’Brien, James . 2005. Pengantar Sistem Informasi. Jakarta : Salemba Empat

Pressman, Roger. 2002. Rekayasa Perangkat Lunak Pendekatan Praktis (Buku

Satu). Yogyakarta : ANDI.

Page 101: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

76

Pressman , Roger. 2005. Software Engineering Apractitioner’s Approch: Sixth

Edition. New York : Mc Graw Hill.

Rosidi, Romzi Imron. 2004. Membuat sendiri SMS Gateway (ESME) Berbasis

Protokol SMPP. Yogyakarta : ANDI.

Supriyanto, Aji. 2005. Pengantar Teknologi Informasi Jakarta : Salemba

INFOTEK.

Wahana Komputer. 2005. Pengembangan Aplikasi Sistem Informasi Akademik

Berbasis SMS dengan Java. Jakarta : Salemba.

Whitten , Jeffrey. 2007. System Analysis and Design Methods E. 7th. Yogyakarta:

McGraw-Hill.

Page 102: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

LAMPIRAN-LAMPIRAN

1. LAMPIRAN A : HASIL WAWANCARA

2. LAMPIRAN B : HASIL TAMPILAN ANTARMUKA

3. LAMPIRAN C : SOURCE CODE

4. LAMPIRAN D : PENGUJIAN PENERIMAAN SISTEM

Page 103: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

LAMPIRAN A

HASIL WAWANCARA

Dalam pengumpulan data (Collecting Data), penulis melakukan wawancara

dengan Audriya Siregar salah satu staff Human Resources (HR). Berikut beberapa

petikan hasil wawancara yang dilakukan oleh penulis:

Pertanyaan :

1. Bagaimana menurut Ibu tentang sistem absensi yang sudah ada

dan berjalan di PT. REPEX WAHANA sampai saat ini?

2. Menurut Ibu apa saja yang harus dilakukan untuk

mengembangkan sistem absensi ini?

Jawaban :

1. Menurut Saya sistem absensi belum berjalan dengan baik.

Karena masih menggunakan sistem manual, terutama dalam

pembuatan laporan absensi kepegawaian.

2. Menurut Saya sebaiknya sistem ini memiliki sistem

penyampaian informasi yang baik dan dapat disampaikan

secara menyeluruh kesemua pihak yang dikenai kegiatan atau

yang memiliki kepentingan dengan absensi ini.

Page 104: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

LAMPIRAN B

HASIL TAMPILAN ANTARMUKA

1.Halaman Login

2.Halaman Utama

3. Tampilan List Employee

Page 105: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

4. Tampilan Add Employee

5. Tampilan List User

6. Tampilan Time Schedule

7. Tampilan Print Individual

Page 106: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

8. Tampilan Print Departement

9. Tampilan SBU

Page 107: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual
Page 108: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

LAMPIRAN C

SOURCE CODE

Config.php

<?php

ini_set("error_reporting", E_ERROR);

ini_set("display_errors", "on");

ini_set("display_startup_errors", "on");

class database{

static function server_db(){

// $dbhost = "10.10.105.149";

// $dbuser = "rnd";

// $dbpass = "#enggakboleh;)";

// $dbname = "hris";

$dbhost = "localhost";

$dbuser = "root";

$dbpass = "";

$dbname = "hris_employee";

// $dbhost = "10.10.105.16";

// $dbuser = "hris";

// $dbpass = "#harisenin#";

// $dbname = "hris_employee";

$conn =

mysql_connect($dbhost, $dbuser, $dbpass) or

die;

mysql_select_db($conn,$dbname);

}

static function server_ix(){

$dbhost = "10.10.105.6";

$dbuser = "ix";

$dbpass = "ix2hris";

$dbname = "fedex";

$conn =

mysql_connect($dbhost, $dbuser, $dbpass) or

die;

mysql_select_db($conn,$dbname);

}

static function server_db_rpx($ip =

149){

$dbhost = "10.10.105.$ip";

$dbuser = "rnd";

$dbpass = "#enggakboleh;)";

$conn =

mysqli_connect($dbhost, $dbuser, $dbpass) or

die;

}

}

?>

Index.php

<?php ob_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD

XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-

transitional.dtd">

<?php

include "lib/configbase.inc.php";

?>

<html xmlns="http://www.w3.org/1999/xhtml"

lang="en" xml:lang="en">

<head>

<meta http-equiv="Content-Type"

content="text/html; charset=ISO-8859-1">

<title><?=__WEB_TITLE__;?></title>

<link rel="stylesheet" type="text/css"

href="lib/style.css" />

<link rel="stylesheet" type="text/css"

href="lib/ui/ui.all.css" />

<!-- link rel="stylesheet" type="text/css"

href="lib/jquery-ui.css" / -->

<link rel="stylesheet" type="text/css"

href="lib/menu.css" />

<style type="text/css">

@import "lib/css/jquery.datepick.css";

</style>

<?php if (isset($_GET['n'])) { if ($_GET['n']

== 'pph21.php'){ ?>

<!-- SCRIPT

LANGUAGE="JavaScript" SRC="lib/jquery-

1.9.2.min.js"></SCRIPT -->

Page 109: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

<?php }else{ ?>

<!-- SCRIPT

LANGUAGE="JavaScript" SRC="lib/jquery-

1.6.2.js"></SCRIPT -->

<!-- SCRIPT

LANGUAGE="JavaScript"

SRC="lib/init.js"></SCRIPT -->

<?php }} ?>

<!--

<SCRIPT type="text/javascript"

src="http://ajax.googleapis.com/ajax/libs/jquer

y/1/jquery.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="http://ajax.googleapis.com/ajax/libs/jqu

eryui/1.9.2/jquery-ui.min.js"></SCRIPT>

-->

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/jquery-1.9.2.min.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/jquery-ui.1.9.2.min.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/jquery.scrollTo-1.4.3.1-

min.js"></SCRIPT>

<!-- SCRIPT

src="http://code.jquery.com/ui/1.9.2/jquery-

ui.js"></SCRIPT -->

<!--

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/init.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/jquery.datepick.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/ui/ui.core.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/ui/ui.accordion.js"></SCRIPT>

<script LANGUAGE="JavaScript"

SRC="lib/jquery.tools.min.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/ui/ui.dialog.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/jquery.scrollTo-min.js"></SCRIPT>

-->

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/leadme.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript"

SRC="lib/v.js"></SCRIPT>

</head>

<body>

<?php

cek::access();

if (!$_SESSION['hris_user_name'] AND

!$_SESSION['hris_user_pass']){

// untuk yang belum login

if ($_POST[simaster]==1){

include

"main_files/cekLogin.php";

}else{

include

"main_files/login.php";

}

}else{

// untuk yang sudah login

c_function::cek_session();

include "main_files/start.php";

}

?>

<br/><br/>

<?php

//include "main_files/footer.php";

?>

Action.php

<?

include "includes/start.php";

function check_login() {

global $table_prefix, $link,

$common_get;

if(get_magic_quotes_gpc()) {

$email =

mysql_real_escape_string(stripslashes($_POS

T["email"]));

$password =

mysql_real_escape_string(stripslashes($_POS

T["password"]));

} else {

Page 110: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$email =

mysql_real_escape_string($_POST["email"]);

$password =

mysql_real_escape_string($_POST["password

"]);

}

$md5_pass = md5($password);

$query = mysql_query("Select

user_id, email, temp_password from

".$table_prefix."users where email='".$email."'

and password='$md5_pass' OR

email='".$email."' and

temp_password='$md5_pass'");

$total_row =

mysql_numrows($query);

if($total_row>0){

$row =

mysql_fetch_array($query);

$_SESSION['user_id'] =

$row['user_id'];

$_SESSION['email'] =

$row['email'];

if ($row['temp_password']

== $md5_pass) {

mysql_query("UPDATE

".$table_prefix."users set password =

'".$row['temp_password']."', temp_password =

NULL WHERE user_id

='".$row['user_id']."'");

mysql_close($link);

header("Location:

user_profile.php?return_to=".$_POST["return_

to"]."&".$common_get);

} else {

mysql_close($link);

if

($_POST["return_to"]) {

header("Location:

".$_POST["return_to"]);

} else {

header("Location:

index.php?".$common_get);

}

}

} else {

mysql_close($link);

header("Location:

".$path."bad_password.php?email=".$email."

&return_to=".$_POST["return_to"]."&".$com

mon_get);

}

}

function send_new_password() {

global $table_prefix, $calendar_title,

$calendar_email, $common_get,$link,$lang;

if(get_magic_quotes_gpc()) {

$email =

mysql_real_escape_string(stripslashes($_POS

T["email"]));

} else {

$email =

mysql_real_escape_string($_POST["email"]);

}

$query = mysql_query("Select * from

".$table_prefix."users where email='$email'");

$total = mysql_numrows($query);

if($total>0){

$row =

mysql_fetch_array($query);

$newpass=substr(md5($email.microti

me()), 0, 8);

$crypt_pass=md5($newpass);

mysql_query("UPDATE

".$table_prefix."users set temp_password =

'".$crypt_pass."' WHERE email ='".$email."'");

$message =

$lang["password_msg"].$calendar_title.":\n\n$

newpass\n\n";

mail($email,

$lang["password_subject_start"].$calendar_titl

e.$lang["password_subject_end"], "$message",

"From: \"".$calendar_title."\"

<".$calendar_email.">");

$msg=$lang["password_sent"];

} else {

$msg=$lang["password_no_email"];

}

Page 111: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

mysql_close($link);

header("Location:

login.php?return_to=".$_POST["return_to"]."

&msg=".$msg."&".$common_get);

}

function log_out () {

global $common_get;

session_start();

session_unset();

session_regenerate_id();

header("Location:

login.php?".$common_get);

}

function approve($code) {

global $table_prefix, $lang, $link;

if(get_magic_quotes_gpc()) {

$code =

mysql_real_escape_string(stripslashes($code));

} else {

$code =

mysql_real_escape_string($code);

}

$q = "select event_id from

".$table_prefix."events where quick_approve =

'".$code."'";

$query = mysql_query($q);

if (mysql_num_rows($query) > 0) {

$sq = "update

".$table_prefix."events set status_id = 4,

quick_approve = NULL where quick_approve

= '".$code."'";

$squery = mysql_query($sq);

if ($squery) {

$msg =

$lang["event_updated"];

$event_id =

mysql_result($query,0,0);

include

"includes/notify.php";

notify_group($event_id);

}

} else {

$msg =

$lang["event_not_found"];

}

header("Location:

index.php?msg=".$msg);

}

switch ($_REQUEST["mode"]) {

case $lang["send_new_password"];

send_new_password();

break;

case "q";

approve($_REQUEST["qa"]);

break;

case "logout";

log_out();

break;

case "Log In";

check_login();

break;

default;

header("Location: index.php");

break;

}

mysql_close($link);

?>

admin_action.php

<?php

include "includes/start.php";

if(get_magic_quotes_gpc()) {

$id =

mysql_real_escape_string(stripslashes($_REQ

UEST["id"]));

$dir =

mysql_real_escape_string(stripslashes($_REQ

UEST["dir"]));

$file =

mysql_real_escape_string(stripslashes($_REQ

UEST["file"]));

} else {

$id =

mysql_real_escape_string($_REQUEST["id"])

;

Page 112: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$dir =

mysql_real_escape_string(stripslashes($_REQ

UEST["dir"]));

$file =

mysql_real_escape_string(stripslashes($_REQ

UEST["file"]));

}

$edit = false;

function updateProfile($id) {

global $table_prefix, $edit, $link,

$common_get, $lang;

if(get_magic_quotes_gpc()) {

$email =

mysql_real_escape_string(stripslashes($_POS

T["email"]));

$new_password =

mysql_real_escape_string(stripslashes($_POS

T["new_password"]));

} else {

$email =

mysql_real_escape_string($_POST["email"]);

$new_password =

mysql_real_escape_string($_POST["new_pass

word"]);

}

if ($_POST["new_password"]) {

$password =

md5($_POST["new_password"]);

$query =

mysql_query("UPDATE ".$table_prefix."users

set password = '".$password."'WHERE user_id

='".$id."'");

if (!$query) $msg =

$lang["database_error_password_not_updated"

];

}

if (!$edit) {

$query =

mysql_query("UPDATE ".$table_prefix."users

set email = '".$_POST["email"]."' WHERE

user_id =".$id);

if (!$query) {

$msg .=

$lang["database_error_password_not_updated"

];

} else {

$msg .=

$lang["information_updated"];

}

} else {

$view = $_POST["view"] ? 1

: 0;

$post = $_POST["post"] ? 1 :

0;

$add_users =

$_POST["add_users"] ? 1 : 0;

$add_groups =

$_POST["add_groups"] ? 1 : 0;

$add_categories =

$_POST["add_categories"] ? 1 : 0;

$query =

mysql_query("UPDATE ".$table_prefix."users

set email = '".$_POST["email"]."', view =

".$view.", post = ".$post.", add_users =

".$add_users.", add_groups = ".$add_groups.",

add_categories = ".$add_categories." WHERE

user_id =".$id);

if (!$query) $msg .=

$lang["database_error_user_not_updated"];

// clean out current user to

categories table of user

$query =

mysql_query("DELETE from

".$table_prefix."users_to_categories where

user_id = ".$id);

//now add back the ones the

user has access to

if ($_POST["category"]) {

while (list($key) =

each($_POST["category"])) {

$mod =

$_POST["cpost"][$key] == 2 ? 2 : 1;

if

($_POST["cmoderate"][$key] == 3) $mod = 3;

$query =

mysql_query("INSERT INTO

".$table_prefix."users_to_categories (user_id,

category_id, moderate) values (".$id.",

".$key.", ".$mod.")");

}

}

Page 113: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

// clean out current user to

groups table of user

$query =

mysql_query("DELETE from

".$table_prefix."users_to_groups where

user_id = ".$id);

//now add back the ones the

user has access to

if ($_POST["group"]) {

while (list($key) =

each($_POST["group"])) {

$mod =

$_POST["gpost"][$key] == 2 ? 2 : 1;

if

($_POST["gmoderate"][$key] == 3) $mod = 3;

$query =

mysql_query("INSERT INTO

".$table_prefix."users_to_groups (user_id,

group_id, moderate) values (".$id.", ".$key.",

".$mod.")");

}

}

$msg .=

$lang["user_updated"];

}

mysql_close($link);

header("Location:

user_profile.php?msg=".$msg."&id=".$id."&".

$common_get);

}

function addProfile() {

global $table_prefix, $edit, $link,

$common_get, $lang;

if(get_magic_quotes_gpc()) {

$email =

mysql_real_escape_string(stripslashes($_POS

T["email"]));

$new_password =

mysql_real_escape_string(stripslashes($_POS

T["new_password"]));

} else {

$email =

mysql_real_escape_string($_POST["email"]);

$new_password =

mysql_real_escape_string($_POST["new_pass

word"]);

}

if (!$edit) {

$msg =

$lang["not_authorized_add_users"];

} else {

if ((!$new_password) ||

(!$email)) {

$msg =

$lang["username_password_required"];

} else {

$query =

mysql_query("SELECT email from

".$table_prefix."users where email =

'".$email."'");

if

(mysql_num_rows($query) > 0) {

$msg =

$lang["email_exists"];

} else {

$password

= md5($new_password);

$query =

mysql_query("INSERT INTO

".$table_prefix."users (email, password) values

('".$email."', '".$password."')");

if (!$query)

$msg .=

$lang["database_error_user_not_updated"];

$id =

mysql_insert_id();

$view =

$_POST["view"] ? 1 : 0;

$post =

$_POST["post"] ? 1 : 0;

$add_users

= $_POST["add_users"] ? 1 : 0;

$add_categories =

$_POST["add_categories"] ? 1 : 0;

$add_groups =

$_POST["add_groups"] ? 1 : 0;

$query =

mysql_query("UPDATE ".$table_prefix."users

set add_users = ".$add_users.", add_categories

= ".$add_categories.", view = ".$view.", post =

".$post.", add_groups = ".$add_groups."

WHERE user_id =".$id);

Page 114: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if (!$query)

$msg .=

$lang["database_error_user_not_updated"];

//now add

back the ones the user has access to

if

($_POST["category"]) {

while (list($key) =

each($_POST["category"])) {

$mod = 0;

if ($_POST["cmoderate"][$key])

$mod = 3;

elseif ($_POST["cpost"][$key]) $mod

= 2;

else $mod = 1;

$query = mysql_query("INSERT

INTO ".$table_prefix."users_to_categories

(user_id, category_id, moderate) values

(".$id.", ".$key.", ".$mod.")");

}

}

if

($_POST["group"]) {

while (list($key) =

each($_POST["group"])) {

$sub = 0;

$mod = 0;

if ($_POST["gmoderate"][$key])

$mod = 3;

elseif ($_POST["gpost"][$key]) $mod

= 2;

else $mod = 1;

$query = mysql_query("INSERT

INTO ".$table_prefix."users_to_groups

(user_id, group_id, moderate) values (".$id.",

".$key.", ".$mod.")");

}

}

}

}

}

if (!$msg) $msg =

$lang["user_updated"];

mysql_close($link);

header("Location:

edit_users.php?msg=".$msg."&".$common_ge

t);

}

function addCategory() {

global $table_prefix, $link,

$edit_categories, $common_get;

if (!$edit_categories) {

$msg =

$lang["not_authorized_edit_categories"];

} else {

if(get_magic_quotes_gpc())

{

$name =

mysql_real_escape_string(stripslashes($_POS

T["name"]));

$sub_of =

mysql_real_escape_string(stripslashes($_POS

T["sub_of"]));

$sequence =

mysql_real_escape_string(stripslashes($_POS

T["sequence"]));

$description =

mysql_real_escape_string(stripslashes($_POS

T["description"]));

$color =

mysql_real_escape_string(stripslashes($_POS

T["color"]));

$background =

mysql_real_escape_string(stripslashes($_POS

T["background"]));

} else {

$name =

mysql_real_escape_string($_POST["name"]);

$sub_of =

mysql_real_escape_string($_POST["sub_of"]);

$sequence =

mysql_real_escape_string($_POST["sequence"

]);

$description =

mysql_real_escape_string($_POST["descriptio

n"]);

Page 115: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$color =

mysql_real_escape_string($_POST["color"]);

$background =

mysql_real_escape_string($_POST["backgrou

nd"]);

}

$q = "INSERT INTO

".$table_prefix."categories (name, sub_of,

sequence, description, color, background)

values ('".$name."', '".$sub_of."',

'".$sequence."', '".$description."', '".$color."',

'".$background."')";

$query = mysql_query($q);

if (!$query) $msg =

$lang["database_error_category_not_updated"]

;

else $msg =

$lang["cateogory_added"];

}

mysql_close($link);

header("Location:

edit_categories.php?msg=".$msg."&".$commo

n_get);

}

function editCategory($id) {

global $table_prefix, $link,

$edit_categories, $common_get, $lang;

if (!$edit_categories) {

$msg =

$lang["not_authorized_edit_categories"];

} else {

if(get_magic_quotes_gpc())

{

$name =

mysql_real_escape_string(stripslashes($_POS

T["name"]));

$sub_of =

mysql_real_escape_string(stripslashes($_POS

T["sub_of"]));

$sequence =

mysql_real_escape_string(stripslashes($_POS

T["sequence"]));

$description =

mysql_real_escape_string(stripslashes($_POS

T["description"]));

$color =

mysql_real_escape_string(stripslashes($_POS

T["color"]));

$background =

mysql_real_escape_string(stripslashes($_POS

T["background"]));

} else {

$name =

mysql_real_escape_string($_POST["name"]);

$sub_of =

mysql_real_escape_string($_POST["sub_of"]);

$sequence =

mysql_real_escape_string($_POST["sequence"

]);

$description =

mysql_real_escape_string($_POST["descriptio

n"]);

$color =

mysql_real_escape_string($_POST["color"]);

$background =

mysql_real_escape_string($_POST["backgrou

nd"]);

}

$query =

mysql_query("UPDATE

".$table_prefix."categories set name =

'".$name."', sub_of = '".$sub_of."', sequence =

'".$sequence."', description = '".$description."',

color = '".$color."', background =

'".$background."' where category_id =".$id);

if (!$query) $msg =

$lang["database_error_category_not_updated"]

;

else $msg =

$lang["category_updated"];

}

mysql_close($link);

header("Location:

edit_categories.php?msg=".$msg."&".$commo

n_get);

}

function deleteCategory($id) {

global $table_prefix, $link,

$edit_categories, $common_get, $lang;

if (!$edit_categories) {

$msg =

$lang["not_authorized_edit_categories"];

} else {

if(get_magic_quotes_gpc())

{

$sub_of =

mysql_real_escape_string(stripslashes($_POS

T["sub_of"]));

} else {

Page 116: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$sub_of =

mysql_real_escape_string($_POST["sub_of"]);

}

$query =

mysql_query("UPDATE

".$table_prefix."categories set sub_of =

'".$sub_of."' where sub_of =".$id);

if (!$query) $msg =

$lang["database_error_dependant_categories_n

ot_updated"];

$query =

mysql_query("UPDATE

".$table_prefix."events set category_id =

'".$sub_of."' where category_id =".$id);

if (!$query) $msg .=

$lang["database_error_dependant_events_not_

updated"] ;

$query =

mysql_query("UPDATE ".$table_prefix."links

set category_id = '".$sub_of."' where

category_id =".$id);

if (!$query) $msg .=

$lang["database_error_dependant_events_not_

updated"] ;

$query =

mysql_query("DELETE from

".$table_prefix."users_to_categories where

category_id = ".$id);

if (!$query) $msg .=

$lang["database_error_user_table_not_updated

"];

$query =

mysql_query("DELETE from

".$table_prefix."categories where category_id

= ".$id);

if (!$query) $msg .=

$lang["database_error_category_not_deleted"];

if (!$msg) $msg =

$lang["category_deleted"];

}

mysql_close($link);

header("Location:

edit_categories.php?msg=".$msg."&".$commo

n_get);

}

function addGroup() {

global $table_prefix, $link,

$edit_groups, $common_get;

if (!$edit_groups) {

$msg =

$lang["not_authorized_edit_groups"];

} else {

if(get_magic_quotes_gpc())

{

$name =

mysql_real_escape_string(stripslashes($_POS

T["name"]));

$sub_of =

mysql_real_escape_string(stripslashes($_POS

T["sub_of"]));

$sequence =

mysql_real_escape_string(stripslashes($_POS

T["sequence"]));

} else {

$name =

mysql_real_escape_string($_POST["name"]);

$sub_of =

mysql_real_escape_string($_POST["sub_of"]);

$sequence =

mysql_real_escape_string($_POST["sequence"

]);

}

$q = "INSERT INTO

".$table_prefix."groups (name, sub_of,

sequence) values ('".$name."', '".$sub_of."',

'".$sequence."')";

$query = mysql_query($q);

if (!$query) $msg =

$lang["database_error_group_not_updated"];

else $msg =

$lang["group_added"];

}

mysql_close($link);

header("Location:

edit_groups.php?msg=".$msg."&".$common_

get);

}

function editGroup($id) {

global $table_prefix, $link,

$edit_groups, $common_get, $lang;

if (!$edit_groups) {

$msg =

$lang["not_authorized_edit_groups"];

} else {

if(get_magic_quotes_gpc())

{

Page 117: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$name =

mysql_real_escape_string(stripslashes($_POS

T["name"]));

$sub_of =

mysql_real_escape_string(stripslashes($_POS

T["sub_of"]));

$sequence =

mysql_real_escape_string(stripslashes($_POS

T["sequence"]));

} else {

$name =

mysql_real_escape_string($_POST["name"]);

$sub_of =

mysql_real_escape_string($_POST["sub_of"]);

$sequence =

mysql_real_escape_string($_POST["sequence"

]);

}

$query =

mysql_query("UPDATE

".$table_prefix."groups set name = '".$name."',

sub_of = '".$sub_of."', sequence =

'".$sequence."' where group_id =".$id);

if (!$query) $msg =

$lang["database_error_category_not_updated"]

;

else $msg =

$lang["group_updated"];

}

mysql_close($link);

header("Location:

edit_groups.php?msg=".$msg."&".$common_

get);

}

function deleteGroup($id) {

global $table_prefix, $link,

$edit_groups, $common_get, $lang;

if (!$edit_groups) {

$msg =

$lang["not_authorized_edit_groups"];

} else {

if(get_magic_quotes_gpc())

{

$sub_of =

mysql_real_escape_string(stripslashes($_POS

T["sub_of"]));

} else {

$sub_of =

mysql_real_escape_string($_POST["sub_of"]);

}

$query =

mysql_query("UPDATE

".$table_prefix."groups set sub_of =

'".$sub_of."' where sub_of =".$id);

if (!$query) $msg =

$lang["database_error_dependant_groups_not_

updated"];

$query =

mysql_query("UPDATE

".$table_prefix."events set group_id =

'".$sub_of."' where group_id =".$id);

if (!$query) $msg .=

$lang["database_error_dependant_events_not_

updated"] ;

$query =

mysql_query("DELETE from

".$table_prefix."users_to_groups where

group_id = ".$id);

if (!$query) $msg .=

$lang["database_error_user_table_not_updated

"];

$query =

mysql_query("DELETE from

".$table_prefix."groups where group_id =

".$id);

if (!$query) $msg .=

$lang["database_error_group_not_deleted"];

if (!$msg) $msg =

$lang["group_deleted"];

}

mysql_close($link);

header("Location:

edit_groups.php?msg=".$msg."&".$common_

get);

}

function addLink() {

global $table_prefix, $link,

$common_get, $lang, $edit_categories;

if (!$edit_categories) {

$msg =

$lang["not_authorized_edit_links"];

} else {

if(get_magic_quotes_gpc())

{

$name =

mysql_real_escape_string(stripslashes($_POS

T["name"]));

Page 118: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$address =

mysql_real_escape_string(stripslashes($_POS

T["address"]));

$city =

mysql_real_escape_string(stripslashes($_POS

T["city"]));

$gender =

mysql_real_escape_string(stripslashes($_POS

T["gender"]));

$state =

mysql_real_escape_string(stripslashes($_POS

T["state"]));

$phone =

mysql_real_escape_string(stripslashes($_POS

T["phone"]));

$email =

mysql_real_escape_string(stripslashes($_POS

T["email"]));

$group_id =

mysql_real_escape_string(stripslashes($_POS

T["group_id"]));

$group_id_child =

mysql_real_escape_string(stripslashes($_POS

T["group_id_child"]));

$category_id =

mysql_real_escape_string(stripslashes($_POS

T["category_id"]));

$description =

mysql_real_escape_string(stripslashes($_POS

T["description"]));

} else {

$name =

mysql_real_escape_string($_POST["name"]);

$address =

mysql_real_escape_string($_POST["address"])

;

$city =

mysql_real_escape_string($_POST["city"]);

$gender =

mysql_real_escape_string($_POST["gender"]);

$state =

mysql_real_escape_string($_POST["state"]);

$phone =

mysql_real_escape_string($_POST["phone"]);

$email =

mysql_real_escape_string($_POST["email"]);

$group_id =

mysql_real_escape_string($_POST["group_id"

]);

$group_id_child =

mysql_real_escape_string($_POST["group_id_

child"]);

$caegory_id =

mysql_real_escape_string($_POST["category_

id"]);

$description =

mysql_real_escape_string($_POST["descriptio

n"]);

}

$query =

mysql_query("INSERT INTO

".$table_prefix."links (name, address, city,

gender, state, phone, email, group_id,

group_id_child, category_id, description)

values ('".$name."', '".$address."', '".$city."',

'".$gender."', '".$state."', '".$phone."',

'".$email."', '".$group_id."',

'".$group_id_child."', '".$category_id."',

'".$description."')");

if (!$query) $msg =

$lang["database_error_link_not_added"];

else $msg =

$lang["link_added"];

mysql_close($link);

}

header("Location:

edit_links.php?msg=".$msg."&".$common_get

);

}

function editLink($id) {

global $table_prefix, $link,

$common_get, $lang, $edit_categories;

if (!$edit_categories) {

$msg =

$lang["not_authorized_edit_links"];

} else {

if(get_magic_quotes_gpc())

{

$name =

mysql_real_escape_string(stripslashes($_POS

T["name"]));

$address =

mysql_real_escape_string(stripslashes($_POS

T["address"]));

$city =

mysql_real_escape_string(stripslashes($_POS

T["city"]));

Page 119: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$gender =

mysql_real_escape_string(stripslashes($_POS

T["gender"]));

$state =

mysql_real_escape_string(stripslashes($_POS

T["state"]));

$phone =

mysql_real_escape_string(stripslashes($_POS

T["phone"]));

$email =

mysql_real_escape_string(stripslashes($_POS

T["email"]));

$group_id =

mysql_real_escape_string(stripslashes($_POS

T["group_id"]));

$group_id_child =

mysql_real_escape_string(stripslashes($_POS

T["group_id_child"]));

$category_id =

mysql_real_escape_string(stripslashes($_POS

T["category_id"]));

$description =

mysql_real_escape_string(stripslashes($_POS

T["description"]));

} else {

$name =

mysql_real_escape_string($_POST["name"]);

$address =

mysql_real_escape_string($_POST["address"])

;

$city =

mysql_real_escape_string($_POST["city"]);

$gender =

mysql_real_escape_string($_POST["gender"]);

$state =

mysql_real_escape_string($_POST["state"]);

$phone =

mysql_real_escape_string($_POST["phone"]);

$email =

mysql_real_escape_string($_POST["email"]);

$group_id =

mysql_real_escape_string($_POST["group_id"

]);

$group_id_child =

mysql_real_escape_string($_POST["group_id_

child"]);

$category_id =

mysql_real_escape_string($_POST["category_

id"]);

$description =

mysql_real_escape_string($_POST["descriptio

n"]);

}

$q = "UPDATE

".$table_prefix."links set name = '".$name."',

address = '".$address."', city = '".$city."',

gender = '".$gender."', state = '".$state."', phone

= '".$phone."', email = '".$email."', group_id

='".$group_id."', group_id_child

='".$group_id_child."', category_id

='".$category_id."', description

='".$description."' where link_id =".$id;

$query = mysql_query($q);

if (!$query) $msg =

$lang["database_error_link_not_updated"];

else $msg =

$lang["link_updated"];

mysql_close($link);

}

header("Location:

edit_links.php?msg=".$msg."&".$common_get

);

}

function deleteLink($id) {

global $table_prefix, $link,

$common_get, $lang, $edit_categories;

if (!$edit_categories) {

$msg =

$lang["not_authorized_edit_links"];

} else {

$query =

mysql_query("DELETE from

".$table_prefix."send where venue_id = ".$id);

if (!$query) $msg .=

$lang["database_error_dependant_send_not_u

pdated"];

$query =

mysql_query("DELETE from

".$table_prefix."links where link_id = ".$id);

if (!$query) $msg .=

$lang["database_error_link_not_deleted"];

if (!$msg) $msg =

$lang["link_deleted"];

mysql_close($link);

}

header("Location:

edit_links.php?msg=".$msg."&".$common_get

);

}

function deleteUser($id) {

Page 120: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

global $table_prefix, $link,

$common_get, $lang, $edit;

if (!$edit) {

$msg =

$lang["not_authorized_add_users"];

} else {

$sub_of =

addslashes($_POST["sub_of"]);

$query =

mysql_query("DELETE from

".$table_prefix."users_to_categories where

user_id = ".$id);

if (!$query) $msg .=

$lang["database_error_user_table_not_updated

"];

$query =

mysql_query("DELETE from

".$table_prefix."users where user_id = ".$id);

if (!$query) $msg .=

$lang["database_error_user_not_deleted"];

if (!$msg) $msg =

$lang["user_deleted"];

}

mysql_close($link);

header("Location:

edit_users.php?msg=".$msg."&".$common_ge

t);

}

function deleteEvent($id) {

global $table_prefix, $edit_categories,

$link, $common_get, $lang, $c;

if ($edit_categories) {

$edit = true;

} elseif ($row["user_id"] ==

$_SESSION["user_id"]) {

$edit = true;

} else {

$q = "select moderate from

".$table_prefix."users_to_categories where

category_id = ".$c." and user_id =

".$_SESSION["user_id"];

$mod =

mysql_result(mysql_query($q),0,0);

if ($mod >= 2) {

$edit = true;

}

}

if ($edit == true) {

$query =

mysql_query("DELETE from

".$table_prefix."dates where event_id = ".$id);

if (!$query) $msg .=

$lang["database_error_dates_not_updated"];

$query =

mysql_query("DELETE from

".$table_prefix."events where event_id =

".$id);

if (!$query) $msg .=

$lang["database_error_event_not_deleted"];

$query =

mysql_query("DELETE from

".$table_prefix."send where event_id = ".$id);

if (!$query) $msg .=

$lang["database_error_send_table_not_deleted

"];

$query =

mysql_query("DELETE from

".$table_prefix."outbox where CreatorID =

".$id);

if (!$query) $msg .=

$lang["database_error_outbox_table_not_delet

ed"];

$query =

mysql_query("DELETE from

".$table_prefix."sentitems where CreatorID =

".$id);

if (!$query) $msg .=

$lang["database_error_sentitems_table_not_de

leted"];

} else {

$msg =

$lang["not_authorized_events_category"];

}

mysql_close($link);

header("Location:

index.php?msg=".$msg."&".$common_get);

}

function updateModules() {

global $table_prefix, $link, $edit,

$common_get, $lang;

if (!$edit) {

$msg =

$lang["not_authorized_add_users"];

} else {

while (list($key, $val) =

each($_POST["link_name"])) {

Page 121: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if(get_magic_quotes_gpc()) {

$key =

mysql_real_escape_string(stripslashes($key));

$val =

mysql_real_escape_string(stripslashes($val));

} else {

$key =

mysql_real_escape_string($key);

$val =

mysql_real_escape_string($val);

}

if

($_POST["delete"][$key]) {

$del =

mysql_query("delete from

".$table_prefix."modules where module_id =

".$key);

} else {

if(get_magic_quotes_gpc()) {

$active =

mysql_real_escape_string(stripslashes($_POS

T["active"][$key]));

$sequence =

mysql_real_escape_string(stripslashes($_POS

T["sequence"][$key]));

$year =

mysql_real_escape_string(stripslashes($_POS

T["year"][$key]));

$month =

mysql_real_escape_string(stripslashes($_POS

T["month"][$key]));

$week =

mysql_real_escape_string(stripslashes($_POS

T["week"][$key]));

$day =

mysql_real_escape_string(stripslashes($_POS

T["day"][$key]));

} else {

$active =

mysql_real_escape_string($_POST["active"][$

key]);

$sequence =

mysql_real_escape_string($_POST["sequence"

][$key]);

$year =

mysql_real_escape_string($_POST["year"][$k

ey]);

$month =

mysql_real_escape_string($_POST["month"][$

key]);

$week =

mysql_real_escape_string($_POST["week"][$

key]);

$day =

mysql_real_escape_string($_POST["day"][$ke

y]);

}

$update =

mysql_query("update ".$table_prefix."modules

set link_name = '".$val."', name =

'".$_POST["name"][$key]."', active =

'".$active."', sequence = '".$sequence."', year =

'".$year."', month = '".$month."', week =

'".$week."', day = '".$day."' where module_id

=".$key);

}

$msg =

$lang["modules_updated"];

}

}

mysql_close($link);

header("Location:

modules.php?msg=".$msg."&".$common_get)

;

}

function installModule($dir,$file) {

global $table_prefix, $link, $edit,

$common_get, $lang;

if (!$edit) {

$msg =

$lang["not_authorized_add_users"];

Page 122: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

} else {

if ($file) {

$script =

file_get_contents($dir."/".$file);

$pa =

xml_parser_create();

xml_parse_into_struct($pa, $script,

$vals, $index);

xml_parser_free($pa);

while (list($k, $v) =

each($index)) {

$mod[$k]

= $vals[$index[$k][0]][value];

}

$query =

mysql_query("INSERT INTO

".$table_prefix."modules (link_name, name,

script)

values('".$mod["LINK_NAME"]."','".$mod["N

AME"]."','".$file."')");

} else {

$msg =

$lang["modules_updated"];

}

}

mysql_close($link);

header("Location:

modules.php?msg=".$msg."&".$common_get)

;

}

function approve($event_id) {

global $table_prefix, $lang,

$edit_groups, $link;

$q = "select group_id from

".$table_prefix."events where event_id =

".$event_id."";

$query = mysql_query($q);

if (!$query) echo "Database Error :

".$q;

else {

if ($row =

mysql_fetch_row($query)){

if (!$edit_groups) {

$q =

"select moderate from

".$table_prefix."users_to_groups where

group_id = ".$row[0]." and user_id =

".$_SESSION["user_id"]."";

$query =

mysql_query($q);

if

(mysql_num_rows($query) > 0) {

$mod = mysql_result($query,0,0);

if

($mod > 2) $moderate = true;

} else {

$moderate = false;

}

}

else {

$moderate

= true;

}

if ($moderate) {

//------------

------------------------------------

$q =

"SELECT ".$table_prefix."events.event_id,

".$table_prefix."send.event_id,

".$table_prefix."events.category_id,

".$table_prefix."links.category_id,

".$table_prefix."send.start_send,

".$table_prefix."send.end_send,

".$table_prefix."events.description,

".$table_prefix."links.phone from

".$table_prefix."events, ".$table_prefix."send,

".$table_prefix."links where

".$table_prefix."events.event_id =

".$table_prefix."send.event_id AND

".$table_prefix."events.category_id =

".$table_prefix."links.category_id AND

".$table_prefix."send.event_id =

'".$_REQUEST["id"]."' GROUP BY

start_send";

$query =

mysql_query($q);

if (!$query)

{

$msg = "Database Error: $q";

}

else {

Page 123: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$row = mysql_fetch_row($query);

$qi = mysql_query("INSERT INTO

".$table_prefix."outbox (CreatorID,

SendingDateTime, SendingTimeOut,

DestinationNumber, coding, TextDecoded)

values ('".$row[0]."', '".$row[4]."',

'".$row[5]."', '".$row[7]."',

'Default_No_Compression', '".$row[6]."')");

if

(!$qi) $msg = "Database Error: $qi";

}

//---------------------------------

---------------

$sq =

"update ".$table_prefix."events set status_id =

4, quick_approve = NULL where event_id =

'".$event_id."'";

$sq2 =

"update ".$table_prefix."send set accept_send

= 1 where event_id = '".$event_id."'";

$squery =

mysql_query($sq);

$squery2 =

mysql_query($sq2);

if

($squery) {

$msg = $lang["event_updated"];

}

else {

$msg = "Database Error: $sq";

$msg = "Database Error: $sq2";

}

} else {

$msg =

$lang["not_authorized_approve"];

}

header("Location:

index.php?msg=".$msg."&".$common_get);

}

}

}

if (!$_SESSION["user_id"]) {

mysql_close($link);

header("Location: login.php");

} else {

$query = mysql_query("SELECT

add_users, add_categories, add_groups, post

from ".$table_prefix."users where user_id =

".$_SESSION["user_id"]." limit 1");

$row = mysql_fetch_row($query);

if ($row[2] == 1) {

$edit_groups = true;

}

if ($row[1] == 1) {

$edit_categories = true;

}

if ($row[3] == 1) {

$post = true;

}

if ($row[0] == 1) {

$edit = true;

}

if (($id !=

$_SESSION["user_id"])&& !$post && !$edit

&& !$edit_categories && !$edit_groups){

mysql_close($link);

$msg =

$lang["not_authorized"];

header("Location:

index.php?msg=".$msg."&id=".$id."&".$com

mon_get);

}

switch ($_REQUEST["mode"]) {

case $lang["update_profile"];

updateProfile($id);

break;

case $lang["add_category"];

addCategory();

break;

case $lang["edit_category"];

editCategory($id);

break;

case $lang["delete_category"];

deleteCategory($id);

break;

case $lang["add_group"];

Page 124: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

addGroup();

break;

case $lang["edit_group"];

editGroup($id);

break;

case $lang["delete_group"];

deleteGroup($id);

break;

case $lang["add_link"];

addLink();

break;

case $lang["edit_link"];

editLink($id);

break;

case $lang["delete_link"];

deleteLink($id);

break;

case $lang["delete_user"];

deleteUser($id);

break;

case $lang["delete_event"];

deleteEvent($id);

break;

case $lang["add_profile"];

addProfile();

break;

case $lang["update modules"];

updateModules();

break;

case "approve";

approve($id);

break;

case "install_module";

installModule($dir,$file);

break;

default;

header("Location:

index.php");

break;

}

mysql_close($link);

}

?>

start.php

<?

if (!file_exists("config.php"))

header("Location: install.php");

error_reporting(E_ALL & ~E_NOTICE );

include "config.php";

include "includes/session_start.php";

include $language;

$msg = $_REQUEST["msg"];

if (!$_SESSION['user_id'])

$_SESSION['user_id'] = 1;

// establish database connection

$link = mysql_connect ($h, $u, $p) or die

("Could not connect to database, try again

later");

mysql_select_db($d,$link);

// this area to set superpermission levels

$query = mysql_query("SELECT view, post,

add_categories, add_groups, add_users, email

from ".$table_prefix."users where user_id =

".$_SESSION["user_id"]." limit 1");

$row = mysql_fetch_row($query);

$supergroup = false;

$supercategory = false;

$email = $row[5];

if ($row[4]) $supergroup = true;

if ($row[4]) $supercategory = true;

if ($row[4]) $superpost = true;

if ($row[4]) $superview = true;

if ($row[3]) $supergroup = true;

if ($row[3]) $superpost = true;

if ($row[3]) $superview = true;

if ($row[2]) $supercategory = true;

if ($row[2]) $superpost = true;

if ($row[2]) $superview = true;

if ($row[1]) $superpost = true;

if ($row[1]) $superview = true;

if ($row[0]) $superview = true;

Page 125: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if (!$calendar_title) $calendar_title = "SMS

Reminder";

if ((is_numeric($_REQUEST["m"]))&&

($_REQUEST["m"]!= 0)) {

$_SESSION["m"] =

$_REQUEST["m"];

$m = $_REQUEST["m"];

} elseif ($_SESSION["m"]) {

$m = $_SESSION["m"];

} else {

$m = date(m);

}

if (strlen($m) == 1) $m = "0".$m;

if ((is_numeric($_REQUEST["a"]))&&

($_REQUEST["a"]!= 0)) {

$_SESSION["a"] =

$_REQUEST["a"];

$a = $_REQUEST["a"];

} elseif ($_SESSION["a"]) {

$a = $_SESSION["a"];

} else {

$a = date(d);

}

if (strlen($a) == 1) $a = "0".$a;

if ((is_numeric($_REQUEST["y"]))&&

($_REQUEST["y"]!= 0)) {

$_SESSION["y"] =

$_REQUEST["y"];

$y = $_REQUEST["y"];

} elseif ($_SESSION["y"]) {

$y = $_SESSION["y"];

} else {

$y = date(Y);

}

if ($_POST["godate"]) {

if (ereg ("([0-9]{1,2})[\/-]+([0-

9]{1,2})[\/-]+([0-

9]{4})",$_POST["godate"],$dater)) {

$_SESSION["m"] =

$dater[1];

$_SESSION["a"] =

$dater[2];

$_SESSION["y"] =

$dater[3];

$m = $dater[1];

$a = $dater[2];

$y = $dater[3];

}

}

$day_of_week = date("w", mktime( 0, 0, 0,

$m, $a, $y ) );

$wa = $a-$day_of_week;

for($wacount=0;$wacount < 7;$wacount++) {

$now["week"]["a"][$wacount] = date(

"d", mktime( 0, 0, 0, $m, $wa+$wacount, $y )

);

$now["week"]["m"][$wacount] =

date( "m", mktime( 0, 0, 0, $m,

$wa+$wacount, $y ) );

$now["week"]["y"][$wacount] = date(

"Y", mktime( 0, 0, 0, $m, $wa+$wacount, $y )

);

}

$next["week"]["a"] = date( "d", mktime( 0, 0,

0, $m, $wa+7, $y ) );

$next["week"]["m"] = date( "m", mktime( 0, 0,

0, $m, $wa+7, $y ) );

$next["week"]["y"] = date( "Y", mktime( 0, 0,

0, $m, $wa+7, $y ) );

$prev["week"]["a"] = date( "d", mktime( 0, 0,

0, $m, $wa-7, $y ) );

$prev["week"]["m"] = date( "m", mktime( 0, 0,

0, $m, $wa-7, $y ) );

$prev["week"]["y"] = date( "Y", mktime( 0, 0,

0, $m, $wa-7, $y ) );

$next["day"]["a"] = date( "d", mktime( 0, 0, 0,

$m, $a+1, $y ) );

$next["day"]["m"] = date( "m", mktime( 0, 0,

0, $m, $a+1, $y ) );

$next["day"]["y"] = date( "Y", mktime( 0, 0, 0,

$m, $a+1, $y ) );

$next["month"]["m"] = date( "m", mktime( 0,

0, 0, $m+1, 1, $y ) );

Page 126: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$next["month"]["y"] = date( "Y", mktime( 0, 0,

0, $m+1, 1, $y ) );

$next["year"]["y"] = date( "Y", mktime( 0, 0,

0, 1, 1, $y+1 ) );

$prev["day"]["a"] = date( "d", mktime( 0, 0, 0,

$m, $a-1, $y ) );

$prev["day"]["m"] = date( "m", mktime( 0, 0,

0, $m, $a-1, $y ) );

$prev["day"]["y"] = date( "Y", mktime( 0, 0, 0,

$m, $a-1, $y ) );

$prev["month"]["m"] = date( "m", mktime( 0,

0, 0, $m-1, 1, $y ) );

$prev["month"]["y"] = date( "Y", mktime( 0, 0,

0, $m-1, 1, $y ) );

$prev["year"]["y"] = date( "Y", mktime( 0, 0,

0, 1, 1, $y-1 ) );

if ((is_numeric($_REQUEST["c"]))&&

($_REQUEST["c"]!= 0)) {

$_SESSION["c"] =

$_REQUEST["c"];

$c = $_REQUEST["c"];

} elseif ($_SESSION["c"]) {

$c = $_SESSION["c"];

} else {

$c = 1;

}

if ((is_numeric($_REQUEST["w"]))&&

($_REQUEST["w"]!= 0)) {

$_SESSION["w"] =

$_REQUEST["w"];

$w = $_REQUEST["w"];

} elseif ($_SESSION["w"]) {

$w = $_SESSION["w"];

} else {

$w = 1;

}

if ((is_numeric($_REQUEST["o"]))&&

($_REQUEST["o"]!= 0)) {

$_SESSION["o"] =

$_REQUEST["o"];

$o = $_REQUEST["o"];

} elseif ($_SESSION["o"]) {

$o = $_SESSION["o"];

} elseif ($default_module) {

$o = $default_module;

} else {

$o =

mysql_result(mysql_query("SELECT

module_id from ".$table_prefix."modules

where active = 1 order by sequence limit

1"),0,0);

}

if (!$o) {

$msg .= "<p

class=\"warning\">".$lang["no_modules_instal

led"]."</p>\n";

} else {

$q = "SELECT * from

".$table_prefix."modules where module_id =

".$o;

$query = mysql_query($q);

if (!$query) $msg = "Database Error :

".$q;

else {

$row =

mysql_fetch_array($query);

if (!$page_title) $page_title =

$row["name"];

$script = $row["script"];

$ly = $row["year"];

$lm = $row["month"];

$la = $row["day"];

$le = $row["week"];

}

}

$common_get =

"o=".$o."&c=".$c."&m=".$m."&a=".$a."&y="

.$y."&w=".$w;

?>

day_weak_function.php

<?

function showGrid($date) {

global $title, $niceday, $start_time,

$end_time, $venue, $city, $state, $cat, $color,

$background, $ed, $usr, $o, $c, $m, $a, $y, $w,

$lang,$scale,$ap,$status,$send,$day_week_star

t_hour, $day_week_end_hour;

$threshold_hour =

$day_week_start_hour ?

$day_week_start_hour : 0;

Page 127: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$threshold_min =

$day_week_start_hour ? 0 : 30;

$txi = ($threshold_hour * 60) +

$threshold_min;

if ($start_time[$date]) {

ksort($start_time[$date]);

$scale = 1;

$wait = 1;

while (list($t) =

each($start_time[$date])) {

//filter string

$value,$parse_start_time

while

(list($id,$value) =

each($start_time[$date][$t])) {

if (eregi

("([0-9]{1,2}):([0-9]{2})[

]?([a|p]m)",$value,$parse_start_time)) {

if

((eregi("am",$parse_start_time[3])) &&

($parse_start_time[1] == 12))

$parse_start_time[1] = $parse_start_time[1] -

12;

if

((eregi("pm",$parse_start_time[3])) &&

($parse_start_time[1] < 12))

$parse_start_time[1] = $parse_start_time[1] +

12;

if

(strlen($parse_start_time[1]) == 1)

$parse_start_time[1] =

"0".$parse_start_time[1];

if

($end_time[$date][$t][$id]) {

eregi ("([0-9]{1,2}):([0-9]{2})[

]?([a|p]m)",$end_time[$date][$t][$id],$parse_e

nd_time);

if ((eregi("am",$parse_end_time[3]))

&& ($parse_end_time[1] == 12))

$parse_end_time[1] = $parse_end_time[1] -

12;

if ((eregi("pm",$parse_end_time[3]))

&& ($parse_end_time[1] < 12))

$parse_end_time[1] = $parse_end_time[1] +

12;

if (strlen($parse_end_time[1]) == 1)

$parse_end_time[1] = "0".$parse_end_time[1];

}

else {

$parse_end_time[1] =

$parse_start_time[1] + 1;

if ($parse_end_time[1] > 24)

$parse_end_time[1] = 24;

if ($parse_end_time[1] == 24)

$parse_end_time[2] = "00";

}

}

elseif($value == "All Day") {

$parse_start_time[1] = "00";

$parse_start_time[2] = "00";

$parse_end_time[1] = "24";

$parse_end_time[2] = "00";

}

elseif($value == "TBA") {

$parse_start_time[1] = "00";

$parse_start_time[2] = "00";

$parse_end_time[1] = "00";

$parse_end_time[2] = "30";

}

Page 128: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$event_id[]

= $id;

$sxi =

($parse_start_time[1] * 60) +

$parse_start_time[2];

$exi =

($parse_end_time[1] * 60) +

$parse_end_time[2];

if ($sxi <

$txi) {

$sxi = 0;

if

($exi <= $txi) {

$exi = 30;

}

else {

$exi = $exi - $txi + 30;

}

}

else {

$sxi = $sxi - $txi + 30;

$exi = $exi - $txi + 30;

}

$sh[] =

$exi - $sxi - 2;

$sx[] =

$sxi;

$ex[] =

$exi;

$len = $exi

- $sxi;

$sta[] =

$value;

$end[] =

$end_time[$date][$t][$id];

}

}

arsort($sh);

$start_empty[0][0] = 0;

$end_empty[0][0] = 1440;

$indent = 0;

while (list($k,$v) =

each($sh)) {

$found = false;

reset($start_empty);

while (list($r) =

each($start_empty)) {

reset($start_empty[$r]);

while

(list($kk,$vv) = each($start_empty[$r])) {

if

(($sx[$k] >= $vv) && ($ex[$k] <=

$end_empty[$r][$kk])) {

$end_empty[$r][] =

$end_empty[$r][$kk];

$end_empty[$r][$kk] = $sx[$k];

$start_empty[$r][] = $ex[$k];

$start_fill[$r][] = $sx[$k];

$end_fill[$r][] = $ex[$k];

$start_event[$r][] = $event_id[$k];

$sta_e[$r][] = $sta[$k];

$end_e[$r][] = $end[$k];

$event_length[$r][] = $v;

$found = true;

break 2;

}

}

}

if (!$found) {

$indent++;

Page 129: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$start_empty[$indent][0] = 0;

$end_empty[$indent][0] = $sx[$k];

$start_empty[$indent][1] = $ex[$k];

$end_empty[$indent][1] = 1440;

$start_fill[$indent][0] = $sx[$k];

$end_fill[$indent][0] = $ex[$k];

$start_event[$indent][0] =

$event_id[$k];

$event_length[$indent][0] = $v;

$sta_e[$indent][0] = $sta[$k];

$end_e[$indent][0] = $end[$k];

}

}

$columns = $indent+1;;

$per = 100 / $columns;

$wide =

number_format($per,0);

$notsowide = $wide-1;

reset($start_fill);

while (list($r) =

each($start_fill)) {

while (list($k,$v) =

each($start_fill[$r])) {

$v =

$v+30;

$left =

$wide * $r;

// wrap fix

from Vepr

echo "<div

class=\"wrap\"><div class=\"date\" style=\"";

echo

"height: ".$event_length[$r][$k]."px; top:

".$v."px; width: ".$notsowide."%;

left:".$left."%;";

//background category propose

if

($color[$start_event[$r][$k]]) echo "color:

".$color[$start_event[$r][$k]]."; background:

".$background[$start_event[$r][$k]].";";

//tampilan

border propose

if

(($status[$start_event[$r][$k]] == 2) ||

($status[$start_event[$r][$k]] == 3))

echo "

filter:alpha(opacity=80); opacity:.80; -moz-

opacity:.80; zoom: 1; border: 1px dashed

".$color[$start_event[$r][$k]].";";

echo "\">

<div

class=\"inner\">";

echo "<div

class=\"title\"><a

href=\"show_event.php?id=".$start_event[$r][$

k]."&o=".$o."&c=".$c."&m=".$m."&a=".$a."

&y=".$y."&w=".$w."\"

onClick=\"openPic('show_event.php?id=".$sta

rt_event[$r][$k].$status2[$start_event[$r][$k]].

"&size=small','pop','600','400');

window.newWindow.focus(); return false\"";

//background category

if

($color[$start_event[$r][$k]])

echo "

style=\"color: ".$color[$start_event[$r][$k]].";

background:

".$background[$start_event[$r][$k]].";\"";

echo

">".$title[$start_event[$r][$k]]."</a>

</div>\n";

echo

"<span class=\"time\">".$sta_e[$r][$k];

if

($end_e[$r][$k]) echo " - ".$end_e[$r][$k];

echo

"</span>\n";

//tampilan

border setelah approve

if

($ed[$start_event[$r][$k]]==true) {

echo

"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&

nbsp;&nbsp;<span class=\"edit\">";

Page 130: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if

(($ap[$start_event[$r][$k]]==true) &&

(($status[$start_event[$r][$k]] == 2) ||

($status[$start_event[$r][$k]] == 3))) {

echo "<img src='./images/Insert

Record.gif' />&nbsp;<a

href=\"admin_actions.php?id=".$start_event[$r

][$k]."&o=".$o."&c=".$c."&m=".$m."&a=".$a

."&y=".$y."&w=".$w."&mode=".approve."\">

".$lang["approve"]."</a>&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;";

}

if

(($ap[$start_event[$r][$k]]==true) &&

($send[$start_event[$r][$k]] == 1)) {

echo "<img src='./images/massage.gif'

/>&nbsp;<a

href=\"send.php?id=".$start_event[$r][$k]."&o

=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$

y."&w=".$w."\"

onClick=\"openPic('send.php?id=".$start_even

t[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["send massage to

member"]."</a>&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;";

}

elseif

(($ap[$start_event[$r][$k]]==true) &&

($send[$start_event[$r][$k]] == 6)) {

echo "<img

src='./images/massage.GIF' />&nbsp;<a

href=\"send.php?id=".$start_event[$r][$k]."&o

=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$

y."&w=".$w."\"

onClick=\"openPic('view_link.php?id=".$start

_event[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["view_link"]."</a>&nbsp;&nb

sp;&nbsp;&nbsp;&nbsp;&nbsp;";

}

echo "<img

src='./images/ctxwiz_cls.gif' />&nbsp;<a

href=\"edit_event.php?id=".$start_event[$r][$k

]."&o=".$o."&c=".$c."&m=".$m."&a=".$a."&

y=".$y."&w=".$w."\"

onClick=\"openPic('edit_event.php?id=".$start

_event[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["edit"].

"</a>&nbsp;&nbsp;&nbsp;&nbsp;&n

bsp;&nbsp;<img src='./images/DELETE.gif'

/>&nbsp;<a

href=\"delete_event.php?id=".$start_event[$r][

$k]."&o=".$o."&c=".$c."&m=".$m."&a=".$a."

&y=".$y."&w=".$w."\">".$lang["delete"]."</a

></span>\n";

}

echo

"</div></div></div>\n";

}

}

}

}

function showHours() {

global $day_week_start_hour,

$day_week_end_hour;

// build day

echo "<td class=\"timex\"><table

class=\"day\"><tr><td width=\"100%\"><div

class=\"time_frame\">\n";

echo "<div

class=\"cell_top\">Time</div>\n";

echo "<div class=\"cell\">12:00 am

".$day_week_start_min."</div>\n";

$i = $day_week_start_hour ?

$day_week_start_hour : 0;

$j = $day_week_start_hour ? 0 : 30;

$max = $day_week_end_hour ?

$day_week_end_hour : 24;

while ($i < $max) {

if ($j < 10) {

$j = "0".$j;

}

if ($i == 0) {

$h = 12;

$ap = "am";

} elseif ($i == 12) {

Page 131: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$h = $i;

$ap = "pm";

} elseif ($i > 12) {

$h = $i - 12;

$ap = "pm";

} else {

$h = $i;

$ap = "am";

}

echo "<div

class=\"cell\">".$h.":".$j." ".$ap."</div>\n";

$j = $j+30;

if ($j >= 60) {

$j = "0";

$i++;

}

}

echo

"</div></td></tr></table></td>";

}

function showDay($dy,$dm,$da,$caption="")

{

global $la, $w, $c,

$day_week_start_hour, $day_week_end_hour;

// build day

echo "<div

class=\"single_day_frame\">";

echo "<div class=\"cell_top\">";

if($caption) echo $caption;

else {

echo '<a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$dm,'&a=',$da,'&y=',$dy,'">';

echo date('l, F j',

mktime(0,0,0,$dm,$da,$dy));

echo '</a>';

}

echo "</div>";

echo "<div class=\"cell\"

id=\"0:00:".$dm."/".$da."/".$dy."\"></div>\n";

$i = $day_week_start_hour ?

$day_week_start_hour : 0;

$j = $day_week_start_hour ? 0 : 30;

$max = $day_week_end_hour ?

$day_week_end_hour : 24;

while ($i < $max) {

if ($j < 10) {

$j = "0".$j;

if ($i < 10) $i = $i;

}

if ($i == 0) {

$h = 12;

$ap = "am";

} elseif ($i == 12) {

$h = $i;

$ap = "pm";

} elseif ($i > 12) {

$h = $i - 12;

$ap = "pm";

} else {

$h = $i;

$ap = "am";

}

if ($i < 10) $i = $i;

//echo "<div class=\"cell\"

id=\"".$i.":".$j."\">".$h.":".$j."

".$ap."</div>\n";

echo "<div class=\"cell\"

id=\"".$i.":".$j.":".$dm."/".$da."/".$dy."\"></di

v>\n";

$j = $j+30;

if ($j >= 60) {

$j = "0";

$i++;

}

}

$sdate = $dy.$dm.$da;

echo "<div id=\"dates\">\n";

showGrid($sdate);

echo "</div>";

echo "</div>";

}

if ($superpost) {

$javascript = '<script type="text/javascript">

function getElementsByClassName(oElm,

strTagName, strClassName){

Page 132: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

var arrElements = (strTagName ==

"*" && oElm.all)? oElm.all :

oElm.getElementsByTagName(strTagName);

var arrReturnElements = new Array();

strClassName =

strClassName.replace(/-/g, "\-");

var oRegExp = new RegExp("(^|\s)" +

strClassName + "(\s|$)");

var oElement;

for(var i=0; i<arrElements.length;

i++){

oElement = arrElements[i];

if(oRegExp.test(oElement.className)

){

arrReturnElements.push(oElement);

}

}

return (arrReturnElements)

}

var start;

var end;

var flagged = Array();

window.onload = function () {

var x = getElementsByClassName(document,

"div", "cell")

for (var i=0;i<x.length;i++) {

//x[i].onmousedown = function ()

{this.style.backgroundColor="#cccccc"}

x[i].onmousedown = startup

x[i].onmouseout = flag

x[i].onmouseover = whatadrag

x[i].onmouseup = endup

//x[i].onmouseout = function ()

{this.style.backgroundColor="#ffffff"}

//x[i].onclick = function ()

{this.innerHTML = this.id}

//x[i].onclick = click

}

/*

var x = getElementsByClassName(document,

"div", "date")

for (var i=0;i<x.length;i++) {

x[i].onmouseout = contract

x[i].onmouseover = expand

}

function expand () {

this.oldheight = this.style.height

this.style.height ="auto"

this.style.zIndex = 2

}

function contract () {

this.style.height = this.oldheight

this.style.zIndex = 1

}

*/

}

function startup () {

start = this.id

end = this.id

this.style.backgroundColor="#cccccc"

}

function flag() {

var next = Math.abs(start - end)

var cur = Math.abs(start - this.id)

}

function whatadrag() {

if (start) {

this.style.backgroundColor="#cccccc"

var cur = Math.abs(start -

this.id)

var next = Math.abs(start -

end)

if (cur < next) {

document.getElementById(end).style.

backgroundColor="#ffffff";

}

end = this.id;

}

}

function getdatestring(i,j) {

var h

var ap

if (i == 0) {

h = 12;

ap = "am";

} else if (i == 12) {

h = i;

ap = "pm";

Page 133: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

} else if (i > 12) {

h = i - 12;

ap = "pm";

} else {

h = i;

ap = "am";

}

if (j < 30) j = "00";

var stringy = h + ":" + j + " " + ap;

return(stringy);

}

function endup() {

end = this.id

if (start.substring(2,3) == ":") {

var i = start.substring(0,2)

var j = start.substring(3,5)

var ddate = start.substring(6)

} else {

var i = start.substring(0,1)

var j = start.substring(2,4)

var ddate = start.substring(5)

}

j = parseInt(j);

i = parseInt(i);

var sstart = getdatestring(i,j);

if (end.substring(2,3) == ":") {

var i = end.substring(0,2)

var j = end.substring(3,5)

} else {

var i = end.substring(0,1)

var j = end.substring(2,4)

}

j = parseInt(j);

i = parseInt(i);

j = j + 30;

if (j == 60) {

j = "00";

i++;

}

var eend = getdatestring(i,j);

var adfield =

"add_event.php?size=small&next_date=" +

ddate + "&next_start=" + sstart +

"&next_end=" + eend;

x=openPic(adfield,"pop","650","600")

x.focus();

start = null;

end = null;

flagged = Array()

var x =

getElementsByClassName(document, "div",

"cell")

for (var i=0;i<x.length;i++) {

x[i].style.backgroundColor="#ffffff"

//x[i].blur()

}

}

</script>';

}

?>

day.php

<?php

include "modules/day_week_functions.php";

include "includes/header.php";

?>

<?php

$thisday = $y."-".$m."-".$a;

$nextday = $next["day"]["y"]."-

".$next["day"]["m"]."-".$next["day"]["a"];

grab($thisday,$nextday,$c);

echo "<div class=\"frame\">\n";

echo '<div class="cal_top"><a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$prev["day"]["m"],'&a=',$prev["day"]

["a"],'&y=',$prev["day"]["y"],'">

<img src="images/prev.png" border="0"

height="20"/></a> ',date('l, F j, Y',

mktime(0,0,0,$m,$a,$y)),' <a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$next["day"]["m"],'&a=',$next["day"][

"a"],'&y=',$next["day"]["y"],'"><img

src="images/next.png" border="0"

height="20"/></a></div>'."\n";

echo "<table class=\"day\"><tr>";

showHours();

echo "<td><table class=\"day\"><tr>";

echo "<td width=\"100%\"

class=\"single_day\">\n";

showDay($y,$m,$a,"Events");

echo "</td>";

echo "</tr></table></td></tr></table>";

echo "</div>\n";

Page 134: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

include "includes/footer.php";

?>

week.php

<?php

/*

<?xml version="1.0" encoding="utf-8"?>

<module>

<name>Week View</name>

<author>Dana C. Hutchins</author>

<url>http://supercali.inforest.com/</url>

<version>1.0.0</version>

<link_name>Week</link_name>

<description>Shows a week on one

screen.</description>

<image></image>

<install_script></install_script>

</module>

*/

include "modules/day_week_functions.php";

include "includes/header.php";

?>

<?php

$thisweek = $now["week"]["y"][0]."-

".$now["week"]["m"][0]."-

".$now["week"]["a"][0];

$nextweek = $next["week"]["y"]."-

".$next["week"]["m"]."-".$next["week"]["a"];

grab($thisweek,$nextweek,$c);

echo "<div class=\"frame\">\n";

echo '<div class="cal_top"><a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$prev["week"]["m"],'&a=',$prev["wee

k"]["a"],'&y=',$prev["week"]["y"],'">

<img src="images/prev.png" border="0"

height="20"/></a> ',$lang["week_of"],date('F

j, Y',

mktime(0,0,0,$now["week"]["m"][0],$now["w

eek"]["a"][0],$now["week"]["y"][0])),' <a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$next["week"]["m"],'&a=',$next["wee

k"]["a"],'&y=',$next["week"]["y"],'"><img

src="images/next.png" border="0"

height="20"/></a></div>'."\n";

echo "<table class=\"day\"><tr>";

showHours();

echo "<td><table class=\"day\"><tr>";

for ($we=0;$we<7;$we++) {

echo "<td width=\"14%\"

class=\"single_day\">\n";

showDay($now["week"]["y"][$we],$

now["week"]["m"][$we],$now["week"]["a"][$

we]);

echo "</td>";

}

echo "</tr></table></td></tr></table>";

echo "</div>\n";

include "includes/footer.php";

?>

year.php

<?php

function showGrid($date) {

global $title, $niceday, $start_time,

$end_time, $venue, $city, $state, $cat, $color,

$background, $ed, $usr, $o, $c, $m, $a, $y, $w,

$lang;

if ($start_time[$date]) {

ksort($start_time[$date]);

while (list($t) =

each($start_time[$date])) {

while

(list($id,$value) =

each($start_time[$date][$t])) {

echo "<div

class=\"button\" style=\"";

if

($color[$id]) echo " color: ".$color[$id].";

background: ".$background[$id].";";

echo "\">";

echo "<a

href=\"show_event.php?id=".$id."&o=".$o."&

c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".

$w."\"

onClick=\"openPic('show_event.php?id=".$id.

"&size=small','pop','600','400');

window.newWindow.focus(); return false\">";

echo "<div

style=\"background: ".$color[$id].";\" title=\"";

echo

$value;

if

($end_time[$date][$t][$id]) echo " -

".$end_time[$date][$t][$id];

echo " - ";

echo

$title[$id];

Page 135: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if

($venue[$id]) {

echo " - ".$venue[$id];

if

($city[$id]) {

echo " - ".$city[$id];

if ($state[$id]) echo ", ".$state[$id];

}

}

echo

"\">&nbsp;</div></a></div>";

}

}

}

}

function showYear ($calyear) {

global $week_titles_ss, $o, $m, $a,

$y, $w, $c, $next, $prev, $lm, $la, $le;

echo '<table width="100%"

class="grid""><tr>';

echo '<th colspan="4"

class="cal_top"><a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$m,'&a=1&y=',$prev['year']['y'],'"><i

mg src="images/prev.png" border="0"

height="20"/></a>&nbsp;',$calyear,'&nbsp;<a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$m,'&a=1&y=',$next['year']['y'],'"><i

mg src="images/next.png" border="0"

height="20"/></a></th></tr>';

$calmonth = 0;

for($p=0;$p<3;$p++){

echo '<tr>';

for($q=0;$q<4;$q++){

$calmonth++;

echo '<td

width="25%" class="holder">';

/* determine total

number of days in a month */

$calday = 0;

$totaldays = 0;

while ( checkdate(

$calmonth, $totaldays + 1, $calyear ) )

$totaldays++;

/* build table */

echo '<table

width="100%" class="grid"><tr>';

echo '<th

colspan="7" class="cal_top_s"><a

href="index.php?o=',$lm,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=1&y=',$calyear,'">',date('F

',

mktime(0,0,0,$calmonth,1,$calyear)),'</a></th

></tr><tr>';

for ( $x = 0; $x < 7;

$x++ )

echo '<th>', $week_titles_ss[ $x ],

'</th>';

/* ensure that a

number of blanks are put in so that the first day

of the month

lines up with the

proper day of the week */

$off = date( "w",

mktime( 0, 0, 0, $calmonth, $calday, $calyear )

);

$offset = $off + 1;

echo '</tr><tr>';

if ($offset > 6)

$offset = 0;

for ($t=0; $t <

$offset; $t++) {

if ($t == 0)

{

$offyear = date( "Y", mktime( 0, 0, 0,

$calmonth, $calday-$off, $calyear ) );

$offmonth = date( "m", mktime( 0, 0,

0, $calmonth, $calday-$off, $calyear ) );

$offday = date( "d", mktime( 0, 0, 0,

$calmonth, $calday-$off, $calyear ) );

echo '<td class="day"><div

class="week"><a

Page 136: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

href="index.php?o=',$le,'&w=',$w,'&c=',$c,'&

m=',$offmonth,'&a=',$offday,'&y=',$offyear,'"

>week</a></div></td>';

} else {

echo '<td class="day">&nbsp;</td>';

}

}

/* start entering in

the information */

for ( $d = 1; $d <=

$totaldays; $d++ )

{

if

(($d == date(j)) && ($calmonth == date(m))

&& ($calyear == date(Y))) {

echo '<td class="day"

id="today"><div class="day_of_month_s"><a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">',

$d, '</a></div>';

}

else {

echo '<TD class="day"><div

class="day_of_month_s"><a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">',

$d, '</a></div>';

if ($offset == 0) echo '<div

class="week"><a

href="index.php?o=',$le,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">wee

k</a></div>';

}

/*

correct date format */

$coredate = date( "Ymd", mktime( 0,

0, 0, $calmonth, $d, $calyear ) );

showGrid($coredate);

echo "</td>";

$offset++;

/*

if we're on the last day of the week, wrap to the

other side */

if

( $offset > 6 )

{

$offset = 0;

echo '</tr>';

if ( $day < $totaldays )

echo '<tr>';

}

}

/* fill in the

remaining spaces for the end of the month, just

to make it look

pretty */

if ( $offset > 0 )

$offset = 7 - $offset;

for ($t=0; $t <

$offset; $t++) {

echo

"<td>&nbsp;</td>";

}

/* end the table */

echo '</tr></table>';

echo

'</td>';

}

echo "</tr>";

}

echo "</table>";

}

include "includes/header.php";

grab($y."-01-01",$y."-12-31",$c);

showYear($y);

include "includes/footer.php";

?>

quarter.php

Page 137: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

<?php

function showGrid($date) {

global $title, $niceday, $start_time,

$end_time, $venue, $city, $state, $cat, $color,

$background, $ed, $usr, $o, $c, $m, $a, $y, $w,

$lang;

if ($start_time[$date]) {

ksort($start_time[$date]);

while (list($t) =

each($start_time[$date])) {

while

(list($id,$value) =

each($start_time[$date][$t])) {

echo "<div

class=\"button\" style=\"";

if

($color[$id]) echo " color: ".$color[$id].";

background: ".$background[$id].";";

echo "\">";

echo "<a

href=\"show_event.php?id=".$id."&o=".$o."&

c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".

$w."\"

onClick=\"openPic('show_event.php?id=".$id.

"&size=small','pop','600','400');

window.newWindow.focus(); return false\">";

echo "<div

style=\"background: ".$color[$id].";\" title=\"";

echo

$value;

if

($end_time[$date][$t][$id]) echo " -

".$end_time[$date][$t][$id];

echo " - ";

echo

$title[$id];

if

($venue[$id]) {

echo " - ".$venue[$id];

if

($city[$id]) {

echo " - ".$city[$id];

if ($state[$id]) echo ", ".$state[$id];

}

}

echo

"\">&nbsp;</div></a></div>";

}

}

}

}

function showQuarter ($quarter,$calyear) {

global $week_titles_s, $o, $m, $a, $y,

$w, $c, $next, $prev,$lm, $le, $la;

global $prevmonth, $prevyear,

$nextmonth, $nextyear;

echo '<table width="100%"

class="grid""><tr>';

echo '<th colspan="3"

class="cal_top"><a

href="',$PHP_SELF,'?o=',$o,'&c=',$c,'&m=',$

prevmonth,'&a=1&y=',$prevyear,'">&lt;</a>&

nbsp;',$calyear,' - Quarter ',$quarter,'&nbsp;<a

href="',$PHP_SELF,'?o=',$o,'&c=',$c,'&m=',$

nextmonth,'&a=1&y=',$nextyear,'">&gt;</a><

/th></tr>';

echo '<tr>';

$calmonth = $quarter * 3 - 3;

for($q=0;$q<3;$q++){

$calmonth++;

echo '<td width="33%"

class="holder">';

/* determine total number of days in a

month */

$calday = 0;

$totaldays = 0;

while ( checkdate( $calmonth,

$totaldays + 1, $calyear ) )

$totaldays++;

/* build table */

echo '<table width="100%"

class="grid""><tr>';

echo '<th colspan="7"

class="cal_top_s"><a

href="index.php?o=',$lm,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=1&y=',$calyear,'">',date('F

',

mktime(0,0,0,$calmonth,1,$calyear)),'</a></th

></tr><tr>';

for ( $x = 0; $x < 7; $x++ )

Page 138: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

echo '<th>', $week_titles_s[ $x ],

'</th>';

/* ensure that a number of blanks are

put in so that the first day of the month

lines up with the proper day of the

week */

$offset = date( "w", mktime( 0, 0, 0,

$calmonth, $calday, $calyear ) ) + 1;

echo '</tr><tr>';

if ($offset > 6) $offset = 0;

for ($t=0; $t < $offset; $t++) {

if ($t == 0) {

$offyear = date(

"Y", mktime( 0, 0, 0, $calmonth, $calday-$off,

$calyear ) );

$offmonth = date(

"m", mktime( 0, 0, 0, $calmonth, $calday-$off,

$calyear ) );

$offday = date( "d",

mktime( 0, 0, 0, $calmonth, $calday-$off,

$calyear ) );

echo '<td

class="day"><div class="week"><a

href="index.php?o=',$le,'&w=',$w,'&c=',$c,'&

m=',$offmonth,'&a=',$offday,'&y=',$offyear,'"

>week</a></div></td>';

} else {

echo '<td

class="day">&nbsp;</td>';

}

}

/* start entering in the information */

for ( $d = 1; $d <= $totaldays; $d++ )

{

if (($d == date(j))

&& ($calmonth == date(m)) && ($calyear ==

date(Y))) {

echo '<td

class="day" id="today"><div

class="day_of_month_s"><a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">',

$d, '</a></div>';

} else {

echo '<TD

class="day"><div class="day_of_month_s"><a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">',

$d, '</a></div>';

if ($offset

== 0) echo '<div class="week"><a

href="index.php?o=',$le,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">wee

k</a></div>';

}

/* correct date

format */

$coredate = date(

"Ymd", mktime( 0, 0, 0, $calmonth, $d,

$calyear ) );

showGrid($coredate);

echo "</td>";

$offset++;

/* if we're on the last day of the

week, wrap to the other side */

if ( $offset > 6 )

{

$offset = 0;

echo '</tr>';

if ( $day < $totaldays )

echo '<tr>';

}

}

/* fill in the remaining spaces for the

end of the month, just to make it look

pretty */

if ( $offset > 0 )

$offset = 7 - $offset;

for ($t=0; $t < $offset; $t++) {

echo "<td>&nbsp;</td>";

}

/* end the table */

echo '</tr></table>';

echo '</td>';

}

echo '</tr></table>';

}

// get current quarter

$thisquarter = intval(((intval($m)-1) / 3) + 1);

$thisyear = $y;

//create date range

$startmonth = ($thisquarter - 1) * 3 + 1;

Page 139: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$endmonth = $thisquarter * 3 + 1;

$startmonth = "$y-$startmonth";

$endmonth = "$y-$endmonth";

if($thisquarter == 4){

$nextquarter = 1;

$nextmonth = 1;

$nextyear = $next["year"]["y"];

}else{

$nextquarter = $thisquarter + 1;

$nextyear = $y;

$nextmonth = $thisquarter * 3 + 1;

}

if($thisquarter == 1){

$prevquarter = 4;

$prevyear = $prev["year"]["y"];

$prevmonth = 10;

}else{

$prevquarter = $thisquarter - 1;

$prevyear = $y;

$prevmonth = $prevquarter * 3 - 2;

}

include "includes/header.php";

grab($startmonth."-01",$endmonth."-01",$c);

showQuarter($thisquarter,$thisyear);

include "includes/footer.php";

?>

upcoming.php

<?php

if (!$hideheader) $hideheader = false; // set to

true if calling from another page

if (!$plusmonths) $plusmonths = 1; // how far

out in months to view, if > 1, then you

probably want to set $plusdays=0 or vice-versa

if (!$plusdays) $plusdays = 0; // how far out in

days to view

function showGrid($date) {

global $title, $niceday, $start_time,

$end_time, $venue, $city, $state, $cat, $color,

$background, $ed, $usr, $o, $c, $m, $a, $y, $w,

$lang, $ap, $status, $send;

if ($start_time[$date]) {

ksort($start_time[$date]);

while (list($t) =

each($start_time[$date])) {

$i = 0;

while

(list($id,$value) =

each($start_time[$date][$t])) {

if ($i == 0)

{

echo

"<h3>".$niceday[$date][$t][$id]."</h3>\n";

echo "<ul>\n";

}

echo

"<li>";

echo "<div

class=\"item\"";

if

($color[$id]) echo " style=\"color:

".$color[$id]."; background:

".$background[$id].";\"";

echo ">";

echo "<div

class=\"time\">".$value;

if

($end_time[$date][$t][$id]) echo " -

".$end_time[$date][$t][$id];

echo

"</div>\n";

echo "<div

class=\"title\"><a

href=\"".$calendar_url."show_event.php?id=".

$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a."

&y=".$y."&w=".$w."\"";

if

($color[$id]) echo " style=\"color:

".$color[$id]."; background:

".$background[$id].";\"";

echo

">".$title[$id]."</a></div>\n";

if

($venue[$id]) {

echo "<div

class=\"venue\">".$venue[$id]."</div>\n";

if

($city[$id]) {

echo "<div

class=\"location\">".$city[$id];

Page 140: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if ($state[$id]) echo ", ".$state[$id];

echo "</div>\n";

}

}

echo

"</div>";

if

($ed[$id]==true) {

echo "<div class=\"edit\">";

if

(($ap[$id]==true) && (($status[$id] == 2) ||

($status[$id] == 3))) {

echo "[<a

href=\"".$calendar_url."admin_actions.php?id=

".$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a

."&y=".$y."&w=".$w."&mode=".approve."\">

".$lang["approve"]."</a>]&nbsp;&nbsp;";

}

if

(($ap[$id]==true) && ($send[$id] == 1)) {

echo "[<a

href=\"send.php?id=".$start_event[$r][$k]."&o

=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$

y."&w=".$w."\"

onClick=\"openPic('send.php?id=".$start_even

t[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["send massage to member"].

"</a>]&nbsp;&nbsp";

}

elseif (($ap[$id]==true) &&

($send[$id] == 6)) {

echo "[<a

href=\"view_link.php?id=".$start_event[$r][$k

]."&o=".$o."&c=".$c."&m=".$m."&a=".$a."&

y=".$y."&w=".$w."\"

onClick=\"openPic('view_link.php?id=".$start

_event[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["view_link"].

"</a>]&nbsp;&nbsp";

}

echo "[<a

href=\"edit_event.php?id=".$id."&o=".$o."&c

=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$

w."\">".$lang["edit"]."</a>]&nbsp;&nbsp;[<a

href=\"".$calendar_url."delete_event.php?id=".

$id."&o=".$o."&c=".$c."&m=".$m."&a=".$a."

&y=".$y."&w=".$w."\">".$lang["delete"]."</a

>]</div>\n";

}

echo

"</li>\n";

$i++;

}

echo "</ul>\n";

}

}

}

function showUpcoming () {

global $start_time;

if ($start_time) {

ksort($start_time);

while (list($k) =

each($start_time)) {

showGrid($k);

}

}

}

echo "".$hideheader;

if (!$plusmonths) $plusmonths = 1;

if (!$plusdays) $plusdays = 0;

if (!$hideheader) include

"includes/header.php";

$listend = date("Y-m-d",

mktime(0,0,0,$m+$plusmonths,$a+$plusdays,

$y));

grab($y."-".$m."-".$a,$listend,$c);

showUpcoming($m,$y);

if (!$hideheader) include "includes/footer.php";

?>

grid.php

<?php

function showGrid($date) {

global $title, $niceday, $start_time,

$end_time, $venue, $city, $state, $cat, $color,

Page 141: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$background, $ed, $usr, $o, $c, $m, $a, $y, $w,

$lang, $ap, $status, $send;

if ($start_time[$date]) {

ksort($start_time[$date]);

echo "<ul>\n";

while (list($t) =

each($start_time[$date])) {

while

(list($id,$value) =

each($start_time[$date][$t])) {

echo

"<li>";

echo "<div

class=\"item\"";

if

($color[$id]) echo " style=\"color:

".$color[$id]."; background:

".$background[$id].";\"";

echo ">";

echo "<div

class=\"time\">".$value;

if

($end_time[$date][$t][$id]) echo " -

".$end_time[$date][$t][$id];

echo

"</div>\n";

echo "<div

class=\"title\"><a

href=\"show_event.php?id=".$id."&o=".$o."&

c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".

$w."\"

onClick=\"openPic('show_event.php?id=".$id.

"&size=small','pop','600','400');

window.newWindow.focus(); return false\"";

if

($color[$id]) echo " style=\"color:

".$color[$id]."; background:

".$background[$id].";\"";

echo

">".$title[$id]."</a></div>\n";

if

($ed[$id]==true) {

echo "<div class=\"edit\">";

if

(($ap[$id]==true) && (($status[$id] == 2) ||

($status[$id] == 3))) {

echo "[<a

href=\"admin_actions.php?id=".$id."&o=".$o."

&c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=

".$w."&mode=".approve."\">".$lang["approve

"]."</a>]&nbsp;&nbsp;";

}

if

(($ap[$id]==true) && ($send[$id] == 1)) {

echo "<img

src='./images/massage.GIF' />&nbsp;<a

href=\"send.php?id=".$start_event[$r][$k]."&o

=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$

y."&w=".$w."\"

onClick=\"openPic('send.php?id=".$start_even

t[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["send massage to member"].

"</a>&nbsp;&nbsp";

}

if

(($ap[$id]==true) && ($send[$id] == 6)) {

echo "[<a

href=\"send.php?id=".$start_event[$r][$k]."&o

=".$o."&c=".$c."&m=".$m."&a=".$a."&y=".$

y."&w=".$w."\"

onClick=\"openPic('view_link.php?id=".$start

_event[$r][$k]."&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["view_link"].

"</a>]&nbsp;&nbsp";

}

echo "<img

src='./images/ctxwiz_cls.gif' />&nbsp;<a

href=\"edit_event.php?id=".$id."&o=".$o."&c

=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$

w."\"

onClick=\"openPic('edit_event.php?id=".$id."

&size=small','pop','650','600');

window.newWindow.focus(); return

false\">".$lang["edit"]."</a>&nbsp;&nbsp;<im

g src='./images/DELETE.gif' />&nbsp;<a

href=\"delete_event.php?id=".$id."&o=".$o."&

c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".

$w."\">".$lang["delete"]."</a></div>\n";

}

echo

"</li>\n";

}

}

Page 142: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

echo "</ul>\n";

}

}

function showMonth ($calmonth,$calyear) {

global $week_titles, $o, $m, $a, $y,

$w, $c, $next, $prev,$ly, $lm, $le, $la;

/* determine total number of days in a

month */

$calday = 0;

$totaldays = 0;

while ( checkdate( $calmonth,

$totaldays + 1, $calyear ) )

$totaldays++;

/* build table */

echo '<table width="100%"

class="grid""><tr>';

echo '<th colspan="7"

class="cal_top"><a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$prev["month"]["m"],'&a=1&y=',$pre

v["month"]["y"],'"><img

src="images/prev.png" border="0"

height="20"/></a> ',date('F',

mktime(0,0,0,$calmonth,1,$calyear)),'&nbsp;',

date('Y', mktime(0,0,0,$calmonth,1,$calyear)),'

<a

href="',$PHP_SELF,'?o=',$o,'&w=',$w,'&c=',$

c,'&m=',$next["month"]["m"],'&a=1&y=',$nex

t["month"]["y"],'"><img

src="images/next.png" border="0"

height="20"/></a></th></tr><tr>';

for ( $x = 0; $x < 7; $x++ )

echo '<th>', $week_titles[ $x ],

'</th>';

/* ensure that a number of blanks are

put in so that the first day of the month

lines up with the proper day of the

week */

$off = date( "w", mktime( 0, 0, 0,

$calmonth, $calday, $calyear ) );

$offset = $off + 1;

echo '</tr><tr>';

if ($offset > 6) $offset = 0;

for ($t=0; $t < $offset; $t++) {

if ($t == 0) {

$offyear = date(

"Y", mktime( 0, 0, 0, $calmonth, $calday-$off,

$calyear ) );

$offmonth = date(

"m", mktime( 0, 0, 0, $calmonth, $calday-$off,

$calyear ) );

$offday = date( "d",

mktime( 0, 0, 0, $calmonth, $calday-$off,

$calyear ) );

echo '<td

class="day"><div class="week"><a

href="index.php?o=',$le,'&w=',$w,'&c=',$c,'&

m=',$offmonth,'&a=',$offday,'&y=',$offyear,'"

>week</a></div></td>';

} else {

echo '<td

class="day">&nbsp;</td>';

}

}

/* start entering in the information */

for ( $d = 1; $d <= $totaldays; $d++ )

{

if (($d == date(j))

&& ($calmonth == date(m)) && ($calyear ==

date(Y))) {

echo '<td

class="day" id="today"><div

class="day_of_month"><a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">',

$d, '</a></div>';

} else {

echo '<td

class="day"><div class="day_of_month"><a

href="index.php?o=',$la,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">',

$d, '</a></div>';

if ($offset

== 0) echo '<div class="week"><a

href="index.php?o=',$le,'&w=',$w,'&c=',$c,'&

m=',$calmonth,'&a=',$d,'&y=',$calyear,'">wee

k</a></div>';

}

/* correct date

format */

$coredate = date(

"Ymd", mktime( 0, 0, 0, $calmonth, $d,

$calyear ) );

showGrid($coredate);

echo "</td>";

$offset++;

Page 143: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

/* if we're on the last day of the

week, wrap to the other side */

if ( $offset > 6 )

{

$offset = 0;

echo '</tr>';

if ( $day < $totaldays )

echo '<tr>';

}

}

/* fill in the remaining spaces for the

end of the month, just to make it look

pretty */

if ( $offset > 0 )

$offset = 7 - $offset;

for ($t=0; $t < $offset; $t++) {

echo "<td>&nbsp;</td>";

}

/* end the table */

echo '</tr></table>';

}

include "includes/header.php";

$thismonth = $y."-".$m;

$nextmonth = $next["month"]["y"]."-

".$next["month"]["m"];

grab($thismonth."-01",$nextmonth."-01",$c);

showMonth($m,$y);

include "includes/footer.php";

?>

weeklist.php

<?php

function showWeek() {

global $title, $niceday, $start_time,

$end_time, $venue, $city, $state, $cat, $color,

$background, $ed, $usr, $o, $c, $m, $a, $y, $w,

$lang,$startnice;

ksort($start_time);

$curdate = "";

while (list($date,$val) =

each($start_time)) {

if ($date != $curdate) {

$curdate = $date;

echo

"<h2>".$startnice[$date]."</h2>\n";

}

echo "<ul>\n";

while (list($t) =

each($start_time[$date])) {

while

(list($id,$value) =

each($start_time[$date][$t])) {

echo

"<li>";

echo "<div

class=\"item\"";

if

($color[$id]) echo " style=\"color:

".$color[$id]."; background:

".$background[$id].";\"";

echo ">";

echo "<div

class=\"time\">".$value;

if

($end_time[$date][$t][$id]) echo " -

".$end_time[$date][$t][$id];

echo

"</div>\n";

echo "<div

class=\"title\"><a

href=\"show_event.php?id=".$id."&o=".$o."&

c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".

$w."\"

onClick=\"openPic('show_event.php?id=".$id.

"&size=small','pop','600','400');

window.newWindow.focus(); return false\"";

if

($color[$id]) echo " style=\"color:

".$color[$id]."; background:

".$background[$id].";\"";

echo

">".$title[$id]."</a></div>\n";

if

($venue[$id]) {

echo "<div

class=\"venue\">".$venue[$id]."</div>\n";

if

($city[$id]) {

echo "<div

class=\"location\">".$city[$id];

if ($state[$id]) echo ", ".$state[$id];

Page 144: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

echo "</div>\n";

}

}

echo

"</div>";

if

($ed[$id]==true) echo "<div class=\"edit\">[<a

href=\"edit_event.php?id=".$id."&o=".$o."&c

=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".$

w."\"

onClick=\"openPic('edit_event.php?id=".$id."

&size=small','pop','600','500');

window.newWindow.focus(); return

false\">".$lang["edit"]."</a>]&nbsp;&nbsp;[<

a

href=\"delete_event.php?id=".$id."&o=".$o."&

c=".$c."&m=".$m."&a=".$a."&y=".$y."&w=".

$w."\">".$lang["delete"]."</a>]</div>\n";

echo

"</li>\n";

}

}

echo "</ul>\n";

}

}

$thisday = $y."-".$m."-".$a;

$nextseven = $next["seven"]["y"]."-

".$next["seven"]["m"]."-".$next["seven"]["a"];

grab($thisday,$nextseven,$c);

showWeek();

?>

add_event.php

<?php

$javascript = '<script language="JavaScript">

var cal = new

CalendarPopup("testdiv1");

cal.offsetX=-20;

cal.offsetY=20;

var testpopup5 = new

PopupWindow("timelayer");

testpopup5.offsetX=-20;

testpopup5.offsetY=20;

testpopup5.autoHide();

var testpopup5input=null;

function test5popupactivate(obj,anchor) {

testpopup5input=obj;

testpopup5.showPopup(anchor);

}

function testpopup5pick(val) {

testpopup5input.value = val;

testpopup5.hidePopup();

}

function null_out(t,i) {

if ((t.value == "all") || (t.value ==

"tba")){

eval("t.form.start_time_" + i

+".disabled=true");

eval("t.form.end_time_" + i

+".disabled=true");

eval("t.form.start_time_" + i

+".value=\'12:00 am\'");

if (t.value == "all") {

eval("t.form.end_time_" + i

+".value=\'11:59 pm\'");

} else {

eval("t.form.end_time_" + i

+".value=\'12:00 am\'");

}

eval("turn_off(\'anchor_time_start_" +

i +"\')");

eval("turn_off(\'anchor_time_end_" +

i +"\')");

} else {

eval("t.form.start_time_" + i

+".disabled=false");

eval("t.form.end_time_" + i

+".disabled=false");

eval("turn_on(\'anchor_time_start_" +

i +"\')");

eval("turn_on(\'anchor_time_end_" +

i +"\')");

}

}

function turn_on(whichLayer) {

if (document.getElementById) {

Page 145: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

// this is the way the

standards work

var style2 =

document.getElementById(whichLayer).style;

style2.visibility = "visible";

} else if (document.all) {

// this is the way old msie

versions work

var style2 =

document.all[whichLayer].style;

style2.visibility = "visible";

} else if (document.layers) {

// this is the way nn4 works

var style2 =

document.layers[whichLayer].style;

style2.visibility = "show";

}

}

function turn_off(whichLayer) {

if (document.getElementById) {

// this is the way the

standards work

var style2 =

document.getElementById(whichLayer).style;

style2.visibility = "hidden";

} else if (document.all) {

// this is the way old msie

versions work

var style2 =

document.all[whichLayer].style;

style2.visibility = "hidden";

} else if (document.layers) {

// this is the way nn4 works

var style2 =

document.layers[whichLayer].style;

style2.visibility = "hide";

}

}

</script>';

include "includes/start.php";

$page_title = $lang["title_add_event"];

function category_tree($category_id) {

global $table_prefix, $indent,

$supercategory, $scategory;

$q = "SELECT category_id, name

from ".$table_prefix."categories where sub_of

= ".$category_id." order by name";

$query = mysql_query($q);

if (!$query) echo "Database Error :

".$q;

else {

while

($row=mysql_fetch_row($query)) {

$mod = 0;

if (!$supercategory)

{

$q =

"select moderate from

".$table_prefix."users_to_categories where

category_id = ".$row[0]." and user_id =

".$_SESSION["user_id"];

$qu =

mysql_query($q);

if

(mysql_num_rows($qu) > 0) $mod =

mysql_result($qu,0,0);

}

else {

$mod = 3;

}

if ($mod > 0) {

echo

"<option value=\"".$row[0]."\"";

if($mod <=

2) echo " disabled";

if

($scategory == $row[0]) echo " SELECTED";

echo

">".$indent.$row[1]."</option>\n";

}

$indent .= "__";

category_tree($row[0]);

$indent =

substr($indent, 2);

}

}

}

function group_tree($group_id) {

global $table_prefix, $indent,

$supergroup, $sgroup;

Page 146: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$q = "SELECT group_id, name from

".$table_prefix."groups where sub_of =

".$group_id." order by name";

$query = mysql_query($q);

if (!$query) echo "Database Error :

".$q;

else {

while

($row=mysql_fetch_row($query)) {

$mod = 0;

if (!$supergroup) {

$q =

"select moderate from

".$table_prefix."users_to_groups where

group_id = ".$row[0]." and user_id =

".$_SESSION["user_id"];

$qu =

mysql_query($q);

if

(mysql_num_rows($qu) > 0) $mod =

mysql_result($qu,0,0);

}

else {

$mod = 3;

}

if ($mod > 0) {

echo

"<option value=\"".$row[0]."\"";

if($mod <

2) echo " disabled";

if ($sgroup

== $row[0]) echo " SELECTED";

echo

">".$indent.$row[1]."</option>\n";

}

$indent .= "__";

group_tree($row[0]);

$indent =

substr($indent, 2);

}

}

}

if (!$superview) {

header("Location:

".$path."login.php?return_to=".$PHP_SELF);

}

elseif (!$superpost) {

include

"includes/header.php";

echo "<p

class=\"warning\">".$lang["not_authorized_ev

ents"]."</p>\n";

}

else {

if

($_POST["mode"] == $lang["add_event"]) {

if(get_magic_quotes_gpc()) {

$title =

mysql_real_escape_string(stripslashes($_POS

T["title"]));

$description =

mysql_real_escape_string(stripslashes($_POS

T["description"]));

$category_id =

mysql_real_escape_string(stripslashes($_POS

T["category"]));

$group_id =

mysql_real_escape_string(stripslashes($_POS

T["group"]));

$propose =

mysql_real_escape_string(stripslashes($_POS

T["propose"]));

}

else {

$title =

mysql_real_escape_string($_POST["title"]);

$description =

mysql_real_escape_string($_POST["descriptio

n"]);

$category_id =

mysql_real_escape_string($_POST["category"

]);

$group_id =

mysql_real_escape_string($_POST["group"]);

$propose =

Page 147: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

mysql_real_escape_string($_POST["propose"]

);

}

if

(!$supergroup) {

if ($group_id) {

$q = "select moderate from

".$table_prefix."users_to_groups where

group_id = ".$group_id." and user_id =

".$_SESSION["user_id"];

$gmod =

mysql_result(mysql_query($q),0,0);

if ($gmod < 2) {

header("Location:

".$path."add_event.php?msg=".$lang["not_aut

horized_events_group"]."&size=".$_REQUES

T["size"]);

}

else {

if ($gmod == 2)

$propose = "propose";

}

}

else {

header("Location:

".$path."add_event.php?msg=".$lang["not_aut

horized_events_group"]."&size=".$_REQUES

T["size"]);

}

}

if

(!$supercategory) {

$q

= "select moderate from

".$table_prefix."users_to_categories where

category_id = ".$category_id." and user_id =

".$_SESSION["user_id"];

$mod =

mysql_result(mysql_query($q),0,0);

if

($mod < 2) {

header("Location:

".$path."add_event.php?msg=".$lang["not_aut

horized_events_category"]."&size=".$_REQU

EST["size"]);

}

}

if

($propose == "propose") $status_id = 2;

else

$status_id = 1;

$sauce =

md5(time());

$send_id =

1; //sending massage to member

$q =

"INSERT into ".$table_prefix."events (title,

category_id, description, user_id, group_id,

status_id, send_id, quick_approve) values

('".$title."', ".$category_id.", '".$description."',

".$_SESSION["user_id"].", ".$group_id.",

".$status_id.", ".$send_id.", '".$sauce."')";

$query =

mysql_query($q);

$event_id

= mysql_insert_id();

if (!$query)

$msg .= "Database Error : ".$q;

else {

$j

= 0;

Page 148: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

while ($_POST["date_".$j]) {

if (!$_POST["delete_".$j]) {

if ($_POST["all_day_".$j]

== "all") {

$_POST["start_time_".$j] = "12:00

am";

$_POST["end_time_".$j] = "11:59

pm";

}

else if

($_POST["all_day_".$j] == "tba") {

$_POST["start_time_".$j] = "12:00

am";

$_POST["end_time_".$j] = "12:00

am";

}

if (!ereg ("([0-9]{1,2})[\/-]+([0-

9]{1,2})[\/-]+([0-

9]{4})",$_POST["date_".$j],$date)) {

$msg2 .= "Bad Date

: ".$_POST["date_".$j];

}

else {

if (!eregi ("([0-

9]{1,2}):([0-9]{2})[

]?([a|p]m)",$_POST["start_time_".$j],$start_ti

me)) {

$msg2 .=

"Bad Start Time : ".$_POST["start_time_".$j];

}

else {

if

(($_POST["end_time_".$j])&&(!eregi ("([0-

9]{1,2}):([0-9]{2})[

]?([a|p]m)",$_POST["end_time_".$j],$end_tim

e))) {

$msg2 .= "Bad End Time :

".$_POST["end_time_".$j];

}

else {

if (strlen($date[1]) == 1) $date[1] =

"0".$date[1];

if (strlen($date[2]) == 1) $date[2] =

"0".$date[2];

if ((eregi("am",$start_time[3])) &&

($start_time[1] == 12)) $start_time[1] =

$start_time[1] - 12;

if ((eregi("am",$end_time[3])) &&

($end_time[1] == 12)) $end_time[1] =

$end_time[1] - 12;

if ((eregi("pm",$start_time[3])) &&

($start_time[1] < 12)) $start_time[1] =

$start_time[1] + 12;

if ((eregi("pm",$end_time[3])) &&

Page 149: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

($end_time[1] < 12)) $end_time[1] =

$end_time[1] + 12;

if (strlen($start_time[1]) == 1)

$start_time[1] = "0".$start_time[1];

if (strlen($end_time[1]) == 1)

$end_time[1] = "0".$end_time[1];

$start_date = $date[3]."-".$date[1]."-

".$date[2]." ".$start_time[1].":".$start_time[2];

if ($_POST["end_time_".$j]) {

$end_date = $date[3]."-

".$date[1]."-".$date[2]."

".$end_time[1].":".$end_time[2];

if

(($end_time[1].$end_time[2]) >=

($start_time[1].$start_time[2])) {

$q = "INSERT into

".$table_prefix."dates (event_id, date,

end_date) values (".$event_id.",

'".$start_date."', '".$end_date."')";

}

else {

$q = "INSERT into

".$table_prefix."dates (event_id, date) values

(".$event_id.", '".$start_date."')";

}

}

else {

$q = "INSERT into

".$table_prefix."dates (event_id, date) values

(".$event_id.", '".$start_date."')";

}

$query =

mysql_query($q);

if (!$query)

$msg2 .= "Database Error : ".$q;

}

}

}

}

$j++;

}

if

($_POST["date_add"]) {

if

($_POST["all_day_add"] == "all") {

Page 150: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$_POST["start_time_add"] = "12:00

am";

$_POST["end_time_add"] = "11:59

pm";

}

else if ($_POST["all_day_add"] ==

"tba") {

$_POST["start_time_add"] = "12:00

am";

$_POST["end_time_add"] = "12:00

am";

}

if

(!ereg ("([0-9]{1,2})[\/-]+([0-9]{1,2})[\/-]+([0-

9]{4})",$_POST["date_add"],$date)) {

$msg2 .= "Bad Date :

".$_POST["date_add"];

}

else {

if (!eregi ("([0-9]{1,2}):([0-9]{2})[

]?([a|p]m)",$_POST["start_time_add"],$start_t

ime)) {

$msg2 .= "Bad Start Time :

".$_POST["start_time_add"];

}

else {

if

(($_POST["end_time_add"])&&(!eregi ("([0-

9]{1,2}):([0-9]{2})[

]?([a|p]m)",$_POST["end_time_add"],$end_ti

me))) {

$msg2 .= "Bad End

Time : ".$_POST["end_time_add"];

}

else {

if (strlen($date[1]) == 1)

$date[1] = "0".$date[1];

if (strlen($date[2]) == 1)

$date[2] = "0".$date[2];

if

((eregi("am",$start_time[3])) &&

($start_time[1] == 12)) $start_time[1] =

$start_time[1] - 12;

if

((eregi("am",$end_time[3])) &&

($end_time[1] == 12)) $end_time[1] =

$end_time[1] - 12;

if

((eregi("pm",$start_time[3])) &&

($start_time[1] < 12)) $start_time[1] =

$start_time[1] + 12;

if

((eregi("pm",$end_time[3])) &&

($end_time[1] < 12)) $end_time[1] =

$end_time[1] + 12;

if (strlen($start_time[1]) ==

1) $start_time[1] = "0".$start_time[1];

if (strlen($end_time[1]) ==

1) $end_time[1] = "0".$end_time[1];

$start_date = $date[3]."-

".$date[1]."-".$date[2]."

".$start_time[1].":".$start_time[2];

//loop through recurring

events

$juno = 0;

$r = $_POST["recurring"];

Page 151: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

if (!$r) $r = 0;

$int = $_POST["interval"];

while ($juno <= $r) {

$next = $juno *

$int;

if

($_POST["end_time_add"]) {

$end_date

= $date[3]."-".$date[1]."-".$date[2]."

".$end_time[1].":".$end_time[2];

if

(($end_time[1].$end_time[2]) >=

($start_time[1].$start_time[2])) {

$q

= "INSERT into ".$table_prefix."dates

(event_id, date, end_date) values

(".$event_id.", DATE_ADD('".$start_date."',

INTERVAL ".$next." DAY),

DATE_ADD('".$end_date."', INTERVAL

".$next." DAY))";

}

else {

$q

= "INSERT into ".$table_prefix."dates

(event_id, date) values (".$event_id.",

DATE_ADD('".$start_date."', INTERVAL

".$next." DAY))";

}

}

else {

$q =

"INSERT into ".$table_prefix."dates (event_id,

date) values (".$event_id.",

DATE_ADD('".$start_date."', INTERVAL

".$next." DAY))";

}

$query =

mysql_query($q);

if (!$query) $msg2

.= "Database Error : ".$q;

$juno++;

}

}

}

}

}

if($msg2){

$query =

mysql_query("DELETE from

".$table_prefix."events where event_id =

".$event_id);

$javascript

.= "\n<script language=\"JavaScript\"

type=\"text/javascript\">

<!--\n

alert('$msg2 Please Try Again');\n

//

-->\n</script>\n";

}

else{

$msg =

$lang["add_event"];

}

}

}

Page 152: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

include "includes/header.php";

$scategory = $_POST["category"] ?

$_POST["category"] : $c;

$sgroup = $_POST["group"] ?

$_POST["group"] : $w;

?>

<form action="add_event.php" id="event"

name="event" method="post">

<?php include "includes/hidden_fields.php";

?>

<input type="hidden" name="size"

value="<?php echo $_REQUEST["size"];

?>">

<table>

<tr>

<td><?php echo

$lang["title"];?>:</td>

<td>:</td>

<td><input type="text"

name="title" id="title" value="<?php echo

$_POST["title"]; ?>" size="40"></td>

</tr>

<tr>

<td><?php echo

$lang["group"];?>:</td>

<td>:</td>

<td>

<select

name="group" id="group">

<?php

group_tree(0); ?>

</select>

<select

name="propose" id="propose"><option

value="post"<? if ($_POST["propose"] ==

"post") echo " selected"; ?>><?php echo

$lang["post"];?></option><option

value="propose"<? if ($_POST["propose"] ==

"propose") echo " selected"; ?>><?php echo

$lang["propose"];?></option></select>

</td>

</tr>

<tr>

<td><?php echo

$lang["category"];?>:</td>

<td>:</td>

<td>

<select

name="category" id="category">

<?php

category_tree(0); ?>

</select>

</td>

</tr>

</table>

<table>

<tr>

<th><?php echo

$lang["delete?"];?></th>

<th><?php echo

$lang["date"];?></th><th><?php echo

$lang["all_day"];?> / <?php echo

$lang["tba"];?> / <?php echo

$lang["enter_time"];?></th><th><?php echo

$lang["start_time"];?></th>

<th><?php echo

$lang["end_time"];?></th>

</tr>

<?php

$i = 0;

$j = 0;

while ($_REQUEST["date_".$j]) {

if (!$_REQUEST["delete_".$j]) {

$disabled = "";

$hidden = "";

$checked= "";

$checked_tba= "";

$checked_enter= " checked";

if

($_REQUEST["all_day_".$j] == "all") {

$_REQUEST["start_time_".$j] =

"12:00 am";

$_REQUEST["end_time_".$j] =

"11:59 pm";

$disabled = "

disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked= "

checked";

Page 153: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$checked_enter= "";

} elseif

(($_REQUEST["start_time_".$j] == "12:00

am") && ($_REQUEST["end_time_".$j] ==

"11:59 pm")) {

$disabled = "

disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked= "

checked";

$checked_enter= "";

} elseif

($_REQUEST["all_day_".$j] == "tba") {

$_POST["start_time_".$j] = "12:00

am";

$_POST["end_time_".$j] = "12:00

am";

$disabled = "

disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked_tba = "

checked";

$checked_enter= "";

} elseif

(($_REQUEST["start_time_".$j] == "12:00

am") && ($_REQUEST["end_time_".$j] ==

"12:00 am")) {

$disabled = "

disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked_tba= "

checked";

$checked_enter= "";

}

?>

<tr>

<td><input type="checkbox"

name="delete_<?php echo $i; ?>"

id="delete_<?php echo $i; ?>" value="yes"

/></td>

<td><input type="text"

name="date_<?php echo $i; ?>"

id="date_<?php echo $i; ?>" value="<?php

echo $_REQUEST["date_".$j]; ?>"size="10">

<a href="#"

onclick="cal.select(document.event.date_<?ph

p echo $i; ?>,this.name,'MM/dd/yyyy'); return

false;" NAME="anchor_date_<?php echo $i;

?>" ID="anchor_date_<?php echo $i;

?>"><img src="images/calendar.png"

border="0" /></a></td>

<td><input type="radio"

onClick="null_out(this,<?php echo $i; ?>);"

name="all_day_<?php echo $i; ?>"

id="all_day_<?php echo $i; ?>"

value="all"<?php echo $checked; ?>/> / <input

type="radio" onClick="null_out(this,<?php

echo $i; ?>);" name="all_day_<?php echo $i;

?>" id="all_day_<?php echo $i; ?>"

value="tba"<?php echo $checked_tba; ?>/> /

<input type="radio"

onClick="null_out(this,<?php echo $i; ?>);"

name="all_day_<?php echo $i; ?>"

id="all_day_<?php echo $i; ?>"

value=""<?php echo $checked_enter;

?>/></td>

<td><input type="text"

name="start_time_<?php echo $i; ?>"

id="start_time_<?php echo $i; ?>"

value="<?php echo

$_REQUEST["start_time_".$j]; ?>"

size="10"<?php echo $disabled; ?>/> <a

href="#"

onclick="test5popupactivate(document.event.st

art_time_<?php echo $i; ?>,this.name);return

false;" NAME="anchor_time_start_<?php

echo $i; ?>" ID="anchor_time_start_<?php

echo $i; ?>"<?php echo $hidden; ?>><img

src="images/time.png" border="0" /></a></td>

<td><input type="text"

name="end_time_<?php echo $i; ?>"

id="end_time_<?php echo $i; ?>"

value="<?php echo

$_REQUEST["end_time_".$j]; ?>"

size="10"<?php echo $disabled; ?>/> <a

href="#"

onclick="test5popupactivate(document.event.e

nd_time_0,this.name);return false;"

NAME="anchor_time_end_<?php echo $i; ?>"

ID="anchor_time_end_<?php echo $i;

?>"<?php echo $hidden; ?>><img

src="images/time.png" border="0" /></a></td>

</tr>

Page 154: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

<?php

$i++;

}

$j++;

}

if ($_POST["date_add"]) {

$disabled = "";

$hidden = "";

$checked= "";

$checked_tba= "";

$checked_enter= " checked";

if ($_POST["all_day_add"]) {

$_POST["start_time_add"] =

"12:00 am";

$_POST["end_time_add"] =

"11:59 pm";

$disabled = " disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked= " checked";

$checked_enter= "";

} elseif (($_POST["start_time_add"]

== "12:00 am") &&

($_POST["end_time_add"] == "11:59 pm")) {

$disabled = " disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked= " checked";

$checked_enter= "";

} elseif ($_POST["all_day_".$j] ==

"tba") {

$_POST["start_time_".$j] =

"12:00 am";

$_POST["end_time_".$j] =

"12:00 am";

$disabled = " disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked_tba = " checked";

$checked_enter= "";

} elseif (($_POST["start_time_".$j]

== "12:00 am") && ($_POST["end_time_".$j]

== "12:00 am")) {

$disabled = " disabled";

$hidden = "

style=\"visibility: hidden;\"";

$checked_tba= " checked";

$checked_enter= "";

}

//loop through recurring events

ereg ("([0-9]{1,2})[\/-]+([0-

9]{1,2})[\/-]+([0-

9]{4})",$_POST["date_add"],$date);

$juno = 0;

$r = $_POST["recurring"];

if (!$r) $r = 0;

$int = $_POST["interval"];

while ($juno <= $r) {

$next = $juno * $int;

$show_date = date( "m/d/Y",

mktime( 0, 0, 0, $date[1], $date[2]+$next,

$date[3] ) );

?>

<tr>

<td><input type="checkbox"

name="delete_<?php echo $i; ?>"

id="delete_<?php echo $i; ?>" value="yes"

/></td>

<td><input type="text"

name="date_<?php echo $i; ?>"

id="date_<?php echo $i; ?>" value="<?php

echo $show_date; ?>"size="10"> <a href="#"

onclick="cal.select(document.event.date_<?ph

p echo $i; ?>,this.name,'MM/dd/yyyy'); return

false;" NAME="anchor_date_<?php echo $i;

?>" ID="anchor_date_<?php echo $i;

?>"><img src="images/calendar.png"

border="0" /></a></td>

<td><input type="radio"

onClick="null_out(this,<?php echo $i; ?>);"

name="all_day_<?php echo $i; ?>"

id="all_day_<?php echo $i; ?>"

value="all"<?php echo $checked; ?>/> / <input

type="radio" onClick="null_out(this,<?php

echo $i; ?>);" name="all_day_<?php echo $i;

?>" id="all_day_<?php echo $i; ?>"

value="tba"<?php echo $checked_tba; ?>/> /

<input type="radio"

onClick="null_out(this,<?php echo $i; ?>);"

name="all_day_<?php echo $i; ?>"

id="all_day_<?php echo $i; ?>"

value=""<?php echo $checked_enter;

?>/></td>

<td><input type="text"

name="start_time_<?php echo $i; ?>"

id="start_time_<?php echo $i; ?>"

value="<?php echo

$_POST["start_time_add"]; ?>"

size="10"<?php echo $disabled; ?>/> <a

href="#"

Page 155: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

onclick="test5popupactivate(document.event.st

art_time_<?php echo $i; ?>,this.name);return

false;" NAME="anchor_time_start_<?php

echo $i; ?>" ID="anchor_time_start_<?php

echo $i; ?>"<?php echo $hidden; ?>><img

src="images/time.png" border="0" /></a></td>

<td><input type="text"

name="end_time_<?php echo $i; ?>"

id="end_time_<?php echo $i; ?>"

value="<?php echo $_POST["end_time_add"];

?>" size="10"<?php echo $disabled; ?>/> <a

href="#"

onclick="test5popupactivate(document.event.e

nd_time_0,this.name);return false;"

NAME="anchor_time_end_<?php echo $i; ?>"

ID="anchor_time_end_<?php echo $i;

?>"<?php echo $hidden; ?>><img

src="images/time.png" border="0" /></a></td>

</tr>

<?php

$juno++;

$i++;

}

}

?>

<tr>

<td><?php echo

$lang["add"];?> =>></td>

<td>

<input type="text"

name="date_add" id="date_add"

value="<?php echo

$_REQUEST["next_date"]; ?>" size="10"> <a

href="#"

onclick="cal.select(document.event.date_add,t

his.name,'MM/dd/yyyy'); return false;"

NAME="anchor_date_add"

ID="anchor_date_add"><img

src="images/calendar.png" border="add"

/></a></td>

<td><input type="radio"

onClick="null_out(this,'add');"

name="all_day_add" id="all_day_add"

value="all" /> / <input type="radio"

onClick="null_out(this,'add');"

name="all_day_add" id="all_day_add"

value="tba" /> / <input type="radio"

onClick="null_out(this,'add');"

name="all_day_add" id="all_day_add"

value="" checked /></td>

<td><input type="text"

name="start_time_add" id="start_time_add"

value="<?php echo

$_REQUEST["next_start"]; ?>" size="10"> <a

href="#"

onclick="test5popupactivate(document.event.st

art_time_add,this.name);return false;"

NAME="anchor_time_start_add"

ID="anchor_time_start_add""><img

src="images/time.png" border="add" /></a>

</td>

<td><input type="text"

name="end_time_add" id="end_time_add"

value="<?php echo $_REQUEST["next_end"];

?>" size="10"> <a href="#"

onclick="test5popupactivate(document.event.e

nd_time_add,this.name);return false;"

NAME="anchor_time_end_add"

ID="anchor_time_end_add""><img

src="images/time.png" border="add" /></a>

</td>

</tr>

<tr>

<td colspan="4"><?php echo

$lang["recurring"];?> <input type="text"

name="recurring" size="3"> X <select

name="interval"><option

value="1">1</option><option

value="7">7</option></select> <?php echo

$lang["days"];?></td>

</tr>

</table>

<p><input type="submit" name="mode"

id="mode" value="<?php echo

$lang["add_edit_dates"];?>"></p>

<p><?php echo $lang["description"];?>:<br />

<?php if ($fck_editor_path) {

include($fck_editor_path."fckeditor.p

hp") ;

Page 156: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

$oFCKeditor = new

FCKeditor('description') ;

$oFCKeditor->BasePath =

$calendar_url.$fck_editor_path ;

$oFCKeditor->Value =

$_POST["description"] ;

$oFCKeditor->Height =

400;

$oFCKeditor->ToolbarSet =

$fck_editor_toolbar;

$oFCKeditor->Create() ;

} else {

echo "<textarea cols=\"60\"

rows=\"10\" name=\"description\"

id=\"description\">".$_POST["description"]."<

/textarea>\n";

}

?>

</p>

<p><input type="submit" name="mode"

id="mode" value="<?php echo

$lang["add_event"];?>"></p>

</form>

<div id="timelayer"

STYLE="position:absolute;visibility:hidden;ba

ckground-color:white;layer-background-

color:white;top:0px;z-index: 1;">

<form id="time" name="time">

<select id="hour" size="18"

onChange="testpopup5pick(this.options[this.se

lectedIndex].value);">

<option value="12:00 am"

class="midnight">Midnight</option>

<option value="01:00 am"

class="evening">01:00 am</option>

<option value="02:00 am"

class="evening">02:00 am</option>

<option value="03:00 am"

class="evening">03:00 am</option>

<option value="04:00 am"

class="evening">04:00 am</option>

<option value="05:00 am"

class="evening">05:00 am</option>

<option value="06:00 am"

class="morning">06:00 am</option>

<option value="07:00 am"

class="morning">07:00 am</option>

<option value="07:30 am"

class="morning">07:30 am</option>

<option value="08:00 am"

class="morning" selected>08:00 am</option>

<option value="08:30 am"

class="morning">08:30 am</option>

<option value="09:00 am"

class="morning">09:00 am</option>

<option value="09:30 am"

class="morning">09:30 am</option>

<option value="10:00 am"

class="morning">10:00 am</option>

<option value="10:30 am"

class="morning">10:30 am</option>

<option value="11:00 am"

class="morning">11:00 am</option>

<option value="11:30 am"

class="morning">11:30 am</option>

<option value="12:00 pm"

class="noon">Noon</option>

<option value="12:30 pm"

class="afternoon">12:30 pm</option>

<option value="01:00 pm"

class="afternoon">01:00 pm</option>

<option value="01:30 pm"

class="afternoon">01:30 pm</option>

<option value="02:00 pm"

class="afternoon">02:00 pm</option>

<option value="02:30 pm"

class="afternoon">02:30 pm</option>

<option value="03:00 pm"

class="afternoon">03:00 pm</option>

<option value="03:30 pm"

class="afternoon">03:30 pm</option>

<option value="04:00 pm"

class="afternoon">04:00 pm</option>

<option value="04:30 pm"

class="afternoon">04:30 pm</option>

<option value="05:00 pm"

class="afternoon">05:00 pm</option>

<option value="05:30 pm"

class="afternoon">05:30 pm</option>

<option value="06:00 pm"

class="evening">06:00 pm</option>

<option value="06:30 pm"

class="evening">06:30 pm</option>

<option value="07:00 pm"

class="evening">07:00 pm</option>

<option value="07:30 pm"

class="evening">07:30 pm</option>

<option value="08:00 pm"

class="evening">08:00 pm</option>

Page 157: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

<option value="08:30 pm"

class="evening">08:30 pm</option>

<option value="09:00 pm"

class="evening">09:00 pm</option>

<option value="09:30 pm"

class="evening">09:30 pm</option>

<option value="10:00 pm"

class="evening">10:00 pm</option>

<option value="10:30 pm"

class="evening">10:30 pm</option>

<option value="11:00 pm"

class="evening">11:00 pm</option>

<option value="11:30 pm"

class="evening">11:30 pm</option>

</select>

</form>

</div>

<DIV ID="testdiv1"

STYLE="position:absolute;visibility:hidden;ba

ckground-color:white;layer-background-

color:white;"></DIV>

<?php

}

include ("includes/footer.php");

?>

Page 158: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

LAMPIRAN D

PENGUJIAN PENERIMAAN SISTEM

Black Box Testing

1. Admin Absensi

Tabel Black Box Testing Admin Absensi

No. Modul Prasyarat Hasil yang

Diharapkan

Hasil Uji

Coba

1. Tambah User Login sebagai admin Dapat Menambah User

dan konfigurasi hak

akses, kategori akses,

dan group akses

OK

2. Edit User Login sebagai admin,

data sudah ada dalam

database

Admin HRIS dapat

menambah ataupun

mengganti data User

dan konfigurasi hak

akses, kategori akses,

dan group akses

OK

3. Hapus User Login sebagai admin,

data sudah ada dalam

database

Admin HRIS dapat

menghapus data User

OK

4. Melihat User Login sebagai admin,

data sudah ada dalam

database

Admin HRIS dapat

melihat/view

User yang telah

terdaftar dalam sistem

beserta data-datanya

OK

5. Update Login sebagai admin,

data sudah ada dalam

database

Admin HRIS dapat

meng-update yang telah

tersedia

OK

Page 159: PENGEMBANGAN FITUR ABSENSI PADA APLIKASI HUMAN …repository.uinjkt.ac.id/dspace/bitstream/123456789/28651/1/MUHAMMED... · melakukan absen masih menggunakan pencatatan secara manual

6. Hapus Login sebagai admin Admin HRIS dapat

menghapus data yang

disediakan

OK

Acceptance Testing (Pengujian Penerimaan)

Pengujian penerimaan sistem dilakukan oleh Bapak Andry

Krisnanda dan staff HR atas nama Audrya Siregar. Pengujian dilakukan

dengan menggunakan metode blackbox testing. Bukti terlampir uji coba

yang dilakukan dapat dilihat pada bagian lampiran. Secara ringkas, hasil

pengujian yang dapat penulis simpulkan adalah sebagai berikut :

Tabel 4.38 Pengujian Penerimaan Sistem

No Pengujian Penilaian

1. Fitur aplikasi secara keseluruhan Baik

2. Fitur untuk admin Baik

3. Fitur untuk Entry Data Baik

4. Tampilan aplikasi Baik

5. Kestabilan aplikasi Baik

6. Keamanan aplikasi Baik

7. Kesesuaian dengan kebutuhan Baik

8. Kemudahan penggunaan aplikasi Baik