Program Energy Saving menggunakan IoT Electrical Control ...
-
Upload
khangminh22 -
Category
Documents
-
view
14 -
download
0
Transcript of Program Energy Saving menggunakan IoT Electrical Control ...
i
HALAMAN JUDUL
Program Energy Saving menggunakan IoT Electrical Control
dengan Attendance System dan Pemetaan Ruangan Gedung
Disusun oleh :
Evan Enza Rizqi
012201605019
Tesis
Diajukan kepada Fakultas Komputer
President University
Sebagai salah satu syarat untuk gelar Sarjana Komputer
Bidang Sistem Informasi, Fakultas Komputer
Cikarang, Bekasi, Indonesia
Mei 2019
iii
HALAMAN PENGESAHAN
Program Energy Saving menggunakan IoT Electrical Control
dengan Attendance System dan Pemetaan Ruangan Gedung
Disusun oleh :
Evan Enza Rizqi
Disetujui oleh :
____________________________ _____________________________
Rila Mandala, M.Eng, Ph.D Rikip Ginanjar, M.Sc
Pembimbing Tesis Ketua Program Studi Sistem Informasi
_________________________________
Rila Mandala, M.Eng, Ph.D
Dekan Fakultas Komputer
iv
DECLARATION OF ORIGINALITY
I hereby certify that I am the sole author of this thesis and that no part of
this thesis has been published or submitted for publication.
I certify that, to the best of my knowledge, my thesis does not infringe
upon anyone’s copyright nor violate any proprietary rights and that any ideas,
techniques, quotations, or any other material from the work of other people
included in my thesis, published or otherwise, are fully acknowledged in
accordance with the standard referencing practices.
I declare that this is a true copy of my thesis, including any final
revisions, as approved by my thesis committee, and that this thesis has not been
submitted for a higher degree to any other University or Institution.
I have read the Thesis Regulations and I am aware of the potential
consequences of any breach of them.
Cikarang, May 06th , 2019
Evan Enza Rizqi
v
ABSTRAK
Energi listrik telah menjadi kebutuhan pokok dalam kehidupan sehari-
hari, serta menjadi peran utama dalam utilitas industri. Berdasarkan data
Direktorat Jendral Ketenagalistrikan Kementerian Energi dan Sumber Daya
Mineral Edisi No. 30 Tahun 2017, menunjukkan bahwa penjualan tenaga PLN
per sektor pelanggan terus mengalami peningkatan dari tahun 2012 hingga tahun
2016. Hal ini tentunya dipengaruhi oleh kebutuhan penggunaan listrik yang
semakin tinggi oleh berbagai bidang sektor pelanggan. Sehingga menyebabkan
penurunan pasokan listrik dan menjadikan PLN untuk menaikkan Tarif Dasar
Listrik (TDL) yang sangat dikeluhkan oleh masyarakat dan sektor industri.
Pada dunia usaha dan industri, kebutuhan listrik sudah menjadi utilitas
utama dalam melakukan segala aktivitas pekerjaan. Namun, dalam penggunaan
utilitas listrik tersebut kurang terkontrol dan terkendali dalam hal
penggunaanya, yang menyebabkan banyak energi listrik yang terkonsumsi dan
menjadikan beban tagihan listrik naik. Sehingga diperlukan program efektivitas
dan efisiensi dalam hal penggunaan listrik pada perusahaan dengan melakukan
program penghematan energi atau sering disebut Energy Saving.
Program Energy Saving pada perusahaan bisa terimplemtasikan dengan
memanfaatkan teknologi IoT (Internet Of Things) untuk mengintegrasikan
penggunaan konsumsi listrik pada tiap ruangan dengan sistem kehadiran
(attendance). Integrasi ini dipilih karena setiap perusahaan memiliki sistem
kehadiran yang bisa menjadi peluang untuk dimanfaatkan dalam melakukan
integrasi sistem dengan teknologi IoT (Internet Of Things). Sistem ini, memiliki
model kendali untuk mengurangi penggunaan listrik yang tidak terpakai pada
tiap ruang kerja perusahaan dengan penyelarasan pada sistem kehadiran
(attendance) karyawan. Sehingga ketika karyawan pada ruang kerja tersebut
sudah pulang semua, maka perangkat yang menggunakan listrik pada ruang
kerja tersebut akan menjadi non-aktif (OFF) secara otomatis.
Kata Kunci : Listrik, Energy Saving, Internet Of Things, Attendance System
vi
PERSEMBAHAN
• Persembahan ini saya haturkan untuk Allah SWT sebagai bentuk syukur dalam
menjalankan ibadah untuk menuntut ilmu, dan semoga ini bisa menjadi langkah
awal untuk memperoleh Rahmat-Nya dan menjadikan diri untuk terus
bertawakal kepada-Nya.
• Persembahan untuk orang tua saya, yang telah menyayangi saya dengan segala
ketulusan hati untuk melihat anaknya bisa menjadi seorang yang sukses dan
telah memberikan segala perjuangan untuk bisa memperoleh masa depan yang
cerah akan kebahagiaan.
• Persembahan untuk orang yang saya sayangi dan semua teman-teman serta
kerabat yang telah banyak memberikan dukungan baik moril maupun materiil.
vii
MOTTO
“Prove yourself be the successman !”
“Gunakan waktu sebaik mungkin, sebelum waktu itu
hilang dengan sia-sia”
“Berilah yang terbaik atas segala usaha yang telah
dilakukan”
“Teruslah berkarya untuk menciptakan sejarah hidup
yang indah”
viii
KATA PENGANTAR
Puji syukur ke hadirat Allah SWT yang telah memberikan rahmat,
berkah dan anugerah-Nya sehingga penulis dapat menyelesaikan Skripsi dengan
judul “Program Energy Saving menggunakan IoT Electrical Control
dengan Attendance System dan Pemetaan Ruangan Gedung”. Tugas Akhir
ini disusun untuk melengkapi syarat akhir studi Program Sarjana (S-1) pada
Program Studi Sistem Informasi Jurusan Fakultas Komputer President
University.
Dalam menyelesaikan Skripsi ini penulis banyak memperoleh bantuan
dari berbagai pihak. Oleh karena itu pada kesempatan ini penulis ingin
menyampaikan ucapan terima kasih kepada :
1. Bapak Dr. Jony Oktavian Haryanto, SE, MM, MA selaku Rektor
President University.
2. Bapak Rila Mandala, M.Eng, Ph.D selaku Dekan Fakultas Komputer
President University.
3. Bapak Rikip Ginanjar, M.Sc selaku Ketua Program Studi Sistem
Informasi President University.
4. Bapak Rila Mandala, M.Eng, Ph.D selaku dosen pembimbing yang telah
banyak membantu, memberikan dukungan dan bantuan berupa solusi
masalah, ide pengembangan, serta masukan yang berguna bagi penulis.
5. Seluruh dosen pengajar dan staff Program Studi Sistem Informasi
President University yang turut memberikan bantuan dan dukungan.
6. Orang tua serta keluarga yang telah memberikan doa dan dukungan
dalam pembuatan Skripsi ini.
7. Rekan-rekan mahasiswa Program Studi Sistem Informasi President
University yang telah membantu dalam proses pembuatan Skripsi ini.
8. Semua pihak yang telah membantu penulis dari awal hingga akhir yang
tidak dapat penulis sebutkan satu persatu.
Penulis menyadari bahwa dalam penyusunan laporan Skripsi ini masih jauh dari
kesempurnaan, untuk itu penulis selalu mengharapkan kritik dan saran yang
ix
membangun dari semua pihak. Penulis berharap semoga Skripsi ini dapat
bermanfaat bagi pembaca.
Bekasi, Mei 2019
Penulis
x
DAFTAR ISI
HALAMAN JUDUL ...................................................................................................... i
HALAMAN PENGESAHAN ..................................................................................... iii
DECLARATION OF ORIGINALITY ...................................................................... iv
ABSTRAK ..................................................................................................................... v
PERSEMBAHAN ........................................................................................................ vi
MOTTO ....................................................................................................................... vii
KATA PENGANTAR ............................................................................................... viii
DAFTAR ISI ................................................................................................................. x
DAFTAR TABEL ...................................................................................................... xiii
DAFTAR GAMBAR .................................................................................................. xv
BAB I ............................................................................................................................ 1
1.1 Latar Belakang ................................................................................................... 1
1.2 Identifikasi Masalah ........................................................................................... 3
1.3 Tujuan Penelitian ................................................................................................ 4
1.4 Ruang Lingkup dan Batasan Masalah ................................................................ 4
1.5 Metode Penelitian ............................................................................................... 5
1.6 Sistematika Penulisan ......................................................................................... 6
BAB II ............................................................................................................................ 9
2.1 Energy Saving .................................................................................................... 9
2.2 Sistem Kendali ................................................................................................. 10
2.3 Internet of Things ............................................................................................. 12
2.4 Attendance System ........................................................................................... 13
2.5 Smart Building ................................................................................................. 14
2.6 Penelitian Terkait ............................................................................................. 16
2.6.1 Aplikasi Sistem Pengendali dan Manajemen Penjadwal Peralatan Listrik
dalam Ruangan (oleh Aulia, TRANSMISI, 12, (2), 2010, 58). ........................... 16
2.6.2 Arduino Smart Home oleh Amphan ......................................................... 17
2.6.3 Zigbee and RFID Based Student Attendance Monitoring System with
Energy Saving (oleh Bhingude Kisan dan Bhise S.K, IARJSET, Vol.4, Special
Issue 2, January 2017). ......................................................................................... 18
xi
2.6.4 IOT Based Smart Classroom System (oleh E.K.F Chan, dkk, e-ISSN:
2289-8131 , Vol. 9 No. 3-9, UTM Johor Bahru, Malaysia) ................................. 19
2.7 Perbandingan dengan Sistem pada Penelitian Terkait ..................................... 20
BAB III ........................................................................................................................ 22
3.1 Analisis Sistem ................................................................................................. 22
3.2 Analisis Kebutuhan Sistem .............................................................................. 23
3.2.1 Analisis Kebutuhan Fungsionalitas .......................................................... 24
3.2.2 Analisis Kebutuhan Perangkat ................................................................. 25
3.2.3 Use Case Diagram .................................................................................... 26
3.2.4 Activity Diagram ...................................................................................... 47
BAB IV ........................................................................................................................ 64
4.1 Class Diagram .................................................................................................. 64
4.2 Entity Relationship Diagram (ERD) ................................................................ 66
4.3 Perancangan Basis Data ................................................................................... 67
4.3.1 Basis Data Attendance .............................................................................. 67
4.3.2 Basis Data IoT Mapping ........................................................................... 71
4.4 Perancangan Antarmuka Sistem ....................................................................... 74
4.4.1 Perancangan Antarmuka Attendance System ........................................... 74
4.4.2 Perancangan Antarmuka Electrical Control ............................................ 86
BAB V .......................................................................................................................... 88
5.1 Perlengkapan Implementasi ............................................................................. 88
5.2 Pengembangan interface dan Pengkodean ....................................................... 89
5.2.1 Aplikasi Attendance (Web Base) .............................................................. 89
5.2.2 Aplikasi Electrical Control (Desktop Base) ........................................... 126
BAB VI ...................................................................................................................... 138
6.1 Rencana Pengujian ......................................................................................... 138
6.1.1 Rencana Pengujian pada Aplikasi Attendance (Web Base) .................... 138
6.1.2 Rencana Pengujian pada Aplikasi Electrical Control (Desktop Base)
................................................................................................................ 139
6.1.3 Rencana Pengujian Efisiensi Penggunaan Listrik .................................. 140
6.2 Pengujian Sistem ............................................................................................ 140
6.2.1 Pengujian Sistem pada Aplikasi Attendance (Web Base) ...................... 141
6.2.2 Pengujian Sistem pada Aplikasi Electrical Control (Desktop Base) ..... 147
xii
6.3 Pengujian Data Efisiensi ................................................................................ 149
BAB VII ..................................................................................................................... 150
7.1 Kesimpulan ..................................................................................................... 150
7.2 Saran ............................................................................................................... 151
DAFTAR PUSTAKA ............................................................................................... 152
xiii
DAFTAR TABEL
Tabel 2.1 Perbandingan terhadap sistem dari penelitian terkait ............... 20
Tabel 3.1 Aktor pada sistem ..................................................................... 23
Tabel 3.2 Kebutuhan Perangkat Keras ..................................................... 25
Tabel 3.3 Kebutuhan perangkat lunak ...................................................... 26
Tabel 3.4 Daftar Use Case ........................................................................ 27
Tabel 3.5 Tabel skenario Create/Update Employee ................................. 30
Tabel 3.6 Tabel skenario Create New Employee ...................................... 31
Tabel 3.7 Tabel skenario Update Employee ............................................. 32
Tabel 3.8 Tabel skenario Send Notification ............................................. 33
Tabel 3.9 Tabel skenario Setup Attendance ............................................. 34
Tabel 3.10 Tabel skenario Scan FP & RFID Card .................................... 34
Tabel 3.11 Tabel skenario Upload to Machine .......................................... 36
Tabel 3.12 Tabel skenario Receive Notification ......................................... 37
Tabel 3.13 Tabel skenario Setup Employee Mapping Room ...................... 38
Tabel 3.14 Tabel skenario Monitor Attendance ......................................... 39
Tabel 3.15 Tabel skenario Print Attendance .............................................. 40
Tabel 3.16 Tabel skenario Check Attendance per Room ............................ 41
Tabel 3.17 Tabel skenario Set OFF Switch ................................................ 42
Tabel 3.18 Tabel skenario Create Log ....................................................... 43
Tabel 3.19 Tabel skenario Register Attendance ......................................... 44
Tabel 3.20 Tabel skenario Check-IN .......................................................... 45
Tabel 3.21 Tabel skenario Check-OUT ...................................................... 46
Tabel 4.1 Tabel Userinfo .......................................................................... 67
Tabel 4.2 Tabel Department ..................................................................... 69
Tabel 4.3 Tabel Checkinout ...................................................................... 69
Tabel 4.4 Tabel Machines ........................................................................ 70
Tabel 4.5 Tabel Area Employee ............................................................... 71
Tabel 4.6 Tabel Area Master .................................................................... 72
Tabel 4.7 Tabel Area Control ................................................................... 72
Tabel 4.8 Tabel IO Machines ................................................................... 73
Tabel 4.9 Tabel IO Machines ................................................................... 73
xiv
Tabel 6.1 Rencana Pengujian pada Aplikasi Attendance (Web Base) .... 139
Tabel 6.2 Rencana Pengujian pada Aplikasi Electrical Control (Desktop
Base) ....................................................................................... 139
Tabel 6. 3 Rencana Pengujian terhadap efisiensi penggunaan listrik ..... 140
Tabel 6. 4 Pengujian Dashboard ............................................................. 141
Tabel 6. 5 Pengujian Login ..................................................................... 141
Tabel 6.6 Pengujian Profile .................................................................... 142
Tabel 6.7 Pengujian Attendance ............................................................. 142
Tabel 6.8 Pengujian Energy Control ...................................................... 143
Tabel 6.9 Pengujian Check-In Canteen .................................................. 144
Tabel 6.10 Pengujian Employee ............................................................... 144
Tabel 6.11 Pengujian Department ............................................................ 145
Tabel 6.12 Pengujian Setting .................................................................... 145
Tabel 6.13 Pengujian Department ............................................................ 147
Tabel 6.14 Pengujian Read DI (Digital Input) ......................................... 147
Tabel 6.15 Pengujian Set DO (Digital Output) ........................................ 148
Tabel 6.16 Pengujian Attendance Control ................................................ 148
Tabel 6.17 Pengujian Insert Log .............................................................. 149
Tabel 6. 18 Pengujian Data Efisiensi ........................................................ 149
xv
DAFTAR GAMBAR
Gambar 1.1 Grafik Penjualan Tenaga Listrik PLN 2012-2016[2] .................. 1
Gambar 1.2 Empat Tahapan RAD ................................................................. 5
Gambar 2.1 Sistem Kendali Loop Terbuka .................................................. 11
Gambar 2.2 Sistem kendali loop terbuka ..................................................... 11
Gambar 2.3 Sektor dalam Konsep Smart Building ...................................... 15
Gambar 2.4 Aplikasi Home Automation oleh Teksun Inc ........................... 16
Gambar 2.5 Aplikasi Arduino Smart Home oleh Amphan .......................... 17
Gambar 2.6 ZigBee dan Functional Block Diagram untuk Student Attendance
Monitoring System with Energy Saving ..................................... 18
Gambar 2.7 Aplikasi Student Attendance dan Penggunaan WSN Human
Movement sebagai Energy Saving ............................................. 19
Gambar 3.1 Use Case Diagram ................................................................... 27
Gambar 3.2 Activity Diagram Create/Update Employee ............................. 47
Gambar 3.3 Activity Diagram Create Employee .......................................... 48
Gambar 3.4 Activity Diagram Update Employee ......................................... 49
Gambar 3.5 Activity Diagram Send Notification ......................................... 50
Gambar 3.6 Activity Diagram Setup Attendance ......................................... 51
Gambar 3.7 Activity Diagram Scan FP & RFID Card ................................ 52
Gambar 3.8 Activity Diagram Upload to Machine ...................................... 53
Gambar 3.9 Activity Diagram Receive Notification ..................................... 54
Gambar 3.10 Activity Diagram Setup Employee Mapping Room .................. 55
Gambar 3.11 Activity Diagram Monitor Attendance ..................................... 56
Gambar 3.12 Activity Diagram Print Attendance .......................................... 57
Gambar 3.13 Activity Diagram Check Attendance per Room ........................ 58
Gambar 3.14 Activity Diagram Set OFF Switch ............................................ 59
Gambar 3.15 Activity Diagram Create Log ................................................... 60
Gambar 3.16 Activity Diagram Register Attendance ..................................... 61
Gambar 3.17 Activity Diagram Check-IN ...................................................... 62
Gambar 3.18 Activity Diagram Check-OUT .................................................. 63
xvi
Gambar 4.1 Class Diagram Program Energy Saving menggunakan IoT
Electrical Control dengan Attendance System dan Pemetaan
Ruangan Gedung ...................................................................... 64
Gambar 4.2 Class Diagram secara detail Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance
System dan Pemetaan Ruangan Gedung .................................. 65
Gambar 4.3 ERD Program Energy Saving menggunakan IoT Electrical
Control dengan Attendance System dan Pemetaan Ruangan
Gedung ..................................................................................... 66
Gambar 4.4 Perancangan Antarmuka Menu Dashboard : Profile ............... 75
Gambar 4.5 Perancangan Antarmuka Menu Dashboard : Dashboard ........ 76
Gambar 4.6 Perancangan Antarmuka Menu Attendance : Add Attendance . 77
Gambar 4.7 Perancangan Antarmuka Menu Attendance : List Attendance . 77
Gambar 4.8 Perancangan Antarmuka Menu Attendance : Log Attendance . 78
Gambar 4.9 Perancangan Antarmuka Menu Energy Control : Sign Employee
Area .......................................................................................... 79
Gambar 4.10 Perancangan Antarmuka Menu Energy Control : Energy Status .
.................................................................................................. 79
Gambar 4.11 Perancangan Antarmuka Menu Check-In Canteen : Add
Canteen Check-In ..................................................................... 80
Gambar 4.12 Perancangan Antarmuka Menu Check-In Canteen : List
Canteen Check-In ..................................................................... 81
Gambar 4.13 Perancangan Antarmuka Menu Employee : Add Employee ..... 82
Gambar 4.14 Perancangan Antarmuka Menu Employee : List Employee ...... 82
Gambar 4.15 Perancangan Antarmuka Menu Department : List Department ...
................................................................................................. 83
Gambar 4.16 Perancangan Antarmuka Menu Setting : Machine Setting ....... 84
Gambar 4.17 Perancangan Antarmuka Menu Setting : Shift Schedule .......... 84
Gambar 4.18 Perancangan Antarmuka Menu Setting : Login Access ............ 85
Gambar 4.19 Perancangan Antarmuka Electrical Control : Overview .......... 86
Gambar 4.20 Perancangan Antarmuka Electrical Control : Monitor ............ 87
Gambar 4.21 Perancangan Antarmuka Electrical Control : Event Log ......... 87
Gambar 5.1 Kode koneksi.php untuk koneksi ke database attendance ....... 90
Gambar 5.2 Kode koneksi-iot.php untuk koneksi ke database IoT ............. 90
xvii
Gambar 5.3 Tampilan Halaman Dashboard ................................................. 91
Gambar 5.4 Kode info Total Employee ....................................................... 91
Gambar 5.5 Kode info Total Attend (Present) ............................................. 92
Gambar 5.6 Kode info Total Not (Present) ................................................. 92
Gambar 5.7 Kode info Total Visitor ............................................................. 93
Gambar 5.8 Tampilan Halaman Login ......................................................... 93
Gambar 5.9 Kode Login.php ........................................................................ 94
Gambar 5.10 Kode Auth.php .......................................................................... 95
Gambar 5.11 Tampilan Halaman Profile ....................................................... 95
Gambar 5.12 Kode Profile.php ...................................................................... 96
Gambar 5.13 Kode Session.php ..................................................................... 97
Gambar 5.14 Tampilan Halaman Add Attendance (Input Data Kehadiran
Manual) .................................................................................... 98
Gambar 5.15 Tampilan Halaman Data Attendance (Data Kehadiran
Karyawan) ................................................................................ 98
Gambar 5.16 Tampilan Halaman Data Log Attendance ................................ 99
Gambar 5.17 Kode attendance-add.php ...................................................... 101
Gambar 5.18 Kode attendance-add-process.php ......................................... 102
Gambar 5.19 Kode attendance-list.php ........................................................ 103
Gambar 5.20 Kode attendance-log.php ....................................................... 104
Gambar 5.21 Kode attendance-delete.php ................................................... 105
Gambar 5.22 Tampilan Registrasi Karyawan terhadap Area Kerja (Ruangan)
................................................................................................ 106
Gambar 5.23 Kode area-employee-add.php ................................................. 106
Gambar 5.24 Kode area-employee-add.php ................................................ 107
Gambar 5.25 Kode area-employee-disabled.php ......................................... 107
Gambar 5.26 Kode Retrieve Load Data Energy Status ............................... 109
Gambar 5.27 Kode Webservice JSON Database Energy Status .................. 110
Gambar 5.28 Tampilan Menu Add Canteen Check-In ................................. 111
Gambar 5.29 Tampilan Menu List Canteen Check-In ................................. 111
Gambar 5.30 Kode Insert Data Canteen Check-In ....................................... 112
Gambar 5.31 Kode List Data Canteen Check-In ......................................... 113
Gambar 5.32 Tampilan Menu Add Employee .............................................. 114
Gambar 5.33 Tampilan Menu List Employee .............................................. 115
xviii
Gambar 5.34 Kode Add Employee ............................................................... 116
Gambar 5.35 Kode List Employee ................................................................ 117
Gambar 5.36 Kode Edit Employee ............................................................... 118
Gambar 5.37 Tampilan Halaman List Department ...................................... 119
Gambar 5.38 Kode tabel List Department ................................................... 120
Gambar 5.39 Kode Plugin Export Data tables ............................................ 121
Gambar 5.40 Tampilan Halaman Menu Setting : Machine Setting .............. 122
Gambar 5.41 Tampilan Halaman Menu Setting : Shift Schedule ................. 122
Gambar 5.42 Tampilan Halaman Menu Setting : Login Access .................. 123
Gambar 5.43 Tampilan kode halaman Machine Setting .............................. 124
Gambar 5.44 Tampilan kode halaman Shift Schedule .................................. 125
Gambar 5.45 Tampilan kode halaman Login Access ................................... 126
Gambar 5.46 Tampilan sistem kontrol kelistrikan ....................................... 127
Gambar 5.47 Tampilan Kode Class Form1 ................................................. 127
Gambar 5.48 Tampilan Kode Class IniReadSettings ................................... 128
Gambar 5.49 Tampilan Kode Class EnabledSettings .................................. 128
Gambar 5.50 Tampilan Kode Class DisabledSettings ................................. 129
Gambar 5.51 Tampilan Kode Class SaveIniSettings ................................... 129
Gambar 5.52 Tampilan Kode Class Connection .......................................... 130
Gambar 5.53 Tampilan Kode Class Connection .......................................... 131
Gambar 5.54 Tampilan Kode Event Tick Timer .......................................... 131
Gambar 5.55 Tampilan Kode Class DI (Digital Input) ............................... 132
Gambar 5.56 Tampilan Kode Class DO (Digital Output) ........................... 133
Gambar 5.57 Tampilan Kode Class Set_DIO1 (Set Digital Output) ........... 134
Gambar 5.58 Tampilan Kode Attendance Control ....................................... 134
Gambar 5.59 Tampilan Kode Class CheckHasRows ................................... 136
Gambar 5.60 Tampilan Kode Class Show Area Monitor ............................. 137
Gambar 5.61 Tampilan Kode Class InsertLog ............................................. 137
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Energi listrik telah menjadi kebutuhan pokok dalam kehidupan sehari-
hari, serta menjadi peran utama dalam utilitas industri. Berdasarkan data
Direktorat Jendral Ketenagalistrikan Kementerian Energi dan Sumber Daya
Mineral Edisi No. 30 Tahun 2017 (Triboesono, 2017), menunjukkan bahwa
penjualan tenaga PLN per sektor pelanggan terus mengalami peningkatan dari
tahun 2012 hingga tahun 2016 (Gambar 1.1). Hal ini tentunya dipengaruhi oleh
kebutuhan penggunaan listrik yang semakin tinggi oleh berbagai bidang sektor
pelanggan.
Gambar 1.1 Grafik Penjualan Tenaga Listrik PLN 2012-2016[2]
Namun semakin meningkatnya kebutuhan penggunaan listrik,
menjadikan pasokan listrik juga semakin tipis dan perlu ada peningkatan
pasokan listrik dari pembangkit. Sehingga untuk menyeimbangkan kebutuhan
2
listrik yang tinggi dengan pemasokan listrik yang terbatas, menjadikan PLN
untuk melakukan pemadaman bergilir. Sehingga pemerintah memberikan
kebijakan untuk terus menambah pasokan listrik hingga 35.000 MegaWatt
(Kementerian Sekretariat Negara RI, 2016).
Dengan alasan untuk menjaga kestabilan akan produksi listrik dan
pengurangan subsidi listrik agar lebih tepat sasaran, menyebabkan kenaikan
terhadap Tarif Dasar Listrik (TDL). Hal ini terjadi pada tahun 2003 hingga
tahun 2017, pemerintah telah menetapkan kenaikan Tarif Dasar Listrik PLN
secara berkala. Tentunya, hal ini sangat dikeluhkan oleh pelanggan rumah
tangga dan industri (Alamijaya, 2017).
Pada dunia usaha dan industri, kebutuhan listrik sudah menjadi utilitas
utama dalam melakukan segala aktivitas pekerjaan. Hal ini dapat dilihat pada
kegiatan operasional sehari-hari bahwa perusahaan memiliki berbagai macam
sistem, seperti sistem pendingin ruangan, pemanas, ventilasi, penerangan,
produksi bahkan keamanan. Namun, berbagai macam sistem tersebut terkadang
kurang terkontrol dan terkendali dalam hal penggunaanya, yang menyebabkan
banyak energi listrik yang terkonsumsi dan menjadikan beban tagihan listrik
yang meningkat.
Sehingga diperlukan program efektivitas dan efisiensi dalam hal
penggunaan listrik pada perusahaan dengan melakukan program penghematan
energi atau sering disebut Energy Saving. Program Energy Saving pada
perusahaan bisa terimplemtasikan dengan memanfaatkan teknologi IoT
(Internet Of Things) untuk mengintegrasikan penggunaan konsumsi listrik pada
tiap ruangan dengan sistem kehadiran (attendance). Sistem ini, nantinya akan
menjadi sistem kendali untuk mengurangi penggunaan listrik yang tidak
3
terpakai pada tiap ruang kerja perusahaan dengan penyelarasan pada sistem
kehadiran (attendance) karyawan. Sehingga ketika karyawan pada ruang kerja
tersebut sudah pulang semua, maka perangkat yang menggunakan listrik pada
ruang kerja tersebut akan menjadi non-aktif (OFF) secara otomatis.
1.2 Identifikasi Masalah
Identifikasi masalah yang dapat dinyatakan berdasarkan latar belakang diatas
adalah :
1. Tagihan listrik pada perusahaan yang terus mengalami kenaikan dan tidak
seimbang terhadap keluaran aktivitas kerja.
2. Belum adanya sistem kendali perangkat elektronik pada tiap ruang kerja
perusahaan yang menyebabkan terjadinya konsumsi listrik secara percuma
ketika perangkat elektronik dalam ruangan sedang tidak terpakai.
3. Tidak adanya sistem kehadiran (attendance) yang terintegrasi dengan
sistem kendali perangkat elektronik pada tiap ruang kerja perusahaan.
Dimana hal ini dapat membantu dalam program Energy Saving dengan
model sistem automatis.
4
1.3 Tujuan Penelitian
Tujuan dari pembuatan skripsi ini adalah sebagai berikut :
1. Meningkatkan efektivitas dan efisiensi penggunaan listrik dengan program
Energy Saving pada perusahaan.
2. Menyediakan media bagi perusahaan untuk melakukan monitoring
kehadiran karyawan (attendance) secara real-time yang dapat
diintegrasaikan dengan sistem kendali perangkat elektronik pada tiap ruang
kerja karyawan.
3. Memberikan media monitoring status penggunaan listrik dari tiap alokasi
mapping area kerja karyawan.
1.4 Ruang Lingkup dan Batasan Masalah
Ruang lingkup dan batasan masalah yang terdapat pada skripsi ini adalah
sebagai berikut.
1. Sistem ini merupakan kombinasi dari sistem kehadiran (attendance) dan
sistem kendali digital Input/Output yang menerapkan teknologi (Internet Of
Things).
2. Sistem aplikasi yang dikembangkan adalah sebagai berikut :
a. Aplikasi sistem kehadiran (attendance) yang memiliki fitur monitor
data kayawan, kehadiran, penempatan ruang kerja karyawan, serta
status pemakaian listrik tiap ruangan berbasis WEB.
b. Aplikasi Back-End Server sebagai driver dan kendali terhadap
perangkat mikrokontroller Moxa E1212.
5
3. Pengerjaan aplikasi ini hanya sampai pada monitoring kehadiran dan
kontrol off pada switch remote lampu sebagai prototipe (perangkat
elektronik) yang terdapat pada tiap ruang kerja.
1.5 Metode Penelitian
Dalam proses pembuatan dan pengembangan aplikasi ini proses yang
dilakukan disesuaikan dengan metode penilitian, adapun metode penelitian
yang gunakan adalah Rapid Application Development (RAD) dimana RAD ini
memiliki muatan yang hampir kesulurahan tahapannya sama dengan metode
pengembangan aplikasi System Development Life Cycle (SDLC) didalamnya
terdapat tahapan yang dimulai dari perencanaan, desain, proses pembuatan
aplikasi dan implementasi dan proses peralihan (Kosasi, 2015).
RAD memilki empat tahapan utama yaitu :
Gambar 1.2 Empat Tahapan RAD
6
a. Perencanaan Kebutuhan
Tahapan perencanaan kebutuhan berkaitan dengan tahapan perencanaan sistem
dan analisa sistem yang terdapat di SDLC. Dimana setiap pihak yang terlibat
dalam pembuatan sistem berdiskusi mengenai kebutuhan, cakupan proyek,
batasan dan kebutuhan sistem.
b. Desain
Selama tahapan desain, user berinteraksi dengan analisis sistem dan
mengembangkan model dan prototype yang mewakili keseluruhan proses,
output, dan input serta menyiapkan rencana untuk implementasi sistem.
c. Pembangunan
Tahapan pembangunan ini fokus pada implementasi yaitu pembangunan
program (coding) serta melakukan pengujian terhadap aplikasi yang telah
dibangun.
d. Peralihan
Merupakan tahapan pemindahan ke sistem baru yang telah dibangun dimana
pada tahapan ini juga terdapat sosialisasi penggunaan sistem bagi pengguna.
1.6 Sistematika Penulisan
BAB I
PENDAHULUAN
Bab I merupakan bab yang berisi tentang penjelasan latar belakang yang
menjelaskan tentang alasan pemilihan judul dan konsep, identifikasi
masalah yaitu berupa uraian dari masalah yang menjadikan alasan
pembuatan aplikasi, tujuan penilitian, ruang lingkup dan batasan dalam
7
pembuatan tulisan ini, dan metode yang dipilih dalam membuat
penulisan ini.
BAB II
LANDASAN TEORI
Dalam bab ini dijelaskan mengenai berbagai macam teori dan literatur
yang dapat digunakan sebagai acuan guna pemecahan masalah dalam
proses analisa terhadap penggunaan energi dengan model integrasi
sistem dan perancangan tentang sistem Energy Saving yang
menggunakan sistem kendali untuk smart building dengan proses
integrasi sistem attendance sebagai penerapan IOT (Internet Of Things).
BAB III
ANALISIS SISTEM
Pada bab ini diidentifikasi dan dijelaskan sumberdaya yang dibutuhkan
dalam proses pengembangan dan pembangunan sistem Energy Saving,
baik kebutuhan perangkat lunak berupa sistem attendance dan back-end
IOT Electrical Control, maupun perangkat keras berupa
mikrokontroller, mesin absensi, dan perangkat jarigan. Penulis juga
menjelaskan tentang Use Case terhadap sistem yang akan dibangun dan
dikembangkan untuk implementasi program Energy Saving dengan
penerapan IOT (Internet Of Things).
BAB IV
PERANCANGAN SISTEM
Pada bab ini akan digambarkan dan dijelaskan perancangan sistem yang
terdiri dari Perancangan antarmuka terhadap sistem attendance dan
aplikasi back-end IOT Electrical Control, Class Diagram sebagai UML
untuk menggambarkan struktur relasi dan deskripsi class, serta
8
Perancangan Database berupa ERD dari masing-masing tabel untuk
sistem attendance dan IOT Electrical Control.
BAB V
IMPLEMENTASI SISTEM
Pada bab ini akan dijelaskan proses pengembangan dan pembuatan
sistem attendance menggunakan meggunakan mesin absensi biometric
Fingerprint dan sistem back-end IOT Electrical Control sebagai sistem
kendali kelistrikan.
BAB VI
PENGUJIAN SISTEM
Bab ini akan menjelaskan dan menguraikan proses pengujian aplikasi
yang telah selesai dibangun dengan menggunakan metode yang dipilih
yaitu metode black box, yaitu dengan membuat skenario pengujian
sebagai acuan dan untuk memastikan bahwa pengujian sistem
attendance dengan mesin absensi bisa berjalan dan terintegrasi dengan
sistem kendali mikorkontroller Moxa dengan penerapan fungsional
database.
BAB VII
KESIMPULAN DAN SARAN
Pada bab ini dituliskan kesimpulan yang dapat diambil dari keselurahan
proses pembuatan dan pengembangan dari sistem Energy Saving
dengan penerapan IoT Electrical Control melalui kombinasi sistem
attendance dan sistem back-end control IOT Electrical Control, serta
akan dituliskan saran mengenai pembuatan dan pengembangannya.
9
BAB II
Landasan Teori
2.1 Energy Saving
Energy Saving atau Penghematan energi adalah tindakan mengurangi
jumlah penggunaan energi. Menghemat energi berarti tidak menggunakan
energi listrik untuk suatu hal yang tidak berguna. Penghematan energi dapat
dicapai dengan penggunaan energi secara efisien di mana manfaat yang sama
diperoleh dengan menggunakan energi lebih sedikit, ataupun dengan
mengurangi konsumsi dan kegiatan yang menggunakan energi. Penghematan
energi dapat menyebabkan berkurangnya biaya, serta meningkatnya nilai
lingkungan, keamanan negara, keamanan pribadi, serta kenyamanan.
Organisasi-organisasi serta perseorangan dapat menghemat biaya dengan
melakukan penghematan energi, sedangkan pengguna komersial dan industri
dapat meningkatkan efisiensi dan keuntungan dengan melakukan penghematan
energi (Wikipedia, 2018).
Penghematan energi adalah unsur yang penting dari sebuah kebijakan
energi. Penghematan energi menurunkan konsumsi energi dan permintaan
energi per kapita, sehingga dapat menutup meningkatnya kebutuhan energi
akibat pertumbuhan populasi. Hal ini mengurangi naiknya biaya energi, dan
dapat mengurangi kebutuhan pembangkit energi atau impor energi.
Berkurangnya permintaan energi dapat memberikan fleksibilitas dalam memilih
metode produksi energi.
10
Selain itu, dengan mengurangi emisi, penghematan energi merupakan
bagian penting dari mencegah atau mengurangi perubahan iklim. Penghematan
energi juga memudahkan digantinya sumber-sumber tak dapat diperbaharui
dengan sumber-sumber yang dapat diperbaharui. Penghematan energi sering
merupakan cara paling ekonomis dalam menghadapi kekurangan energi, dan
merupakan cara yang lebih ramah lingkungan dibandingkan dengan
meningkatkan produksi energi.
2.2 Sistem Kendali
Sistem kendali merupakan interkoneksi antar komponen yang
membentuk suatu konfigurasi yang akan memberikan respon sesuai yang
diharapkan. Dasar analisa dalam hal ini adalah terdapatnya hubungan sebab
akibat untuk komponen sistem (Phillips, 1996). Terdapat dua jenis sistem
kendali yaitu sebagai berikut
a. Sistem Kendali Loop Terbuka (Sistem Tanpa Umpan Balik)
Sistem kendali loop terbuka adalah sistem kendali yang memiliki
karakteristik dimana nilai keluaran tidak memberikan pengaruh pada aksi
kontrol. Adapun contoh dari sistem loop terbuka ini adalah operasi mesin cuci.
Proses yang terjadi yaitu penggilingan pakaian, pemberian sabun dan
pengeringan yang bekerja sebagai operasi mesin cuci tidak akan berubah (hanya
sesuai yang diinginkan seperti ketetapan diawal) walaupun tingkat kebersihan
yang merupakan nilai keluaran memiliki hasil kurang baik. Sistem kendali loop
terbuka ini lebih sederhana, murah dan mudah dalam desainnya, namun akan
menjadi tidak stabil dan seringkali memiliki tingkat kesalahan yang tinggi.
Berikut adalah gambaran umum sistem kendali loop terbuka
11
Gambar 2.1 Sistem Kendali Loop Terbuka
b. Sistem Kendali Loop Tertutup (Sistem dengan Umpan Balik)
Sistem kendali loop tertutup adalah sistem kendali dengan umpan balik
dimana nilai dari keluaran mempengaruhi aksi dari kontrol. Contoh dari sistem
kendali loop tertutup ini adalah pendingin ruangan (AC). Nilai masukkan dari
pendingin ruangan ini adalah ketetapan suhu yang diatur oleh pengguna, adapun
nilai keluarannnya adalah suhu yang dihasilkan oleh pendingin ruangan yang
diharapkan akan sama dengan suhu yang diinginkan. Dengan memberikan
umpan balik berupa derajat suhu ruangan setelah diberikan aksi udara dingin,
maka akan didapatkan kesalahan (error) dari derajat suhu aktual yang
diinginkan. Adanya kesalahan ini membuat kontroler berusaha untuk
memperbaikinya sehingga kesalahan dapat terminimalisir.
Dibandingkan dengan sistem kendali loop terbuka, sistem kendali loop
tertutup ini lebih rumit, mahal serta rumit dalam desain. Akan tetapi sistem
kendali ini memilki tingkat kestabilan yang lebih konsan dan tingkat kesalahan
yang kecil.
Berikut ini gambaran umum sistem kedali loop tertutup
Gambar 2.2 Sistem kendali loop terbuka
12
2.3 Internet of Things
Internet of Things (IoT) pertama kali diperkenalkan oleh Asthon di
tahun 2009. IoT dapat dijelaskan sebagai 1 set things yang saling terkoneksi
melalui internet, adapun things yang dimaksud dalam hal ini berupa tags,
sensor, manusia, dan lainnya. IoT berfungsi mengumpulkan data dan informasi
dari lingkungan fisik, data-data ini kemudian diproses agar dapat dipahami
maknanya (Junaidi, 2015).
IoT digunakan dibanyak bidang, IoT memiliki peran penting dalam
bidang kesehatan salah satunya adalah dalam mengelola penyakit yang kronis
yang terdapat pada satu spektrum untuk mencegah penyebaran penyakit lain.
Selain itu IoT juga dapat membantu melakukan pengawasan terhadap pola
hidup pasien .Pada pasien diabetes terdapat alat yang dapat membantu dokter
mengawasi pasien dari jauh, dari makanan yang dimakan, olah raga yang
dilakukan dan juga jumlah kalori yang terdapat pada tubuh pasien (Lopez P,
2013).
Dalam bidang perikanan IoT telah digunakan dalam hal pengawasan
pemberian makanan pada ikan, dan alat yang digunakan dapat mengontrol dan
mendeteksi kapan ikan siap dipanen. Dalam bidang pertanian, IoT dapat
digunakan sebagai sensor untuk memonitor kondisi tanah, suhu dan kelembaban
yang penting bagi tanaman. Pada teknologi mobile, IoT juga turut memberikan
peranannya yaitu dengan adanya penelitian tentang privasi di bidang
pengamatan wilayah, mendeteksi lokasi berdasarkan Location Based Service
sehingga seseorang bisa merasa nyaman menggunakan perangkat mobile tanpa
harus privasinya terganggu. Dalam cloud computing IoT digabungkan dengan
operasi cloud computing yang dikenal dengan nama CloudThings. Selain itu,
13
IoT juga dapat digunakan dalam bidang lainnya seperti sistem bangunan,
industri, transportasi dan lainnya.
Teknologi dalam IoT dibagi kedalam beberapa arsistektur layer. Layer
pertama yaitu layer perception, layer ini berfungsi untuk membaca dan
mengumpulkan informasi dari lingkungan fisik. Kemudian data akan dikirim ke
layer jaringan, yang kemudian digunakan dalam layer aplikasi. Perception layer
bertanggung jawab untuk mengkonversi data menjadi sinyal yang dikirim
melalui jaringan agar dapat dibaca oleh layer aplikasi. Contoh yang dapat
diambil dalam hal ini adalah penggunaan barcode di toko swalayan. Didalam
barcode tersebut terdapat data seperti nama, harga, dan stok barang. Ketika
informasi telah didapatkan, maka layer network akan bertanggung jawab untuk
pengiriman data dari satu host ke host yang lain. Layer yang kedua adalah layer
aplikasi, dimana layer aplikasi ini memproses informasi yang telah didapatkan
yang kemudian digunakan sesuai dengan kebutuhan (Tan & Koo, 2014).
2.4 Attendance System
Attendance System atau Sistem Kehadiran merupakan salah satu elemen
utama dalam kegiatan HRD. Selain menjadi indikator kedisplinan, kehadiran
adalah tonggak penting untuk setiap rupiah yang terima karyawan. Bagian HRD
sendiri memiliki tugas dan tanggung jawab yang besar dan sebagai salah satu
cost center dalam perusahaan. Sebagai cost center, tentu HRD sangat berhati-
hati dalam mengolah data kehadiran karyawan, bahkan menggunakan sistem
informasi untuk memudahkan pengolahan data karyawan tersebut (Rietsema,
2019).
14
Sistem kehadiran (Attendance System) sangat berperan untuk
memudahkan HRD pengolahan data karyawan dalam kehadiran. Jika
dibandingkan dengan laporan kehadiran secara manual, sistem kehadiran yang
ada saat ini jauh tidak menguras tenaga dan waktu sehingga laporan dapat cepat
diperoleh, terlebih jika sistem kehadiran dapat terintegrasi dengan sistem
payroll.
2.5 Smart Building
Smart Building atau yang biasa juga disebut dengan Intelligent Building
System (IBS) adalah konsep bangunan pintar dimana konsep ini menggunakan
sistem otomatisasi yang dinamakan Building Automation System (BAS). Sistem
otomatisasi pada Smart Building mengacu pada penggunaan teknologi
informasi dan komputer untuk mengendalikan peralatan yang berada di dalam
bangunan tersebut.
Smart building adalah sebuah konsep yang memadupadankan desain
arsitektur, desain interior dan mekanikal elektrikal agar dapat memberi
kecepatan gerak/mobilitas serta kemudahan kontrol juga akses dari arah mana
pun dan waktu kapanpun dalam hal otomatisasi dimana semua aktifitas yang
terjadi pada sebuah bangunan atau gedung dapat terjadi tanpa adanya intervensi
manusia didalamnya, dalam artian biarpun tidak ada orang didalamnya maka
bangunan ini akan menjalankan perintah sesuai dengan program yang telah kita
buat dan kita tanamkan pada otak bangunan itu. Konsep smart building ini
memiliki 9 sektor energi yang dapat dijadikan target efisiensi dari sistem
manajemen Smart Building (Doherty, 2018).
16
2.6 Penelitian Terkait
2.6.1 Aplikasi Sistem Pengendali dan Manajemen Penjadwal Peralatan Listrik
dalam Ruangan (oleh Aulia, TRANSMISI, 12, (2), 2010, 58).
Gambar 2.4 Aplikasi Home Automation oleh Teksun Inc
Aplikasi yang dikembangkan oleh Aulia Latifah Insan Firdausi
merupakan sistem kendali dan manajemen penjadwalan peralatan listrik dalam
ruangan. Sistem yang dikembangkan ini menggunakan pemrograman Delphi
7.0 dan MySQL sebagai database. Selain itu, sistem aplikasi ini sudah
dilengkapi dengan ZigBee sebagai bentuk komunikasinya. Aplikasi ini hanya
dikendalikan hanya berdasarkan penjadwalan yang telah ditentukan
sebelumnya, sehingga proses kendalinya hanya menggunakan timer. Namun
untuk melakukan monitoringnya bisa dilakukan dari jarak jauh sesuai
jangkauan pada komunikasi wireless ZigBee (Firdausi, Sumardi, & Christyono,
2012).
17
2.6.2 Arduino Smart Home oleh Amphan
Gambar 2.5 Aplikasi Arduino Smart Home oleh Amphan
Arduino Smart Home ini digunakan untuk mengontrol perangkat
elektronik dengan menghubungkan perangkat tersebut ke wifi. Adapun
perangkat yang digunakan dalam membuat aplikasi ini adalah arduino mega
atau papan yang kompatibel, lalu ethernet (WIZNet 5100), relayboard, sensor
cahaya dan gerak. Salah satu fitur yang dimiliki oleh software ini adalah fitur
yang menampilkan data realtime dari kondisi perangkat, dapat mengatur nama
perangkat dan nama sensor, kemudian kontrol sensor dapat menghasilkan
output secara otomatis (Amphan, 2014).
18
2.6.3 Zigbee and RFID Based Student Attendance Monitoring System with Energy
Saving (oleh Bhingude Kisan dan Bhise S.K, IARJSET, Vol.4, Special Issue
2, January 2017).
Gambar 2.6 ZigBee dan Functional Block Diagram untuk Student Attendance
Monitoring System with Energy Saving
Sistem Attendance ini menggunakan model penggunaan sistem wireless
dengan penggunaan RFID Tag dan Zigbee sebagai komunikasi data. Sistem ini
hanya diimplementasi pada sekolah untuk para siswa. Model kerja pada sistem
ini, menggunakan implementasi deteksi range area wireless pada RFID Tag
yang di tangkap oleh receiver ZigBee. Selain itu, dengan implementasi ini juga
memberikan nilai tambah pada program Energy Saving, dengan model kontrol
berasal dari mapping kelas beserta ruangan yang dilengkapi oleh Zigbee sebagai
Receiver dan sistem komunikasi data (Kisan & S.K., 2017).
19
2.6.4 IOT Based Smart Classroom System (oleh E.K.F Chan, dkk, e-ISSN: 2289-
8131 , Vol. 9 No. 3-9, UTM Johor Bahru, Malaysia)
Gambar 2.7 Aplikasi Student Attendance dan Penggunaan WSN Human
Movement sebagai Energy Saving
Implementasi IOT yang diterapkan oleh E.K.F. Chan, M.A. Othman,
dan M.A. Abdul Razak difungsikan sebagai sistem IOT yang menggunakan
RFID sebagai Attendance System dan penggunaan WSN (Wireless sensor
Network). Sistem ini dipakai untuk melakukan pengontrolan HVAC sebagai
smart classroom yang mampu melakukan kontrol kelistrikan dengan Arduino
Mega. Sistem ini berbasiskan WEB untuk sistem attendance pada dosen dan
mahasiswa. Namun, impelementasi dari Smart Classroom ini belum terintegrasi
dengan sistem attendance sebagai kontrol kelistrikan. Kontrol Kelistrikan
masih terpisah menggunakan WSN sebagai sensor human movement. Sensor
inilah yang dipakai untuk menghidupkan dan mematikan lampu ruangan atau
AC pada ruang kelas. Implementasi ini tentunya masih banyak kekurangan,
karena penggunaan WSN dengan sensor human movement belum bisa dikatakan
efektif, karena harus ada pergerakan manusia agar kontrol lampu atau AC dapat
ON (Chan, Othman, & Razak, 2017).
20
2.7 Perbandingan dengan Sistem pada Penelitian Terkait
Tabel 2.1 Perbandingan terhadap sistem dari penelitian terkait
Feature
Aplikasi
Sistem
Pengendali
dan
Manajemen
Penjadwal
Peralatan
Listrik dalam
Ruangan
Arduino
Smart
Home
IOT Based
Smart
Classroom
System
Zigbee and
RFID Based
Student
Attendance
Monitoring
System with
Energy Saving
Program Energy
Saving
menggunakan
IoT Electrical
Control dengan
Attendance
System dan
Pemetaan
Ruangan
Gedung
Log
Attendance - - v v v
Electrical
Control
(Energy
Saving)
v v v v v
Development
Tools Delphi 7.0
Android
Studio Web Based VB 6
Web Based &
C# Visual
Studio
Work Methods Scheduling
Timer
Button
Control
Sensor
Human
Movement
(not
integrated
attendance)
RFID Scanner
Control based
on Attendance
Biometric
Machine and
Database
Mapping Area v - - - v
Event Log &
Notification - - v - v
UI & UX - v v - v
Implementation Small Room Home Class Room Class Room Building Room
Biometric
Attendance
(Security)
- - - - v
Attendance
Status
Validation
- - - - v
21
Shifting
Schedule
Classfication - - - v
Dashbaord
Report - - - - v
Energy
Monitor - - - - v
Network
Support - v v v v
Installation
Setup Hard Easy Hard Hard Easy
Controller Arduino Arduino Arduino Arduino Moxa E1212
Enterprise
Durability - - - - v
22
BAB III
ANALISIS KEBUTUHAN
Analisa kebutuhan pada bab ini ditujukkan untuk analisa kebutuhan yang akan
didefinisikan pada proses pembuatan Sistem Attendance dan IOT (Internet Of Things)
Electrical Control. Adapun analisis yang dideskripsikan adalah analisis sistem, analisis
kebutuhan sistem, use case diagram, skenario use case dan activity diagram.
3.1 Analisis Sistem
Sistem Attendance dan IOT (Internet Of Things) Electrical Control ini
merupakan program dari Energy Saving yang diperuntukan untuk sebuah
perusahaan dengan memanfaatkan sistem monitoring attendance untuk
melakukan trigger untuk kendali sistem kelistrikan pada ruangan / area kerja.
Sehingga dengan sistem ini perusahaan dapat memantau kehadiran karyawan
secara realtime dan dapat memanfaatkan sistem automasi penggunaan
kelistrikan pada bangunan dengan pembentukan area mapping karyawan
berdasarkan ruangan. Sistem Monitor Attendance ini dibuat menggunakan
Webbase dengan database SQL Server dan dibantu driver attendance
management untuk koneksi terhadap mesin biometric attendance. Selain itu,
ada sistem IOT Electrical Control yang dibuat dengan pemrograman C# dan
database SQL Server. Sistem IOT Electrical Control ini menggunakan
microcontroller Moxa E1212 untuk kendali Digital Input dan Digital Output
pada rangkaian listrik yang dibentuk sesuai mapping area kerja bangunan.
Aktor dalam sistem ini terdiri dari empat aktor yaitu Human Resource
(HR) Department, Admin Department, Employee dan Controller. Pada HR
Department memiliki fungsional dalam membuat data karyawan yang nantinya
23
akan dihubungkan dengan data biometric kehadiran karyawan, sedangkan
Admin Department memiliki fungsi untuk mengatur area kerja pada suatu
karyawan yang telah ditentukan oleh Human Resource Department sesuai
dengan departemen masing-masing. Sistem attendance ini menggunakan mesin
Attendance Biometric menggunakan scan Fingerprint dan Kartu RFID
Karyawan. Sehingga, karyawan melakukan check-IN ketika masuk dan check-
OUT ketika pulang dengan cara melakukan scanning Fingerprint dan Tap Kartu
ID Karyawan pada mesin absensi yang telah ditentukan. Pencatatan kehadiran
yang dilakukan oleh karyawan akan secara otomatis masuk ke database dan
dapat di monitor secara realtime waktu kehadirannya.
Data kehadiran yang dapat dilakukan monitoring secara realtime,
menjadikan Controller dapat melakukan proses kendali untuk melakukan
switch off pada panel kelistrikan dan memberikan data log informasi terhadap
penggunaan listrik tiap masing-masing area kerja sebuah perusahaan.
3.2 Analisis Kebutuhan Sistem
Analisis kebutuhan sistem mendeskrispiskan kebutuhan sistem dalam
melakukan pemenuhan terhadap kebutuhan pengguna secara fungsional. Hal
pertama yang dilakukan adalah dengan menganalisa aktor yang terautorisasi
dalam menggunakan aplikasi serta hak akes yang dimilikinya
Tabel 3.1 Aktor pada sistem
No Aktor Deskripsi
1 HR Dept
(Human Resources)
HR Dept dapat melakukan Create/Update
Data Karyawan dan melakukan Setup pada
24
mesin absensi, serta memonitor kehadiran
karyawan.
2 Admin Dept Admin Dept akan menerima notifikasi dari
HR Dept terhadap Create/Update data
karyawan, serta melakukan setup mapping
area kerja karyawan baru. Selain itu, bisa
memonitor kehadiran karyawan.
3 Employee (Karyawan) User dapat melakukan pencatatan data
kehadiran pada mesin absen dengan scan
biometric fingerprint dan tapping kartu ID
Karyawan, ketika masuk (Check-IN) dan
pulang (Check-Out).
2 Controller Melakukan kendali terhadap switch
kelistrikan dengan trigger data kehadiran
karyawan berdasarkan mapping area kerja.
3.2.1 Analisis Kebutuhan Fungsionalitas
Kebutuhan fungsionalitas dari sistem ini dapat dijelaskan sebagai berikut:
1. Dapat menambahkan, mengubah, dan menapilkan data karyawan
2. Dapat menampilkan data kehadiran karyawan secara realtime
3. Dapat menampilkan dashboard tentang kehadiran karyawan
4. Dapat melakukan setup mapping area kerja terhadap karyawan
5. Dapat menampilkan informasi tentang penggunaan listrik/lampu sesuai
dengan area kerja yang telah ditentukan.
6. Menampilkan tabel list log pemberitahuan terhadap sistem kendali
25
kelistrikan.
3.2.2 Analisis Kebutuhan Perangkat
Kebutuhan Perangkat Keras
Kebutuhan perangkat keras yang dibutuhakan dalam pembuatan skripsi dan
sistem aplikasi ini adalah sebagai berikut,
Tabel 3.2 Kebutuhan Perangkat Keras
No Perangkat Keras Kebutuhan
1. PC Server • Intel® Xeon ® CPU E3-1225 v6
• Memory : 16GB
• OS : Windows Server 2008 R2
• Support : Hyper-V
2. Network • NIC (Network Interface Card)
• Switch or Wi-Fi
• Router (Optional)
3. Electrical • Microcontroller : Moxa E1212
• Relay MY4N-GS 220V
• Power Supply 24V
4. Biometric
(Attendance
Machine)
• Hardware : Solution X105-ID
• Software : Attendance Management
(Driver)
Kebutuhan Perangkat Lunak
Kebutuhan perangkat lunak yang diperlukan dalam pembuatan skripsi dan
pembuatan sistem aplikasi ini adalah sebagai berikut.
26
Tabel 3.3 Kebutuhan perangkat lunak
No Perangkat Lunak Kegunaan
1. Windows Server 2008 Operating System
Server
2. IIS / Apache 2 Web/HTTP Server
3. PHP 5.6 PHP Programming
4. Hyper-V Cloud Computing
5. SQL Server 2012 Database
6. Visual Studio 2013 Visual Programming
C#
7. Moxa DLL DLL Class Reference
Moxa
8. Solution Attendance
Management (Driver)
Driver management
attendance machine
Solution
9. Ms. Visio Perancangan,
pembuatan diagram,
UML
10. Ms. Office Word Dokumentasi
3.2.3 Use Case Diagram
Berikut adalah use case diagram dalam sistem Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance System dan Pemetaan
Ruangan Gedung pada Gambar 3.1.
27
Create / Update Employee
Create New Employee
<<include>>
Update Employee<<include>>
Setup Attendance
Upload to Machine
<<include>>
Scan FP & RFID Card
Receive Notification
Monitor Attendance
Check OUT
Employee
Register Attendance
HR Dept
Send Notification
<<include>>
<<extend>>
Admin Dept
Print Attendance
<<extend>>Setup Employee Mapping Room
Energy Saving using IoT Electrical Control integrated with Attendance System and Mapping Building Room Area
Contoller
Check Attendance per Room
<<extend>>
<<include>>
Check IN
<<extend>> Set OFF Switch
Create Log
Gambar 3.1 Use Case Diagram
Use Case diagram diatas menjelaskan penggunaan sistem terhadap aktor yang
terlibat yang terdiri dari HR Department, Admin Department, Employee, dan
Controller.
a. Definisi Use Case
Tabel 3.4 Daftar Use Case
No Use Case Deskripsi
1. Create/Update Employee Proses menambah atau mengubah data
karyawan.
28
2. Create New Employee Proses manambah data karyawan baru
oleh HR Dept.
3. Update Employee Proses mengubah data karyawan oleh HR
Dept.
4. Send Notification Proses mengirim pemberitahuan kepada
Admin Dept, jika terdapat penambahan
atau pengubahan karyawan baru.
5 Setup Attendance Proses menambahkan atau mengubah
data karyawan baru pada mesin absensi
oleh HR Dept.
6 Scan FP & RFID Card Proses untuk merekam data fingerprint
(sidik jari) dan RFID Card karyawan.
7 Upload to Machine Mengupload dan mendistribusikan data
karyawan ke masing-masing mesin
absensi.
8 Receive Notification Menerima pesan notifikasi ketika
terdapat penambahan atau pengubahan
data karyawan dari HR Dept.
9 Setup Employee Mapping
Room
Melakukan setup pemetaan area kerja
karyawan dari tiap departemen.
10 Monitor Attendance Monitor data kehadiran karyawan dari
hasil record database dari tiap masing-
masing mesin absensi. Proses ini bisa
dilakukan oleh HR Dept dan Admin Dept.
11 Print Attendance Proses untuk menampilkan dan
29
mencetak data kehadiran karyawan.
12 Check Attendance per
Room
Proses pada Controller untuk membaca
dan membandingkan data Check-IN dan
Check-OUT dari data kehadiran
karyawan yang terdaftar dari hasil
mapping area kerja.
13 Set OFF Switch Proses untuk melakukan switch OFF
yang dilakukan oleh Controller.
14 Create Log Proses pencatatan informasi tiap event
yang terjadi dari proses ON/OFF pada
masing-masing panel tiap ruangan area
kerja.
15 Register Attendance Proses pendaftaran karyawan ke dalam
mesin absensi dengan cara rekam
fingerprint (sidik jari) dan RFID.
16 Check-IN Proses absensi yang dilakukan oleh
karyawan ketika masuk dengan cara
rekam fingerprint (sidik jari) dan RFID.
17 Check-OUT Proses absensi yang dilakukan oleh
karyawan ketika pulang dengan cara
rekam fingerprint (sidik jari) dan RFID.
30
b. Skenario
Berikut adalah skenario use case dari sistem yang dibuat untuk menjelaskan
secara lebih detail terhadap proses yang dilakukan.
• Skenario Use Case Create/Update Employee
Tabel 3.5 Tabel skenario Create/Update Employee
Use Case Name Create/Update Employee
Priority High
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other
Participation Actor
-
Description Proses menambah atau mengubah data
karyawan.
Precondition Aktor melakukan login dan masuk ke Menu
Employee
Trigger Di dalam menu Employee, aktor memilih
Create New Employee untuk menambahkan
atau Edit dari Data Employee yang
ditampilkan.
Typical cource of
the events
Actor System
1. Aktor Memilih
Menu Employee
2. Menampilkan
Tap Pane Menu
Create Employee
dan Data
Employee.
Post Condition Tampilan Form dan Tabel Data Employee
31
• Skenario Use Case Create New Employee
Tabel 3.6 Tabel skenario Create New Employee
Use Case Name Create New Employee
Priority High
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other
Participation Actor
-
Description Proses menambahkan data karyawan baru.
Precondition Aktor melakukan login, masuk ke Menu
Employee, dan pilih Create New Employee
Trigger Sistem akan menampilkan form Create New
Employee
Typical cource of
the events
Actor System
1. Aktor Memilih Menu
Employee, dan pilih
Create New Employee
2. Menampilkan
form Create New
Employee
Post Condition Tampil Form Create New Employee dan
Tersimpan ketika disubmit
32
• Skenario Use Case Update Employee
Tabel 3.7 Tabel skenario Update Employee
Use Case Name Update Employee
Priority High
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other Participation
Actor
-
Description Proses mengubah data karyawan yang
sudah ada.
Precondition Aktor melakukan login, masuk ke Menu
Employee, dan pilih Edit dari Tabel
Karyawan.
Trigger Sistem akan menampilkan form Edit
Employee yang dipilih.
Typical cource of the
events
Actor System
1. Aktor melakukan
login, masuk ke Menu
Employee, dan pilih Edit
dari Tabel Karyawan.
2. Menampilkan
form Edit
Employee
Post Condition Tampil Form Create New Employee dan
Tersimpan ketika di submit
33
• Skenario Use Case Send Notification
Tabel 3.8 Tabel skenario Send Notification
Use Case Name Send Notification
Priority High
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other Participation
Actor
-
Description Proses mengirim pemberitahuan kepada Admin
Dept
Precondition Terjadi penambahan/pengubahan data karyawan
Trigger Sistem mengirimkan pemberitahuan
Typical cource of the
events
Actor System
1. Aktor melakukan
penambahan atau
pengubahan data karyawan.
2. Mengirim
pemberitahuan
Post Condition Pemberitahuan terkirim
34
• Skenario Use Case Setup Attendance
Tabel 3.9 Tabel skenario Setup Attendance
Use Case Name Setup Attendance
Priority High
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other Participation
Actor
-
Description Proses menambahkan atau mengubah data
karyawan baru pada mesin absensi.
Precondition Pilih mesin absensi, dan upload data ke
mesin
Trigger Mesin absen terhubung dan data ter-update
Typical cource of the
events
Actor System
1. Aktor Memilih mesin
absensi, dan upload data
karyawan ke mesin
2. Menampilkan
jika data ter-
update
Post Condition Data karyawan ter-update pada mesin
absensi
• Skenario Use Case Scan FP & RFID Card
Tabel 3.10 Tabel skenario Scan FP & RFID Card
Use Case Name Scan FP & RFID Card
Priority High
35
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other Participation
Actor
Employee
Description Proses rekam fingerprint (sidik jari) dan
RFID Card
Precondition Pilih data karyawan yang akan dilakukan
proses rekam fingerprint (sidik jari) dan
RFID Card
Trigger Karyawan melakukan rekam fingerprint
(sidik jari) dan RFID Card terdaftar
Typical cource of the
events
Actor System
1. Aktor HR Dept
memilih data karyawan
yang akan dilakukan
proses rekam fingerprint
(sidik jari) dan RFID
Card
3. Aktor Employee
melakukan proses
fingerprint (sidik jari)
dan RFID Card
2. Menampilkan
form rekam pada
mesin absensi
Post Condition Data rekam fingerprint (sidik jari) dan RFID
Card tersimpan
36
• Skenario Use Case Upload to Machine
Tabel 3.11 Tabel skenario Upload to Machine
Use Case Name Upload to Machine
Priority High
Primary Business
Actor
HR Dept
Primary System
Actor
HR Dept
Other Participation
Actor
-
Description Proses upload dan distribusi data karyawan
yang telah direkam ke masing-masing mesin
absensi.
Precondition Pilih data karyawan yang akan di upload ke
masing-masing mesin absensi.
Trigger Menampilkan pemberitahuan, jika upload
data telah sukses.
Typical cource of the
events
Actor System
1. Aktor memilih
data karyawan yang di
upload ke masing-
masing mesin absensi
2. Menampilkan
pemberitahuan,
jika upload data
telah sukses.
Post Condition Data karyawan telah terdaftar pada masing-
masing mesin absensi.
37
• Skenario Use Case Receive Notification
Tabel 3.12 Tabel skenario Receive Notification
Use Case Name Receive Notification
Priority High
Primary Business Actor Admin Dept
Primary System Actor Admin Dept
Other Participation
Actor
-
Description Menerima pesan notifikasi ketika
terdapat penambahan atau pengubahan
data karyawan dari HR Dept.
Precondition
Trigger HR melakukan penambahan atau
pengubahan data karyawan
Typical cource of the
events
Actor System
2. Aktor
menerima
notifikasi dari
sistem
1. Mengirimkan
notifikasi
Post Condition Admin Dept menerima pesan notifikasi
38
• Skenario Use Case Setup Employee Mapping Room
Tabel 3.13 Tabel skenario Setup Employee Mapping Room
Use Case Name Setup Employee Mapping
Room
Priority High
Primary Business
Actor
Admin Dept
Primary System
Actor
Admin Dept
Other Participation
Actor
-
Description Melakukan setup pemetaan area kerja
karyawan dari tiap departemen.
Precondition
Trigger
Typical cource of
the events
Actor System
1. Aktor
melakukan setting data
karyawan dengan
pemetaan area kerja
2. Melakukan
penyimpanan ke
database
Post Condition Data tersimpan ke database
39
• Skenario Use Case Monitor Attendance
Tabel 3.14 Tabel skenario Monitor Attendance
Use Case Name Monitor Attendance
Priority High
Primary Business
Actor
HR Dept, Admin Dept, Controller
Primary System
Actor
HR Dept, Admin Dept, Controller
Other
Participation Actor
-
Description Monitor data kehadiran karyawan dari hasil
record database dari tiap masing-masing
mesin absensi.
Precondition
Trigger Check-IN dan Check-Out karyawan
Typical cource of
the events
Actor System
1. Aktor memilih
data attendance
2. Menampilkan
data attendance
Post Condition Menampilkan data attendance dan proses
pengecekan oleh Controller
40
• Skenario Use Case Print Attendance
Tabel 3.15 Tabel skenario Print Attendance
Use Case Name Print Attendance
Priority High
Primary Business
Actor
HR Dept, Admin Dept
Primary System
Actor
HR Dept, Admin Dept
Other Participation
Actor
-
Description Proses untuk menampilkan dan mencetak
data kehadiran karyawan.
Precondition
Trigger Ketika memilih print data
Typical cource of
the events
Actor System
1. Aktor memilih print
data attendance
2. Melakukan
proses print data
attendance
Post Condition Print data attendance
41
• Skenario Use Case Check Attendance per Room
Tabel 3.16 Tabel skenario Check Attendance per Room
Use Case Name Check Attendance per Room
Priority High
Primary Business
Actor
Controller
Primary System
Actor
Controller
Other Participation
Actor
-
Description Proses untuk membaca dan
membandingkan data Check-IN dan Check-
OUT dari data kehadiran karyawan yang
terdaftar dari hasil mapping area kerja.
Precondition
Trigger Cek data Attendance tiap ruangan
Typical cource of the
events
Actor System
1. Cek data
Attendance
Post Condition Switch-OFF panel, jika data Check-IN dan
Check-OUT sama
42
• Skenario Use Case Set OFF Switch
Tabel 3.17 Tabel skenario Set OFF Switch
Use Case Name Set OFF Switch
Priority High
Primary Business Actor Controller
Primary System Actor Controller
Other Participation
Actor
-
Description Aktor melakukan switch OFF pada
panel kelistrikan
Precondition Hasil cek data Attendance per Room
Trigger Jika data Check-IN dan Check-OUT
sama
Typical cource of the
events
Actor System
1. Mengaktifkan
perintah untuk
Switch-OFF
Post Condition Switch-OFF panel
43
• Skenario Use Case Create Log
Tabel 3.18 Tabel skenario Create Log
Use Case Name Create Log
Priority High
Primary Business
Actor
Controller
Primary System
Actor
Controller
Other Participation
Actor
-
Description Proses pencatatan informasi tiap event yang
terjadi dari proses ON/OFF pada masing-
masing panel tiap ruangan area kerja.
Precondition Event Log Conditition
Trigger Perubahan Event Log Condition
Typical cource of
the events
Actor System
1. Menyimpan
data evet log
Post Condition Event Log tersimpan di database
44
• Skenario Use Case Register Attendance
Tabel 3.19 Tabel skenario Register Attendance
Use Case Name Register Attendance
Priority High
Primary Business
Actor
Employee
Primary System
Actor
Employee
Other Participation
Actor
-
Description Proses pendaftaran karyawan ke dalam
mesin absensi dengan cara rekam
fingerprint (sidik jari) dan RFID.
Precondition Rekam fingerprint (sidik jari) dan RFID
Trigger
Typical cource of the
events
Actor System
1. Melakukan rekam
fingerprint (sidik jari)
dan RFID
2. Menyimpan
data fingerprint
(sidik jari) dan
RFID
Post Condition Data fingerprint (sidik jari) dan RFID
tersimpan di database
45
• Skenario Use Case Check-IN
Tabel 3.20 Tabel skenario Check-IN
Use Case Name Check-IN
Priority High
Primary Business
Actor
Employee
Primary System
Actor
Employee
Other Participation
Actor
-
Description Proses absensi yang dilakukan oleh
karyawan ketika masuk dengan cara rekam
fingerprint (sidik jari) dan RFID.
Precondition Pilih tombol IN, kemudian rekam fingerprint
(sidik jari) dan RFID
Trigger
Typical cource of the
events
Actor System
1. Pilih tombol IN,
kemudian rekam
fingerprint (sidik jari)
dan RFID
2. Menyimpan
data attendance
(Check-IN)
Post Condition Data attendance recorded
46
• Skenario Use Case Check-OUT
Tabel 3.21 Tabel skenario Check-OUT
Use Case Name Check-OUT
Priority High
Primary Business
Actor
Employee
Primary System
Actor
Employee
Other Participation
Actor
-
Description Proses absensi yang dilakukan oleh
karyawan ketika pulang dengan cara rekam
fingerprint (sidik jari) dan RFID.
Precondition Pilih tombol OUT, kemudian rekam
fingerprint (sidik jari) dan RFID
Trigger
Typical cource of the
events
Actor System
1. Pilih tombol OUT,
kemudian rekam
fingerprint (sidik jari)
dan RFID
2. Menyimpan
data attendance
(Check-OUT)
Post Condition Data attendance recorded
47
3.2.4 Activity Diagram
Actitvity diagram digunakan untuk menggambarkan aliran kerja tiap use
case pada Program Energy Saving menggunakan IoT Electrical Control dengan
Attendance System dan Pemetaan Ruangan Gedung. Berikut adalah activity
diagram untuk tiap masing-masing use case.
3.2.4.1 Activity Diagram Create/Update Employee
Activity Diagram ini menggambarkan aktivitas yang dilakukan saat
aktor akan melakukan create atau update employee. Activity Diagram tersebut
dapat dilihat pada Gambar 3.2.
Activity Diagram : Create/Update Employee
HR Dept System
Cre
ate/
Upd
ate
Empl
oyee
Menagakses Attendance System
Menampilkan Halaman Login
Memilih Menu Employee
Melakukan LoginMenampilkan
Halaman Utama
Create / Update ?
Menampilkan Data Employee
Menampilkan Form Create Employee
Create
Update
Menampilkan Form Edit Employee
Pilih Nama Employee
Pilih Edit
Gambar 3.2 Activity Diagram Create/Update Employee
48
3.2.4.2 Activity Diagram Create Employee
Activity diagram ini menggambarkan cara aktor HR Dept melakukan Create
Employee. Activity diagram tersebut dapat dilihat pada Gambar 3.3.
Activity Diagram : Create Employee
HR Dept System
Cre
ate
Emp
loye
eMenampilkan Form
Create Employee
Mengisi Form Create Employee
Pilih Submit
Apakah Sudah Selesei ?
Simpan Database
Iya
Belum
Gambar 3.3 Activity Diagram Create Employee
49
3.2.4.3 Activity Diagram Update Employee
Activity Diagram ini menggambarkan cara aktor HR Dept melakukan Update
Employee. Activity Diagram tersebut dapat dilihat pada Gambar 3.4.
Activity Diagram : Update Employee
HR Dept System
Upd
ate
Emp
loye
e
Menampilkan Form Edit Employee
Mengisi Form Edit Employee
Pilih Submit
Apakah Sudah Selesei ?
Simpan Database
Iya
Belum
Menampilkan Data Employee
Pilih Nama Employee
Pilih Edit
Gambar 3.4 Activity Diagram Update Employee
50
3.2.4.4 Activity Diagram Send Notification
Activity Diagram ini menggambarkan cara sistem dalam mengirimkan
pesan pemberitahuan (notification) kepada HR Dept dan Admin Dept. Activity
Diagram tersebut dapat dilihat pada Gambar 3.5.
Activity Diagram : Send Notification
HR Dept System Admin Dept
Sen
d N
oti
fica
tio
n
Send Notification
Terjadi Perubahan Database
Receive Notification Receive Notification
Gambar 3.5 Activity Diagram Send Notification
51
3.2.4.5 Activity Diagram Setup Attendance
Activity diagram ini menggambarkan aktivitas HR Dept dalam
melakukan setup attendance pada Driver Machine (Attendance Management
System Desktop). Aktivitas setup ini difungsikan untuk melakukan registrasi
employee ke dalam biometric attendance machine. Activity diagram tersebut
dapat dilihat pada Gambar 3.6.
Activity Diagram : Setup Attendance
HR Dept Driver Machine
Setu
p A
tten
dan
ce
Menagakses Driver Machine
Menampilkan Menu Aplikasi
Memilih Menu Upload User Info
Menampilkan List Employee dan
Machine
Menampilkan Nama Employee dan Machine yang
dipilih
Memilih Nama Employee dan
Machine
Pilih Upload
Gambar 3.6 Activity Diagram Setup Attendance
52
3.2.4.6 Activity Diagram Scan FP & RFID Card
Activity Diagram ini menggambarkan aktivitas aktor HR Dept dalam
melakukan registrasi employee ke dalam biometric attendance machine. Proses
Scan Finger Print (Sidik Jari) dan RFID Card ini dilakukan pada biometric
attendance machine yang telah disetup sebelumnya oleh HR Dept. Activity
Diagram tersebut dapat dilihat pada Gambar 3.7.
Activity Diagram : Scan FP & RFID Card
HR Dept Machine Employee
Scan
FP
& R
FID
Car
d
Tekan Tombol Menu
Menampilkan Menu
Memilih Menu User dan pilih User Mgt
Menampilkan List Employee
Menampilkan Details Employee
Memilih Nama Employee
Pilih Enroll Card
Pilih Enroll FP Scan Finger Print
Tap RFID Card
Menampilkan Form Scan FP
Menampilkan Form Scan RFID Card
Gambar 3.7 Activity Diagram Scan FP & RFID Card
53
3.2.4.7 Activity Diagram Upload to Machine
Activity Diagram ini menggambarkan aktivitas aktor HR Dept dalam
melakukan upload data ke biometric attendance machine terhadap hasil proses
registrasi employee yang telah dilakukan. Activity diagram tersebut dapat
dilihat pada Gambar 3.8.
Activity Diagram : Upload to Machine
HR Dept Driver Machine
Up
loa
d t
o M
ach
ine
Menagakses Driver Machine
Menampilkan Menu Aplikasi
Memilih Menu Upload User Info
Menampilkan List Employee dan
Machine
Menampilkan Nama Employee dan Machine yang
dipilih
Memilih Nama Employee dan
Machine
Pilih Upload
Gambar 3.8 Activity Diagram Upload to Machine
54
3.2.4.8 Activity Diagram Receive Notification
Activity Diagram ini menggambarkan aktivitas terhadap HR Dept dan
Admin Dept dalam menerima pesan pemberitahuan (Receive Notification) dari
sistem terhadap hasil perubahan data employee. Activity Diagram tersebut
dapat dilihat pada Gambar 3.9.
Activity Diagram : Receive Notification
HR Dept System Admin Dept
Re
ceiv
e N
oti
fica
tio
n
Send Notification
Terjadi Perubahan Database
Receive Notification Receive Notification
Gambar 3.9 Activity Diagram Receive Notification
55
3.2.4.9 Activity Diagram Setup Employee Mapping Room
Activity Diagram ini menggambarkan aktivitas aktor Admin Dept dalam
melakukan registrasi employee terhadap mapping area kerja dari masing-masing
departemen. Activity Diagram tersebut dapat dilihat pada Gambar 3.10.
Activity Diagram : Setup Employee Mapping Room
Admin Dept SystemSe
tup
Em
plo
yee
Map
pin
g R
oom
Menagakses SystemMenampilkan
Halaman & Menu Aplikasi
Memilih Menu Energy Control :
Sign Employee Area
Menampilkan Form Register Employee
Area
Memilih Nama Employee dan Area
Pilih Register
Gambar 3.10 Activity Diagram Setup Employee Mapping Room
56
3.2.4.10 Activity Diagram Monitor Attendance
Activity Diagram ini menggambarkan aktivitas oleh aktor HR Dept,
Admin Dept, dan Controller dalam melakukan monitoring attendance dari
data employee yang tercatat dalam biometric attendance machine tiap harinya.
Activity Diagram tersebut dapat dilihat pada Gambar 3.11.
Activity Diagram : Monitor Attendance
HR Dept SystemControllerAdmin Dept
Mo
nit
or
Att
end
ance
Menagakses System
Menampilkan Halaman & Menu
Aplikasi
Memilih Menu Attendance : List
Attendance
Menampilkan List Attendance
Menagakses System Menagakses System
Gambar 3.11 Activity Diagram Monitor Attendance
57
3.2.4.11 Activity Diagram Print Attendance
Activity Diagram ini menggambarkan proses print dari aktivitas aktor
HR Dept, Admin Dept, dan Controller dalam melakukan monitoring
attendance di biometric attendance machine tiap harinya. Activity Diagram
tersebut dapat dilihat pada Gambar 3.12.
Activity Diagram : Print Attendance
HR Dept SystemControllerAdmin Dept
Pri
nt
Att
end
ance
Menagakses System
Menampilkan Halaman & Menu
Aplikasi
Memilih Menu Attendance : List
Attendance
Menampilkan List Attendance
Menagakses System Menagakses System
Pilih PrintMelakukan proses
Gambar 3.12 Activity Diagram Print Attendance
3.2.4.12 Activity Diagram Check Attendance per Room
Activity Diagram ini menggambarkan proses pengecekan pada
Controller dalam melakukan penghitungan Jumlah Check-IN dan Check-OUT
58
tiap ruangan kerja sesuai hasil setup employee mapping. Activity Diagram
tersebut dapat dilihat pada Gambar 3.13.
Activity Diagram : Check Attendance per Room
Controller System
Che
ck A
tten
danc
e p
er R
oom
Melakukan pengechekan
Database
Membandingkan Jumlah IN dan OUT
tiap ruangan
Gambar 3.13 Activity Diagram Check Attendance per Room
59
3.2.4.13 Activity Diagram Set OFF Switch
Activity Diagram ini menggambarkan aktivitas pada Controller dalam
menentukan proses switch OFF terhadap panel kelistrikan dengan cara
membandingkan Jumlah Check-IN dan Check-OUT pada tiap ruangan kerja
sesuai hasil setup employee mapping. Activity Diagram tersebut dapat dilihat
pada Gambar 3.14.
Activity Diagram : Set Switch OFF
Controller System
Set
Swit
ch O
FF
Melakukan pengechekan
Database
Membandingkan Jumlah IN dan OUT
tiap ruangan
Apakah IN & OUT sama ?
Tidak
Set Switch OFF Ya
Gambar 3.14 Activity Diagram Set OFF Switch
60
3.2.4.14 Activity Diagram Create Log
Activity Diagram ini menggambarkan aktivitas pada Controller dalam
membuat event log yang tersimpan dalam database dengan proses dari hasil
trigger pembacaan Digital Input pada Controller Hardware. Activity Diagram
tersebut dapat dilihat pada Gambar 3.15.
Activity Diagram : Create Log
Controller System
Cre
ate
Lo
g
Membaca Digital Input
Tidak
Ada Event padaDigital Input ?
Ya
Create Event Log
Gambar 3.15 Activity Diagram Create Log
61
3.2.4.15 Activity Diagram Register Employee
Activity Diagram ini menggambarkan aktivitas pada aktor Employee
dalam melakukan request untuk melakukan registrasi ke dalam biometric
attendance system. Proses request ini dilakukan kepada HR Dept, untuk bisa
melakukan setup attendance kedalam biometric attendance system. Proses ini
meliputi scan finger print dan tap RFID Card. Secara detail, Activity Diagram
tersebut dapat dilihat pada Gambar 3.16.
Activity Diagram : Register Attendance
HR Dept Machine Employee
Re
gist
er
Att
en
dan
ce
Tekan Tombol Menu
Menampilkan Menu
Memilih Menu User dan pilih User Mgt
Menampilkan List Employee
Menampilkan Details Employee
Memilih Nama Employee
Pilih Enroll Card
Pilih Enroll FP Scan Finger Print
Tap RFID Card
Menampilkan Form Scan FP
Menampilkan Form Scan RFID Card
Menerima Request Melakukan Request
Gambar 3.16 Activity Diagram Register Attendance
62
3.2.4.16 Activity Diagram Check-IN
Activity Diagram ini menggambarkan aktivitas pada aktor Employee
dalam melakukan proses pencatatan kedatangan ke dalam biometric
attendance system. Proses ini meliputi validasi scan finger print dan tap RFID
Card. Activity Diagram tersebut dapat dilihat pada Gambar 3.17.
Activity Diagram : Check IN
Employee Machine
Che
ck IN
Tekan Tombol IN
Scan Fingerprint & Tap RFID Card
Menampilkan Perintah Scan FP &
RFID
Apakah Data Sesuai ?
Ya
Tidak
Record ke Database
Gambar 3.17 Activity Diagram Check-IN
63
3.2.4.17 Activity Diagram Check-OUT
Activity Diagram ini menggambarkan aktivitas pada aktor Employee
dalam melakukan proses pencatatan kepulangan ke dalam biometric
attendance system. Proses ini meliputi validasi scan finger print dan tap RFID
Card. Activity Diagram tersebut dapat dilihat pada Gambar 3.18.
Activity Diagram : Check OUT
Employee Machine
Che
ck O
UT
Tekan Tombol OUT
Scan Fingerprint & Tap RFID Card
Menampilkan Perintah Scan FP &
RFID
Apakah Data Sesuai ?
Ya
Tidak
Record ke Database
Gambar 3.18 Activity Diagram Check-OUT
64
BAB IV
DESAIN SISTEM
4.1 Class Diagram
Class diagram digunakan untuk memperlihatkan hubungan antar kelas
dan penjelasan detail tiap-tiap kelas didalam model desain dari suatu sistem.
Class diagram pada Program Energy Saving menggunakan IoT Electrical
Control dengan Attendance System dan Pemetaan Ruangan Gedung dapat
dilihat pada Gambar 4.1.
Dashboard Menu Profile
DashboardAttendance Menu
Add Attendance
List Attendance
Side Menu
Setting Menu
Machine Setting
Shift Schedule
Login Access
Check-IN Canteen Menu
Add Canteen Check-IN
List Canteen Check-IN
Energy Control MenuSign Employee Area
Energy Status
Employee Menu
Add Employee
List Employee
Department Menu
Add Department
List Department
Gambar 4.1 Class Diagram Program Energy Saving menggunakan IoT
Electrical Control dengan Attendance System dan Pemetaan Ruangan Gedung
Namun, untuk lebih detail tentang class diagram beserta atribut dan
operasinya pada Program Energy Saving menggunakan IoT Electrical Control
dengan Attendance System dan Pemetaan Ruangan Gedung dapat dilihat pada
Gambar 4.2.
65
Login
- SSN : varchar(20)
+ cek_User()+ cek_Password()
- Password : varchar(50)
+ process_login()
Dashboard Menu
- Profile
+ view()+ select()
- Dashboard
Profile
+ view()
Dashboard
- Dashboard : chart
+ view()+ select()
- Status : chartAttendance Menu
- Add Attendance
+ view()
- List Attendance- Log Attendace
Add Attendance
- USERID : int
+ create()
- CHECKTIME : datetime- CHECKTYPE : varchar(1)
List Attendance
- USERID : int
+ search()+ view()+ select()
- SSN : varchar(20)- Name : varchar(40)
- VERIFYCODE : int- SENSORID : varchar(5)- sn : varchar(20)
- Date : date- DEPTNAME : varchar(30)- TITLE : varchar(100)- CheckIN : datetime- CheckOUT : datetime- Shift : varchar(9)- Duration : decimal- Count : int- Status : varchar
Log Attendance
- USERID : int
+ search()+ select()+ delete()
- SSN : varchar(20)- Name : varchar(40)- Date : date- DEPTNAME : varchar(30)- CheckType : char- CheckTime : datetime- Machines : varchar(20)- Code : varchar(24)
Side Menu
- Dashboard Menu
+ view()
- Attendance Menu- Energy Control Menu- Check-IN Canteen Menu- Employee Menu- Department Menu- Setting Menu
Setting Menu
- Machine Setting
+ view()
- Shift Schedule- Login Access
Machine Setting
- Machine Name : varchar(20)
+ view()+ select()
- IP : varchar(20)- Port : int
- sn : varchar(20)
Shift Schedule
- schName : varchar(20)
+ view()+ select()+ print()
- StartTime : datetime- EndTime : datetime- CheckInTime1 : datetime
- schClassid : int
- CheckInTime2 : datetime- CheckOutTime1 : datetime- CheckOutTime2 : datetime
Login Access
- SSN : varchar(20)
+ setup()+ view()+ select()
- Name : varchar(20)- Title : varchar(200)- Password : varchar (50)- Privilege : int
Check-IN Canteen Menu
- Add Canteen Check-IN
+ view()
- List Canteen Check-IN
Add Canteen Check-IN
- USERID : int
+ create()
- CHECKTIME : datetime- CHECKTYPE : varchar(1)
List Canteen Check-IN
- USERID : int
+ search()+ select()+ delete()
- SSN : varchar(20)- Name : varchar(40)
- VERIFYCODE : int- SENSORID : varchar(5)- sn : varchar(20)
- Date : date- DEPTNAME : varchar(30)- CheckTime : datetime- Category : varchar(20)- Machines : varchar(20)
Energy Control Menu
- Sign Employee Area
+ view()
- Energy Status
Sign Employee Area
- USERID : int
+ create()+ search()+ select()+ delete()
- SSN : varchar(20)- Name : varchar(40)- Title : varchar(30)- Area : varchar(50)
Energy Status
- ID : int
+ search()+ select()+ check_Trigger()+ read_DI()+ write_DO()
- Area_ID : int- Area_Code : varchar(100)- Area_Name : varchar(500)- Machines_ID : int- MachinesName : varchar(100)- ConnectionIP : varchar(50)- ConnectionAddress : varchar(10)- DIPort : varchar(5)- DOPort : varchar(5)- TotalEmployee : int- Today : date- CountCheckIN : int- CountCheckOUT : int- ON_OFF : varchar(5)- Status : varchar(20)
Employee Menu
- Add Employee
+ view()
- List Employee
Add Employee
- USERID : int
+ create()+ validation()
- SSN : varchar(20)- Name : varchar(40)
- Birthdate : date- Phone : varchar(20)
- Gender : varchar(8)
- Street : varchar(20) - Title : varchar(200)- DefaultDeptID : int- Company : varchar(20)- Email : varchar(100)- Code : varchar(50)- CardNo : varchar(20)
List Employee
- USERID : int
+ search()+ select()+ delete()+ print()+ export()
- SSN : varchar(20)- Name : varchar(40)
- Birthdate : date- Phone : varchar(20)
- Gender : varchar(8)
- Street : varchar(20) - Title : varchar(200)- DefaultDeptID : int- Company : varchar(20)- Email : varchar(100)- Code : varchar(50)- CardNo : varchar(20)
Department Menu
- Add Department
+ view()
- List Department
Add Department
- DeptID : int
+ create()+ validation()
- DeptName : varchar(30)- SupDeptID : int
List Department
- DeptID : int
+ search()+ select()+ delete()+ print()+ export()
- DeptName : varchar(30)- SupDeptID : int
Gambar 4.2 Class Diagram secara detail Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance System dan
Pemetaan Ruangan Gedung
66
4.2 Entity Relationship Diagram (ERD)
Entity Relationship Diagram terdiri dari sekumpulan objek-objek yang
disebut dengan entitas serta hubungan yang terjadi diantara suatu objek-objek
tersebut. Entity relationship diagram Program Energy Saving menggunakan
IoT Electrical Control dengan Attendance System dan Pemetaan Ruangan
Gedung dapat dilihat pada Gambar 4.3.
USERINFO (Employee) CHECKINOUT (Attendance)
DEPARTMENT
AREA EMPLOYEEAREA MASTER
IO MACHINES
AREA CONTROL
MACHINES
USERIDPK
BADGE NUMBER
SSN
NAME
GENDER
TITLE
DEPTIDFK
PRIVILEGE
CardNo
USERIDFK
CHECKTIME
CHECKTYPE
VERIFYCODE
SENSORID
SNFK
DEPTIDPK
DEPTNAME
SUPDEPTID
IDPK
AREA IDFK
EMPLOYEE IDFK
STATUS
IDPK
AREA NAME
AREA CODE
IDPK
MACHINE NAME
CONNECTION IP
CONNECTION ADDRESS
STATUS
IDPK
AREA IDFK
MACHINES IDFK
DI PORT
DO PORT
ON_OFF
STATUS
ID
MACHINE ALIAS
CONNECT TYPE
IP
PORT
MACHINE NUMBER
SNPKhave
have
have
has
have
have
have
Gambar 4.3 ERD Program Energy Saving menggunakan IoT Electrical
Control dengan Attendance System dan Pemetaan Ruangan Gedung
67
4.3 Perancangan Basis Data
Perancangan basis data dalam membangun Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance System dan Pemetaan
Ruangan Gedung difungsikan untuk mengetahui kebutuhan dan penjelasan dari
beberapa struktur tabel yang dibuat. Terdapat 2 basis data yang dibangun, yaitu
Basis Data Attendance dan IOT Mapping. Adapun struktur dan spesifikasinya
adalah sebagai berikut.
4.3.1 Basis Data Attendance
• Nama Basis Data : Att
• Deskripsi : Atendance
• Fungsi : Data kehadiran yang terintegrasi dengan fungsi
pencatatan data dari biometric attendance system.
• DBMS : SQL Server 2012
Adapun struktur tabelnya adalah sebagai berikut :
1. Spesifikasi Tabel Userinfo, dapat dilihat pada Tabel 4.1.
Nama Tabel : USERINFO
Fungsi : Untuk menyimpan data master employee (Karyawan)
Tipe : Data master
Tabel 4.1 Tabel Userinfo
Nama Field Tipe Panjang Keterangan Deskripsi
USERID int Primary Key Identitas
User
68
BADGENUMBER Varchar 24 ID
Penghubung
pada Mesin
Attendance
SSN varchar 20 No ID
Employee
NAME varchar 40 Nama
Employee
GENDER varchar 8 Jenis
Kelamin
TITLE varchar 100 Jabatan
BIRTHDAY datetime Tanggal
Lahir
STREET varchar 80 Alamat
DEFAULTDEPTID smallint Foreign Key ID
Department
PRIVILEGE int Hak Akses
CardNo varchar 20 No RFID
Code varchar 50 Code User
EMAIL varchar 100 Email
2. Spesifikasi Tabel Department, dapat dilihat pada Tabel 4.2.
Nama Tabel : DEPARTMENTS
Fungsi : Untuk menyimpan data master daftar Department
Tipe : Data master
69
Tabel 4.2 Tabel Department
Nama Field Tipe Panjang Keterangan Deskripsi
DEPTID int Primary Key Identitas
Department
DEPTNAME varchar 30 Nama
Department
SUPDEPTID int ID Superior
Department
3. Spesifikasi Tabel Checkinout, dapat dilihat pada Tabel 4.3.
Nama Tabel : CHECKINOUT
Fungsi : Untuk menyimpan daftar kehadiran karyawan
Tipe : Data transaksi
Tabel 4.3 Tabel Checkinout
Nama Field Tipe Panjang Keterangan Deskripsi
USERID int Primary Key Identitas User
CHECKTIME datetime Waktu absen
CHECKTYPE varchar 1 Tipe Absen, I :
In & O : Out
VERIFYCODE int Kode
verifikasi dari
mesin
SENSORID varchar 5 No Mesin
SN varchar 20 Foreign Key Serial Number
Mesin
70
4. Spesifikasi Tabel Machines, dapat dilihat pada Tabel 4.4.
Nama Tabel : Machines
Fungsi : Untuk menyimpan daftar mesin biometric atendance
Tipe : Data Master
Tabel 4.4 Tabel Machines
Nama Field Tipe Panjang Keterangan Deskripsi
ID int Primary Key Identitas
mesin
MachineAlias varchar 20 Nama mesin
ConnectType int 1 Tipe
Koneksi
IP varchar 20 IP Address
Mesin
Port int Port mesin
MachineNumber int No Mesin
SN varchar 20 Primary Key Serial
Number
Mesin
71
4.3.2 Basis Data IoT Mapping
• Nama Basis Data : IOT_MAPPING
• Deskripsi : Internet of Things Mapping
• Fungsi : Data pemetaan area kerja karyawan dan energy control
• DBMS : SQL Server 2012
Adapun struktur tabelnya adalah sebagai berikut :
1. Spesifikasi Tabel Area Employee, dapat dilihat pada tabel 4.5.
Nama Tabel : AreaEmployee
Fungsi : Untuk menyimpan daftar pemetaan area kerja karyawan
Tipe : Data Master
Tabel 4.5 Tabel Area Employee
Nama Field Tipe Panjang Keterangan Deskripsi
ID int Primary Key Identitas Area
Employee
Area_ID int Foreign Key Identitas Area
Employee_ID varchar 10 Identitas
Karyawan
Status varchar 20 Status Aktif
atau Non-
Aktif
2. Spesifikasi Tabel Area Master, dapat dilihat pada tabel 4.6.
Nama Tabel : AreaMaster
Fungsi : Untuk menyimpan daftar pemetaan area kerja karyawan
Tipe : Data Master
72
Tabel 4.6 Tabel Area Master
Nama Field Tipe Panjang Keterangan Deskripsi
ID int Primary Key Identitas Area
Area_Code varchar 100 Kode Area
Area_Name varchar 500 Nama Area
3. Spesifikasi Tabel Area Control, dapat dilihat pada tabel 4.7.
Nama Tabel : AreaControl
Fungsi : Untuk menyimpan data controller tiap area dan status
Tipe : Data Transaksi
Tabel 4.7 Tabel Area Control
Nama Field Tipe Panjang Keterangan Deskripsi
ID int Primary Key Identitas Area
Control
Area_ID int Foreign Key Identitas Area
Machines_ID int Foreign Key Identitas Mesin
Controller
DIPort varchar 5 Digital Input
DOPort varchar 5 Digital Output
ON_OFF varchar 5 Status ON/OFF
Status varchar 20 Status Aktif
atau Non-Aktif
4. Spesifikasi Tabel IO Machines, dapat dilihat pada tabel 4.8.
Nama Tabel : IOMachines
73
Fungsi : Untuk menyimpan data mesin controller dan koneksi
Tipe : Data Master
Tabel 4.8 Tabel IO Machines
Nama Field Tipe Panjang Keterangan Deskripsi
ID int Primary Key Identitas Mesin
Controller
MachineName varchar 100 Nama Mesin
Controller
ConnectionIP varchar 50 IP Address
ConnectionAddress varchar 50 Alamat koneksi
Port
Status varchar 20 Status Aktif
atau Non-Aktif
5. Spesifikasi Tabel IO Log, dapat dilihat pada tabel 4.9.
Nama Tabel : IOLog
Fungsi : Untuk menyimpan data event log dari mesin controller
Tipe : Data Transaksi
Tabel 4.9 Tabel IO Machines
Nama Field Tipe Panjang Keterangan Deskripsi
ID int Primary Key Identitas Log
DateTime datetime 100 Waktu dan
Tanggal
MachineID int Identitas
Mesin
74
Port varchar 10 Alamat
koneksi Port
Status varchar 20 Status
ON/OFF
Mode varchar 20 Mode
transisi
Auto/Manual
4.4 Perancangan Antarmuka Sistem
Antarmuka Pengguna (User Interface) merupakan bentuk mekanisme
komunikasi antara pengguna (user) dengan sistem. Perancangan antarmuka
sistem untuk Program Energy Saving menggunakan IoT Electrical Control
dengan Attendance System dan Pemetaan Ruangan Gedung dibagi menjadi dua
sistem aplikasi, yaitu aplikasi Attendance System berupa Web Base dan
Electrical Control berupa Dekstop Base.
4.4.1 Perancangan Antarmuka Attendance System
Perancangan antarmuka pada Attendance System ini menggunakan
model layout berupa aplikasi berbasiskan Web. Adapun antarmuka yang
dirancang pada Attendance System ini memiliki model layout Form, Chart,
Dashboard, dan Report. Berikut adalah penjelasan tentang perancangan
antarmuka yang terdapat pada menu-menu Attendance System.
75
1. Menu Dashboard
Pada Menu Dashboard, memiliki 2 sub menu yaitu Profile dan Dashboard.
Profile ini berfungsi sebagai bentuk overview dari data diri dalam menyimpan
session login. Perancangan antarmuka untuk Profile bisa dilihat pada Gambar
4.4.
Gambar 4.4 Perancangan Antarmuka Menu Dashboard : Profile
Pada perancangan antarmuka Dashboard memiliki tampilan informasi tentang
ringkasan data terhadap jumlah kehadiran, grafik, hingga papan angka
reporting. Perancangan antarmuka tersebut dapat dilihat pada Gambar 4.5.
76
Gambar 4.5 Perancangan Antarmuka Menu Dashboard : Dashboard
2. Menu Attendance
Pada Menu Attendance, memiliki 3 sub menu yaitu Add Attendance, List
Attendance, dan Log Attendance. Add Attendance digunakan untuk
menambahkan data kehadiran karyawan secara manual oleh HR Dept atau
Admin Department. Form ini dilakukan sesuai Standart Operational Procesure
(SOP), ketika terdapat karyawan tidak membawa kartu ID Card (RFID).
Perancangan antarmuka untuk Add Attendance bisa dilihat pada Gambar 4.6.
77
Gambar 4.6 Perancangan Antarmuka Menu Attendance : Add Attendance
Menu List Attendance, difungsikan untuk menampilkan daftar data kehadiran
karyawan. Perancangan antarmuka untuk List Attendance bisa dilihat pada
Gambar 4.7.
Gambar 4.7 Perancangan Antarmuka Menu Attendance : List Attendance
78
Menu Log Attendance, difungsikan untuk menampilkan daftar data log
kehadiran karyawan. Perancangan antarmuka untuk Log Attendance bisa dilihat
pada Gambar 4.8.
Gambar 4.8 Perancangan Antarmuka Menu Attendance : Log Attendance
3. Menu Energy Control
Pada Menu Energy Control, memiliki 2 sub menu yaitu Sign Employee Area
dan Energy Status. Menu ini dipergunakan untuk melakukan pengaturan
terhadap program Energy Saving dengan pemetaan area kerja data karyawan.
Form untuk pemetaan area kerja pada karyawan terdapat pada menu Sign
Employee Area. Perancangan antarmuka tersebut bisa dilihat pada Gambar 4.9.
79
Gambar 4.9 Perancangan Antarmuka Menu Energy Control : Sign
Employee Area
Menu Energy Status difungsikan untuk menampilkan data status pemakaian
listrik sesuai dengan pemetaan ruang area kerja. Perancangan antarmuka untuk
Energy Status bisa dilihat pada Gambar 4.10.
Gambar 4.10 Perancangan Antarmuka Menu Energy Control : Energy Status
80
4. Menu Check-In Canteen
Pada Menu Check-In Canteen berfungsi untuk melakukan penghitungan
konsumsi makan di kantin pada suatu perusahaan. Ini merupakan fitur tambahan
untuk mengetahui penghitungan konsumsi makanan per porsi karyawan oleh
pihak catering (eksternal). Pada menu ini memiliki 2 sub menu yaitu Add
Canteen Check-In dan List Canteen Check-In.
Menu Add Canteen Check-In berfungsi untuk form manual penambahan data
Check-In pada kantin, ketika terdapat karyawan atau pengunjung yang tidak
melakukan absensi check-in di kantin. Perancangan antarmuka untuk Add
Canteen Check-In bisa dilihat pada Gambar 4.11.
Gambar 4.11 Perancangan Antarmuka Menu Check-In Canteen : Add
Canteen Check-In
81
Menu List Canteen Check-In berfungsi untuk menampilkan daftar data
karyawan atau pengunjung yang melakukan Check-In pada kantin. Perancangan
antarmuka untuk List Canteen Check-In bisa dilihat pada Gambar 4.12.
Gambar 4.12 Perancangan Antarmuka Menu Check-In Canteen : List
Canteen Check-In
5. Menu Employee
Pada Menu Employee berfungsi untuk melakukan pengolahan data employee.
Menu ini memiliki 2 sub menu yaitu Add Employee dan List Employee.
Menu Add Employee memiliki perancangan antarmuka berupa form untuk
melakukan registrasi employee ke dalam database absensi karyawan.
Perancangan antarmuka ini dapat dilihat pada Gambar 4.13.
82
Gambar 4.13 Perancangan Antarmuka Menu Employee : Add Employee
Menu List Employee berfungsi untuk menampilkan daftar data master
karyawan. Perancangan antarmuka untuk List Employee bisa dilihat pada
Gambar 4.14.
Gambar 4.14 Perancangan Antarmuka Menu Employee : List Employee
83
6. Menu Department
Pada Menu Department berfungsi untuk menampilkan data master department
pada perusahaan. Adapun perancangan antarmuka untuk menu department
dapat dilihat pada Gambar 4.15.
Gambar 4.15 Perancangan Antarmuka Menu Department : List Department
7. Menu Setting
Pada Menu Setting terdapat 3 sub menu, yaitu menu Machine Setting, Shift
Schedule, dan Login Access. Menu Machine Setting memiliki fungsi untuk
menampilkan daftar mesin absensi yang terhubung dengan database attendance.
Perancangan antarmuka untuk Machine Setting dapat dilihat pada Gambar 4.16.
84
Gambar 4.16 Perancangan Antarmuka Menu Setting : Machine Setting
Menu Shift Schedule, berfungsi menampilkan data jadwal waktu kerja
perusahaan. Perancangan antarmuka Shift Schedule dapat dilihat pada Gambar
4.17.
Gambar 4.17 Perancangan Antarmuka Menu Setting : Shift Schedule
85
Menu Login Access berfungsi untuk menampilkan dan menambahkan data
akses untuk bisa login ke dalam sistem. Perancangan antarmuka Login Access
dapat dilihat pada Gambar 4.18.
Gambar 4.18 Perancangan Antarmuka Menu Setting : Login Access
86
4.4.2 Perancangan Antarmuka Electrical Control
Perancangan antarmuka pada Electrical Control ini menggunakan model layout
berupa aplikasi berbasiskan Desktop. Adapun antarmuka yang dirancang pada
Electrical Control ini memiliki beberapa tab menu untuk menampilkan Overview,
Monitor, dan Event Log. Berikut adalah penjelasan mengenai perancangan antarmuka
dari aplikasi Electrical Control.
1. Tab Menu Overview
Pada Tab Menu Overview ini menampilkan beberapa gambar lampu dan
switch untuk mengetahui konsisi atau keadaan lampu yang sedang menyala atau
mati. Adapun perancangan antarmukanya dapat dilihat pada Gambar 4.19.
Gambar 4.19 Perancangan Antarmuka Electrical Control : Overview
2. Tab Menu Monitor
Pada Tab Menu Monitor ini menampilkan list data berupa tabel yang
menunjukkan daftar ruangan beserta deskripsi dan status ON/OFF. Adapun
perancangan antarmukanya dapat dilihat pada Gambar 4.20.
87
Gambar 4.20 Perancangan Antarmuka Electrical Control : Monitor
3. Tab Menu Event Log
Pada Tab Menu Event Log ini menampilkan list data log terhadap event
yang terjadi terhadap pembacaan sistem input dan output dari controller. Pada
menu ini memiliki bentuk tampilan berupa tabel log. Adapun perancangan
antarmukanya dapat dilihat pada Gambar 4.21.
Gambar 4.21 Perancangan Antarmuka Electrical Control : Event Log
88
BAB V
IMPLEMENTASI SISTEM
Implementasi sistem adalah suatu kegiatan yang dilakukan setelah
analisa dan desain sistem suatu aplikasi. Tujuan implementasi sistem adalah
agar dapat dioperasikannya hasil dari analisa dan desain sistem yang dibuat,
serta memastikan sistem dapat berjalan sesuai dengan desain. Implementasi ini
menjabarkan tentang perlengkapan implementasi, konfigurasi program dan
pengembangan interface serta pengkodean.
5.1 Perlengkapan Implementasi
Untuk dapat menggunakan sistem, tentunya diperlukan suatu spesifikasi
perangkat keras (hardware) dan perangkat lunak (software) yang mendukung
agar sistem dapat berjalan dengan baik. Adapun spesifikasinya adalah sebagai
berikut:
No Perangkat Keras Kebutuhan
1. PC Server • Intel® Xeon ® CPU E3-
1225 v6
• Memory : 16GB
• OS : Windows Server 2008
R2
• Support : Hyper-V
2. Network • NIC (Network Interface
Card)
• Switch or Wi-Fi
• Router (Optional)
3. Electrical • Microcontroller : Moxa
E1212
89
• Relay MY4N-GS 220V
• Power Supply 24V
4. Biometric
(Attendance
Machine)
• Hardware : Solution X105-
ID
• Software : Attendance
Management (Driver)
5.2 Pengembangan interface dan Pengkodean
Pada pengembangan interface akan di jelaskan bagaimana gambaran
dari program yang sudah siap di jalankan dan disertakan dengan penjelasan
kode pemrograman dari Program Energy Saving menggunakan IoT Electrical
Control dengan Attendance System dan Pemetaan Ruangan Gedung. Sistem ini
memiliki 2 bentuk aplikasi, yaitu Attendance System berupa aplikasi Web base
dan Electrical Control berupa Desktop base.
5.2.1 Aplikasi Attendance (Web Base)
Pada aplikasi ini mengakomodasi dari fungsi Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance System dan Pemetaan
Ruangan Gedung sebagai bentuk view reporting dari hasil recording pada mesin
absensi dan report control terhadap status penggunaan energi tiap ruangan (area
kerja). Aplikasi Attendance ini dikembangkan menggunakan model web base
dengan bahasa pemrograman PHP yang dintegrasikan pada database MS SQL
Server. Dalam menghubungkan aplikasi Attendance ini dengan database MS
SQL Server dapat dilihat pada Gambar 5.1. dan Gambar 5.2.
<?php
$conn = odbc_connect('att2','att','att2018.');
90
?>
Gambar 5.1 Kode koneksi.php untuk koneksi ke database attendance
Kode $conn merupakan bentuk dari variable koneksi ke database Attendance
SQL Server dengan menggunakan ODBC Driver.
Kode : odbc_connect('att2','att','att2018.') memiliki komposisi
parameter dari odbc_connect( string $dsn , string $user , string
$password [, int $cursor_type ] ), yaitu
• dsn : Database Source Name atau nama koneksi yang telah
dihubungkan pada ODBC Driver untuk database Attendance, yaitu
att2
• User : Nama Login User, yaitu att
• Password : Password Login Database, yaitu att2018.
• cursor_type : merupakan optional untuk melakukan Set Type
Cursor.
<?php
$conn = odbc_connect('iot','sa','admin2018.');
?>
Gambar 5.2 Kode koneksi-iot.php untuk koneksi ke database IoT
Demikian pula untuk kode pada Gambar 5.2, memiliki fungsi parameter sebagai
berikut :
• dsn : Database Source Name atau nama koneksi yang telah
dihubungkan pada ODBC Driver untuk database Electrical Control,
yaitu iot
• user : Nama Login User, yaitu sa
• password : Password Login Database, yaitu att2018.
91
Penejelasan secara lebih rinci mengenai pengkodean setiap menu yang ada pada
Program Energy Saving menggunakan IoT Electrical Control dengan
Attendance System dan Pemetaan Ruangan Gedung adalah sebagai berikut :
5.2.1.1 Halaman Dashboard
Gambar 5.3 Tampilan Halaman Dashboard
Gambar 5.3 merupakan halaman utama pada sistem yang dibuat sebagai
tempat summary data yang akan dibuka oleh pihak HR (Human Resource) Dept
dan petugas admin tiap department. Pada halaman Dashboard ini memiliki
beberapa menu tampilan summary dengan kode untuk pada info Total
Employee (Gambar 5.4.), Attend (Gambar 5.5), Absence (Gambar 5.6), dan
Visitor (Gambar 5.7).
//Total Employee
$query_dashboard_employee = "SELECT COUNT(e.USERID) AS
TotalEmployee FROM USERINFO e WHERE Code = 'EMPLOYEE'";
$result_dashboard_employee=odbc_exec($conn,$query_dashboard_e
mployee);
$data_dashboard_employee=odbc_fetch_array($result_dashboard_e
mployee);
Gambar 5.4 Kode info Total Employee
92
Pada Gambar 5.6. memiliki fungsi COUNT untuk menampilkan data jumlah
Total Employee pada Tabel USERINFO dengan Kolom Kode ‘EMPLOYEE’.
Kemudian, dilakukanlah execute query pada kode odbc_exec($conn,
$query_dashboard_employee) dan dilakukan pengambilan data menggunkan
kode odbc_fetch_array.
//Total Present
$query_dashboard_present = "SELECT COUNT(at.USERID) AS
TotalPresent FROM View_Attendance_All at WHERE
(at.AttendanceDate = '$today') AND at.Code = 'EMPLOYEE' AND
(ActualIN IS NOT NULL OR ActualOUT IS NOT NULL)";
$result_dashboard_present=odbc_exec($conn,
$query_dashboard_present);
$data_dashboard_present =
odbc_fetch_array($result_dashboard_present);
Gambar 5.5 Kode info Total Attend (Present)
Pada Gambar 5.5. memiliki fungsi COUNT untuk menampilkan jumlah
karyawan yang hadir ini pada table View dengan nama View_Attendance_All
dimana tanggal kehadirannya adalah hari dengan variable $today = date('Y-
m-d').
//Total Not Present
$query_dashboard_notpresent = "SELECT COUNT(a.USERID) AS
TotalNotPresent FROM USERINFO a WHERE a.Code = 'EMPLOYEE' AND
a.USERID NOT IN (SELECT at.USERID FROM View_Attendance_All at
WHERE (at.AttendanceDate = '$today') AND at.Code =
'EMPLOYEE' AND (ActualIN IS NOT NULL OR ActualOUT IS NOT
NULL))";
$result_dashboard_notpresent=odbc_exec($conn,$query_dashboard
_notpresent);
$data_dashboard_notpresent=odbc_fetch_array($result_dashboard
_notpresent);
Gambar 5.6 Kode info Total Not (Present)
Pada Gambar 5.6. memiliki fungsi COUNT untuk menampilkan jumlah
karyawan yang tidak hadir pada table dengan nama USERINFO dimana tanggal
kehadirannya adalah hari ini dengan variable $today = date('Y-m-d') dan
USERID tidak ada didalam daftar kehadiran.
93
//Total Visitor
$query_dashboard_visitor = "SELECT COUNT(vt.ID) AS
TotalVisitor FROM VIEW_VISITOR_ATT vt WHERE vt.Tanggal
='$today'";
$result_dashboard_visitor=odbc_exec($conn,
$query_dashboard_visitor);
$data_dashboard_visitor =
odbc_fetch_array($result_dashboard_visitor);
Gambar 5.7 Kode info Total Visitor
Pada Gambar 5.7. memiliki fungsi COUNT pada tabel view
VIEW_VISITOR_ATT dimana tanggal kehadiran pengunjung adalah hari ini
dengan variable $today = date('Y-m-d').
5.2.1.2 Halaman Login
Gambar 5.8 Tampilan Halaman Login
Gambar 5.8 merupakan halaman yang harus dilewati sebelum masuk
kedalam sistem. Halaman ini mengharuskan pengguna untuk memasukkan
username dan password yang sudah terdaftar pada sistem. Pengkodean dari
tampilan ini terdapat pada Gambar 5.9.
94
1. View
<form role="form" action="auth.php" method="post"
class="login-form">
<div class="form-group">
<label class="sr-only" for="form-
username">Username</label>
<input type="text" name="username"
placeholder="Username" class="form-username form-
control" id="form-username">
</div>
<div class="form-group">
<label class="sr-only" for="form-
password">Password</label>
<input type="password" name="password"
placeholder="Password" class="form-password form-
control" id="form-password">
</div>
<button type="submit" name="login" value="Login"
class="btn">Sign in!</button>
</form>
Gambar 5.9 Kode Login.php
Pada Gambar 5.9 merupakan bentuk form dari kode HTML yang
menggunakan tag <form> dengan proses aksi pada halaman auth.php
dan metode yang digunakan adalah POST. Pada kode ini memiliki form
dengan dua input type yaitu username dengan type text, yaitu username
dan password dengan type password.
2. Proses Login
<?php
include('koneksi-login.php');
if(isset($_POST['login'])){
$user = $_POST['username'];
$pass = $_POST['password'];
$sql = odbc_exec($conn, "SELECT * FROM USERLOGIN WHERE
(SSN='$user' OR BADGENUMBER='$user') AND
MVerifyPass='$pass'");
if(odbc_num_rows($sql) == 0){
echo '<script language="javascript">alert("Failed !
Username or Password Wrong");
document.location="login.php";</script>';
}else{
$row = odbc_fetch_array($sql);
if($row['MVerifyPass'] == $pass){
$_SESSION['admin']=$user;
95
echo '<script
language="javascript">alert("Successfully, Welcome to
Attendance System As Administrator");
document.location="Admin/profile.php";</script>';
}
else{
echo '<script language="javascript">alert("Sorry Your
Account Not Authenticated !");
document.location="login.php";</script>';
}
}
}?>
Gambar 5.10 Kode Auth.php
Pada Gambar 5.10 merupakan bentuk dari proses eksekusi dari aksi
authentikasi login pada form login.php . Pada kode ini dilakukan proses
pencarian dari data login pada tabel USERLOGIN dengan memasukkan
parameter variable username ($user) dan password ($pass). Jika data
ditemukan, maka akan melakukan redirect page ke halaman profile.php,
dan jika tidak, maka akan tetap berada dihalaman login.php.
5.2.1.3 Halaman Profile
Gambar 5.11 Tampilan Halaman Profile
96
Gambar 5.11 merupakan halaman yang muncul setelah berhasil
melakukan login kedalam sistem. Halaman ini menyediakan informasi menu
yaitu nama anda, nama perusahaan anda, serta level akses anda. Pengkodean
dari halaman 5.11 adalah sebagai berikut.
1. View Profile Page
<div class="active tab-pane" id="profile">
<div class="box box-widget widget-user-2">
<div class="widget-user-header bg-red">
<div class="widget-user-image">
<img class="img-circle" src="dist/img/user2-
160x160.jpg" alt="User Avatar">
</div>
<h3 class="widget-user-username"><?php echo
$nama; ?></h3>
<h5 class="widget-user-desc"><?php echo
$company; ?></h5>
</div>
<div class="box-footer no-padding">
<ul class="nav nav-stacked">
<li><a href="#">Username <span class="pull-right
badge bg-blue"><?php echo $nama; ?></span></a></li>
<li><a href="#">Company <span class="pull-right
badge bg-blue"><?php echo $company; ?></span></a></li>
<li><a href="#">Level Privileges<span class="pull-
right badge bg-green"><?php if ($level == 1){ echo
"Admin"; }else{ echo "User";} ?></span></a>
</li>
</ul>
</div>
</div
</div><!-- /.tab-pane -->
Gambar 5.12 Kode Profile.php
Pada kode profile.php (Gambar 5.12) membentuk tampilan view dari
kode HTML dengan variabel berupa $nama, $company, dan $level.
2. Session Initial
<?php
include('../koneksi-mysql.php');
$login=$_SESSION['admin'];
$querylogin=mysql_query("SELECT user.id, user.username,
user.realname, user.password, user.email, user.phone,
user.company, user.department, department.DeptName,
user.division, division.division_name, user.position,
97
position.position_name, user.level, user.kanban_level
FROM user, division, department, position WHERE
user.division = division.id AND user.position =
position.id AND user.department = department.DeptID and
user.username='$login' OR user.employee_id='$login'");
$log=mysql_fetch_array($querylogin);
$nama = $log['realname'];
$company = $log['company'];
$level = $log['level'];
$division = $log['division_name'];
$email = $log['email'];
$phone = $log['phone'];
$id = $log['id'];
?>
Gambar 5.13 Kode Session.php
Pada kode Session.php (Gambar 5.13) memiliki fungsi untuk
mengambil data identitas dari sebuah session login
($_SESSION[‘admin’]). Data dari variabel session ini membentuk
parameter dari proses login berupa username atau employee_id.
5.2.1.4 Halaman Attendance
Halaman Attendance merupakan halaman yang digunakan untuk
mengelola data attendance. Pengguna dapat menambahkan data attendance
secara manual dengan melakukan input data kehadiran karyawan, melihat dan
melakukan edit data kehadiran karyawan yang telah direcord secara otomatis ke
database melalui mesin absensi yang telah dihubungkan ke server. Tampilan
dan pengkodean untuk halaman ini dapat dilihat pada Gambar 5.14 sampai
Gambar 5.21.
98
Gambar 5.14 Tampilan Halaman Add Attendance (Input Data Kehadiran Manual)
Gambar 5.15 Tampilan Halaman Data Attendance (Data Kehadiran Karyawan)
99
Gambar 5.16 Tampilan Halaman Data Log Attendance
Adapun pengkodean untuk semua menu attendance yaitu Add
Attendance, Data Attendance, dan Log Attendance. Dibawah ini adalah
pengkodean yang digunakan pada menu Attendance :
1. View Add Attendance
<?php
<form id="forminput" name="forminput" method="post"
action="attendance-add-process.php">
<div class="col-md-6">
<div class="form-group">
<label>Select Employee</label>
<select name="employee" id="employee" class="form-
control select2" onchange="changeValue1(this.value)" >
<option value='null'>Select Employee</option>
<?php
include('../koneksi.php');
$query1 = "SELECT a.USERID, a.BADGENUMBER, a.SSN,
a.NAME, a.GENDER, a.TITLE, a.DEFAULTDEPTID, b.DEPTNAME,
CONVERT (VARCHAR(10), a.BIRTHDAY, 105) AS BIRTHDATE,
a.CardNo, a.EMAIL, a.OPHONE FROM USERINFO a LEFT JOIN
DEPARTMENTS b ON a.DEFAULTDEPTID = b.DEPTID";
$result=odbc_exec($conn, $query1);
$jsArray1 = "var UID = new Array();\n";
while ($row = odbc_fetch_array($result))
{
echo '<option value="' . $row['USERID'] . '">' .
$row['SSN'] . ' - ' . $row['NAME'] . '</option>';
$jsArray1 .= "UID['" . $row['USERID'] . "'] =
{employee_id:'" . addslashes($row['SSN']) . "',name:'"
100
. addslashes($row['NAME']) . "', dept:'" .
addslashes($row['TITLE']) . "'};\n";
}
odbc_close ($conn);
?>
</select>
<script type="text/javascript">
<?php echo $jsArray1; ?>
function changeValue1(id){
document.getElementById('employee_id').value =
UID[id].employee_id;
document.getElementById('employee_name').value =
UID[id].name;
document.getElementById('department').value =
UID[id].dept;
};
</script>
</div>
<div class="form-group">
<label>Check Type</label>
<select name="check_type" id="check_type"
class="form-control select" required>
<option value='I'>IN</option>
<option value='O'>OUT</option>
</select>
</div>
<div class="form-group">
<label class="control-label">Datetime</label>
<div class='input-group date' id='datetimepicker1'>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
<input type='text' name="datetime" class="form-control"
placeholder="Date & Time" required/>
</div>
</div>
<input type="hidden" name="machine" id="machine"
class="form-control" value="Manual" readonly>
</div><!-- /.col -->
<div class="col-md-6">
<div class="form-group">
<label>Employee ID</label>
<input type="text" name="employee_id"
id="employee_id" class="form-control"
placeholder="Employee ID" readonly>
</div>
<div class="form-group">
<label>Employee Name</label>
<input type="text" name="employee_name"
id="employee_name" class="form-control"
placeholder="Employee Name" readonly>
</div>
<div class="form-group">
<label>Title/Department</label>
101
<input type="text" name="department"
id="department" class="form-control"
placeholder="Department" readonly>
</div>
</div>
</div><!-- /.row -->
</div><!-- /.box-body -->
<div class="box-footer">
<input type="submit" value="Submit" name="input"
class="btn btn-primary">
<br><br>
Please Check Fields above before submit !
</div>
</form>
Gambar 5.17 Kode attendance-add.php
Pada Kode attendance-add.php (Gambar 5.17) merupakan bentuk form
HTML dengan aksi pada halaman attendance-add-process.php
menggunakan method POST. Pada kode halaman ini memiliki 3 input
type text, yaitu employee_id, employee_name, dan department. Data
tersebut diperoleh berdasarkan event onChange select employee.
Sehingga ketika dipilih nama employee, maka secara otomatis data pada
textbox terisi sesuai dengan database USERINFO. Selanjutnya, terdapat
combo box select untuk melakukan proses IN (value = I) atau OUT
(value = O) dan terdapat datetime picker dengan input type berupa text
yang menggunakan javascript pada id='datetimepicker1' .
2. Proses Add Attendance
<?php
include "../koneksi.php";
if (isset($_POST['input'])){
$uid = addslashes(strip_tags($_POST['employee']));
$check_type =
addslashes(strip_tags($_POST['check_type']));
$datetime = $_POST['datetime'];
$sensorid = '107';
$machine = 'A5NS174560048';
$inputsql = "INSERT INTO [dbo].[CHECKINOUT]
102
([USERID],[CHECKTIME],[CHECKTYPE],[SENSORID],[sn],[User
ExtFmt])
VALUES
('$uid','$datetime','$check_type','$sensorid','$machine
','1')";
$input_exec = odbc_exec($conn, $inputsql);
if ($input_exec) {
echo "<script>alert('Input Attendance Success !');
document.location='attendance-
add.php?uid=".$uid."&datetime=".$datetime."'
</script>";
}else {
echo "<script>alert('Failed ! Please Try
Again');document.location='attendance-add.php'
</script> ";
}
}
?>
Gambar 5.18 Kode attendance-add-process.php
Pada kode attendance-add-process.php (Gambar 5.18) merupakan
bentuk halaman aksi untuk melakukan proses INSERT ke dalam tabel
CHECKINOUT, dengan query : INSERT INTO [dbo].[CHECKINOUT]
([USERID], [CHECKTIME], [CHECKTYPE], [SENSORID], [sn],
[UserExtFmt]) VALUES ('$uid', '$datetime', '$check_type',
'$sensorid', '$machine', '1')
3. View Data Attendance
<table id="example1" class="table table-hover">
<thead>
<tr>
<th>No</th>
<th>Date</th>
<th>EmployeeID</th>
<th>Name</th>
<th>Department</th>
<th>Shift</th>
<th>CheckIn</th>
<th>CheckOut</th>
<th>Duration</th>
<th>Count</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
103
<tbody>
<?php
include('../koneksi.php');
$no=1;
$query_data = "SELECT USERID, SSN, NAME,
AttendanceDate, DEFAULTDEPTID, DEPTNAME, TITLE,
CheckIN, CheckOUT, ShiftName, ActualIN, ActualOUT,
Count, Duration, Status
FROM View_Attendance_All WHERE (ActualIN IS NOT NULL
OR ActualOUT IS NOT NULL ) AND (AttendanceDate BETWEEN
'$start' AND '$end') AND Code = 'EMPLOYEE' ORDER BY
NAME, AttendanceDate";
$result_data=odbc_exec($conn, $query_data);
while($data = odbc_fetch_array($result_data)){
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $data['AttendanceDate'] ?></td>
<td><?php echo $data['SSN'] ?></td>
<td><?php echo $data['NAME'] ?></td>
<td><?php echo $data['DEPTNAME'] ?></td>
<td><?php echo $shift = $data['ShiftName']; ?></td>
<td><?php echo $data['ActualIN']; $check_in =
$data['ActualIN'];?>
</td>
<td><?php echo $check_out = $data['ActualOUT'] ?></td>
<td><?php echo round($data['Duration'],2);?></td>
<td><?php echo $data['Count'] ?></td>
<td><?php echo $data['Status'] ?></td>
<td><?php echo "<a href='attendance-
details.php?eid=".$data['USERID']."&date=".$data['Atten
danceDate']."&shift=".urlencode(base64_encode($shift)).
"&start=".$check_in."&end=".$check_out."'><button
class='btn btn-primary btn-sm'><i class='fa fa-search-
plus' ></i> Details </button></a>";
?>
</td>
</tr>
<?php
$no++;
}
?>
</tbody>
</table>
Gambar 5.19 Kode attendance-list.php
Pada kode attendance-list.php (Gambar 5.19) membentuk view berupa
tabel HTML dengan kolom header : No, Date, EmployeeID, Name,
Department, Shift, CheckIn, CheckOut, Duration, Count,
Status, dan Action. Dengan menampilkan data tiap kolomnya
menggunakan kode loop dari database while($data =
104
odbc_fetch_array ($result_data)) dari query : SELECT USERID,
SSN, NAME, AttendanceDate, DEFAULTDEPTID, DEPTNAME, TITLE,
CheckIN, CheckOUT, ShiftName, ActualIN, ActualOUT, Count,
Duration, Status FROM View_Attendance_All WHERE (ActualIN
IS NOT NULL OR ActualOUT IS NOT NULL ) AND (AttendanceDate
BETWEEN '$start' AND '$end') AND Code = 'EMPLOYEE' ORDER
BY NAME, AttendanceDate.
4. View Log Attendance
<?php
$query_data = "SELECT a.USERID, b.SSN, b.NAME,
b.DEFAULTDEPTID, d.DEPTNAME, CONVERT(date, a.CHECKTIME)
AS CHECKDATE, a.CHECKTIME, a.CHECKTYPE, e.MachineAlias,
CONVERT(varchar(8), a.CHECKTIME, 112) AS DATECODE,
replace(Convert (varchar(5),a.CHECKTIME, 108),':','')
AS TIMECODE, e.MachineNumber FROM CHECKINOUT a LEFT
JOIN USERINFO b ON a.USERID = b.USERID LEFT JOIN
Machines c ON a.sn = c.sn LEFT JOIN DEPARTMENTS d ON
b.DEFAULTDEPTID = d.DEPTID INNER JOIN Machines e ON
a.sn = e.sn AND c.MachineAlias <> 'Canteen' WHERE
CONVERT(date, a.CHECKTIME) BETWEEN '$start' AND '$end'
AND Code = 'EMPLOYEE' ORDER BY b.NAME, a.CHECKTIME";
?>
Gambar 5.20 Kode attendance-log.php
Pada kode attendance-log.php (Gambar 5.20) memiliki bentuk view
berupa tabel HTML yang diambil dari query : SELECT a.USERID,
b.SSN, b.NAME, b.DEFAULTDEPTID, d.DEPTNAME, CONVERT(date,
a.CHECKTIME) AS CHECKDATE, a.CHECKTIME, a.CHECKTYPE,
e.MachineAlias, CONVERT(varchar(8), a.CHECKTIME, 112) AS
DATECODE, replace(Convert (varchar(5),a.CHECKTIME,
108),':','') AS TIMECODE, e.MachineNumber FROM CHECKINOUT
a LEFT JOIN USERINFO b ON a.USERID = b.USERID LEFT JOIN
Machines c ON a.sn = c.sn LEFT JOIN DEPARTMENTS d ON
b.DEFAULTDEPTID = d.DEPTID INNER JOIN Machines e ON a.sn
105
= e.sn AND c.MachineAlias <> 'Canteen' WHERE CONVERT(date,
a.CHECKTIME) BETWEEN '$start' AND '$end' AND Code =
'EMPLOYEE' ORDER BY b.NAME, a.CHECKTIME.
5. Proses Delete Attendance
<?php
include('../koneksi.php');
$uid = $_GET['uid'];
$checktime = $_GET['checktime'];
$date = date("Y-m-d", strtotime($checktime));
$query_delete ="Delete FROM CHECKINOUT WHERE
USERID='$uid' AND CHECKTIME = '$checktime' ";
$result_data=odbc_exec($conn, $query_delete);
if($result_data){
echo "<script>alert('Record Data DELETED
!');document.location='attendance-
details.php?eid=".$uid."&date=".$date."' </script> ";
}else{
echo "<script>alert('Failed, Please Try Again
!');document.location='attendance-
details.php?eid=".$uid."&date=".$date."' </script> ";
}
?>
Gambar 5.21 Kode attendance-delete.php
Pada kode attendance-delete.php (Gambar 5.21) memiliki fungsi
DELETE dari tabel CHECKINOUT dengan parameter USERID
(variabel GET $uid) dan CHECKTIME (variabel $checktime).
5.2.1.5 Halaman Energy Control
Halaman Energy Control merupakan halaman yang digunakan untuk
melakukan registrasi mapping area kerja (ruangan) dan melihat data kontrol
terhadap status penggunaan energi. Pengkodean untuk halaman ini dapat dilihat
pada Gambar 5.22 sampai Gambar 5.27.
106
Gambar 5.22 Tampilan Registrasi Karyawan terhadap Area Kerja (Ruangan)
Gambar 5.23 Kode area-employee-add.php
Bentuk pengkodean untuk registrasi dari Gambar 5.22 dapat dilihat sebagai
berikut.
1. Register Employee Mapping Area
<?php
include "../koneksi-iot.php";
if (isset($_POST['register'])){
$employee_id =
addslashes(strip_tags($_POST['employee_id']));
107
$area_id=
addslashes(strip_tags(strtoupper($_POST['area_id'])));
$status = "Active";
$inputsql = "INSERT INTO [dbo].[AreaEmployee]
([Area_ID]
,[Employee_ID]
,[Status])
VALUES
('$area_id'
,'$employee_id'
,'$status')";
$input_exec = odbc_exec($conn, $inputsql);
if ($input_exec) {
echo "<script>alert('Register Area Employee Success !');
document.location='area-employee.php' </script>";
}else {
echo "<script>alert('Failed ! Please Try
Again');document.location='area-employee.php' </script> ";
}
}
?>
Gambar 5.24 Kode area-employee-add.php
Pada kode area-employee-add.php (Gambar 5.24) memiliki fungsi INSERT
kedalam tabel AreaEmployee dengan koneksi-iot.php (Gambar 5.2). Proses
insert ini memasukkan value employee_id (dari $_POST[‘employee_id’]),
area_id (dari $_POST['area_id']) dan status (dengan constant
value=”active”). Eksekusi query ini diproses pada script : $input_exec =
odbc_exec($conn, $inputsql).
2. Disable Employee Mapping Area
<?php
include "../koneksi-iot.php";
if (isset($_GET['id'])){
$id = $_GET['id'];
$inputsql = "DELETE FROM [dbo].[AreaEmployee] WHERE ID =
'$id'";
$input_exec = odbc_exec($conn, $inputsql);
if ($input_exec){
echo "<script>alert('Area Employee (ID : ".$id.") Disabled
!'); document.location='area-employee.php' </script>";
}else {echo "<script>alert('Failed ! Please Try
Again');document.location='area-employee.php' </script> ";
}}?>
Gambar 5.25 Kode area-employee-disabled.php
108
Pada kode area-employee-disabled.php (Gambar 5.25) memiliki fungsi
DELETE dari tabel AreaEmployee dengan koneksi-iot.php (Gambar 5.2).
Proses delete ini menggunakan parameter value $id (dari $_GET[‘id’]).
3. Retrieve Load Data Energy Status
<script>
$(document).ready(function() {
var table = $('#area-status').DataTable({
//sScrollX: "100%",
stateSave: true,
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
],
"AutoWidth": true,
"ajax": {
"url": "area-status-ws.php?menu=energy",
"dataType": "json",
"cache": false,
"contentType": "application/json;
charset=utf-8"
},
"deferRender": true,
"columns" : [
{'data': 'numeric', 'sType': 'numeric', "bVisible":
true, "bSearchable": true},
{'data': 'Area_Code', 'sType': 'string', "bVisible":
true, "bSearchable": true},
{'data': 'Area_Name', 'sType': 'string', 'bVisible':
true},
{'data': 'MachineName', 'sType': 'string',
'bVisible': true},
{'data': 'DIPort', 'sType': 'string', 'bVisible':
true},
{'data': 'DOPort', 'sType': 'string', 'bVisible':
true},
{'data': 'TotalEmployee', 'sType': 'string',
'bVisible': true},
{'data': 'Today', 'sType': 'string', 'bVisible':
true},
{'data': 'CountCheckIN', 'sType': 'string',
'bVisible': true},
{'data': 'CountCheckOUT', 'sType': 'string',
'bVisible': true},
{data: 'ON_OFF', render: function (data, type, full)
{
if(data == "ON"){
return "<span class='pull-middle badge bg-
green'>ON</span>";
}else if(data == "OFF"){
return "<span class='pull-middle badge bg-
navy'>OFF</span>";
109
}else{
return "<span class='pull-middle badge bg-
yellow'>Not Defined</span>";
}
}
}
],
"order": [[ 0, "asc" ]],
} );
//AutoReload AJAX
setInterval( function () {
table.ajax.reload( null, false ); // user paging is not
reset on reload
}, 1000 );
} );
</script>
Gambar 5.26 Kode Retrieve Load Data Energy Status
Pada kode javascript datatables (Gambar 5.26) memiliki fungsi untuk
mengambil data dari halaman JSON area-status-ws.php?menu=energy
dengan fungsi statesave=true (menyimpan status temporary pada browser)
dan penambahan fungsi export/print pada buttons: [ 'copy', 'csv',
'excel', 'pdf', 'print'].
4. Webservice JSON Database Energy Status
<?php
include('../koneksi-iot.php');
$menu = isset($_GET['menu']);
if(!empty($menu)){
if($menu == "energy"){
$query_data="SELECT [ID], [Area_ID], [Area_Code],
[Area_Name], [Machines_ID], [MachineName], [ConnectionIP],
[ConnectionAddress], [DIPort], [DOPort], [TotalEmployee],
[Today], [CountCheckIN], [CountCheckOUT],[ON_OFF],
[Status]
FROM [IOT_MAPPING].[dbo].[View_AreaControl]";
result_data=odbc_exec($conn, $query_data);
$result = array();
$numeric = 1;
while($r = odbc_fetch_array($result_data)){
extract($r);
$result[] = array( "numeric"=> $numeric, "ID"=> $ID,
"Area_ID" => $Area_ID, "Area_Code" => $Area_Code,
"Area_Name" => $Area_Name, "Machines_ID" => $Machines_ID,
"MachineName" => $MachineName, "ConnectionIP" =>
110
$ConnectionIP, "ConnectionAddress" => $ConnectionAddress,
"DIPort" => $DIPort, "DOPort" => $DOPort, "TotalEmployee"
=> $TotalEmployee, "Today" => $Today, "CountCheckIN" =>
$CountCheckIN, "CountCheckOUT" => $CountCheckOUT, "ON_OFF"
=> $ON_OFF, "Status" => $Status);
$numeric++;
}
$json = array("data" => $result);
}
}else{
$json = array("status" => 0, "msg" => "Menu Not Define");}
@odbc_close($conn);
/* Output header */
header('Content-type: application/json');
echo json_encode($json);
?>
Gambar 5.27 Kode Webservice JSON Database Energy Status
Pada kode webservice JSON (Gambar 5.27) memiliki fungsi untuk
mengambil data dari database IOT_MAPPING di tabel View_AreaControl.
Data yang ditampilkan diencode menjadi format JSON dengan script :
header('Content-type: application/json');
echo json_encode($json);
5.2.1.6 Halaman Check-In Canteen
Halaman menu Check-In Canteen merupakan suatu menu yang
berfungsi untuk mengetahui daftar karyawan yang melakukan check-in ke
kantin perusahaan. Hal ini diperlukan untuk melakukan penghitungan jumlah
karyawan yang makan untuk pembiayaan jumlah porsi kepada catering.
Kebutuhan ini dilakukan pengkontrolan terhadap departemen General Affair
dan Human Resource. Sistem ini menggunakan model absensi yang disediakan
sebelum mengambil makanan. Tampilan menu Check-In Canteen dapat dilihat
pada Gambar 5.28 untuk melakukan penambahan secara menual, jika tidak
melakukan absensi pada mesin dan Gambar 5.29 untuk mengetahui seleuruh
111
daftar karyawan yang menggunakan fasilitas catering makanan di kantin
perusahaan.
Gambar 5.28 Tampilan Menu Add Canteen Check-In
Gambar 5.29 Tampilan Menu List Canteen Check-In
Adapun pengkodean untuk menu Check-In Canteen dapat dilihat pada
Gambar 5.30 dan Gambar 5.31.
1. Insert Data Canteen Check-In
112
<?php
include "../koneksi.php";
if (isset($_POST['input'])){
$uid = addslashes(strip_tags($_POST['employee']));
$check_type =
addslashes(strip_tags($_POST['check_type']));
$datetime = $_POST['datetime'];
$machine = addslashes(strip_tags($_POST['machine']));
$inputsql = "INSERT INTO [dbo].[CHECKINOUT]
([USERID]
,[CHECKTIME]
,[CHECKTYPE]
,[sn]
,[UserExtFmt])
VALUES
('$uid'
,'$datetime'
,'$check_type'
,'$machine'
,'1')";
$input_exec = odbc_exec($conn, $inputsql);
if ($input_exec) {
echo "<script>alert('Input Check-In Canteen
Success !'); document.location='canteen-
add.php?uid=".$uid."&datetime=".$datetime."'
</script>";
}else {
echo "<script>alert('Failed ! Please Try Again');
document.location='canteen-add.php' </script> ";
}
}
?>
Gambar 5.30 Kode Insert Data Canteen Check-In
Pada kode Insert Data Check-In Canteen (Gambar 5.29) memiliki
fungsi INSERT kedalam tabel CHECKINOUT dengan koneksi.php
(Gambar 5.1). Proses insert ini memasukkan value USERID (dari
$_POST[‘uid’]), CHECKTIME (dari $_POST['datetime']),
CHECKTYPE (dari $_POST['check_type']), SN (dari
$_POST['machine']), dan UserExtFmt (dengan constant value=”1”)
yang diperoleh dari kode HTML pada tampilan menu Add Canteen
Check-In (Gambar 5.27). Eksekusi query ini diproses pada script :
$input_exec = odbc_exec($conn, $inputsql).
113
2. View List Canteen Check-In
<?php
include('../koneksi.php');
$no=1;
if(isset($_GET['start'])){
$start = $_GET['start'];
$end = $_GET['end'];
}else{
$start = date('Y-m-d');
$end = date('Y-m-d');
}
$query_data = "SELECT a.USERID, b.SSN, b.NAME,
b.DEFAULTDEPTID, d.DEPTNAME, CONVERT(date, a.CHECKTIME)
AS CHECKDATE, MIN(a.CHECKTIME) AS Checktime,
CASE WHEN CAST(a.CHECKTIME AS time) BETWEEN '09:00:00'
AND '14:30:00' THEN 'MAKAN SIANG'
WHEN CAST(a.CHECKTIME AS time) BETWEEN '17:00:00' AND
'19:30:00' THEN 'MAKAN SORE'
WHEN CAST(a.CHECKTIME AS time) BETWEEN '00:00:00' AND
'04:30:00' THEN 'MAKAN MALAM'
ELSE 'ADDITIONAL' END AS CATEGORY, c.MachineAlias,
CONVERT(varchar(8), MIN(a.CHECKTIME), 112) AS DATECODE,
replace(Convert (varchar(5),MIN(a.CHECKTIME),
108),':','') AS TIMECODE, c.MachineNumber FROM
CHECKINOUT a LEFT JOIN USERINFO b ON a.USERID =
b.USERID LEFT JOIN Machines c ON a.sn = c.sn LEFT JOIN
DEPARTMENTS d ON b.DEFAULTDEPTID = d.DEPTID WHERE
c.MachineAlias = 'Canteen' AND (CONVERT(date,
a.CHECKTIME) >= '$start' AND CONVERT(date, a.CHECKTIME)
<= '$end') GROUP BY a.USERID, b.SSN, b.NAME,
b.DEFAULTDEPTID, d.DEPTNAME, c.MachineAlias,
c.MachineNumber, CONVERT(date, a.CHECKTIME),
CASE WHEN CAST(a.CHECKTIME AS time) BETWEEN '09:00:00'
AND '14:30:00' THEN 'MAKAN SIANG'
WHEN CAST(a.CHECKTIME AS time) BETWEEN '17:00:00' AND
'19:30:00' THEN 'MAKAN SORE'
WHEN CAST(a.CHECKTIME AS time) BETWEEN '00:00:00' AND
'04:30:00' THEN ‘MAKAN MALAM'
ELSE 'ADDITIONAL' END ";
$result_data=odbc_exec($conn, $query_data);
while($data = odbc_fetch_array($result_data)){
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $data['CHECKDATE'] ?></td>
<td><?php echo $data['SSN'] ?></td>
<td><?php echo $data['NAME'] ?></td>
<td><?php echo $data['DEPTNAME'] ?></td>
<td><?php echo $data['Checktime'] ?></td>
<td><?php echo $data['CATEGORY'] ?></td>
<td><?php echo $data['MachineAlias'] ?></td>
</tr>
<?php
$no++;
}
?>
Gambar 5.31 Kode List Data Canteen Check-In
114
Pada kode List Data Canteen Check-In (Gambar 5.30) memiliki fungsi
untuk menampilkan data Check-In Canteen yang diidentifikasi
menggunakan machine alias ‘Canteen’ yang telah dibagi berdasarkan
waktu CHECKTIME, yaitu Makan Siang (09:00:00-14:30:00), Makan
Sore (17:00:00-19:30:00), Makan Malam (00:00:00-04:30:00) dan
Additional (di luar jam tersebut).
5.2.1.7 Halaman Employee
Halaman menu Employee merupakan suatu menu data master
karyawan. Pada menu ini user bisa melihat, menambahkan, dan mengubah data
karyawan. Tampilan menu Employee untuk menambahkan data karyawan bisa
dilihat pada Gambar 5.32 (Add Employee) dan untuk melihat data karyawan bisa
dilihat pada Gambar 5.33 (List Attendance) yang tersedia tombol edit untuk
melakukan pengubahan data karyawan.
Gambar 5.32 Tampilan Menu Add Employee
115
Gambar 5.33 Tampilan Menu List Employee
Adapun pengkodean untuk menu menambahkan data karyawan baru
(Add Employee) dan daftar karyawan (List Employee) dapat dilihat pada
Gambar 5.34 dan Gambar 5.35, serta untuk proses pengubahan data karyawan
pada Gambar 5.36.
1. Insert Data Employee
<?php
include "../koneksi.php";
if (isset($_POST['input'])){
$employee_id =
addslashes(strip_tags($_POST['employee_id']));
$employee_name =
addslashes(strip_tags(strtoupper($_POST['employee_name'
])));
$gender = $_POST['gender'];
$birthdate = $_POST['birthdate'];
$phone = $_POST['phone'];
$address = addslashes(strip_tags($_POST['address']));
$title = addslashes(strip_tags($_POST['title']));
$department = $_POST['department'];
$company = $_POST['company'];
$email = $_POST['email'];
$card_no = $_POST['card_no'];
$verificationmethod = 1;
$SQLID = "SELECT MAX(BADGENUMBER)+1 AS MAXUSERID FROM
USERINFO";
$result_data = odbc_exec($conn, $SQLID);
$data = odbc_fetch_array($result_data);
$userid = $data['MAXUSERID'];
$inputsql = "INSERT INTO [dbo].[USERINFO]
([BADGENUMBER]
116
,[SSN]
,[NAME]
,[GENDER]
,[TITLE]
,[BIRTHDAY]
,[STREET]
,[OPHONE]
,[VERIFICATIONMETHOD]
,[DEFAULTDEPTID]
,[CardNo]
,[EMAIL])
VALUES
('$userid'
,'$employee_id'
,'$employee_name'
,'$gender'
,'$title'
,'$birthdate'
,'$address'
,'$phone'
,'$verificationmethod'
,'$department'
,'$card_no'
,'$email')";
$input_exec = odbc_exec($conn, $inputsql);
if ($input_exec) {
echo "<script>alert('Input Employee Data Success !');
document.location='employee-
add.php?ssn=".$employee_id."' </script>";
}else {
echo "<script>alert('Failed ! Please Try
Again');document.location='employee-add.php' </script>
";
}
}
?>
Gambar 5.34 Kode Add Employee
Pada kode Add Employee (Gambar 5.33) memiliki fungsi INSERT ke
dalam tabel USERINFO. Parameter yang diinputkan antara lain, yaitu :
• $employee_id =
addslashes(strip_tags($_POST['employee_id']));
• $employee_name =
addslashes(strip_tags(strtoupper($_POST['employee_name
'])));
• $gender = $_POST['gender'];
• $birthdate = $_POST['birthdate'];
• $phone = $_POST['phone'];
• $address = addslashes(strip_tags($_POST['address']));
• $title = addslashes(strip_tags($_POST['title']));
• $department = $_POST['department'];
• $company = $_POST['company'];
• $email = $_POST['email'];
• $card_no = $_POST['card_no'];
117
2. List Data Employee
<table id="example1" class="table table-hover">
<thead>
<tr>
<th>No</th>
<th>EmployeeID</th>
<th>Name</th>
<th>Gender</th>
<th>BirthDate</th>
<th>Department</th>
<th>Title</th>
<th>Email</th>
<th>Telp</th>
<th>Card No</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
include('../koneksi.php');
$no=1;
$query_data = "SELECT a.USERID, a.BADGENUMBER, a.SSN,
a.NAME, a.GENDER, a.TITLE, a.DEFAULTDEPTID, b.DEPTNAME,
CONVERT (VARCHAR(10), a.BIRTHDAY, 105) AS BIRTHDATE,
a.CardNo, a.EMAIL, a.OPHONE FROM USERINFO a LEFT JOIN
DEPARTMENTS b ON a.DEFAULTDEPTID = b.DEPTID";
$result_data=odbc_exec($conn, $query_data);
while($data = odbc_fetch_array($result_data)){
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $data['SSN'] ?></td>
<td><?php echo $data['NAME'] ?></td>
<td><?php if($data['GENDER'] == 'M'){ echo
"MALE";}else{ echo "FEMALE"; } ?></td>
<td><?php echo $data['BIRTHDATE'] ?></td>
<td><?php echo $data['DEPTNAME'] ?></td>
<td><?php echo $data['TITLE'] ?></td>
<td><?php echo $data['EMAIL'] ?></td>
<td><?php echo $data['OPHONE'] ?></td>
<td><?php echo $data['CardNo'] ?></td>
<td><?php echo "<a href='employee-
details.php?ssn=".$data['SSN']."'><button class='btn
btn-primary btn-sm'><i class='fa fa-search-plus' ></i>
Details </button></a>";
?>
</td>
</tr>
<?php
$no++;
}
?>
</tbody>
</table>
Gambar 5.35 Kode List Employee
118
Pada kode List Employee (Gambar 5.35) memiliki fungsi query
SELECT untuk menampilkan data USERINFO yang di join dengan
tabel DEPARTMENTS sebagai data Master Employee.
3. Edit Data Employee
<?php
include "../koneksi.php";
if (isset($_POST['input'])){
$uid = $_POST['uid'];
$employee_id =
addslashes(strip_tags($_POST['employee_id']));
$employee_name =
addslashes(strip_tags(strtoupper($_POST['employee_name'
])));
$gender = $_POST['gender'];
$birthdate = $_POST['birthdate'];
$phone = $_POST['phone'];
$address = addslashes(strip_tags($_POST['address']));
$title = addslashes(strip_tags($_POST['title']));
$department = $_POST['department'];
$company = $_POST['company'];
$email = $_POST['email'];
$card_no = $_POST['card_no'];
$verificationmethod = 1;
$inputsql = "UPDATE [dbo].[USERINFO] SET
[SSN] = '$employee_id'
,[NAME] = '$employee_name'
,[GENDER] = '$gender'
,[TITLE] = '$title'
,[STREET] = '$address'
,[OPHONE] = '$phone'
,[VERIFICATIONMETHOD] =
'$verificationmethod'
,[DEFAULTDEPTID] = '$department'
,[CardNo] = '$card_no'
,[EMAIL] = '$email'
WHERE USERID = '$uid'";
$input_exec = odbc_exec($conn, $inputsql);
if ($input_exec) {
echo "<script>alert('Update Employee Data Success !');
document.location='employee-
details.php?ssn=".$employee_id."' </script>";
}else {
echo "<script>alert('Failed ! Please Try
Again');document.location='employee-
edit.php?uid=".$uid."' </script> ";
}
}
?>
Gambar 5.36 Kode Edit Employee
119
Pada kode Edit Employee (Gambar 5.36) memiliki fungsi query
UPDATE untuk melakukan Edit data pada tabel USERINFO sesuai
dengan parameter inputan dari form HTML.
5.2.1.8 Halaman Department
Pada halaman department merupakan halaman yang menampilkan
daftar data master department perusahaan yang telah ditetapkan oleh Human
Resource (HR) Department. Tampilan halaman ini bisa dilihat pada Gambar
5.37.
Gambar 5.37 Tampilan Halaman List Department
Adapun pengkodean dari halaman Department yang berisikan table
master dari Department dapat dilihat pada Gambar 5.38 dan plugin untuk fungsi
pendukung export dari data tables dapat dilihat pada Gambar 5.39.
1. Table List Employee
<table id="example1" class="table table-hover">
<thead>
<tr>
<th>No</th>
120
<th>Department Name</th>
<th>Company</th>
</tr>
</thead>
<tbody>
<?php
include('../koneksi.php');
$no=1;
$query_data = "SELECT a.DEPTID, a.DEPTNAME,
a.SUPDEPTID, b.DEPTNAME AS SUPDEPTNAME,
a.InheritParentSch, a.InheritDeptSch,
a.InheritDeptSchClass, a.AutoSchPlan, a.InLate,
a.OutEarly, a.InheritDeptRule, a.MinAutoSchInterval,
a.RegisterOT, a.DefaultSchId, a.ATT, a.Holiday,
a.OverTime FROM DEPARTMENTS AS a INNER JOIN
DEPARTMENTS AS b ON a.SUPDEPTID = b.DEPTID";
$result_data=odbc_exec($conn, $query_data);
while($data = odbc_fetch_array($result_data)){
?>
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $data['DEPTNAME'] ?></td>
<td><?php echo $data['SUPDEPTNAME'] ?></td>
</tr>
<?php
$no++;
}
?>
</tbody>
</table>
Gambar 5.38 Kode tabel List Department
Pada kode List Department (Gambar 5.38) memiliki fungsi query
SELECT untuk menampilkan data pada tabel DEPARTMENTS.
2. Javascript Plugin Export Data tables
<!-- DataTables -->
<script
src="plugins/datatables/jquery.dataTables.min.js"></scr
ipt>
<script
src="plugins/datatables/dataTables.bootstrap.min.js"></
script>
<script
src="https://cdn.datatables.net/buttons/1.2.1/js/dataTa
bles.buttons.min.js"></script>
<script
src="https://cdn.datatables.net/buttons/1.2.1/js/button
s.flash.min.js"></script>
121
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0
/jszip.min.js"></script>
<script
src="https://cdn.rawgit.com/bpampuch/pdfmake/0.1.18/bui
ld/pdfmake.min.js"></script>
<script
src="https://cdn.rawgit.com/bpampuch/pdfmake/0.1.18/bui
ld/vfs_fonts.js"></script>
<script
src="https://cdn.datatables.net/buttons/1.2.1/js/button
s.html5.min.js"></script>
<script
src="https://cdn.datatables.net/buttons/1.2.1/js/button
s.print.min.js"></script>
<script>
$("#example1").DataTable({
stateSave: true,
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]
});
</script>
Gambar 5.39 Kode Plugin Export Data tables
Pada kode Plugin Export Data tables (Gambar 5.38) memiliki fungsi
javascript datatables yang akan membentuk sebuah dynamical tabel
dengan penambahan fungsi export button : 'copy', 'csv', 'excel',
'pdf', 'print'.
5.2.1.9 Halaman Setting
Pada halaman setting ini memiliki beberapa submenu, yaitu Machine
Setting, Shift Schedule, dan Login Access. Pada halaman menu Machine Setting
akan menampilkan daftar mesin absensi yang terpasang dan berisikan informasi
Location, Serial Number, dan IP Address. Selanjutnya, menu Shift Schedule
akan menampilkan daftar pengaturan jam kerja shift yang telah diatur oleh
admin. Sedangkan menu Login Access, memiliki fungsi untuk membahkan hak
122
akses login ke dalam sistem attendance ini. Tampilan halaman Setting dari
beberapa submenu ini dapat dilihat pada Gambar 5.40 hingga Gambar 5.42.
Gambar 5.40 Tampilan Halaman Menu Setting : Machine Setting
Gambar 5.41 Tampilan Halaman Menu Setting : Shift Schedule
123
Gambar 5.42 Tampilan Halaman Menu Setting : Login Access
Adapun pengkodean dari halaman Setting yang berisikan submenu
Machine Setting, Shift Schedule, dan Login Access dapat dilihat pada Gambar
5.43 hingga Gambar 5.45.
1. Halaman Machine Setting
<table id="example1" class="table table-hover">
<thead>
<tr>
<th>No</th>
<th>Machines Name</th>
<th>IP Address</th>
<th>Port</th>
<th>Serial Number</th>
</tr>
</thead>
<tbody>
<?php
include('../koneksi.php');
$no=1;
$query_data = "SELECT [ID],[MachineAlias]
,[ConnectType],[IP],[SerialPort],[Port],[Baudrate],[Mac
hineNumber],[sn] FROM [Att].[dbo].[Machines] ORDER BY
[MachineNumber]";
$result_data=odbc_exec($conn, $query_data);
while($data = odbc_fetch_array($result_data)){
?>
<tr>
<td><?php echo $data['MachineNumber']; ?></td>
<td><?php echo $data['MachineAlias'] ?></td>
<td><?php echo $data['IP'] ?></td>
124
<td><?php echo $data['Port'] ?></td>
<td><?php echo $data['sn'] ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
Gambar 5.43 Tampilan kode halaman Machine Setting
Pada kode halaman Machine Setting (Gambar 5.42) memiliki fungsi
query SELECT untuk menampilkan data mesin absensi di tabel
Machines. Info yang didapat dari tabel ini antara lain : MachineNumber,
MachineAlias, IP, Port, dan SN.
2. Halaman Shift Schedule
<table id="example1" class="table table-hover">
<thead>
<tr>
<th>No</th>
<th>Shift Name</th>
<th>Start Working Hour</th>
<th>End Working Hour</th>
<th>Start Check-In</th>
<th>End Check-In</th>
<th>Start Check-Out</th>
<th>End Check-Out</th>
</tr>
</thead>
<tbody>
<?php
include('../koneksi.php');
$no=1;
$query_data = "SELECT schClassid, schName,
CONVERT(VARCHAR(20), StartTime, 108) AS StartTime,
CONVERT(VARCHAR(20), EndTime, 108) AS EndTime,
CONVERT(VARCHAR(20), CheckInTime1, 108) AS
CheckInTime1, CONVERT(VARCHAR(20), CheckInTime2, 108)
AS CheckInTime2, CONVERT(VARCHAR(20), CheckOutTime1,
108) AS CheckOutTime1, CONVERT(VARCHAR(20),
CheckOutTime2, 108) AS CheckOutTime2, Color, AutoBind,
WorkDay, SensorID, WorkMins FROM SchClass";
$result_data=odbc_exec($conn, $query_data);
while($data = odbc_fetch_array($result_data)){
?
<tr>
<td><?php echo $no; ?></td>
<td><?php echo $data['schName'] ?></td>
125
<td><?php echo $data['StartTime'] ?></td>
<td><?php echo $data['EndTime'] ?></td>
<td><?php echo $data['CheckInTime1']
?></td>
<td><?php echo $data['CheckInTime2']
?></td>
<td><?php echo $data['CheckOutTime1']
?></td>
<td><?php echo $data['CheckOutTime2']
?></td>
</tr>
<?php
$no++;
}
?>
</tbody>
</table>
Gambar 5.44 Tampilan kode halaman Shift Schedule
Pada kode halaman Shift Schedule (Gambar 5.44) memiliki fungsi query
SELECT untuk menampilkan data shift schedule di tabel SchClass. Info
yang didapat dari tabel ini antara lain, yaitu schName (Nama Schedule),
StartTime, EndTime, CheckInTime1 (start allowance Check-In Time),
CheckInTime2 (end allowance Check-In Time), CheckOutTime1 (start
allowance Check-Out Time), dan CheckOutTime2 (end allowance
Check-Out Time).
3. Halaman Shift Schedule
<?php
include "../koneksi.php";
if (isset($_POST['setup'])){
$ssn = $_POST['username'];
$password = $_POST['password'];
$admin = 15;
$updatesql = "UPDATE USERINFO SET SECURITYFLAGS =
'$admin', MVerifyPass = '$password' WHERE SSN =
'$ssn'";
$update_exec = odbc_exec($conn, $updatesql);
if ($update_exec) {
echo "<script>alert('User Granted as
Administrator !'); document.location='setting-
login.php' </script>";
}else {
126
echo "<script>alert('Failed ! Please Try
Again');document.location='setting-login.php' </script>
";
}
}
?>
Gambar 5.45 Tampilan kode halaman Login Access
Pada kode halaman Login Access (Gambar 5.45) memiliki fungsi untuk
memberikan hak login akses dengan melakukan perintah UPDATE pada
kolom SECURITYFLAGS menjadi 15 (variabel $admin), dan password
sesuai dengan inputan (variabel $password).
5.2.2 Aplikasi Electrical Control (Desktop Base)
Pada aplikasi Electrical Control ini memiliki fungsi sistem sebagai
kendali terhadap proses ON/OFF switch dari panel kelistrikan yang telah
dimapping berdasarkan area kerja dengan mengintegrasikan sistem attendance
yang terhubung dengan mesin absensi. Sistem ini menggunakan Moxa E1212
sebagai mikrokontroller pengatur Digital Input dan Digital Output dari sistem
kelistrikan yang telah dihubungkan. Adapun tampilan untuk sistem kontrol ini
dapat dilihat pada Gambar 5.46 hingga Gambar 5.51 yang berisikan pengkodean
yang menggunakan bahasa pemrograman C# dengan tools Visual Studio 2013
.
127
Gambar 5.46 Tampilan sistem kontrol kelistrikan
Adapun kode class yang digunakan antara lain :
1. Class Form1
public Form1()
{
InitializeComponent();
IniReadSettings();
ShowAreaMonitor();
_writer = new TextBoxStreamWriter(textBoxConsole);
Console.SetOut(_writer);
Console.WriteLine("Now redirecting output to the
text box");
// Add vertical scroll bars to the TextBox control.
textBoxConsole.ScrollBars = ScrollBars.Vertical;
// Allow the TAB key to be entered in the TextBox
control.
textBoxConsole.AcceptsReturn = true;
// Allow the TAB key to be entered in the TextBox
control.
textBoxConsole.AcceptsTab = true;
// Set WordWrap to true to allow text to wrap to
the next line.
textBoxConsole.WordWrap = true;
FilterFillAreaCombo();
TabEventLog();
}
Gambar 5.47 Tampilan Kode Class Form1
Pada kode Class Form1 (Gambar 5.47) memiliki fungsi untuk
melakukan inisialisasi komponen yang digunakan, membaca class
128
IniReadSettings, ShowAreaMonitor, Running Console Writter,
FilterFillAreaCombo dan TabEventLog.
2. Class IniReadSettings
IniFile iniFile = new IniFile(Application.StartupPath +
@"\Settings.ini");
public void IniReadSettings(){
IPAddressSettings = iniFile.ReadSetting("Settings",
"IPAddress", 32, "IP Address");
PortSettings = iniFile.ReadSetting("Settings",
"Port", 5, "Port");
TimeoutSettings = iniFile.ReadSetting("Settings",
"Timeout", 5, "Timeout");
PasswordSettings = iniFile.ReadSetting("Settings",
"Password", 255, "Timeout");
textBoxIPAddress.Text =
IPAddressSettings.ToString();
textBoxPort.Text = PortSettings.ToString();
textBoxTimeout.Text =
TimeoutSettings.ToString();
textBox1.Text = PasswordSettings.ToString();
}
Gambar 5.48 Tampilan Kode Class IniReadSettings
Pada kode Class IniReadSetting (Gambar 5.48) memiliki fungsi untuk
membaca file format .ini (Settings.ini) yang digunakan sebagai file
Setting untuk pengaturan IPAddress, Port, Timeout, dan Password
terhadap perangkat Moxa E1212.
3. Class EnabledSettings
void EnabledSettings()
{
textBoxIPAddress.Enabled = true;
textBoxPort.Enabled = true;
textBoxTimeout.Enabled = true;
textBoxPassword.Enabled = true;
}
Gambar 5.49 Tampilan Kode Class EnabledSettings
Pada kode Class EnabledSettings (Gambar 5.49) memiliki fungsi untuk
mengaktifkan (enabled) komponen textBoxIPAddress, textBoxPort,
textBoxTimeout, dan textBoxPassword.
129
4. Class DisabledSettings
void DisabledSettings()
{
textBoxIPAddress.Enabled = false;
textBoxPort.Enabled = false;
textBoxTimeout.Enabled = false;
textBoxPassword.Enabled = false;
}
Gambar 5.50 Tampilan Kode Class DisabledSettings
Pada kode Class DisabledSettings (Gambar 5.50) memiliki fungsi untuk
menon-aktifkan (disabled) komponen textBoxIPAddress,
textBoxPort, textBoxTimeout, dan textBoxPassword.
5. Class SaveIniSettings
void SaveIniSettings()
{
iniFile.WriteSetting("Settings",
"IPAddress", textBoxIPAddress.Text);
iniFile.WriteSetting("Settings", "Port",
textBoxPort.Text);
iniFile.WriteSetting("Settings", "Timeout",
textBoxTimeout.Text);
iniFile.WriteSetting("Settings",
"Password", textBox1.Text);
}
Gambar 5.51 Tampilan Kode Class SaveIniSettings
Pada kode Class SaveIniSettings (Gambar 5.51) memiliki fungsi untuk
melakukan proses penyimpanan atau melakukan write file .ini yang
berisi settingan dari IPAddress yang berada pada textBoxIPAddress,
Port pada textBoxPort, Timeout pada textBoxTimeout, dan
Password pada textBoxPassword.
130
6. Class Connection
void Connection()
{
string IPAddr = IPAddressSettings.ToString();
UInt16 Port = Convert.ToUInt16(PortSettings);
string Password = PasswordSettings.ToString();
UInt32 Timeout =
Convert.ToUInt16(TimeoutSettings);
ret = MXIO_CS.MXIO_GetDllVersion();
Console.WriteLine("MXIO_GetDllVersion:{0}.{1}.{2}.{3}",
(ret >> 12) & 0xF, (ret >> 8) & 0xF, (ret >> 4) & 0xF,
(ret) & 0xF);
ret = MXIO_CS.MXIO_GetDllBuildDate();
Console.WriteLine("MXIO_GetDllBuildDate:{0:x}/{1:x}/{2:
x}", (ret >> 16), (ret >> 8) & 0xFF, (ret) & 0xFF);
ret = MXIO_CS.MXEIO_Init();
Console.WriteLine("MXEIO_Init return {0}",
ret);
//Connect to ioLogik device
Console.WriteLine("MXEIO_E1K_Connect IP={0},
Timeout={1}, Password={2}", IPAddr, Timeout, Password);
ret =
MXIO_CS.MXEIO_E1K_Connect(System.Text.Encoding.UTF8.Get
Bytes(IPAddr), Port, Timeout, hConnection,
System.Text.Encoding.UTF8.GetBytes(Password));
CheckErr(ret, "MXEIO_E1K_Connect");
if (ret == MXIO_CS.MXIO_OK)
{
Console.WriteLine("MXEIO_E1K_Connect
Success.");
lbl_Status.Text = "Connected";
lbl_Status.ForeColor = Color.Green;
}
else
{
Console.WriteLine("MXEIO_E1K_Connect
Failed.");
lbl_Status.Text = "Not Connected";
lbl_Status.ForeColor = Color.Red;
}
}
Gambar 5.52 Tampilan Kode Class Connection
Pada kode Class Connection (Gambar 5.52) memiliki fungsi untuk
melakukan proses koneksi ke dalam device Moxa E1212 yang didukung
dengan file DLL sebagai driver dalam kode pemrograman C#. Adapun
131
script untuk koneksi adalah ret = MXIO_CS.MXEIO_E1K_Connect
(IPAddr , Port, Timeout, hConnection, Password);
Ketika dikoneksikan melakukan reply MXIO_CS.MXIO_OK, maka device
moxa E1212 telah terhubung dengan aplikasi, jika tidak maka koneksi
mengalami kegagalan (failed).
7. Event Click BtnStart
private void Btn_Start_Click(object sender, EventArgs
e)
{
SaveIniSettings();
DisabledSettings();
IniReadSettings();
Connection();
lbl_Status.Text = "Connected";
lbl_Status.ForeColor = Color.Green;
timer_start.Start();
AttendanceControl();
}
Gambar 5.53 Tampilan Kode Class Connection
Pada kode Event Click BtnStart (Gambar 5.53) memiliki proses untuk
melakukan pemanggilan class SaveIniSettings, DisabledSettings,
IniReadSettings, Connection, dan AttendanceControl. Selain itu, pada
event click ini dilakukan proses Start Timer yang memiliki perintah
seperti pada Gambar 5.54 yang menjalankan class DI,
AttendanceControl, dan ShowAreaMonitor.
private void timer_start_Tick(object sender, EventArgs
e)
{
DI();
AttendanceControl();
ShowAreaMonitor();
}
Gambar 5.54 Tampilan Kode Event Tick Timer
132
8. Class DI (Digital Input)
byte bytCount = 0, bytStartChannel = 0;
public void DI()
{
bytCount = 8;
bytStartChannel = 0;
UInt32[] dwGetDIValue = new UInt32[1];
ret = MXIO_CS.E1K_DI_Reads(hConnection[0],
bytStartChannel, bytCount, dwGetDIValue);
CheckErr(ret, "E1K_DI_Reads");
//DI 0 -- LAMPU 0
if ((dwGetDIValue[0] & (1 << 0)) == 0)
{
Console.WriteLine("DI 0 value: ch[{0}]
= {1}",bytStartChannel, ((dwGetDIValue[0] & (1 << 0))
== 0) ? "OFF" : "ON");
pictureBoxDI0_OFF.SendToBack();
pictureBox0_OFF.SendToBack();
System.Data.SqlClient.SqlConnection
connUpdate = konn.GetConn();
connUpdate.Open();
string inputDIPort0 = "DI0";
SetStatus = "OFF";
mode = "Manual";
SqlCommand cmdoff = new
SqlCommand("UPDATE AreaControl SET ON_OFF = '"+
SetStatus +"' WHERE DIPort = '" + inputDIPort0 + "'",
connUpdate);
cmdoff.ExecuteNonQuery();
connUpdate.Close();
CheckIOLog(inputDIPort0, SetStatus,
mode);
}
else
{
Console.WriteLine("DI 0 value: ch[{0}]
= {1}", bytStartChannel, ((dwGetDIValue[0] & (1 << 0))
== 0) ? "OFF" : "ON");
pictureBoxDI0_ON.SendToBack();
pictureBox0_ON.SendToBack();
System.Data.SqlClient.SqlConnection
connUpdate = konn.GetConn();
connUpdate.Open();
string inputDIPort0 = "DI0";
SetStatus = "ON";
mode = "Manual";
SqlCommand cmdoff = new
SqlCommand("UPDATE AreaControl SET ON_OFF = '" +
SetStatus + "' WHERE DIPort = '" + inputDIPort0 + "'",
connUpdate);
cmdoff.ExecuteNonQuery();
connUpdate.Close();
CheckIOLog(inputDIPort0, SetStatus,
mode);
}
Gambar 5.55 Tampilan Kode Class DI (Digital Input)
133
Pada kode Class DI (Digital Input) (Gambar 5.55) memiliki proses
pembacaan pada port Digital Input pada perangkat Moxa E1212. Script
untuk melakukan proses pembacaan Port DI (Digital Input) pada Moxa
E1212 ini adalah ret = MXIO_CS.E1K_DI_Reads(hConnection[0],
bytStartChannel, bytCount, dwGetDIValue);
Ketika reply dari shift value yang membentuk nilai binner 0, maka hal
ini menunjukkan Port DI 0 tidak memiliki tegangan (voltage) yang
berati OFF. Namun, selain itu berati Port DI 0 telah memiliki tegangan
(voltage) yang berati ON. Dalam proses DI Read ini akan melakukan
proses Update ke dalam database untuk mengetahui kondisi status
ON/OFF pada tiap Port DI (Digital Input). Hal ini juga dilakukan DI
Read dari Port DI 0 hingga Port DI 7.
9. Class DO (Digital Output)
void DO()
{
Connection();
ret = MXIO_CS.E1K_DO_Writes(hConnection[0],
bytStartChannel, bytCount, dwSetDOValue);
CheckErr(ret, "E1K_DO_Writes");
}
Gambar 5.56 Tampilan Kode Class DO (Digital Output)
Pada kode Class DO (Digital Output) (Gambar 5.56) memiliki fungsi
untuk mengaktifkan port Digital Output pada perangkat Moxa E1212.
Kemudian untuk melakukan SetDOValue terhadap Port Digital Output
dapat dilihat pada Gambar 5.57.
public void Set_DIO1()
{
String SetPort = "DIO1";
Console.WriteLine("Switch " + SetPort + "
Active !");
dwSetDOValue = 0xFF; //Hex 255
bytStartChannel = 1; //DIO1
bytCount = 1;
134
DO();
pictureBox0_ON.SendToBack();
//====SetOffAgain============
dwSetDOValue = 0; //Hex 0
bytStartChannel = 1; //DIO1
bytCount = 1;
// Thread.Sleep(6000);
DO();
pictureBox0_OFF.SendToBack();
//InsertLog
SetStatus = "OFF";
string mode = "Automatic";
insertlog(SetPort, SetStatus, mode);
}
Gambar 5.57 Tampilan Kode Class Set_DIO1 (Set Digital Output)
Proses untuk mengaktifkan Port DIO1 (Gambar 5.57) dilakukan dengan
memberikan inputan value dwSetDOValue = 0xFF yang bernilai sama
dengan bilangan Hexa 255 terhadap bytStartChannel yang
menunjukkan angka Port DIO yang digunakan. Pada proses SetDIO1
memiliki alur program untuk memberikan tegangan (voltage) terhadap
perangkat Remote Switch Omron dalam menonaktifkan saklar lampu
yang dihubungkan dengan Moxa pada Port DIO1, dan kemudian
menormalkan kembali dengan memberikan inputan value
dwSetDOValue = 0 yang bernilai sama dengan Hexa 0. Hal ini dipakai
juga untuk Port DIO2 hingga Port DIO6.
10. Class Attendance Control
public void AttendanceControl()
{
System.Data.SqlClient.SqlConnection conn =
konn.GetConn();
CheckHasRows(conn);
}
Gambar 5.58 Tampilan Kode Attendance Control
Pada kode Class Attendance Control (Gambar 5.58) memiliki perintah
kode untuk melakukan koneksi ke dalam Database SQL Server
135
menggunakan SqlClient Connection dan menjalankan class
CheckHasRow (Gambar 5.59).
public void CheckHasRows(SqlConnection connection)
{
using (connection)
{
SqlCommand command = new SqlCommand(
"SELECT Area_Name, TotalEmployee,
Today, CountCheckIN, CountCheckOUT, DIPort, DOPort,
ON_OFF, Status FROM View_AreaControl WHERE
Status='Active'", connection);
connection.Open();
SqlDataReader reader =
command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
string AreaName =
reader["Area_Name"].ToString();
string CheckIN =
reader["CountCheckIN"].ToString();
string CheckOUT =
reader["CountCheckOUT"].ToString();
string StatusONOFF =
reader["ON_OFF"].ToString();
string DOPort =
reader["DOPort"].ToString();
if (StatusONOFF == "ON" && CheckIN == CheckOUT)
{
switch(DOPort){
case "DIO1":
Set_DIO1();
break;
case "DIO2":
Set_DIO2();
break;
case "DIO3":
Set_DIO3();
break;
case "DIO4":
Set_DIO4();
break;
case "DIO5":
Set_DIO5();
break;
case "DIO6":
Set_DIO6();
break;
}
}
}
}
else
136
{
Console.WriteLine("No rows
found.");
}
reader.Close();
}
}
Gambar 5.59 Tampilan Kode Class CheckHasRows
Pada kode Class CheckHasRows (Gambar 5.58) melakukan proses
pembacaan fungsi SELECT dari query : SELECT Area_Name,
TotalEmployee, Today, CountCheckIN, CountCheckOUT, DIPort,
DOPort, ON_OFF, Status FROM View_AreaControl WHERE
Status='Active'. Dalam proses pembacaan query ini akan diketahui
jumlah Check-In dan Check-Out tiap area serta status lampu ON/OFF
dari database Attendance. Selain itu, dalam class ini dilakukan proses
pengecekan : Jika status lampu dalam keadaan ON dan jumlah Check-In
dan Check-Out sama, maka akan melakukan proses switch terhadap
DOPort dari database untuk aksi Set_DIO1 hingga Set_DIO6. Aksi
Set_DIO1 ini berfungsi untuk menon-aktifkan saklar ON/OFF lampu
sesuai Port DIO yang dinon-aktifkan.
11. Class Show Area Monitor
public void ShowAreaMonitor()
{
System.Data.SqlClient.SqlConnection conn =
konn.GetConn();
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT
Area_ID AS ID, Area_Code, Area_Name, MachineName,
ConnectionIP, DIPort, DOPort, TotalEmployee AS Total,
Today AS Date, CountCheckIN AS 'IN', CountCheckOUT AS
'OUT', ON_OFF AS Status, Status AS Remarks FROM
View_AreaControl", conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new
SqlDataAdapter(cmd);
da.Fill(ds, "View_AreaControl");
137
dataGridView1.DataSource = ds;
dataGridView1.DataMember =
"View_AreaControl";
dataGridView1.Refresh();
conn.Close();
dataGridView1.RowHeadersVisible = false;
}
Gambar 5.60 Tampilan Kode Class Show Area Monitor
Pada kode Class Show Area Monitor (Gambar 5.60) memiliki fungsi
untuk menampilkan data ke dalam tabel dataGridView1. SQL query
yang dijalankan adalah SELECT Area_ID AS ID, Area_Code,
Area_Name, MachineName, ConnectionIP, DIPort, DOPort,
TotalEmployee AS Total, Today AS Date, CountCheckIN AS
'IN', CountCheckOUT AS 'OUT', ON_OFF AS Status, Status AS
Remarks FROM View_AreaControl.
12. Class InsertLog
public void insertlog(string Port, string SetStatus,
string Mode)
{
System.Data.SqlClient.SqlConnection
connInsert = konn.GetConn();
connInsert.Open();
int machine_id = 1;
SqlCommand cmdoff = new SqlCommand("INSERT
INTO [dbo].[IOLog]
([DateTime],[MachineID],[Port],[Status],[Mode]) VALUES
(GETDATE(),'" + machine_id + "' , '" + Port + "' ,'" +
SetStatus + "','" + Mode + "')", connInsert);
cmdoff.ExecuteNonQuery();
connInsert.Close();
}
Gambar 5.61 Tampilan Kode Class InsertLog
Pada kode Class InsertLog (Gambar 5.60) memiliki fungsi untuk
melakukan proses Insert terhadap Log Event ON/OFF dari sebuah
pembacaan DIO (Digital Input Output) ke dalam database pada tabel
IOLog.
138
BAB VI
PENGUJIAN SISTEM
Pengujian perangkat lunak atau software testing dalam pembangunan
sistem atau software perlu dilakukan untuk menjamin kualitas dari software
yang dibangun, serta mengetahui error atau masalah yang terjadi, sehingga bisa
dilakukan perbaikan pada sistem. Software memiliki kualitas yang baik jika
mampu mempresentasikan hasil dari analisa, desain dan perancangan sistem
sesuai dengan kebutuhan user.
Pengujian yang dilakukan terhadap Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance System dan Pemetaan
Ruangan Gedung adalah menggunakan metode Black Box. Black box adalah
pengujian yang didasarkan pada detail aplikasi seperti tampilan aplikasi, fungsi-
fungsi yang ada pada aplikasi, dan kesesuaian alur fungsi dengan bisnis proses
yang di inginkan oleh user. Pengujian ini dibagi menjadi dua skenario yaitu Tes
Positif dan Tes Negatif. Tes positif dilakukan dengan memasukkan data yang
benar, sedangkan tes negatif dilakukan dengan memasukkan data yang salah.
6.1 Rencana Pengujian
Terdapat rencana pengujian yang akan diskenariokan, yaitu pengujian terhadap
sistem pada Aplikasi Attendance (Web Base) dan Aplikasi Electrical Control
(Desktop Base).
6.1.1 Rencana Pengujian pada Aplikasi Attendance (Web Base)
Rencana atau skenario pengujian sistem Aplikasi Attendance (Web Base)
dengan aktor user dapat dilihat pada Tabel 6.1.
139
Tabel 6.1 Rencana Pengujian pada Aplikasi Attendance (Web Base)
Pengujian Jenis Uji
Dashboard 1. Melihat informasi kehadiran, absen, jumlah karyawan,
jumlah visitor, grafik kehadiran per hari, grafik
perbandingan kehadiran dan absen, grafik penggunaan
konsumsi (check-in canteen)
Login 1. Isi data login
2. Verifikasi username
3. Verifikasi password
Profile 1. Melihat data informasi Profile
Menu Attendance 1. Melihat daftar list attendance
2. Menambah data attendance
3. Melihat daftar log attendance
4. Menghapus data attendance
Menu Energy
Control
1. Registrasi employee area
2. Melihat list employee area
3. Melihat energy status
Menu Check-In
Canteen
1. Menambah data check-in canteen
2. Melihat data check-in canteen
Menu Employee 1. Menambah data employee
2. Melihat data employee
3. Mengubah data employee
Menu Department 1. Melihat daftar department
Menu Settings 1. Melihat data machine
2. Melihat data shift schedule
3. Melihat data login access
4. Menambah login access
5. Menghapus login access
Logout 1. Keluar dari sistem
6.1.2 Rencana Pengujian pada Aplikasi Electrical Control (Desktop Base)
Rencana atau skenario pengujian sistem Aplikasi Electrical Control (Desktop
Base) dengan aktor user dapat dilihat pada Tabel 6.2.
Tabel 6.2 Rencana Pengujian pada Aplikasi Electrical Control (Desktop
Base)
140
Pengujian Jenis Uji
Connection Moxa
E1212
Menghubungkan aplikasi dengan perangkat Moxa
E1212
Read DI (Digital
Input)
Membaca Port DI (Digital Input) Moxa E1212
Set DO (Digital
Output)
Melakukan perintah write Port DO (Digital Output)
Moxa E1212
Attendance Control Melakukan pengecekan jumlah kehadiran Check-In
dan Check-Out, serta melakukan Set DO ke port
tertentu.
Insert Log Menyimpan Log ke database
6.1.3 Rencana Pengujian Efisiensi Penggunaan Listrik
Rencana atau skenario dalam pengujian efisiensi terhadap penggunaan listrik
dapat dilihat pada Tabel 6.3.
Tabel 6. 3 Rencana Pengujian terhadap efisiensi penggunaan listrik
Pengujian Jenis Uji
Perbandingan data
tagihan listrik tiap
bulan
Membandingkan data jumlah tagihan listrik bulan
Juli - Agustus 2018
6.2 Pengujian Sistem
Pengujian dilakukan berdasarkan aktifitas dari aktor user terhadap
Aplikasi Attendance (Web Base) dan Aplikasi Electrical Control (Desktop
Base). Pengujian disini terbagi atas dua skenario yaitu Tes Positif dan Tes
Negatif. Tes Positif dilakukan dengan memasukan data yang benar atau proses
141
yang benar sedangkan Tes Negatif dilakukan dengan memasukkan data yang
salah atau proses yang salah. Pengujian yang dilakukan dapat dilihat pada Tabel
6.3 sampai Tabel 6.14.
6.2.1 Pengujian Sistem pada Aplikasi Attendance (Web Base)
6.2.1.1 Halaman Dashboard
Pengujian dashboard pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.4.
Tabel 6. 4 Pengujian Dashboard
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Mengakses alamat
Attendance system
dan login, kemudian
buka menu Dashboard
Redirect ke halaman
dashboard.
[x] Diterima
[ ] Ditolak
6.2.1.2 Halaman Login
Pengujian login pada Aplikasi Attendance (Web Base) dengan aktor user
dapat lihat pada Tabel 6.5.
Tabel 6. 5 Pengujian Login
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Pada form login
memasukan data yang
terdaftar :
Username: 1701005
Password: 1701005
Redirect ke menu
dashboard pada
halaman profile.
[x] Diterima
[ ] Ditolak
Tes Negatif Pada form login
memasukan data yang
tidak terdaftar :
Username: test
Menampilkan pesan
error “ Failed !
Username or
password wrong”
[x] Diterima
[ ] Ditolak
142
Password: test
6.2.1.3 Halaman Profile
Pengujian profile pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.6.
Tabel 6.6 Pengujian Profile
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memilih menu
dashboard dan
submenu profile
Redirect ke halaman
profile.
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak memilih
submenu profile
Redirect ke halaman
lain
[x] Diterima
[ ] Ditolak
6.2.1.4 Halaman Attendance
Pengujian attendance pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.7.
Tabel 6.7 Pengujian Attendance
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memilih menu
attendance dan
submenu list
attendance
Menambah data
attendance pada
submenu add
attendance
Memilih menu
attendance dan
Redirect ke halaman
list attendance
Data attendance
berhasil ditambahkan
Redirect ke halaman
log attendance
Data attendance yang
dihapus menjadi
hilang
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
143
submenu log
attendance
Menghapus data
attendance
Tes Negatif Tidak memilih menu
attendance
Menambahkan data
attendance yang tidak
sesuai
Redirect ke halaman
lain
Data tidak bisa
disubmit
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
6.2.1.5 Halaman Energy Control
Pengujian Energy Control pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.8.
Tabel 6.8 Pengujian Energy Control
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memilih menu
Energy Control dan
submenu Sign
Employee Area dan
melakukan Register
Employee Area
Memilih menu
Energy Control dan
submenu Sign
Employee Area
Memilih menu
Energy Control dan
submenu Energy
Status
Data employee area
berhasil ditambahkan
Redirect ke halaman
Employee Area
Redirect ke halaman
Energy Status
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak memilih menu
Energy Control
Redirect ke halaman
lain
[x] Diterima
[ ] Ditolak
144
6.2.1.6 Halaman Check-In Canteen
Pengujian Check-In Canteen Energy Control pada Aplikasi Attendance
(Web Base) dengan menggunakan login dapat lihat pada Tabel 6.9.
Tabel 6.9 Pengujian Check-In Canteen
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memilih menu Check-
In Canteen dan
submenu Add
Canteen Check-In dan
memasukkan data
Check-In Canteen
baru
Memilih menu Check-
In Canteen dan
submenu List Canteen
Check-In
Data Check-In
Canteen baru berhasil
ditambahkan
Redirect ke halaman
data Check-In
Canteen
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak memilih menu
Check-In Canteen
Memasukkan data
yang tidak sesuai
Redirect ke halaman
lain
Data tidak bisa
disubmit
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
6.2.1.7 Halaman Employee
Pengujian Employee pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.10.
Tabel 6.10 Pengujian Employee
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memilih menu
Employee dan
submenu Add
Employee dan
memasukkan data
Employee baru
Data Employee baru
berhasil ditambahkan
[x] Diterima
[ ] Ditolak
145
Memilih menu
Employee dan
submenu List
Employee
Memilih Edit
Employee, dan
melakukan
pengubahan data
Redirect ke halaman
data Employee
Data Employee
berhasil diubah
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak memilih menu
Employee
Memasukkan data
employee yang tidak
sesuai
Redirect ke halaman
lain
Data tidak bisa
disubmit
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
6.2.1.8 Halaman Department
Pengujian Department pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.11.
Tabel 6.11 Pengujian Department
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memilih menu
Department dan
submenu List
Department
Redirect ke halaman
List Department
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak memilih menu
Department
Redirect ke halaman
lain
[x] Diterima
[ ] Ditolak
6.2.1.9 Halaman Setting
Pengujian Setting pada Aplikasi Attendance (Web Base) dengan
menggunakan login dapat lihat pada Tabel 6.12.
Tabel 6.12 Pengujian Setting
Skenario Data Masukan Hasil yang diharapkan Simpulan
146
Tes Positif Memilih menu Setting
dan submenu
Machine Setting
Memilih menu Setting
dan submenu Shift
Schedule
Memilih menu Setting
dan submenu Login
Access
Menambahkan data
Login Access baru
dari list employee
Menghapus data
Login Access dari list
yang dipilih
Redirect ke halaman
List Machine
Redirect ke halaman
List Machine
Redirect ke halaman
List Login Access
Data Login Access
berhasil ditambahkan
Data login yang
dipilih berhasil
dihapus
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak memilih menu
Setting
Menambahkan data
login access selain
dari list employee
Redirect ke halaman
lain
Data tidak dapat
ditemukan, dan tidak
bisa disubmit
[x] Diterima
[ ] Ditolak
[x] Diterima
[ ] Ditolak
147
6.2.2 Pengujian Sistem pada Aplikasi Electrical Control (Desktop Base)
6.2.2.1 Connection Moxa E1212
Pengujian connection Moxa E1212 pada Aplikasi Electrical Control
(Desktop Base) dapat lihat pada Tabel 6.13.
Tabel 6.13 Pengujian Department
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memasukkan IP
Address, Port, dan
Timeout yang benar
Muncul status
Connected
[x] Diterima
[ ] Ditolak
Tes Negatif Memasukkan IP
Address, Port, dan
Timeout yang salah
Muncul pesan
Koneksi Gagal
[x] Diterima
[ ] Ditolak
6.2.2.2 Read DI (Digital Input)
Pengujian Read DI (Digital Input) Moxa E1212 pada Aplikasi Electrical
Control (Desktop Base) dapat lihat pada Tabel 6.14.
Tabel 6.14 Pengujian Read DI (Digital Input)
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Memberikan tegangan
5 V pada salah satu
port DI
Indikator lampu DI
pada aplikasi menyala
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak terdapat
tegangan 5 V pada
salah satu port DI
Indikator lampu DI
pada aplikasi mati
[x] Diterima
[ ] Ditolak
148
6.2.2.3 Set DO (Digital Output)
Pengujian Set DO (Digital Output) Moxa E1212 pada Aplikasi
Electrical Control (Desktop Base) dapat lihat pada Tabel 6.15.
Tabel 6.15 Pengujian Set DO (Digital Output)
Skenario Data Masukan Hasil yang diharapkan Simpulan
Tes Positif Menekan tombol
switch DO pada
aplikasi
Remote Switch ketika
ON berubah menjadi
OFF
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak menekan
tombol switch DO
pada aplikasi
Remote Switch ketika
ON tidak berubah
menjadi OFF
[x] Diterima
[ ] Ditolak
6.2.2.4 Attendance Control
Pengujian Attendance Control pada Aplikasi Electrical Control
(Desktop Base) dapat lihat pada Tabel 6.16.
Tabel 6.16 Pengujian Attendance Control
Skenario Data Masukan Hasil yang
diharapkan
Simpulan
Tes Positif Melakukan Absensi
IN dan OUT pada area
tertentu dengan
jumlah yang sama dan
posisi switch dalam
keadaan ON.
Remote switch area
tertentu akan berubah
dari ON menjadi
OFF
[x] Diterima
[ ] Ditolak
Tes Negatif Melakukan Absensi
IN dan OUT pada area
tertentu dengan
jumlah yang tidak
sama dan posisi
switch dalam keadaan
ON.
Remote switch tetap
berada dalam kondisi
ON
[x] Diterima
[ ] Ditolak
149
6.2.2.5 Insert Log
Pengujian Insert Log pada Aplikasi Electrical Control (Desktop Base)
dapat lihat pada Tabel 6.17.
Tabel 6.17 Pengujian Insert Log
Skenario Data Masukan Hasil yang
diharapkan
Simpulan
Tes Positif Melakukan ON/OFF
remote switch (lampu)
dan terjadi perubahan
event.
Aplikasi akan
melakukan record
event log ke dalam
database.
[x] Diterima
[ ] Ditolak
Tes Negatif Tidak melakukan
ON/OFF remote
switch (lampu) atau
terjadi perubahan
event.
Aplikasi tidak akan
melakukan record
event log ke dalam
database.
[x] Diterima
[ ] Ditolak
6.3 Pengujian Data Efisiensi
Pengujian dilakukan berdasarkan data yang disajikan untuk mengetahui
hasil dari efisiensi setelah implementasi sistem. Hasil dari pengujian data
terhadap jumlah tagihan listrik pada bulan Juli 2018 hingga Agustus 2018 dapat
dilihat pada Tabel 6.18
Tabel 6. 18 Pengujian Data Efisiensi
Data Data Masukan Hasil yang
diharapkan
Simpulan
Tes Positif • Tagihan Bulan Juli
2018 : Rp
160.187.023
• Tagihan Bulan
Agustus 2018 : Rp
146.699.681
Tagihan bulan
Agustus 2018 lebih
kecil dari bulan
sebelumnya, yaitu
Juli 2018.
[x] Diterima
[ ] Ditolak
150
BAB VII
KESIMPULAN
7.1 Kesimpulan
Berdasarkan hasil pengumpulan, pengolahan, analisis data dan
perancangan sistem maka dapat diambil kesimpulan bahwa :
1. Program Energy Saving menggunakan IoT Electrical Control dengan
Attendance System dan Pemetaan Ruangan Gedung sangat berguna dalam
melakukan proses kendali terhadap penggunaan energi listrik dengan
memanfaatkan integrasi aplikasi attendance (kehadiran karyawan) yang
memiliki trigger ketika karyawan pada area kerja tertentu sudah melakukan
absensi pulang, secara otomatis kendali kelistrikan (seperti panel atau
lampu) akan berubah switch menjadi OFF. Penggunaan sistem kontrol yang
otomatis ini bisa melakukan penghematan penggunaan energi listrik (energy
saving) yang lebih, dan menjadikan proses kontrol kelistrikan ini lebih
efisien, serta efektif dibandingkan dengan sebelumnya yang masih bersifat
konvensional tanpa ada sistem kendali untuk melakukan kontrol.
2. Aplikasi Attendance (kehadiran) pada Program Energy Saving
menggunakan IoT Electrical Control dengan Attendance System dan
Pemetaan Ruangan Gedung yang dikembangkan dalam tampilan aplikasi
Web lebih dipermudah dalam mengontrol data kehadiran karyawan dan
pengontrolan konsumsi catering secara realtime dari mesin biometric
attendance. Tampilan yang disajikan dalam aplikasi ini bisa berupa grafik
dashboard dan tabel.
151
3. Aplikasi Electrical Control pada Program Energy Saving menggunakan IoT
Electrical Control dengan Attendance System dan Pemetaan Ruangan
Gedung memiliki fungsi untuk melakukan proses kendali terhadap
peralatan hardware IO Logic model Moxa E1212 yang telah diintegrasikan
dengan database attendance (data kehadiran) dari record mesin biometric
attendance.
7.2 Saran
Saran yang dapat diberikan untuk pengembangan Program Energy
Saving menggunakan IoT Electrical Control dengan Attendance System dan
Pemetaan Ruangan Gedung ini selanjutnya adalah sebagai berikut :
1. Sistem ini masih bisa dikembangkan menggunakan kombinasi beberapa sensor
dan penggunaan alat ukur kelistrikan untuk pengembangan menjadi sebuah
sistem smart building.
2. Implementasi dari Attendance system bisa dikembagkan dan diintegrasikan
menjadi sistem HRIS (Human Resource Information System), yang bisa
dilengkapi dengan fitur payroll, leave, dan skill/competence.
3. Pada proses development program disarankan untuk menggunakan metode
interrupt dibandingkan dengan metode looping yang membutuhkan banyak
resource.
152
DAFTAR PUSTAKA
Alamijaya, J. (2017, Mei 19). Tarif Dasar Listrik Naik Rakyat Menjerit. Retrieved
Mei 20, 2018, from Tribun News:
http://kaltim.tribunnews.com/2017/05/19/tarif-dasar-listrik-naik-rakyat-
menjerit
Amphan. (2014, Agustus 03). Arduino Smart Home Automation Android App.
Retrieved from softpowergroup.net:
https://android.epiropo.com/ReadArticle/Read.html#1271079-
arduino.smarthome.automation.html
Chan, E. K., Othman, M. A., & Razak, M. A. (2017). IoT Based Smart Classroom
System. UTeM OPEN JOURNAL SYSTEM, e-ISSN: 2289-8131 , Vol. 9 No.
3-9.
Doherty, A. (2018, Oktober 16). SMARTCITY GREEN BUILDINGS INFO SIGHT.
Retrieved Januari 10, 2019, from TOWNOFRESACA.COM:
http://www.townofresaca.com/building/325/smart-building-supply/smartcity-
green-buildings-info-sight/
Firdausi, A. L., Sumardi, & Christyono, Y. (2012). Aplikasi Sistem Pengendali dan
Manajemen Penjadwal Peralatan Listrik dalam Ruangan. Transmisi, Vol. 2
Hal. 57-62.
Junaidi, A. (2015, Agustus 10). Internet of Things, Sejarah, Teknologi dan
Penerapannya. Jurnal Ilmiah Teknologi Informasi Terapan, Volume I, No 3.
Kementerian Sekretariat Negara RI. (2016, Mei 18). Tiga Sasaran Program Listrik
35.000 MegaWatt. Retrieved Mei 20, 2018, from PresidenRI.go.id:
http://presidenri.go.id/program-prioritas-2/tiga-sasaran-program-listrik-35-
000-megawatt.html
Kisan, B., & S.K., B. (2017, Januari). Zigbee and RFID Based Student Attendance
Monitoring System with Energy Saving. IARJSET, Vol.4, Special Issue 2.
Kosasi, S. (2015). Penerapan Rapid Application Development Dalam Sistem
Perniagaan Elektronik Furniture. Citec Journal, Vol. 2 No. 4.
Lopez P, F. D. (2013). Survey of internet of things technologies for clinical
environments. 2013 27th International Conference on Advanced Information
Networking and Applications Workshops. Barcelona, Spain: IEEE.
153
Phillips, C. L. (1996). Sistem Kontrol Dasar. Jakarta: Erlangga.
Rietsema, D. (2019, April 18). HRIS. Retrieved Juni 18, 2018, from HR Payroll
Systems: https://www.hrpayrollsystems.net/hris/
Tan, J., & Koo, S. G. (2014). A Survey of Technologies in Internet of Things. 2014
IEEE International Conference on Distributed Computing in Sensor Systems
(pp. 269-274). Marina Del Rey, CA, USA: IEEE.
Triboesono, A. (2017). Statistik Ketenagalistrikan 2016 Edisi No. 30 Tahun
Anggaran 2017. Jakarta: Direktorat Jenderal Ketenagalistrikan Kementerian
Energi dan Sumber Daya Mineral.
Wikipedia. (2018, March 2). Penghematan energi. Retrieved from Wikipedia:
https://id.wikipedia.org/wiki/Penghematan_energi