TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan...

104
PEMBUATAN APLIKASI ABSENSI MENGGUNAKAN QR CODE DI POLDA KALTIM BERBASIS ANDROID TUGAS AKHIR WINDAWATI NIM : 150309281393 POLITEKNIK NEGERI BALIKPAPAN JURUSAN TEKNIK ELEKTRONIKA BALIKPAPAN 2018

Transcript of TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan...

Page 1: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

PEMBUATAN APLIKASI ABSENSI MENGGUNAKAN QR CODE

DI POLDA KALTIM BERBASIS ANDROID

TUGAS AKHIR

WINDAWATI

NIM : 150309281393

POLITEKNIK NEGERI BALIKPAPAN

JURUSAN TEKNIK ELEKTRONIKA

BALIKPAPAN

2018

Page 2: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

i

PEMBUATAN APLIKASI ABSENSI MENGGUNAKAN QR CODE

DI POLDA KALTIM BERBASIS ANDROID

TUGAS AKHIR

KARYA TULIS INI DIAJUKAN SEBAGAI SALAH SATU SYARAT

UNTUK MEMPEROLEH GELAR AHLI MADYA DARI

POLITEKNIK NEGERI BALIKPAPAN

WINDAWATI

NIM : 150309281393

POLITEKNIK NEGERI BALIKPAPAN

JURUSAN TEKNIK ELEKTRONIKA

BALIKPAPAN

2018

Page 3: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya
Page 4: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

iii

SURAT PERNYATAAN

Yang bertanda tangan di bawah ini :

Nama : Windawati

Tempat/Tgl Lahir : Petung, 12 Agustus 1997

NIM : 150309281393

Menyatakan bahwa tugas akhir saya yang berjudul ” Pembuatan Aplikasi Absensi

Menggunakan Qr Code Di Polda Kaltim Berbasis Android“ adalah bukan

merupakan hasil karya tulis orang lain, baik sebagian maupun keseluruhan,

kecuali dalam kutipan yang saya sebutkan sumbernya.

Demikian pernyataan ini saya buat dengan sebenar-benarnya dan apabila

pernyataan ini tidak benar, penulis bersedia mendapat sanksi akademis.

Balikpapan, 21 Agustus 2018

Mahasiswa,

Windawati

NIM : 150309281393

Page 5: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

iv

Tugas Akhir ini saya persembahkan kepada

Ayahanda dan Ibunda tercinta

Darmad & Partimah

Saudara yang kusayangi

Zuda Ersa Hidayat

Seluruh Teman-Teman TKJ Angkatan 2015

Sahabat – Sahabat yang selalu memberi dukungan

Risa Ariska

Umi Syafa’ati

Julia Maulinda

Rahmayanti

Ruri Juliana

Yuliana Dwi Suwardina

Rahayu Ningsih

Julianita Carlina

Elvis Yericzon

Hermasnyah

Pembimbing Saya

Totok Sulistyo.S.T.,M.T.

Ali Abrar S.Si.,M.T.

Page 6: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

v

SURAT PERNYATAAN PERSETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK

KEPENTINGAN AKADEMIS

Sebagai civitas akademik Politeknik Negeri Balikpapan, saya yang bertanda

tangan di bawah ini :

Nama : Windawati

NIM : 150309281393

Program Studi : Teknik Elektronika

Judul TA : Pembuatan Aplikasi Absensi Menggunakan Qr Code

Di Polda Kaltim Berbasis Android

Demi pengembangan ilmu pengetahuan, saya menyetujui pemberian hak kepada

Politeknik Negeri Balikpapan untuk menyimpan, mengalih media atau format-

kan, mengelola dalam bentuk pangkalan data (database), dan merawat, serta

untuk mempublikasikan tugas akhir saya selama tetap mencantumkan nama saya

sebagai penulis/pencipta.

Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Kota Balikpapan

Pada tanggal : 21 Agustus 2018

Yang menyatakan

Materai 6000

Windawati

150309281393

Page 7: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

vi

ABSTRACT

At present each institution does attendance which aims to find out

employees both manually and computerized including in East Kalimantan

Regional Police who do fingerprint attendance located in different places and

often absent employees on time for this to be ineffective and efficient. Therefore

the author makes attendance using an Android-based QR code.

In this application employees must have android to be able to access the

application and scan attendance. The QR Code will issue at the admin's entry and

return hours on a monitor that can be scanned by all employees. This application

is android based which can be accessed by employees and web based for admin.

When the admin logs in on the web, it can manage employee data that is

changing, adding and deleting employee data and can also recover employee

attendance data can be downloaded according to the time required in the form of

a pdf file. Making this application using an Android studio. Therefore, in the

making, besides using the Java programming language, the author also uses the

PHP and HTML programming languages on the web and the database uses

MySQL.

This study resulted in an application that is useful to facilitate employees

in attendance by using a scan QR code that can be accessed on android owned by

employees.

Keywords: Application, attendance, Scan, QR Code, Android.

Page 8: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

vii

ABSTRAK

Saat ini setiap instansi melakukan absensi yang bertujuan untuk

mengetahui kehadiran karyawan baik secara manual ataupun yang sudah

terkomputerisasi termasuk di Polda Kaltim yang melakukan absensi

menggunakan fingerprint yang terletak di tempat yang berbeda – beda dan

karyawan sering melakukan absensi tidak tepat waktu sehingga hal ini menjadi

tidak efektif dan efisien. Oleh karena itu penulis membuat aplikasi absensi

menggunakan QR code berbasis android.

Pada aplikasi ini karyawan harus memiliki android untuk dapat mengakses

aplikasi dan melakukan scan absensi . QR Code nya akan ditampilkan pada jam

masuk dan pulang oleh admin pada monitor yang dapat di scan oleh seluruh

karyawan. Aplikasi ini berbasis android yang dapat diakses oleh karyawan dan

berbasis web untuk admin. Ketika admin login pada web tersebut maka dapat

mengelola data karyawan yaitu mengubah, manambah dan menghapus data

karyawan serta juga dapat mengelola data rekap absensi karyawan dapat di unduh

sesuai waktu yang dibutuhkan yang berupa file pdf. Pembuatan aplikasi ini

menggunakan android studio. Oleh karena itu dalam pembuatannya, selain

menggunakan bahasa pemrograman Java, penulis juga menggunakan bahasa

pemrograman PHP, dan HTML pada web serta database-nya menggunakan

MySQL.

Penelitian ini menghasilkan sebuah aplikasi absensi yang berguna untuk

memudahkan karyawan dalam melakukan absensi dengan menggunakan scan QR

code yang dapat diakses pada android yang dimiliki oleh karyawan.

Kata kunci : Aplikasi, absensi, Scan, QR Code, Android.

Page 9: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

viii

KATA PENGANTAR

Dengan memanjatkan puja dan puji syukur kehadirat Allah Yang Maha Esa,

karena atas rahmat serta hidayah-Nya, penulis dapat menyelesaikan sebuah tugas

akhir dengan judul “Pembuatan Aplikasi Absensi Menggunakan Qr Code Di

Polda Kaltim Berbasis Android”. Penulis tidak dapat menyelesaikannya

penyusunan tugas akhir ini apabila tidak dibantu oleh berbagai pihak oleh karena

itu penulis mengucapankan terima kasih yang sebesar-besanya kepada :

1. Direktur Politeknik Negeri Balikpapan, Bapak Ramli, SE.,M. M.

2. Ketua Program Studi Teknik Elektronika, Bapak Drs. Armin, M.T.

3. Pembimbing I, Bapak Totok Sulistyo S.T., M. T., yang telah membimbing

dan memberikan pengarahan selama pengerjaan tugas akhir ini.

4. Pembimbing II, Bapak Ali Abrar S.Si,MT., yang telah membimbing dan

memberikan pengarahan selama pengerjaan tugas akhir ini.

5. Dosen Wali, Bapak Drs. Armin, M.T. yang telah membina selama

perkuliahan.

6. Seluruh Dosen yang telah mengajar di program studi Teknik Elektronika.

7. Kedua orang tua tercinta dan keluarga yang selalu mendukung kegiatan ini.

8. Segenap staf dan karyawan program studi Teknik Elektronika.

9. Segenap staf dan karyawan Bidang Teknologi Informasi Polda Kaltim.

10. Seluruh teman-teman mahasiswa seperjuangan Teknik Elektronika angkatan

tahun 2015.

11. Semua pihak yang penulis tidak dapat menyebutkan satu per satu, yang telah

memberikan bantuan secara langsung maupun tidak langsung dalam

penyusunan tugas akhir ini hingga selesai.

Penulis menyadari bahwa karya ini memliki kekurangan dan kelemahan. Oleh

sebab itu, saran-saran dan masukan yang membangun sangat diharapkan.

Balikpapan, 21 Agustus 2018

Windawati

Page 10: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

ix

DAFTAR ISI

Halaman

HALAMAN JUDUL i

LEMBAR PENGESAHAN ii

SURAT PERNYATAAN iii

LEMBAR PERSEMBAHAN iv

SURAT PERNYATAAN PERSETUJUAN v

ABSTRACT vi

ABSTRAK vii

KATA PENGANTAR viii

DAFTAR ISI ix

DAFTAR GAMBAR xii

DAFTAR TABEL xiv

DAFTAR LAMPIRAN xv

BAB I PENDAHULUAN

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan 2

1.5 Manfaat 2

BAB II LANDASAN TEORI

2.1 Aplikasi 4

2.2 Absensi 4

2.3 QR Code 4

2.4 Android 5

2.4.1 Fitur Android 7

2.4.2 Versioning 9

BAB III METODE PERANCANGAN

3.1 Tempat dan Waktu 11

3.2 Peralatan dan Bahan 11

3.3 Proses Perancangan 11

3.4 Penjelasan Flowchart 12

Page 11: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

x

3.4.1 Menentukan Judul 12

3.4.2 Pengumpulan Data 12

3.4.3 Membuat Rancangan Sistem 12

3.4.4 Penyusunan Proposal 12

3.4.5 Seminar Proposal 13

3.4.6 Pembuatan Program 13

3.4.7 Implementasi Program 13

3.4.8 Uji Coba Program 13

3.4.9 Penyusunan Laporan TA 13

3.4.10 Sidang TA 13

3.5 Flowchart 13

3.6 Use Case Diagram 14

3.7 Entity Relationship Diagram (ERD) 15

3.8 Rancangan Database 16

3.8.1 Tabel Admin 16

3.8.2 Tabel Karyawan 16

3.8.3 Tabel Absensi 16

3.9 Tampilan Rancangan Aplikasi 17

3.9.1 Tampilan Karyawan Login 17

3.9.2 Tampilan Scan Code 17

BAB IV HASIL DAN PEMBAHASAN

4.1 Hasil 18

4.1.1 Halaman Login Admin 18

4.1.2 Halaman Home 19

4.1.3 Halaman Karyawan 20

4.1.4 Halaman Tambah Karyawan 21

4.1.5 Halaman Ganti Password 22

4.1.6 Halaman Cetak Rekapan Absensi 24

4.1.7 Halaman Login Karyawan 25

4.1.8 Halaman Scan QR Code 26

4.1.9 Halaman History 27

4.1.10 Halaman Ubah Password Karyawan 28

Page 12: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

xi

4.2 Pembahasan Program 29

BAB V PENUTUP

5.1 Kesimpulan 30

5.2 Saran 30

DAFTAR PUSTAKA 31

LAMPIRAN 32

Page 13: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

xii

DAFTAR GAMBAR

Halaman

Gambar 2.1 QR Code 5

Gambar 2.2 Tampilan Android 6

Gambar 2.3 Komponen utama Android 6

Gambar 2.4 Versi OS Android 9

Gambar 2.5 Grafik Pengguna OS Android 10

Gambar 3.1 Flowchart Perancangan 11

Gambar 3.2 Flowchart Admin 14

Gambar 3.2 Flowchart Absensi 14

Gambar 3.4 Use Case Diagram Aplikasi 14

Gambar 3.5 ERD Aplikasi 15

Gambar 3.6 Tampilan Login Karyawan 17

Gambar 3.7 Tampilan Scan Code 17

Gambar 4.1 Tampilan Login Admin 18

Gambar 4.2 Script login 18

Gambar 4.3 Peringatan Login Gagal 19

Gambar 4.4 Halaman Home 19

Gambar 4.5 Script Tabel Absensi 19

Gambar 4.6 Halaman Karyawan 20

Gambar 4.7 Script Tabel Karyawan 21

Gambar 4.8 Halaman Tambah Karyawan 22

Gambar 4.9 Notifikasi Data Berhasil 22

Gambar 4.10 Notifikasi Data Gagal 22

Gambar 4.11 Script Tambah Karyawan 22

Gambar 4.12 Halaman Ubah Password 23

Gambar 4.13 Notifikasi Password Berhasil 23

Gambar 4.14 Notifikasi Password Gagal 23

Gambar 4.15 Script Ganti Password 23

Gambar 4.16 Halaman Cetak 24

Gambar 4.17 Script Cetak 24

Gambar 4.18 Tampilan Login Karyawan 25

Page 14: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

xiii

Gambar 4.19 Script Login Karyawan 25

Gambar 4.20 Tampilan Scan QR Code 26

Gambar 4.21 Tampilan Input Absensi 27

Gambar 4.22 Tampilan History Karyawan 27

Gambar 4.23 Tampilan Ubah Password Karyawan 28

Page 15: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

xiv

DAFTAR TABEL

Halaman

Tabel 3.1 Alat dan Bahan 11

Tabel 3.2 Admin 16

Tabel 3.3 Karyawan 16

Tabel 3.3 Absensi 16

Page 16: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

xv

DAFTAR LAMPIRAN

Lampiran 1 config.php digunakan untuk menghubungkan database dengan php

pada halaman web admin.

Lampiran 2 login.php digunakan untuk tampilan halaman login admin sehingga

dapat memasuki sistem.

Lampiran 3 index.php digunakan untuk tampilan home admin yang berisi

riwayat absensi karyawan dalam bentuk tabel.

Lampiran 4 response.php digunakan untuk proses menampilkan data riwayat

absensi karyawan.

Lampiran 5 karyawan.php digunakan untuk menampilkan daftar tabel

karyawan.

Lampiran 6 add_modal.php digunakan untuk menampilkan form untuk

memasukkan data karyawan.

Lampiran 7 addnew.php digunakan untuk proses memasukkan data dari form

ke database.

Lampiran 8 button.php digunakan untuk menampilkan form edit data karyawan

dan tampilan ketika akan menghapus data karyawan.

Lampiran 9 delete.php digunakan untuk proses menghapus data karyawan.

Lampiran 10 edit.php digunakan untuk proses mengupdate data karyawan.

Lampiran 11 changes.php digunakan untuk admin mengganti password ketika

login pada sistem.

Lampiran 12 cetak.php digunakan untuk mencetak data riwayat absensi

karyawan berupa file pdf.

Lampiran 13 logout.php digunakan untuk keluar dari sistem apabila telah selesai

menggunakan sistem.

Lampiran 14 init.php digunakan untuk menghubungkan database dengan php

pada aplikasi absensi.

Lampiran 15 loginkaryawan.php digunakan proses login pada aplikasi.

Lampiran 16 input.php digunakan untuk proses saat melakukan scan barcode

pada aplikasi.

Lampiran 17 getabsensi.php digunakan untuk proses menampilkan riwayat

absensi karyawan pada aplikasi.

Page 17: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

xvi

Lampiran 18 changepasskaryawan.php digunakan untuk proses mengganti

password yang digunakan oleh setiap karyawan pada aplikasi.

Lampiran 19 AndroidManifest.xml digunakan untuk memberikan hak akses

Lampiran 20 MainActivity.java

Lampiran 21 LoginActivity.java digunakan untuk membuat login

Lampiran 22 CustomListHistory.java digunakan untuk membuat daftar riwayat

absensi

Lampiran 23 InActivity.java digunakan untuk membuat scan barcode

Lampiran 24 AbsensiService.java digunakan untuk mengambil data riwayat

absensi

Lampiran 25 HttpParse.java digunakan untuk mengatur waktu koneksi

Lampiran 26 KaryawanService.java digunakan untuk mengambil data karyawan

Lampiran 27 Retroserver.java digunakan untuk menampilkan data absensi

Lampiran 28 ForgotPasswordActivity.java digunakan untuk membuat ubah

password untuk karyawan

Lampiran 29 Absensi.java digunakan untuk mengambil data absensi

Lampiran 30 Karyawan.java digunakan untuk mengambil data karyawan

Lampiran 31 Value.java digunakan untuk menampilkan data karyawan

Lampiran 32 activity_main.xml digunakan untuk menampilkan interface menu

Lampiran 33 activity_login.xml digunakan untuk menampilkan interface login

Lampiran 34 activity_in.xml digunakan untuk menampilkan interface scan

barcode

Lampiran 35 activity_history.xml digunakan untuk menampilkan interface

riwayat absensi yang telah digabungkan dengan foto

Lampiran 37 activity_forgot_password.xml digunakan untuk menampilkan

interface ganti password

Lampiran 38 activity_custom_list_history.xml digunakan untuk menampilkan

data absensi karyawan

Page 18: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi yang demikian pesat memudahkan untuk

mendapatkan informasi yang kita dapatkan dimana pun dan kapanpun. Teknologi

membawa dampak positif di berbagai bidang, salah satu dampak positifnya yaitu

informasi yang dibutuhkan dapat lebih cepat dan lebih mudah dalam

mengaksesnya. Dengan adanya android banyak masyarakat yang sudah

menggunakan android untuk membuat semua kegiatan menjadi mudah.

Setiap instansi melakukan absensi bertujuan untuk mengetahui kehadiran

setiap karyawan, termasuk juga di Polda Kaltim selalu melakukan absensi setiap

hari dengan pengambilan data yang dilakukan menggunakan alat fingerprint. Di

Polda Kaltim memiliki 22 unit divisi dengan setiap unit terdiri dari 30 orang dengan

alat fingerprint di setiap gedung yang terbatas yaitu 8 sampai 9 buah terletak di

lantai yang berbeda – beda. Absensi mulai dilakukan pada pukul 06.00 sampai

07.30 , di Polda Kaltim setiap hari selalu melakukan apel atau upacara setiap pagi

pada pukul 07.00 sampai pukul 08.00 sehingga banyak anggota polri dan staff tidak

sempat melakukan absensi dikarenakan waktu yang berdekatan menjelang apel pagi

dan harus mengantri untuk melakukan absensi fingerprint maka banyak yang

melakukan absensi fingerprint setelah apel atau upacara pagi. Hal ini sangat tidak

efisien karena keterlambatan absensi dapat mempengaruhi gaji anggota polri dan

staff tersebut.

Dari permasalahan yang terjadi, penulis merancang suatu sistem teknologi

dengan menggunakan android. Sistem ini menggunakan teknologi Scan QR code

yang dapat menyimpan tanggal dan waktu di hari tersebut, kemudian discan dengan

aplikasi pada android yang telah disediakan. Untuk pelaksanaannya QR code akan

ditampilkan pada layar aula Polda Kaltim setiap pagi dan sore kemudian anggota

polri dan staff dapat men-scan QR code tersebut menggunakan smarthphone

android masing – masing. Sistem ini memberikan laporan rekap absensi setiap

bulan. Dengan adanya sistem ini diharapkan dapat membantu karyawan melakukan

absensi dengan waktu yang lebih cepat dan efisien. Aplikasi ini bertujuan untuk

Page 19: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

2

membuat pengguna mudah melakukan absensi tanpa harus mencari letak

fingerprint di tempat yang berbeda-beda. Berdasarkan latar belakang masalah

tersebut maka penulis ingin melakukan penelitian dengan judul “Pembuatan

Aplikasi Absensi Menggunakan QR Code Di Polda Kaltim Berbasis Android”.

1.2 Rumusan Masalah

Adapun rumusan masalahnya yaitu:

1. Bagaimana cara mempermudah absensi di Polda Kaltim dengan

menggunakan QR code berbasis android dengan efisien ?

1.3 Batasan Masalah

Agar pembahasan ini tidak menyimpang dari rumusan masalah yang telah

ditentukan maka perlu diadakan pembatasan masalah, yaitu :

1. Penelitian membahas mengenai pembuatan aplikasi absensi menggunakan

QR Code yang dapat diakses pada android.

2. Aplikasi ini dibuat dengan menggunakan program android studio.

3. Tidak membahas keamanan data pada jaringan maupun server database

yang ada pada web hosting

4. Aplikasi berjalan di android minimal Kitkat.

5. Cetak barcode menggunakan aplikasi yang sudah ada.

1.4 Tujuan Penelitian

Berdasarkan uraian latar belakang dan perumusan masalah diatas, maka adapun

tujuan dari tugas akhir ini adalah:

1. Mempermudah melakukan absensi di Polda Kaltim menggunakan sistem

informasi berbasis android dengan efektif dan efisien.

2. Agar lebih efisien dan efektif untuk merekapitulasi absensi.

1.5 Manfaat Penelitian

Diharapkan dari hasil pelaksanaan penelitian ini dapat memberikan manfaat bagi

pihak polda kaltim antara lain :

Page 20: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

3

1. Bagi Polda Kaltim

Memberikan kemudahan dalam melakukan absensi tanpa harus mencari

letak fingerprint di tempat yang berbeda-beda.

2. Bagi Penulis

Bisa menjadi tolak ukur penulis dalam melakukan pengerjaan Tugas Akhir

dari ilmu yang didapat selama perkuliahan.

3. Bagi Instansi

Bisa dijadikan referensi Tugas Akhir bagi mahasiswa lainnya.

Page 21: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

4

BAB II

LANDASAN TEORI

2.1 Aplikasi

Aplikasi adalah program siap pakai yang dapat digunakan untuk

menjalankan perintah – perintah dari pengguna aplikasi tersebut dengan tujuan

mendapatkan hasil yang lebih akurat sesuai dengan tujuan pembuatan aplikasi

tersebut, aplikasi mempunyai arti yaitu pemecahan masalah yang menggunakan

salah satu tehnik pemrosesan data aplikasi yang biasanya berpacu pada sebuah

komputansi yang diinginkan atau diharapkan maupun pemrosesan data yang

diharapkan (Supiah, 2016).

2.2 Absensi

Absensi adalah suatu pendataan kehadiran, bagian dari pelaporan aktifitas

suatu institusi, atau komponen institusi itu sendiri yang berisi data-data kehadiran

yang disusun dan diatur sedemikian rupa sehingga mudah untuk dicari dan

dipergunakan apabila sewaktu-waktu diperlukan oleh pihak yang berkepentingan .

Kita mengenal beberapa jenis absensi. Yang membedakan jenis-jenis absensi

tersebut adalah cara penggunaannya, dan tingkat daya gunanya Secara umum jenis-

jenis absensi dapat di kelompokkan menjadi dua, yaitu;

1. Absensi manual, adalah cara pengentrian kehadiran dengan cara

menggunakan pena (tanda tangan).

2. Absensi non manual (dengan menggunakan alat), adalah suatu cara

pengentrian kehadiran dengan menggunakan system terkomputerisasi, bisa

menggunakan kartu dengan barcode, finger print ataupun dengan

mengentrikan nip dan sebagainya (Erna Simonna ,2009).

2.3 QR Code

Menurut Bambang Sugiantoro dan Fuad Hasan (2015) QR code merupakan

singkatan dari Quick Respone code, atau yang biasa disebut Kode QR adalah suatu

jenis kode matriks atau kode batang dua dimensi yang dikembangkan oleh Denso

Wave, sebuah divisi Denso Corporation yang merupakan sebuah perusahaan

Page 22: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

5

Jepang dan dipublikasikan pada tahun 1994 dengan fungsionalitas utama yaitu

dapat dengan mudah dibaca oleh pemindai QR merupakan singkatan dari quick

response atau respons cepat, yang sesuai dengan tujuannya adalah untuk

menyampaikan informasi dengan cepat dan mendapatkan respons yang cepat pula.

Berbeda dengan kode batang, yang hanya menyimpan informasi secara horizontal,

kode QR mampu menyimpan informasi secara horizontal dan vertikal, oleh karena

itu secara otomatis Kode QR dapat menampung informasi yang lebih banyak

daripada kode batang.

Gambar 2.1 QR Code

(Sumber : www.the-qrcode-generator.com)

2.4 Android

Menurut Yudha Yudhanto & Ardhi Wijayanto (2017) Android adalah

sistem operasi berbasis Linux yang dirancang untuk perangkat bergerak layar

sentuh seperti telepon pintar dan komputer tablet. Android awalnya dikembangkan

oleh Android,Inc., dengan dukungan finansial dari Google, yang kemudian

membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi pada tahun

2007, bersama dengan didirikannya Open Handset Alliance, konsorsium dari

perusahaan-perusahaan perangkat keras, Perangkat lunak dan telekomunikasi

bertujuan untuk memajukan standar terbuka perangkat seluler.

Page 23: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

6

Gambar 2.2 Tampilan Android

(Sumber : zentizen.com)

Adapun komponen utama sistem tingkat android , gambaran sistem operasi , dan

arsitektur development sebagai berikut :

Gambar 2.3 Komponen Utama Android

(Sumber : google-developer-training.gitbooks.io)

Dalam gambar diatas:

1. Aplikasi: aplikasi berada pada tingkat ini bersama dengan aplikasi sistem

inti untuk email, perpesanan SMS, kalender, penjelajahan internet, atau

kontak.

2. Java API Framework : Semua fitur android tersedia untuk developer

melalui antarmuka permrograman aplikasi.

Sistem tampilan digunakan untuk membangun UI aplikasi, termasuk daftar,

tombol , dan menu.

Pengelola Referensi digunakan untuk mengakses sumber daya non-kode

seperti string, grafik , dan file layout.

Page 24: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

7

Pengelola Notifikasi digunakan untuk menampilkan peringatan khusus di

bilah status.

Pengelola Aktivitas yang mengelola daur hidup aplikasi.

Penyedia Materi yang memungkinkan aplikasi untuk mengakses data dari

aplikasi lain.

Semua API kerangka kerja yang digunakan aplikasi sistem android.

3. Library and Android Runtime: Setiap aplikasi berjalan dalam prosesnya

sendiri dengan instance Android Runtime sendiri, yang memungkinkan

beberapa mesin sekaligus virtual pada perangkat bermemori rendah.

menyediakan antarmuka standar yang menunjukkan kemampuan perangkat

keras di perangkat ke kerangka kerja Java API yang lebih tinggi. HAL

terdiri atas beberapa modul pustaka, masing-masing mengimplementasikan

antarmuka untuk komponen perangkat keras tertentu, seperti modul kamera

atau bluetooth.

4. Hardware Abstraction Layer(HAL) : Lapisan ini menyediakan antarmuka

standar yang menunjukkan kemampuan perangkat keras di perangkat ke

kerangka kerja Java API yang lebih tinggi. HAL terdiri atas beberapa modul

pustaka, masing-masing mengimplementasikan antarmuka untuk

komponen perangkat keras tertentu, seperti modul kamera atau bluetooth.

5. Kernel Linux: Fondasi platform Android adalah kernel Linux. Lapisan di

atas mengandalkan kernel Linux untuk fungsionalitas pokok seperti

threading dan manajemen memori tingkat rendah. Menggunakan kernel

Linux memungkinkan Android memanfaatkan fitur keamanan utama dan

memungkinkan produsen perangkat mengembangkan driver perangkat

keras untuk kernel yang cukup dikenal .

2.4.1 Fitur Android

Perangkat android memiliki beberapa fitur perangkat keras di dalamnya untuk

membangun aplikasi diantaranya :

1. Touchscreen. Perangkat android memiliki fitur layar sentuh(touchscreen)

memberikan kemungkinan bagi pengguna untuk berinteraksi dengan

aplikasi menggunakan jari. Pengguna dapat melakukan swipe,flip, drag dan

Page 25: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

8

pinch untuk zoom. Android juga mendukung multitouch yang berarti

keseluruhan layar dapat disentuh dengan satu atau lebih jari pada saat yang

bersamaan.

2. GPS. Sistem operasi Android mendukung GPS yang memungkinkan

developer untuk mengakses lokasi pengguna.

3. Accelerometer. Android mendukung Accelerometer, yaitu perangkat yang

digunakan untuk mengukur kecepatan seperti Android bergerak,

terguncang, atau berbalik arah posisinya.

4. SD Card. Android memiliki fitur memungkinkan pengguna atau aplikasi

untuk mengakses (menyimpan atau membuka) file pada SD Card. SD Card

merupakan media penyimpanan yang digunakan perangkat android dan

beberapa perangkat mobile lainnya.

Android memiliki beberapa fitur perangkat lunak yang dapat digunakan oleh

developer dalam pengembangan aplikasi, yakni :

1. Internet. Kemampuan akses internet pada android memberikan banyak

keunggulan. Berbagai informasi secara real-time dapat diperoleh dengan

mudah dengan internet. Pengguna dapat mengakses internet untuk melihat

jadwal pemutaran film bioskop, cuaca suatu area, jadwal penerbangan dan

lainnya.

2. Audio dan Video Support. Sistem operasi android memungkinkan developer

menyertakan audio dan video dalam aplikasi dengan mudah. Berbagai

standar format audio dan video telah didukung.

3. Contact. Android memungkinkan akses ke kontak yang tersimpan pada

perangkat. Sebagai contoh, developer dapat membangun aplikasi yang

menggabung antara kontak dengan GPS untuk memberikan notifikasi jika

pengguna berada di dekat alamat salah satu kontak tertentu.

4. Security. Android memungkinkan aplikasi melakukan banyak hal. Android

juga menyiapkan mekanisme keamanan berupa permission berkaintan

dengan beberapa tugas.

5. Google APIs. Sistem operasi android memungkinkan dengan tidak terbatas

membuat panggilan telepon, mengorganisasi kontak atau menginstal

aplikasi.

Page 26: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

9

2.4.2 Versioning

Sistem android terdiri dari beberapa versi. Setiap android terbaru memiliki nama-

nama unik tersendiri dan memiliki beberapa jenis kelebihan mulai dari tampilan

hingga optimasi keamanan. Berikut daftar OS menurut versi.

Gambar 2.4 Versi OS Android (Sumber : futureloka.com)

1. Android versi 1.0 dirilis tanggal 23.09.2008

2. Android versi 1.1 dirilis tanggal 09.02.2009

3. Android versi 1.5 Cupcake dirilis tanggal 30.04.2009

4. Android versi 1.6 Donut dirilis tanggal 15.09.2009

5. Android versi 2.0 Eclair dirilis tanggal 26.10.2009

6. Android versi 2.2 Froyo dirilis tanggal 10.05.2010

7. Android versi 2.4 Gingerbread dirilis tanggal 06.12.2010

8. Android versi 3.0 Honeycomb dirilis tanggal 22.02.2011

9. Android versi 4.0 Ice Cream Sandwich dirilis tanggal 19.10.2011

10. Android versi 4.1 Jelly Bean dirilis tanggal 09.07.2012

11. Android versi 4.4 Kitkat dirilis tanggal 31.10.2013

12. Android versi 5.0 Lollipop dirilis tanggal 17.10.2014

13. Android versi 6.0 Marshmallow dirilis tanggal 28.05.2015

14. Android versi 7.0 Nougat dirilis tanggal 22.08.16

15. Android versi 8.0 Oreo dirilis tanggal 21.08.2017

Page 27: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

10

Dibawah ini merupakan grafik pengguna smartphone berdasarkan OS Android

menjelaskan bahwa masih banyak pengguna yang menggunakan OS Kitkat dan

pengguna semakin meningkat di Lollipop, Marshmallow maupun Nougat

sekalipun.

Gambar 2.5 Grafik Pengguna OS Android

(Sumber : androidcentral.com)

Page 28: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

11

BAB III

METODE PERANCANGAN

3.1 Tempat dan Waktu

Tempat penelitian dilaksanakan di Polda Kaltim Jl. Syarifuddin Yoes No 99

Balikpapan, Kalimantan Timur. Waktu penelitian mulai bulan Maret 2018 sampai

dengan Agustus 2018.

3.2 Peralatan dan Bahan

Penelitian tentang perancangan Aplikasi Absensi QR Code di Polda Kaltim

berbasis android membutuhkan peralatan dan bahan sebagai berikut :

Tabel 3.1 Alat dan Bahan

No Nama Spesifikasi Jumlah

1 Notebook Processor Intel Core i5, Memory

DDR3 4GB, Storage Hard disk

500GB SATA + , Graphic Intel ,

dan System Type 64-bit Operating

System.

1

2 Smartphone Android LTE Cat4, 1.5GHz Quad Core

Processor ,126.3 mm(5.0”) HD

sAMOLED, 8MP AF + 5MP, 8GB

Memory , Lollipop (5.1.1)

1

3 Android Studio V3.3 -

4 Google Chrome v65.0.3325.181 -

3.3 Proses Perancangan

Sebelum melakukan perancangann dan pembuatan Aplikasi Absensi berbasis

Android, perlu adanya perancangan gambaran prinsip kerja dari program aplikasi

yang akan di buat, agar mengetahui bagaimana program aplikasi ini bekerja sesuai

dengan harapan penulis. Di bawah ini merupakan flowchart tentang metode

pengumpulan data.

Page 29: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

12

Gambar 3.1 Flowchart Perancangan

3.4 Penjelasan Flowchart

3.4.1 Menentukan Judul

Disini penulis mencari ide – ide atau topik yang didapat, kemudian penulis

menentukan judul yang kira – kira untuk diangkat menjadi Tugas Akhir yang

nantinya akan disetujui oleh kepala bidang tersebut.

3.4.2 Pengumpulan Data

Pengumpulan data ini dilakukan setelah judul disetujui oleh pembimbing,

data yang dikumpulkan berupa data – data pendukung untuk menunjang dalam

pembuatan sistem nantinya.

3.4.3 Membuat Rancangan Sistem

Pembuatan rancangan sistem ini dilakukan setelah dilakukan pengumpulan

data yang nantinya akan diimplementasikan saat proses pembuatan Tugas Akhir.

3.4.4 Penyusunan Proposal

Proses penyusunan proposal setelah dilakukan pengumpulan data dan

membuat rancangan sistem dan penulis membuat proposal TA sebanyak 4 bab yang

nantinya diajukan untuk sidang proposal TA.

Page 30: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

13

3.4.5 Seminar Proposal

Pada saat ini mahasiswa mempresentasikan proposal TA yang dibuat

kepada penguji, disini terdapat moderator dan 2 penguji yang nantinya akan menilai

presentasi mahasiswa tersebut . Apakah proposal akan diterima atau tidak

tergantung dari nilai yang akan di beri oleh penguji.

3.4.6 Pembuatan Program

Pembuatan program dilakukan setelah proposal disetujui oleh penguji .

Kemudian pembuatannya sesuai dengan yang sudah rancangan sistem yang telah

dibuat.

3.4.7 Implementasi Program

Pengimplementasian program dilaksanakan setelah program telah selesai

dibuat dan disini termasuk dalam penghostingan aplikasi tersebut.

3.4.8 Uji Coba Program

Ketika program sudah diimplementasikan maka program akan diuji coba di

depan pembimbing dan apakah aplikasi berhasil atau perlu di edit atau direvisi

tergantung oleh pembimbing.

3.4.9 Penyusunan Laporan TA

Penyusunan laporan TA dilaksanakan saat program tekah di uji coba

danpenulis membuat laporan TA sebanyak 4 bab yang nantinya diajukan untuk

sidang proposal TA.

3.4.10 Sidang TA

Pada saat ini mahasiswa mempresentasikan hasil TA berupa program yang

telah dibuat kepada penguji, disini terdapat moderator dan 2 penguji yang nantinya

akan menilai presentasi mahasiswa tersebut . Apakah laporan TA tersebut akan

diterima atau tidak tergantung dari nilai yang akan di beri oleh penguji dan

pembimbing.

3.5 Flowchart

Pada penelitian cara Pembuatan Aplikasi Absensi terdapat flowchart yang dapat

menjelaskan bagaimana perencanaan kerja dari Absensi QR Code yang dapat

membantu pembaca untuk memahami sistem kerja yang di inginkan atau di

rencanakan oleh penulis.

Page 31: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

14

Gambar 3.2 Flowchart Admin Gambar 3.3 Flowchart Absensi

3.6 Use Case Diagram

Pada penelitian pembuatan Aplikasi Absensi terdapat Use Case Admin dan User

yang dapat menjelaskan bagaimana menggambarkan kelakuan sistem yang akan

di buat.

Gambar 3.4 Use Case Diagram Aplikasi

Page 32: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

15

3.7 Entity Relationship Diagram (ERD)

Gam

bar

3.5

ER

D A

pli

kas

i

Page 33: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

16

3.8 Rancangan Database

3.8.1 Tabel Admin

Tabel 3.2 Admin

Nama Field Tipe Data Panjang

username varchar 100

password varchar 100

3.8.2 Tabel Karyawan

Tabel 3.3 Karyawan

Nama Field Tipe Data Panjang

nrp int 11

nama varchar 100

pangkat varchar

jabatan varchar 100

divisi varchar 100

password varchar 100

3.8.3 Tabel Absensi

Tabel 3.4 Absensi

Nama Field Tipe Data Panjang

id absen int 11

nrp varchar 11

status varchar 10

waktu timestamp

Page 34: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

17

3.9 Tampilan Rancangan Aplikasi

3.9.1 Tampilan Karyawan Login

Gambar 3.6 Tampilan Login Karyawan

3.9.2 Tampilan Scan Code

Gambar 3.7 Tampilan Scan Code

Page 35: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

18

BAB IV

HASIL DAN PEMBAHASAN

4.1 Hasil

Berikut adalah hasil-hasil dari pembuatan aplikasi absensi menggunakan QR

code di Polda Kaltim. Semua hasil tampilan memiliki kode script di bagian daftar

lampiran.

4.1.1 Halaman Login Admin

Gambar 4.1 Halaman Login Admin

Pada halaman ini berisi tentang halaman login admin yang diakses melalui

website. Ketika admin ingin mengelola data karyawan maupun data absensi admin

diharuskan untuk login. Halaman login ini terdiri dari field username dan password

, dimana username adalah admin sedangkan untuk password hanya admin yang

mengetahuinya. Ketika field-field telah terisi dengan baik dan benar maka

selanjutnya mengklik tombol login seperti pada Gambar 4.1 dan akan di arahkan ke

halaman home dan jika mengisi field-field tidak benar ataupun salah akan

menampilkan peringatan. Hasil program atau kode script login ini sebagai berikut :

Gambar 4.2 Script Login

Page 36: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

19

Dari gambar 4.2 diatas menjelaskan bahwa variabel username dan password yang

didapat saat menginputkan pada halaman login admin dikirim ke ke database pada

tabel admin (baris 4) , ketika data yang diisi sesuai maka halaman akan menuju ke

index.php (baris 9) atau halaman home namun jika data salah maka akan mengarah

ke login-gagal (baris 11) dan memunculkan pesan seperti gambar 4.3.

Gambar 4.3 Peringatan Login Gagal

4.1.2 Halaman Home

Ketika proses login selesai maka akan diarahkan ke halaman home yang berisi

rekam absensi karyawan yang telah melakukan absensi berupa NRP, nama, status

dan waktu, serta admin disini juga dapat melakukan print rekapan absensi menurut

tanggal ataupun bulan . Disetiap halaman juga menampilkan navigasi seperti home,

karyawan, change password dan logout seperti pada gambar 4.4.

Gambar 4.4 Halaman Home

Hasil program atau kode script dari halaman home sebagai berikut :

Gambar 4.5 Script Tabel Absensi

Page 37: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

20

Dari gambar 4.5 diatas menjelaskan untuk menampilkan data absensi yang diambil

dari database, pada baris 3 menggunakan array untuk menampilkan data pada

database yang terdiri dari id_absen,nrp,status, dan waktu. Pada baris 8 digunakan

untuk menampilkan data dari 2 tabel database yaitu tabel karyawan (nrp) dan tabel

absensi (id_absensi,nrp,nama, status, dan waktu) dalam satu tabel menggunakan

inner join. Script ini juga menampilkan data dari yang terbaru ke yang terlama(baris

11).

4.1.3 Halaman Karyawan

Halaman ini adalah untuk menampilkan data karyawan berupa no, foto, nrp,

nama , pangkat, jabatan, divisi, dan password. Password disini bertujuan agar

karyawan dapat mengakses aplikasi absensi berbasis android untuk melakukan

absensi. Admin diberi hak akses dalam mengelola data karyawan seperti

menghapus , menambah dan mengedit data karyawan yang diinginkan sesuai

kebutuhan seperti pada Gambar 4.6.

Gambar 4.6 Halaman Karyawan

Hasil kode script dari halaman ini sebagai berikut:

Page 38: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

21

Gambar 4.7 Script Tabel Karyawan

Dari gambar 4.7 diatas menjelaskan untuk menampilkan data karyawan yang

diambil dari database yaitu tabel karyawan pada variabel sql(baris 1), variabel x

berfungsi untuk menampilkan angka otomatis pada tabel yang ditampilkan pada

halaman karyawan , variabel actionButton berfungsi menampilkan dropdown untuk

menu edit dan delete. pada variabel output (baris 22) disini menggunakan array

untuk menampilkan data dari database tabel karyawan yang akan ditampilkan pada

interface tabel di halaman karyawan.

4.1.4 Halaman Tambah Karyawan

Halaman ini adalah untuk membuat data karyawan baru berupa nrp, nama ,

pangkat, jabatan, divisi, dan password. Field nrp berupa nomor registrasi pusat yang

telah dimiliki oleh setiap anggota polri dan karyawan, field nama berupa nama

karyawan tersebut, field pangkat berisi daftar pangkat yang berada di kepolisian,

field jabatan yaitu jabatan yang dimiliki oleh karyawan tersebut, divisi yaitu tempat

atau bidang dimana karyawan itu berada, dan password ini berfungsi untuk login

karyawan ketika akan melakukan absensi pada aplikasi android seperti pada gambar

4.8.Ketika semua field sudah terisi dan berhasil tersimpan maka akan muncul

seperti gambar 4.9 namun ketika nrp yang diinput sudah ada maka akan muncul

seperti gambar 4.10.

Page 39: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

22

Gambar 4.8 Halaman Tambah Karyawan

Gambar 4.9 Notifikasi Data Berhasil

Gambar 4.10 Notifikasi Data Gagal

Hasil kode script dari halaman ini adalah sebagai berikut:

Gambar 4.11 Script Tambah Karyawan

Dari Gambar 4.11 diatas menjelaskan bahwa variabel nrp sampai password (baris

1-6) yang didapat saat menginputkan pada Gambar 4.9 dikirim ke ke database pada

tabel karyawan (baris 7) , ketika data yang diisi sesuai maka akan menampilkan

notifikasi pada Gambar 4.10 dan skrip nya pada baris 12 dan ketika data yang

diinput tidak sesuai maka akan menampilkan notifikasi pada Gambar 4.10 dan

skrip nya pada baris 15.

4.1.5 Halaman Ganti Password

Halaman ini adalah untuk mengganti password yang digunakan oleh admin

ketika akan login di website admin, field current password berisi password lama,

field new password berisi password baru, field confirm password berisi password

Page 40: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

23

baru yang telah dimasukkan seperti pada Gambar 4.12. Ketika password sudah

diinputkan dan sesuai maka akan menampilkan notifikasi seperti Gambar 4.13

namun ketika password yang diinput tidak sesuai maka akan menampilkan

notifikasi seperti Gambar 4.14.

Gambar 4.12 Halaman Ubah Password

Gambar 4.13 Notifikasi Password berhasil

Gambar 4.14 Notifikasi Password Gagal

Hasil kode script dari halaman ini adalah sebagai berikut :

Gambar 4.15 Script Ganti Password

Dari Gambar 4.15 diatas menjelaskan bahwa variabel sip digunakan untuk

menampilkan notifikasi ketika data berhasil atau tidaknya saat disimpan. Variabel

oldpassword (baris 4) untuk password lama dan variabel newpassword (baris 6)

untuk password baru ketika diinputkan pada Gambar 4.12. variabel user yaitu

session mengambil data dari database pada tabel admin field id (baris 5). Pada

Page 41: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

24

variabel sql berfungsi untuk memilih password apakah password sesuai dengan

yang diinputkan pada database. Variabel con berfungsi mengubah password data

yang telah diinputkan dikirim ke database admin. Ketika password yang diinputkan

sesuai maka akan menampilkan Gambar 4.13 dan skrip nya pada baris 12 dan ketika

password yang diinput tidak sesuai maka akan menampilkan notifikasi pada

gambar 4.14 dan skrip nya pada baris 16.

4.1.6 Halaman Cetak Rekapan Absensi

Halaman ini adalah untuk mencetak rekapan laporan absensi karyawan yang

dapat diatur waktu sesuai yang diinginkan , halaman ini menampilkan nrp, nama,

status, tanggal, waktu saat karyawan melakukan absensi serta menampilkan tanggal

saat itu ketika dokumen akan dicetak seperti pada Gambar 4.16.

Gambar 4.16 Halaman Cetak

Hasil kode script dari halaman ini adalah sebagai berikut :

Gambar 4.17 Script Cetak

Page 42: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

25

Dari Gambar 4.17 diatas menjelaskan bahwa variabel karayawan untuk

menampilkan data dari tabel absensi dan karyawan yang ada pada database disini

penulis menggunakan inner join sama seperti pada Gambar 4.5. Disini data yang

ditampilkan berdasarkan waktu dari yang terbaru hingga yang terlama . Variabel

pdf berfungsi untuk menampilkan pada data kolom pdf .

4.1.7 Halaman Login Karyawan

Pada halaman ini berisi tentang halaman login karyawan yang diakses

melalui aplikasi android. Aplikasi ini hanya bisa diakses oleh karyawan yang

namanya sudah di input oleh admin pada daftar karyawan. Interface ini

menampilkan field username dan password yang harus diisi oleh karyawan ketika

akan login seperti pada gambar 4.18.

Gambar 4.18 Tampilan Login Karyawan

Hasil kode script dari halaman ini adalah sebagai berikut:

Gambar 4.19 Script Login karyawan

Dari Gambar 4.19 diatas menjelaskan bahwa variabel nrp dan password yang

didapat saat menginputkan pada aplikasi login admin dikirim ke database pada tabel

Page 43: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

26

karyawan (baris 4). ketika data yang diisi sesuai maka halaman akan menuju ke

kehalaman scan qr jika salah maka akan menampilakan “Invalid Username or

password Please Try Again” atau “check again”.

String HttpURL = "http://tkjpoltekba15.com/absen/loginkaryawan.php";

Pada skrip di atas merupakan url pada java untuk mencari dimana letak file php

login untuk karyawan tersimpan agar aplikasi bisa mengakses untuk login

karyawan ketika digunakan pada aplikasi android.

4.1.8 Halaman Scan Qr Code

Pada halaman ini berisi scan qr code yang digunakan karyawan untuk

melakukan absensi yang berfungsi menscan QR Code yang telah disediakan oleh

instansi yang rencananya akan ditampilkan di layar aula, ketika karyawan

melakukan scanner menggunakan android maka data akan otomatis masuk ke

database berupa nama, nrp, waktu, dan status. Interface ini hanya menampilkan

scanner seperti pada Gambar 4.20.

Gambar 4.20 Tampilan Scan QR Code

Hasil kode script dari halaman ini adalah sebagai berikut:

public static final String BASE_URL = "http://tkjpoltekba15.com/absen/input.php";

skrip diatas berfungsi untuk mengambil data php yang ada pada database pada

input.php. data yang diambil yaitu berupa qr code yang telah di scan “result

code”, nomor registrasi karyawan yaitu “nrp” dan status pada “status”,

StringRequest stringRequest = new StringRequest(Request.Method.GET,

BASE_URL+"?status="+resultCode+"&nrp="+nrpb,

jika scan berhasil maka akan menampilkan “scan success” dan skripnya yaitu :

Page 44: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

27

public void onResponse(String response) {

Toast.makeText(getContext(),"scan success",Toast.LENGTH_LONG).show();

apabila scan gagal maka akan menampilkan “scan gagal” dan skripnya yaitu :

public void onErrorResponse(VolleyError error) {

Toast.makeText(getContext(),"scan gagal",Toast.LENGTH_LONG).show();

}

Gambar 4.21 Script Input Absensi

Dari Gambar 4.21 diatas menjelaskan bahwa variabel status didapatkan saat

karyawan melakukan scan qr, nrp otomatis terkirim saat melakukan scanner, dan

waktu saat karyawan melakukan scanner saat itu juga, variabel status berfungsi

menampilkan notifikasi ketika barcode berhasil disimpan atau tidaknya.

4.1.9 Halaman History

Pada halaman ini berisi riwayat absensi yang telah dilakukan oleh karyawan

tersebut, interface ini menampilkan nrp, status dan waktu yang telah dilakukan oleh

karyawan tersebut dalam melakukan absensi seperti pada Gambar 4.22.

Gambar 4.22 Tampilan History Karyawan

Hasil kode script dari halaman adalah sebagai berikut:

public View getView(int position, View convertView, ViewGroup parent) {

convertView =

layoutInflater.inflate(R.layout.activity_custom_list_history, parent,

false);

TextView status = (TextView)

convertView.findViewById(R.id.text_view_status);

Page 45: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

28

TextView waktu = (TextView)

convertView.findViewById(R.id.text_view_waktu);

status.setText(this.fData.get(position).getStatus());

waktu.setText(this.fData.get(position).getWaktu());

skrip diatas yaitu untuk menampilkan data history yang data nya diambil dari status

dan waktu karyawan itu sendiri.

4.1.10 Halaman Ubah Password Karyawan

Pada halaman ini untuk mengganti password karyawan yang digunakan

oleh karyawan itu sendiri ketika akan login pada aplikasi android, field current

password berisi password lama, field new password berisi password baru, field

confirm password berisi password baru yang telah dimasukkan sebelumnya seperti

Gambar 4.23.

Gambar 4.23 Tampilan Ubah Password Karyawan

Hasil kode script dari halaman adalah sebagai berikut:

mCurrentPassword = (EditText)

view.findViewById(R.id.edit_text_current_password);

NRPholder = getActivity().getIntent().getStringExtra("password");

mCurrentPassword.setText(NRPholder);

mNewPassword = (EditText) view.findViewById(R.id.edit_text_new_password);

mConfirmPassword = (EditText)

view.findViewById(R.id.edit_text_confirm_password);

mSave = (Button) view.findViewById(R.id.button_save);

mSave.setOnClickListener(v -> {

Skrip diatas yaitu untuk mengubah password karyawan itu sendiri ketika akan

mengakses aplikasi absensi pada android.

Page 46: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

29

4.2 Pembahasan Program

Fokus Penelitian ini adalah pembuatan aplikasi absensi menggunakan qr

code yang akan digunakan oleh karyawan sebagai media berupa aplikasi berbasis

android yang menjelaskan bagaimana cara menggunakan aplikasi qr code yang

bertujuan untuk mempermudah karyawan dalam melakukan absensi tanpa harus

mencari letak fingerprint di letak yang berbeda - beda. Disini penulis melakukan

hostingan sementara di internet yang kedepannya nanti akan diletakkan di server

lokal ketika sudah dapat mendapatkan hak akses di instansi tersebut karena

membutuhkan proses yang lama. Penulis menggunakan www.hostinger.co.id untuk

melakukan hostingan sementara dengan nama domain yang dapat diakses oleh

admin yaitu www.tkjpoltekba15.com/absen.

Sistem informasi ini terdiri dari website dan aplikasi android. Pada sistem

website disini hanya bisa diakses oleh admin , ketika admin login mereka dapat

mengelola data karyawan dan data absensi. Password admin dibuat menggunakan

compile md5 agar tidak mudah diserang oleh hacker serta pasword juga dapat

diganti sesuai keinginan admin itu sendiri. Sedangkan pada aplikasi android dapat

diakses oleh karyawan yang namanya sudah diinputkan oleh admin di daftar

karyawan. Ketika karyawan telah melakukan login dengan nrp dan password yang

telah dibuat oleh admin, mereka dapat melakukan absensi dengan menscan qr code

yang telah disediakan oleh pihak instansi. Karyawan juga dapat mengganti

password untuk login sesuai dengan keinginannya masing-masing, dan dapat

melihat history yang telah melakukan absensi sebelumnya. Scan qr ini dilakukan 2

kali saat baru datang dan akan pulang. Pada sistem ini semua fungsi pada aplikasi

telah diuji dan didapatkan hasilnya sesuai dengan rancangan awal, sehingga

diperoleh hasil yang berjalan sesuai dengan fungsinya yang dapat dilihat disetiap

gambar pada BAB IV.

Page 47: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

30

BAB V

PENUTUP

5.1 Kesimpulan

Dari hasil analisa, perancangan dan pembuatan program aplikasi yang telah dijabarkan

di bab sebelumnya, maka dapat disimpulkan bahwa:

1. Aplikasi absensi bermanfaat untuk mempermudah setiap karyawan khususnya

dalam melakukan absensi menggunakan Qr Code yang telah disediakan untuk

diakses pada android setiap karyawan.

2. Melalui aplikasi absensi menggunakan Qr Code berbasis android ini karyawan

dapat menghemat waktu saat melakukan absensi secara efektif dan efisien tanpa

harus mencari tempat absensi.

3. Aplikasi ini membantu admin dalam mempermudah mengelola rekapan absensi

karyawan sesuai waktu yang dibutuhkan.

5.2 Saran

Dalam Pembuatan Aplikasi Absensi menggunakan QR Code di Polda Kaltim berbasis

android ini penulis manyatakan bahwa masih banyak kekurangan. Oleh karena itu perlu

dikembangkan penyempurnaan untuk lebih lanjut. Adapun saran agar aplikasi ini lebih

optimal adalah sebagai berikut :

1. Pengembangan selanjutnya, penulis berharap untuk dapat menambah fitur-fitur

yang belum ada sebelumnya.

2. Menambahkan IMEI android pada aplikasi agar meminimalisir terjadinya titip

absen.

3. Membuat aplikasi ini dapat berjalan di semua tipe smartphone.

Page 48: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

31

DAFTAR PUSTAKA

Android Central.(2018, 5 Mei). Android distribution numbers: Everything you need

to know!.diakses tgl 5 Mei 2018. Dari https://www.androidcentral.com/

android-distribution-numbers/

Futureloka.(2018, 2 April).Daftar OS Android. diakses tgl 2 April 2018.Dari

http://futureloka.com/daftar-os-android/

Google Developer Training.(2018, 2 April).Pengantar Android. diakses tgl 2 April

2018.Dari https://google-developer-training.gitbooks.io/android-developer-

fundamentals-course-concepts/content/idn/Unit%201/10_c_intro_to_

android.html

QR Code Generator.(2018, 2 April).QR Code. diakses tgl 2 April 2018.Dari

https://www.qr-code-generator.com/a1

Simonna,Erna.(2008) : Sistem Tekhnologi Informasi, Pengembangan dan Pengolahan.

Yogyakarta. Andi. 87

Supiah.(2016). Tugas Akhir: Aplikasi Berbasis Java untuk Absensi Karyawan di SMA

PJHI Balikpapan. POLTEKBA . Balikpapan. 3.

Wikipedia. (2018, 2 April). Pengertian QR Code. Diakses tgl 2 April 2018. Dari

https://id.wikipedia.org/wiki/QR_Code/

Yudhanto ,Y & Wijayanto, A. (2017) : Mudah Membuat dan Berbisnis Aplikasi

Android dengan Android Studio. Jakarta. PT Elex Media Komputindo. 1-13.

Zetizen .(2018, 2 April). Android 8.0 Resmi Rilis. diakses tgl 2 April 2018.Dari

https://www.zetizen.com/show/11344/android-8-0-resmi-rilis-namanya-oreo-

ada-fitur-baru-apa-aja-ya/

Page 49: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

32

LAMPIRAN

1. config.php

<?php

global $koneksi;

$nameserver = "mysql.hostinger.co.id";

$username = "u847393371_absn2";

$password = "20152018absn2";

$namadb = "u847393371_absn2";

$koneksi =

mysqli_connect($nameserver,$username,$password,$namadb);

if(!$koneksi) {

die("Koneksi Gagal".mysqli_connect_error());

}

?>

2. login.php

<?php

ob_start();

session_start();

if(isset($_SESSION['admin_username'])) header("location: index.php");

include "assets/includes/config.php";

/* PROSES LOGIN */

if(isset($_POST['submit_login'])) {

$username = $_POST['username'];

$password = md5($_POST['password']);

$sql_login = mysqli_query($koneksi, "SELECT * FROM admin WHERE

username = '$username' AND password = '$password'");

if(mysqli_num_rows($sql_login)>0) {

$row_admin = mysqli_fetch_array($sql_login);

$_SESSION['admin_id'] = $row_admin['id'];

$_SESSION['admin_username'] = $row_admin['username'];

header("location: index.php");

}else {

header("location: login.php?login-gagal");

}

}

?>

<html>

Page 50: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

33

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>ABONPOLKA</title>

<link rel="stylesheet" type="text/css" href="css/main.css">

<link rel="shorcut icon" type="image/png" href="img/iconts.png">

<style>

body{

background: url(img/Polkat.jpg)no-repeat;

background-size: cover;

background-position: center;

}

</style>

</head>

<body>

<div class="login-box">

<img src="img/icontb.png" class="avatar">

<h1>Login Here</h1>

<form method="post">

<p>Username</p>

<input type="text" name="username" value="" placeholder="Enter

Username" required>

<p>Password</p>

<input type="password" name="password" value=""

placeholder="Enter Password" required>

<?php if(isset($_GET['login-gagal'])) {?> <div>

<p>Maaf, Username / Password yang Anda masukkan Salah</p>

</div>

<?php }?>

<input type="submit" name="submit_login" value="Login" >

<!-- <a onclick="lupa()" style="cursor:pointer;">Forget

Password?</a> -->

</form>

</div>

</body>

</html>

<?php

mysqli_close($koneksi);

?>

Page 51: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

34

3. index.php

<?php

ob_start();

session_start();

if(isset($_SESSION['admin_username'])) header("location: index.php");

include "assets/includes/config.php";

/* PROSES LOGIN */

if(isset($_POST['submit_login'])) {

$username = $_POST['username'];

$password = md5($_POST['password']);

$sql_login = mysqli_query($koneksi, "SELECT * FROM admin WHERE username =

'$username' AND password = '$password'");

if(mysqli_num_rows($sql_login)>0) {

$row_admin = mysqli_fetch_array($sql_login);

$_SESSION['admin_id'] = $row_admin['id'];

$_SESSION['admin_username'] = $row_admin['username'];

header("location: index.php");

}else {

header("location: login.php?login-gagal");

}

}

?>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>ABONPOLKA</title>

<link rel="stylesheet" type="text/css" href="css/main.css">

<link rel="shorcut icon" type="image/png" href="img/iconts.png">

<style>

body{

background: url(img/Polkat.jpg)no-repeat;

background-size: cover;

background-position: center;

}

</style>

</head>

<body>

<div class="login-box">

Page 52: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

35

<img src="img/icontb.png" class="avatar">

<h1>Login Here</h1>

<form method="post">

<p>Username</p>

<input type="text" name="username" value="" placeholder="Enter Username"

required>

<p>Password</p>

<input type="password" name="password" value="" placeholder="Enter

Password" required>

<?php if(isset($_GET['login-gagal'])) {?> <div>

<p>Maaf, Username / Password yang Anda masukkan Salah</p>

</div>

<?php }?>

<input type="submit" name="submit_login" value="Login" >

</form>

</div>

</body>

</html>

<?php

mysqli_close($koneksi);

?>

4. response.php

<?php

include_once("../includes/config.php");

$params = $columns = $totalRecords = $data = array();

$params = $_REQUEST;

$columns = array(

0 =>'id_absen',

1 =>'nrp',

2 => 'status',

3 => 'waktu'

);

$where = $sqlTot = $sqlRec = "";

$sql = "SELECT c.id_absen, nrp , nama, status, waktu FROM absensi2 c

JOIN karyawan s USING (nrp) ";

$sqlTot .= $sql;

$sqlRec .= $sql;

$sqlRec .= " ORDER BY status DESC";

Page 53: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

36

$queryTot = mysqli_query($koneksi, $sqlTot) or die("database error:".

mysqli_error($koneksi));

$totalRecords = mysqli_num_rows($queryTot);

$queryRecords = mysqli_query($koneksi, $sqlRec) or die("error to

fetch absensi2 data");

while( $row = mysqli_fetch_row($queryRecords) ) {

$data[] = $row;

}

$json_data = array(

"draw" => 1,

"recordsTotal" => intval( $totalRecords ),

"recordsFiltered" => intval($totalRecords),

"data" => $data

);

echo json_encode($json_data); ?>

5. karyawan.php

<?php

ob_start();

session_start();

if(!isset($_SESSION['admin_id'])) header("location:login.php");

include "assets/includes/config.php";

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>ABONPOLKA</title>

<link rel="shorcut icon" type="image/png" href="img/icontb.png">

<link rel="stylesheet" href="css/main.css">

<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:700,

600,500,400,300' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-

awesome/4.5.0/css/font-awesome.min.css">

<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"

/>

Page 54: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

37

<link rel="stylesheet"

href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" />

<link rel="stylesheet"

href="http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">

<script

src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></scr

ipt>

<script

src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script

>

<script

src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></sc

ript>

<script

src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></

script>

<script src="https://code.jquery.com/jquery-3.3.1.js"></script>

<script

src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></sc

ript>

<script

src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></scrip

t>

</head>

<body>

<div class="header">

<div class="logo">

<i><img src="img/iconts.png" width="30px"></i>

<span>Absensi Online</span>

</div>

<a href="#" class="nav-trigger"><span></span></a>

<div><h4 style="color:white;"><marquee>Selamat Datang di Administrator

Absensi Online Polda Kaltim</marquee></h4></div>

</div>

<div class="side-nav">

<div class="logo">

<i><img src="img/iconts.png" width="30px"></i>

<span>Admin</span>

</div>

Page 55: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

38

<nav>

<ul>

<li>

<a href="index.php">

<span><i class="fa fa-bar-chart"></i></span>

<span>Home</span>

</a>

</li>

<li>

<a href="#">

<span><i class="fa fa-user"></i></span>

<span>Karyawan</span>

</a>

</li>

<li>

<a href="changes.php">

<span><i class="fa fa-key"></i></span>

<span>Change Password</span>

</a>

</li>

<li>

<a href="logout.php">

<span><i class="fa fa-power-off"></i></span>

<span>Log Out</span>

</a>

</li>

</ul>

</nav>

</div>

<div class="main-content">

<div class="title">

Karyawan Polda Kaltim

</div>

<div class="main">

<div class="container">

<div class="widget">

<div style="margin-bottom: 10px;">

<form class="form-inline" action="" method="post">

<div class="form-group">

Page 56: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

39

<span class="pull-left"><a href="#addnew" data-toggle="modal" class="btn

btn-primary"><span class="glyphicon glyphicon-plus"></span> Tambah

Karyawan</a></span>

</div>

<div class="form-group">

<button class="btn btn-default btn-xs"><span class="glyphicon glyphicon-

refresh "></span></button>

</div>

</form>

</div>

<div style="height:20px;"></div>

<table class="table table-striped table-bordered table-hover">

<thead>

<th>No</th>

<th>foto</th>

<th>nrp</th>

<th>nama</th>

<th>pangkat</th>

<th>jabatan</th>

<th>divisi</th>

<th>password</th>

<th>Action</th>

</thead>

<tbody>

<?php

include('assets/includes/config.php');

$no = 0;

$query=mysqli_query($koneksi,"select * from `karyawan`");

while($row=mysqli_fetch_array($query)){

$no++;

?>

<tr>

<td><?php echo $no; ?></td>

<td><img src="img/user/<?php echo $row['foto'];?>" height="50px"

width="50px"> </td>

<td><?php echo $row['nrp']; ?></td>

<td><?php echo $row['nama']; ?></td>

<td><?php echo $row['pangkat']; ?></td>

<td><?php echo $row['jabatan']; ?></td>

<td><?php echo $row['divisi']; ?></td>

Page 57: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

40

<td><?php echo $row['password']; ?></td>

<td>

<a href="#edit<?php echo $row['nrp']; ?>" data-toggle="modal" class="btn

btn-warning"><span class="glyphicon glyphicon-edit"></span> Edit</a> ||

<a href="#del<?php echo $row['nrp']; ?>" data-toggle="modal" class="btn btn-

danger"><span class="glyphicon glyphicon-trash"></span> Delete</a>

<?php require('assets/button.php'); ?>

</td>

</tr>

<?php

}

?>

</tbody>

</table>

</div>

<?php include('assets/add_modal.php'); ?>

</div>

</div>

</div>

</body>

</html>

6. add_modal.php

<!-- Add New -->

<div class="modal fade" id="addnew" tabindex="-1" role="dialog" aria-

labelledby="myModalLabel" aria-hidden="true">

<div class="modal-dialog">

<div class="modal-content">

<div class="modal-header">

<button type="button" class="close" data-dismiss="modal" aria-

hidden="true">&times;</button>

<center><h4 class="modal-title" id="myModalLabel">Tambah

Karyawan</h4></center>

</div>

<div class="modal-body">

<div class="container-fluid">

<form method="POST" action="assets/addnew.php" enctype="multipart/form-

data">

<div class="row">

<div class="col-lg-2">

Page 58: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

41

<label class="control-label" style="position:relative;

top:7px;">NRP:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="nrp">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative;

top:7px;">Nama:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="nama">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative;

top:7px;">Pangkat:</label>

</div>

<div class="col-lg-10">

<select name="pangkat" class="form-control">

<option>KOMBES POL</option>

<option>AKBP</option>

<option>KOMPOL</option>

<option>IPTU</option>

<option>IPDA</option>

<option>AIPTU</option>

<option>AIPDA</option>

<option>BRIGADIR</option>

<option>BRIPKA</option>

<option>BRIPTU</option>

<option>BRIPDA</option>

<option>PENATA</option>

<option>PENATA I</option>

<option>PENDA</option>

<option>PENDA TK I</option>

Page 59: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

42

<option>PENGATUR I</option>

</select>

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative;

top:7px;">Jabatan:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="jabatan">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative;

top:7px;">Divisi:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="divisi">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative;

top:7px;">Password:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="password">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative;

top:7px;">Foto:</label>

</div>

Page 60: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

43

<div class="col-lg-10">

<input type="file" name="foto">

</div>

</div>

</div>

</div>

<div class="modal-footer">

<button type="button" class="btn btn-default" data-dismiss="modal"><span

class="glyphicon glyphicon-remove"></span> Cancel</button>

<button type="submit" class="btn btn-primary"><span class="glyphicon

glyphicon-floppy-disk"></span> Save</button>

</form>

</div>

</div>

</div>

</div>

7. addnew.php

<?php

include('includes/config.php');

$nrp=$_POST['nrp'];

$nama=$_POST['nama'];

$pangkat=$_POST['pangkat'];

$jabatan=$_POST['jabatan'];

$divisi=$_POST['divisi'];

$password=$_POST['password'];

$target_dir = "";

$foto = $target_dir . basename($_FILES["foto"]["name"]);

$uploadOk = 1;

$imageFileType = strtolower(pathinfo($foto,PATHINFO_EXTENSION));

if(isset($_POST["submit"])) {

$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);

if($check !== false) {

echo "File is an image - " . $check["mime"] . ".";

$uploadOk = 1;

} else {

echo "File is not an image.";

$uploadOk = 0;

Page 61: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

44

}

}

// Check if file already exists

if (file_exists($foto)) {

echo "Sorry, file already exists.";

$uploadOk = 0;

}

// Check file size

if ($_FILES["foto"]["size"] > 500000) {

echo "Sorry, your file is too large.";

$uploadOk = 0;

}

// Allow certain file formats

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType !=

"jpeg"

&& $imageFileType != "gif" ) {

echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";

$uploadOk = 0;

}

mysqli_query($koneksi ,"insert into karyawan (nrp, nama, pangkat, jabatan,

divisi, password, foto) values ('$nrp', '$nama', '$pangkat', '$jabatan',

'$divisi', '$password', '$foto')");

move_uploaded_file($_FILES['foto']['tmp_name'],'../img/user/'.$foto);

header ('location: ../karyawan.php');

?>

8. button.php

<!-- Delete -->

<div class="modal fade" id="del<?php echo $row['nrp']; ?>" tabindex="-1"

role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

<div class="modal-dialog">

<div class="modal-content">

<div class="modal-header">

<button type="button" class="close" data-dismiss="modal" aria-

hidden="true">&times;</button>

<center><h4 class="modal-title" id="myModalLabel">Delete</h4></center>

</div>

<div class="modal-body">

<?php

Page 62: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

45

$del=mysqli_query($koneksi,"select * from karyawan where

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

$drow=mysqli_fetch_array($del);

?>

<div class="container-fluid">

<h5><center>NRP : <strong><?php echo $drow['nrp']; ?></strong></center></h5>

<h5><center>Nama: <strong><?php echo $drow['nama'];

?></strong></center></h5>

</div>

</div>

<div class="modal-footer">

<button type="button" class="btn btn-default" data-dismiss="modal"><span

class="glyphicon glyphicon-remove"></span> Cancel</button>

<a href="assets/delete.php?id=<?php echo $row['nrp']; ?>" class="btn btn-

danger"><span class="glyphicon glyphicon-trash"></span> Delete</a>

</div>

</div>

</div>

</div>

<!-- /.modal -->

<!-- Edit -->

<div class="modal fade" id="edit<?php echo $row['nrp']; ?>" tabindex="-1"

role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

<div class="modal-dialog">

<div class="modal-content">

<div class="modal-header">

<button type="button" class="close" data-dismiss="modal" aria-

hidden="true">&times;</button>

<center><h4 class="modal-title" id="myModalLabel">Edit</h4></center>

</div>

<div class="modal-body">

<?php

$edit=mysqli_query($koneksi,"select * from karyawan where

NRP='".$row['nrp']."'");

$erow=mysqli_fetch_array($edit);

?>

<div class="container-fluid">

<form method="POST" action="assets/edit.php?id=<?php echo $erow['nrp']; ?>">

<div class="row">

<div class="col-lg-2">

Page 63: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

46

<label style="position:relative; top:7px;">NRP:</label>

</div>

<div class="col-lg-10">

<input type="text" name="nrp" class="form-control" value="<?php echo

$erow['nrp']; ?>">

</div>

</div>

<div style="height:10px;"></div><div class="row">

<div class="col-lg-2">

<label style="position:relative; top:7px;">Nama:</label>

</div>

<div class="col-lg-10">

<input type="text" name="nama" class="form-control" value="<?php echo

$erow['nama']; ?>">

</div>

</div>

<div style="height:10px;"></div><div class="row">

<div class="col-lg-2">

<label style="position:relative; top:7px;">Pangkat:</label>

</div>

<div class="col-lg-10">

<select name="pangkat" class="form-control" value"<?php echo

$erow['pangkat']; ?>">

<option>KOMBES POL</option>

<option>AKBP</option>

<option>KOMPOL</option>

<option>IPTU</option>

<option>IPDA</option>

<option>AIPTU</option>

<option>AIPDA</option>

<option>BRIGADIR</option>

<option>BRIPKA</option>

<option>BRIPTU</option>

<option>BRIPDA</option>

<option>PENATA</option>

<option>PENATA I</option>

<option>PENDA</option>

<option>PENDA TK I</option>

<option>PENGATUR I</option>

</select>

Page 64: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

47

</div>

</div>

<div style="height:10px;"></div><div class="row">

<div class="col-lg-2">

<label style="position:relative; top:7px;">Jabatan:</label>

</div>

<div class="col-lg-10">

<input type="text" name="jabatan" class="form-control" value="<?php echo

$erow['jabatan']; ?>">

</div>

</div>

<div style="height:10px;"></div><div class="row">

<div class="col-lg-2">

<label style="position:relative; top:7px;">Divisi:</label>

</div>

<div class="col-lg-10">

<input type="text" name="divisi" class="form-control" value="<?php echo

$erow['divisi']; ?>">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label style="position:relative; top:7px;">Password:</label>

</div>

<div class="col-lg-10">

<input type="text" name="password" class="form-control" value="<?php echo

$erow['password']; ?>">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label style="position:relative; top:7px;">Foto:</label>

</div>

<div class="col-lg-10">

<input type="file" name="foto" value="<?php echo $erow['foto']; ?>">

</div>

</div>

Page 65: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

48

<div style="height:10px;"></div>

</div>

</div>

<div class="modal-footer">

<button type="button" class="btn btn-default" data-dismiss="modal"><span

class="glyphicon glyphicon-remove"></span> Cancel</button>

<button type="submit" class="btn btn-warning"><span class="glyphicon

glyphicon-check"></span> Save</button>

</div>

</form>

</div>

</div>

</div>

<!-- /.modal -->

9. delete.php

<?php

include('includes/config.php');

$id=$_GET['id'];

mysqli_query($koneksi, "delete from karyawan where nrp='$id'");

header ('location:../karyawan.php');

?>

10. edit.php

<?php

include('includes/config.php');

$id=$_GET['id'];

$nrp=$_POST['nrp'];

$nama=$_POST['nama'];

$pangkat=$_POST['pangkat'];

$jabatan=$_POST['jabatan'];

$divisi=$_POST['divisi'];

$password=$_POST['password'];

$foto = $target_dir . basename($_FILES["foto"]["name"]);

mysqli_query($koneksi,"update karyawan set nrp='$nrp',nama='$nama',

pangkat='$pangkat', jabatan='$jabatan', divisi='$divisi',

password='$password' , foto='$foto' where nrp='$id' ");

header('location:../karyawan.php');

?>

11. changes.php

Page 66: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

49

<?php

ob_start();

session_start();

if(!isset($_SESSION['admin_id'])) header("location:login.php");

include "assets/includes/config.php";

$sip="";

if(isset($_POST['Submit']))

{

$oldpass=md5($_POST['opwd']);

$user=$_SESSION['admin_id'];

$newpassword=md5($_POST['npwd']);

$sql=mysqli_query($koneksi,"SELECT password FROM admin where

password='$oldpass' && id='$user'");

$num=mysqli_fetch_array($sql);

if($num>0)

{

$con=mysqli_query($koneksi,"update admin set password='$newpassword' where

id='$user'");

$sip="Password Changed Successfully !!";

}

else

{

$sip="Old Password not match !!";

}

}

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>ABONPOLKA</title>

<link rel="shorcut icon" type="image/png" href="img/icontb.png">

<link rel="stylesheet" href="css/main.css">

<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:700,

600,500,400,300' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-

awesome/4.5.0/css/font-awesome.min.css">

Page 67: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

50

<link rel="stylesheet"

href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"

/>

<link rel="stylesheet"

href="http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">

<script

src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></scr

ipt>

<script

src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></

script>

<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script>

<script src="js/main.js"></script>

</head>

<body>

<div class="header">

<div class="logo">

<i><img src="img/iconts.png" width="30px"></i>

<span>Admin</span>

</div>

<a href="#" class="nav-trigger"><span></span></a>

<div><h4 style="color:white;"><marquee>Selamat Datang di Administrator

Absensi Online Polda Kaltim</marquee></h4></div>

</div>

<div class="side-nav">

<div class="logo">

<i><img src="img/iconts.png" width="30px"></i>

<span>Admin</span>

</div>

<nav>

<ul>

<li>

<a href="index.php">

<span><i class="fa fa-bar-chart"></i></span>

<span>Home</span>

</a>

</li>

<li>

<a href="karyawan.php">

<span><i class="fa fa-user"></i></span>

Page 68: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

51

<span>Karyawan</span>

</a>

</li>

<li>

<a href="#">

<span><i class="fa fa-key"></i></span>

<span>Change Password</span>

</a>

</li>

<li>

<a href="logout.php">

<span><i class="fa fa-power-off"></i></span>

<span>Log Out</span>

</a>

</li>

</ul>

</nav>

</div>

<div class="main-content">

<div class="title">

Change Password Admin

</div>

<div class="main">

<div class="container">

<div class="widget">

<p style="color:red;">

<?php echo $sip;?><?php echo $sip="";?></p>

<form name="chngpwd" action="" method="post" onSubmit="return valid();">

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative; top:7px;">Current

Password:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="opwd" id="opwd">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

Page 69: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

52

<label class="control-label" style="position:relative; top:7px;">New

Password:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="npwd" id="npwd">

</div>

</div>

<div style="height:10px;"></div>

<div class="row">

<div class="col-lg-2">

<label class="control-label" style="position:relative; top:7px;">Confirm

Password:</label>

</div>

<div class="col-lg-10">

<input type="text" class="form-control" name="cpwd" id="cpwd">

</div>

</div>

<div style="height:10px;"></div>

<div class="modal-footer">

<button type="button" class="btn btn-default" data-dismiss="modal"><span

class="glyphicon glyphicon-remove"></span><a href="index.php"/>

Cancel</button>

<button type="submit" class="btn btn-primary" name="Submit"><span

class="glyphicon glyphicon-floppy-disk"></span> Save </button> </div>

</form>

</div>

</div>

</div>

</div>

</body>

<script type="text/javascript">

function valid()

{

if(document.chngpwd.opwd.value=="")

{

alert("Old Password Filed is Empty !!");

document.chngpwd.opwd.focus();

return false;

}

else if(document.chngpwd.npwd.value=="")

Page 70: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

53

{

alert("New Password Filed is Empty !!");

document.chngpwd.npwd.focus();

return false;

}

else if(document.chngpwd.cpwd.value=="")

{

alert("Confirm Password Filed is Empty !!");

document.chngpwd.cpwd.focus();

return false;

}

else if(document.chngpwd.npwd.value!= document.chngpwd.cpwd.value)

{

alert("Password and Confirm Password Field do not match !!");

document.chngpwd.cpwd.focus();

return false;

}

return true;

}

</script>

<?php

mysqli_close($con);

?>

</html>

12. cetak.php

<?php

// memanggil library FPDF

require('fpdf.php');

$id=$_GET['date'];

{

date_default_timezone_set('Asia/Makassar');// change according timezone

$currentTime = date( 'd-m-Y h:i:s A', time () );

}

// intance object dan memberikan pengaturan halaman PDF

$pdf = new FPDF('p','mm','Legal');

// membuat halaman baru

$pdf->AddPage();

$pdf->SetFont('Arial','B',10);

Page 71: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

54

//Format tanggal

$pdf->Cell(200,5,'Balikpapan',0,1,'R');

$pdf->SetFont('Times','B',10);

$pdf->Cell(200,2,"Printed On : ".date("D-d/m/Y"),0,1,'R');

$pdf->ln(1);

$pdf->Image('../../img/iconts.png',60,5,15);

$pdf->Cell(10,2,'',0,1);

$pdf->SetFont('Arial','B',13);

// mencetak string

$pdf->Cell(120,5,'KEPOLISIAN NEGARA REPUBLIK INDONESIA',0,1,'C');

$pdf->SetFont('Arial','B',12);

// mencetak string

$pdf->Cell(120,5,'DAERAH KALIMANTAN TIMUR',0,5,'C');

$pdf->SetFont('Arial','U',11);

$pdf->Cell(120,5,'Jalan Syarifuddin Yoes 99 Balikpapan 76115',0,5,'C');

$pdf->Cell(5,7,'',0,4);

$pdf->SetFont('Arial','B',12);

//Format tanggal

$pdf->Cell(200,5,'REKAPAN ABSENSI ONLINE POLDA KALTIM ',0,1,'C');

$pdf->Cell(10,2,'',0,4);

$pdf->SetFont('Arial','B',10,'C');

$pdf->Cell(10,6,'No',1,0,'C');

$pdf->Cell(40,6,'NRP',1,0,'C');

$pdf->Cell(50,6,'Nama',1,0,'C');

$pdf->Cell(25,6,'Status',1,0,'C');

$pdf->Cell(35,6,'Tanggal',1,0,'C');

$pdf->Cell(35,6,'Waktu',1,1,'C');

$pdf->SetFont('Arial','',10);

include '../includes/config.php';

//$mahasiswa = mysqli_query($connect, "select * from mahasiswa");

$no =0;

$mahasiswa = mysqli_query($koneksi, "SELECT c.id_absen, nrp , nama, status,

waktu FROM absensi2 c JOIN karyawan s USING (nrp) WHERE (waktu BETWEEN

'$id') ORDER BY waktu DESC ");

while ($row = mysqli_fetch_array($mahasiswa)){

$no++;

Page 72: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

55

//$pdf->Cell(10,6,$row['id_absen'],1,0,'C');

$pdf->Cell(10,6, $no ,1,0,'C');

$pdf->Cell(40,6,$row['nrp'],1,0,'C');

$pdf->Cell(50,6,$row['nama'],1,0,'C');

$pdf->Cell(25,6,$row['status'],1,0,'C');

$pdf->Cell(35,6,date('Y-m-d',strtotime ($row['waktu'])),1,0,'C');

$pdf->Cell(35,6,date('G:i',strtotime($row['waktu'])),1,1,'C');

}

$pdf->Output();

?>

13. logout.php

<?php

session_start();

$_SESSION["admin_id"];

unset($_SESSION["admin_id"]);

session_unset();

session_destroy();

header("location:login.php");

?>

14. init.php

<?php

$host = "mysql.hostinger.co.id";

$user_name = "u847393371_absn2";

$user_password = "20152018absn2";

$db_name = "u847393371_absn2";

?>

15. loginkaryawan.php

<?php

if($_SERVER['REQUEST_METHOD']=='POST'){

include 'init.php';

$con = mysqli_connect($host,$user_name,$user_password,$db_name);

$nrp = $_POST['nrp'];

$password = $_POST['password'];

$Sql_Query = "select * from karyawan where nrp = '$nrp' and password =

'$password' ";

$check = mysqli_fetch_array(mysqli_query($con,$Sql_Query));

Page 73: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

56

if(isset($check)){

echo "Data Matched";

}

else{

echo "Invalid Username or Password Please Try Again";

}

}else{

echo "Check Again";

}

mysqli_close($con);

?>

16. input.php

<?php

include "init.php";

$con = mysqli_connect($host,$user_name,$user_password,$db_name);

date_default_timezone_set("Asia/Makassar");

$nrp=$_GET['nrp'];

$status=$_GET['status'];

$waktu=date('Y-m-d H:i:s');

if($status!=""){

$Sql_Query="INSERT INTO absensi2 (`nrp`, `status`, `waktu`) VALUES ('$nrp',

'$status', '$waktu')";

$check = mysqli_fetch_array(mysqli_query($con,$Sql_Query));

}

?>

17. getabsensi.php

<?php

include "init.php";

$con = mysqli_connect($host,$user_name,$user_password,$db_name);

if(mysqli_connect_error($con)){

echo "Failed to connect";

}

$query = mysqli_query($con,"select * from absensi2");

if($query){

while($row = mysqli_fetch_array($query)){

$flag[] = $row;

}

print(json_encode($flag));

Page 74: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

57

}

mysqli_close($con);

?>

18. changepasskaryawan.php

<?php

if($_SERVER['REQUEST_METHOD']=='POST') {

include 'init.php';

$con = mysqli_connect($host,$user_name,$user_password,$db_name);

$response = array();

//mendapatkan data

$nrp = $_POST['nrp'];

$password = $_POST['password'];

$sql = "UPDATE karyawan SET password = '$password' WHERE nrp = '$nrp'";

if(mysqli_query($con,$sql)) {

$response["value"] = 1;

$response["message"] = "Berhasil diperbarui";

echo json_encode($response);

} else {

$response["value"] = 0;

$response["message"] = "oops! Gagal merubah!";

echo json_encode($response);

}

mysqli_close($con);

}

19. AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.winda-ww97.abonpolka">

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.CAMERA" />

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher_logo"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

Page 75: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

58

<activity android:name=".LoginActivity"

android:screenOrientation="portrait">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER"

/>

</intent-filter>

</activity>

<activity android:name=".MainActivity"

android:screenOrientation="portrait"

android:noHistory="true"/>

</application>

</manifest>

20. MainActivity.java

package com.example.winda-ww97.abonpolka;

import android.support.annotation.NonNull;

import android.support.design.widget.BottomNavigationView;

import android.support.v4.app.FragmentTransaction;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.MenuItem;

import android.widget.TextView;

import android.widget.Toast;

import com.example.winda-ww97.abonpolka.fragment.ForgotPasswordActivity;

import com.example.winda-ww97.abonpolka.fragment.HistoryActivity;

import com.example.winda-ww97.abonpolka.fragment.InActivity;

public class MainActivity extends AppCompatActivity {

String NameHolder;

String nrpb;

private BottomNavigationView.OnNavigationItemSelectedListener

mOnNavigationItemSelectedListener

= new BottomNavigationView.OnNavigationItemSelectedListener() {

@Override

public boolean onNavigationItemSelected(@NonNull MenuItem item) {

switch (item.getItemId()) {

case R.id.navigation_absensi:

setTitle("ABONPOLKA"); //this will set title of Action

Bar

InActivity fragment1 = new InActivity();

Page 76: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

59

FragmentTransaction fragmentTransaction1 =

getSupportFragmentManager().beginTransaction();

fragmentTransaction1.replace(R.id.fram, fragment1,

"Fragment One"); //create first framelayout with id fram in the activity

where fragments will be displayed

fragmentTransaction1.commit();

return true;

case R.id.navigation_forgot_password:

setTitle("ABONPOLKA");

ForgotPasswordActivity fragment2 = new

ForgotPasswordActivity();

FragmentTransaction fragmentTransaction2 =

getSupportFragmentManager().beginTransaction();

fragmentTransaction2.replace(R.id.fram, fragment2,

"FragmentTwo"); //create first framelayout with id fram in the activity

where fragments will be displayed

fragmentTransaction2.commit();

return true;

case R.id.navigation_history:

setTitle("ABONPOLKA");

HistoryActivity fragment3 = new HistoryActivity();

FragmentTransaction fragmentTransaction3 =

getSupportFragmentManager().beginTransaction();

fragmentTransaction3.replace(R.id.fram, fragment3,

"FragmentThree"); //create first framelayout with id fram in the activity

where fragments will be displayed

fragmentTransaction3.commit();

return true;

}

return false;

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

BottomNavigationView navigation = (BottomNavigationView)

findViewById(R.id.navigation);

Page 77: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

60

navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedList

ener);

setTitle("Fragment One"); //this will set title of Action Bar

InActivity fragment1 = new InActivity();

FragmentTransaction fragmentTransaction1 =

getSupportFragmentManager().beginTransaction();

fragmentTransaction1.replace(R.id.fram, fragment1, "Fragment One");

//create first framelayout with id fram in the activity where fragments will

be displayed

fragmentTransaction1.commit();

}

}

21. LoginActivity.java

package com.example.winda-ww97.abonpolka;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.AsyncTask;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

import com.example.winda-ww97.abonpolka.api.HttpParse;

import com.example.winda-ww97.abonpolka.api.KaryawanService;

import com.example.winda-ww97.abonpolka.model.Karyawan;

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import java.util.HashMap;

import java.util.List;

import retrofit2.Call;

import retrofit2.Callback;

import retrofit2.Response;

import retrofit2.Retrofit;

import retrofit2.converter.gson.GsonConverterFactory;

Page 78: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

61

public class LoginActivity extends AppCompatActivity {

private Button mLoginButton;

EditText mNRP, mPassword;

String NRPHolder, PasswordHolder;

String finalResult;

String HttpURL = "http://tkjpoltekba15.com/absen/loginkaryawan.php";

SharedPreferences pref;

SharedPreferences.Editor editor;

Boolean CheckEditText;

ProgressDialog progressDialog;

HashMap<String, String> hashMap = new HashMap<>();

HttpParse httpParse = new HttpParse();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

mNRP = (EditText) findViewById(R.id.edit_text_username);

mPassword = (EditText) findViewById(R.id.edit_text_password);

mLoginButton = (Button) findViewById(R.id.login_button);

mLoginButton.setOnClickListener(v -> {

CheckEditTextIsEmptyOrNot();

if (CheckEditText) {

UserLoginFunction(NRPHolder, PasswordHolder);

} else {

Toast.makeText(LoginActivity.this, "Please fill all form

fields.", Toast.LENGTH_LONG).show();

}

});

}

public void CheckEditTextIsEmptyOrNot() {

NRPHolder = mNRP.getText().toString();

PasswordHolder = mPassword.getText().toString();

if (TextUtils.isEmpty(NRPHolder) ||

TextUtils.isEmpty(PasswordHolder)) {

CheckEditText = false;

} else {

CheckEditText = true;

}

}

Page 79: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

62

public void UserLoginFunction(final String nrp, final String password) {

class UserLoginClass extends AsyncTask<String, Void, String> {

@Override

protected void onPreExecute() {

super.onPreExecute();

progressDialog = ProgressDialog.show(LoginActivity.this,

"Loading Data", null, true, true);

}

@Override

protected void onPostExecute(String httpResponseMsg) {

super.onPostExecute(httpResponseMsg);

progressDialog.dismiss();

if (httpResponseMsg.equalsIgnoreCase("Data Matched")) {

finish();

Intent intent = new Intent(LoginActivity.this,

MainActivity.class);

intent.putExtra("nrp", nrp);

intent.putExtra("password", password);

startActivity(intent);

} else {

Toast.makeText(LoginActivity.this, httpResponseMsg,

Toast.LENGTH_LONG).show();

}

}

@Override

protected String doInBackground(String... params) {

hashMap.put("nrp", params[0]);

hashMap.put("password", params[1]);

finalResult = httpParse.postRequest(hashMap, HttpURL);

return finalResult;

}

}

UserLoginClass userLoginClass = new UserLoginClass();

userLoginClass.execute(nrp, password);

}

}

22. CustomListHistory.java

package com.example.winda-ww97.abonpolka.fragment;

Page 80: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

63

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.support.v4.app.ActivityCompat;

import android.support.v4.app.Fragment;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.SparseArray;

import android.view.LayoutInflater;

import android.view.Surface;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageButton;

import android.widget.TextView;

import android.widget.Toast;

import com.example.winda-ww97.abonpolka.MainActivity;

import com.example.winda-ww97.abonpolka.R;

import com.example.winda-ww97.abonpolka.api.AbsensiService;

import com.example.winda-ww97.abonpolka.api.KaryawanService;

import com.example.winda-ww97.abonpolka.model.Absensi;

import com.google.android.gms.common.api.CommonStatusCodes;

import com.google.android.gms.vision.CameraSource;

import com.google.android.gms.vision.Detector;

import com.google.android.gms.vision.barcode.Barcode;

import com.google.android.gms.vision.barcode.BarcodeDetector;

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import com.google.zxing.Result;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.sql.Time;

import java.util.Date;

import me.dm7.barcodescanner.zxing.ZXingScannerView;

import retrofit2.Call;

import retrofit2.Callback;

Page 81: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

64

import retrofit2.Response;

import retrofit2.Retrofit;

import retrofit2.converter.gson.GsonConverterFactory;

import static java.sql.Time.*;

public class InActivity extends Fragment {

private ZXingScannerView scannerView;

private String resultCode;

private ImageButton imageButton;

public static final String BASE_URL = "http://tkjpoltekba15.com/absen/";

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflater.inflate(R.layout.activity_in, container,

false);

((AppCompatActivity)

getActivity()).getSupportActionBar().setTitle("Pindai Barcode");

imageButton = (ImageButton) view.findViewById(R.id.imageButton);

imageButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

scanCode();

}

});

return view;

}

public void scanCode() {

scannerView = new ZXingScannerView(getContext());

scannerView.setResultHandler(new ZXingScannerResultHandler());

getActivity().setContentView(scannerView);

scannerView.startCamera();

}

@Override

Page 82: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

65

public void onPause() {

super.onPause();

}

class ZXingScannerResultHandler implements

ZXingScannerView.ResultHandler {

@Override

public void handleResult(Result result) {

resultCode = result.getText();

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(getContext());

alertDialogBuilder

.setMessage(resultCode)

.setCancelable(false)

.setPositiveButton("OK", new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int

which) {

insertAbsensi();

getActivity().finish();

}

});

AlertDialog alertDialog = alertDialogBuilder.create();

alertDialog.show();

scannerView.stopCamera();

}

}

private void insertAbsensi() {

Gson gson = new GsonBuilder().create();

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(BASE_URL)

.addConverterFactory(GsonConverterFactory.create(gson))

.build();

AbsensiService api = retrofit.create(AbsensiService.class);

String nrp = getActivity().getIntent().getStringExtra("nrp");

int nrp1 = Integer.parseInt(nrp);

String status = resultCode;

Page 83: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

66

String waktu = resultCode;

Absensi absensi = new Absensi();

absensi.setNrp(nrp1);

absensi.setStatus(status);

absensi.setWaktu(waktu);

api.insertAbsen(nrp1, status, waktu)

.enqueue(new Callback<Absensi>() {

@Override

public void onResponse(Call<Absensi> call,

Response<Absensi> response) {

Toast.makeText(getContext(), "scan success",

Toast.LENGTH_LONG).show();

}

@Override

public void onFailure(Call<Absensi> call, Throwable

throwable) {

}

});

}

}

23. InActivity.java

package com.example.winda-ww97.abonpolka.fragment;

import android.app.AlertDialog;

import android.app.Dialog;

import android.app.ProgressDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.os.AsyncTask;

import android.support.v4.app.ActivityCompat;

import android.support.v4.app.Fragment;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.SparseArray;

Page 84: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

67

import android.view.LayoutInflater;

import android.view.Surface;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageButton;

import android.widget.TextView;

import android.widget.Toast;

import com.android.volley.Request;

import com.android.volley.RequestQueue;

import com.android.volley.toolbox.Volley;

import com.example.winda-ww97.abonpolka.LoginActivity;

import com.example.winda-ww97.abonpolka.MainActivity;

import com.example.winda-ww97.abonpolka.PopActivity;

import com.example.winda-ww97.abonpolka.R;

import com.example.winda-ww97.abonpolka.api.AbsensiService;

import com.example.winda-ww97.abonpolka.api.HttpParse;

import com.example.winda-ww97.abonpolka.api.KaryawanService;

import com.example.winda-ww97.abonpolka.model.Absensi;

import com.google.android.gms.common.api.CommonStatusCodes;

import com.google.android.gms.vision.CameraSource;

import com.google.android.gms.vision.Detector;

import com.google.android.gms.vision.barcode.Barcode;

import com.google.android.gms.vision.barcode.BarcodeDetector;

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import com.google.zxing.Result;

import com.android.volley.Request.Method;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.StringRequest;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.sql.Time;

import java.util.Date;

Page 85: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

68

import java.util.HashMap;

import me.dm7.barcodescanner.zxing.ZXingScannerView;

import retrofit2.Call;

import retrofit2.Callback;

//import retrofit2.Response;

import retrofit2.Retrofit;

import retrofit2.converter.gson.GsonConverterFactory;

public class InActivity extends Fragment {

String finalResult ;

private ZXingScannerView scannerView;

private String resultCode;

private ImageButton imageButton;

HashMap<String,String> hashMap = new HashMap<>();

HttpParse httpParse = new HttpParse();

public static final String BASE_URL =

"http://tkjpoltekba15.com/absen/input.php";

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflater.inflate(R.layout.activity_in, container,

false);

((AppCompatActivity)

getActivity()).getSupportActionBar().setTitle("Pindai Barcode");

imageButton = (ImageButton) view.findViewById(R.id.imageButton);

imageButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

scanCode();

}

});

Page 86: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

69

return view;

}

public void scanCode(){

scannerView = new ZXingScannerView(getContext());

scannerView.setResultHandler( new ZXingScannerResultHandler());

getActivity().setContentView(scannerView);

scannerView.startCamera();

}

@Override

public void onPause() {

super.onPause();

}

class ZXingScannerResultHandler implements

ZXingScannerView.ResultHandler {

@Override

public void handleResult(Result result) {

resultCode=result.getText();

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(getContext());

alertDialogBuilder

.setMessage(resultCode)

.setCancelable(false)

.setPositiveButton("OK", new

DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int

which) {

// insertAbsensi();

absen();

}

});

AlertDialog alertDialog = alertDialogBuilder.create();

alertDialog.show();

scannerView.stopCamera();

Page 87: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

70

}

}

private void absen(){

// Instantiate the RequestQueue.

MainActivity activity=(MainActivity)getActivity();

String nrpb = activity.myNRP();

// Request a string response from the provided URL.

RequestQueue queue = Volley.newRequestQueue(getContext());

//RequestQueue rq = Volley.newRequestQueue(getApplicationContext());

StringRequest stringRequest = new StringRequest(Request.Method.GET,

BASE_URL+"?status="+resultCode+"&nrp="+nrpb,

new Response.Listener<String>() {

@Override

public void onResponse(String response) {

// Display the first 500 characters of the response

string.

Toast.makeText(getContext(),"scan

success",Toast.LENGTH_LONG).show();

Intent i = new Intent(getContext(),

MainActivity.class);

startActivity(i);

Intent p = new Intent(getContext(),

PopActivity.class);

startActivity(p);

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

// mTextView.setText("That didn't work!");

Toast.makeText(getContext(),"scan

gagal",Toast.LENGTH_LONG).show();

}

});

queue.add(stringRequest);

// Add the request to the RequestQueue.

Page 88: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

71

// queue.add(stringRequest);

}

24. AbsensiService.java

package com.example.winda-ww97.abonpolka.api;

import com.example.winda-ww97.abonpolka.model.Absensi;

import com.example.winda-ww97.abonpolka.model.Karyawan;

import java.util.List;

import retrofit2.Call;

import retrofit2.Callback;

import retrofit2.Response;

import retrofit2.http.Field;

import retrofit2.http.FormUrlEncoded;

import retrofit2.http.GET;

import retrofit2.http.POST;

import retrofit2.http.Query;

public interface AbsensiService {

@GET("getabsensi.php")

Call<List<Absensi>> getAbsensi(

@Query("nrp") String nrp,

@Query("status") String status,

@Query("waktu") String waktu

);

@FormUrlEncoded

@POST("input.php")

Call<Absensi> insertAbsen(

//@Field("id_absen") int id_absen,

@Field("nrp") int nrp,

@Field("status") String status,

@Field("waktu") String waktu

);

}

25. HttpParse.java

package com.example.winda-ww97.abonpolka.api;

import java.io.BufferedReader;

import java.io.BufferedWriter;

Page 89: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

72

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.HashMap;

import java.util.Map;

public class HttpParse {

String FinalHttpData = "";

String Result ;

BufferedWriter bufferedWriter ;

OutputStream outputStream ;

BufferedReader bufferedReader ;

StringBuilder stringBuilder = new StringBuilder();

URL url;

public String postRequest(HashMap<String, String> Data, String

HttpUrlHolder) {

try {

url = new URL(HttpUrlHolder);

HttpURLConnection httpURLConnection = (HttpURLConnection)

url.openConnection();

httpURLConnection.setReadTimeout(14000);

httpURLConnection.setConnectTimeout(14000);

httpURLConnection.setRequestMethod("POST");

httpURLConnection.setDoInput(true);

httpURLConnection.setDoOutput(true);

outputStream = httpURLConnection.getOutputStream();

bufferedWriter = new BufferedWriter(

new OutputStreamWriter(outputStream, "UTF-8"));

bufferedWriter.write(FinalDataParse(Data));

bufferedWriter.flush();

bufferedWriter.close();

outputStream.close();

if (httpURLConnection.getResponseCode() ==

HttpURLConnection.HTTP_OK) {

bufferedReader = new BufferedReader(

Page 90: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

73

new InputStreamReader(

httpURLConnection.getInputStream()

)

);

FinalHttpData = bufferedReader.readLine();

}

else {

FinalHttpData = "Something Went Wrong";

}

} catch (Exception e) {

e.printStackTrace();

}

return FinalHttpData;

}

public String FinalDataParse(HashMap<String,String> hashMap2) throws

UnsupportedEncodingException {

for(Map.Entry<String,String> map_entry : hashMap2.entrySet()){

stringBuilder.append("&");

stringBuilder.append(URLEncoder.encode(map_entry.getKey(), "UTF-8"));

stringBuilder.append("=");

stringBuilder.append(URLEncoder.encode(map_entry.getValue(), "UTF-8"));

}

Result = stringBuilder.toString();

return Result ;

}

}

26. KaryawanService.java

package com.example.winda-ww97.abonpolka.api;

import com.example.winda-ww97.abonpolka.model.Karyawan;

import java.util.HashMap;

import java.util.List;

import retrofit2.Call;

import retrofit2.http.Body;

import retrofit2.http.Field;

import retrofit2.http.FormUrlEncoded;

import retrofit2.http.GET;

Page 91: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

74

import retrofit2.http.POST;

import retrofit2.http.PUT;

import retrofit2.http.Query;

public interface KaryawanService{

@FormUrlEncoded

@POST("changepasskaryawan.php")

Call<Karyawan> ubah(

@Field("nrp") String nrp,

@Field("password") String password);

}

27. Retroserver.java

package com.example.winda-ww97.abonpolka.api;

import retrofit2.Retrofit;

import retrofit2.converter.gson.GsonConverterFactory;

public class Retroserver {

private static final String base_url =

"http://tkjpoltekba15.com/absen/";

private static Retrofit retrofit;

public static Retrofit getClient()

{

retrofit = new Retrofit.Builder()

.baseUrl(base_url)

.addConverterFactory(GsonConverterFactory.create())

.build();

return retrofit;

}

}

28. ForgotPasswordActivity.java

package com.example.winda-ww97.abonpolka.fragment;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.AsyncTask;

Page 92: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

75

import android.support.annotation.NonNull;

import android.support.annotation.Nullable;

import android.support.v4.app.Fragment;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

import com.example.winda-ww97.abonpolka.LoginActivity;

import com.example.winda-ww97.abonpolka.R;

import com.example.winda-ww97.abonpolka.api.HttpParse;

import com.example.winda-ww97.abonpolka.api.KaryawanService;

import com.example.winda-ww97.abonpolka.api.Retroserver;

import com.example.winda-ww97.abonpolka.model.Karyawan;

import com.example.winda-ww97.abonpolka.model.Value;

import java.util.HashMap;

import retrofit2.Call;

import retrofit2.Callback;

import retrofit2.Response;

import retrofit2.Retrofit;

import retrofit2.converter.gson.GsonConverterFactory;

public class ForgotPasswordActivity extends Fragment {

String HttpURL = "http://tkjpoltekba15.com/absen/";

ProgressDialog progressDialog;

private Button mCancel, mSave;

private EditText mCurrentPassword, mNewPassword, mConfirmPassword;

private String NRPholder;

SharedPreferences pref;

Page 93: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

76

SharedPreferences.Editor editor;

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.activity_forgot_password,

container, false);

((AppCompatActivity)

getActivity()).getSupportActionBar().setTitle("Forgot Password");

Context context = view.getContext();

pref = context.getSharedPreferences("karyawan",

Context.MODE_PRIVATE);

mCurrentPassword = (EditText)

view.findViewById(R.id.edit_text_current_password);

NRPholder = getActivity().getIntent().getStringExtra("password");

mCurrentPassword.setText(NRPholder);

mNewPassword = (EditText)

view.findViewById(R.id.edit_text_new_password);

mConfirmPassword = (EditText)

view.findViewById(R.id.edit_text_confirm_password);

mSave = (Button) view.findViewById(R.id.button_save);

mSave.setOnClickListener(v -> {

String currentPassHolder =

mCurrentPassword.getText().toString();

String newPassHolder = mNewPassword.getText().toString();

String confirmPassHolder =

mConfirmPassword.getText().toString();

if (newPassHolder.isEmpty() && confirmPassHolder.isEmpty()) {

Toast.makeText(getContext(), "Please fill all form fields.",

Toast.LENGTH_LONG).show();

} else {

if (newPassHolder.equals(currentPassHolder)) {

Toast.makeText(getContext(), "Use a different

password.", Toast.LENGTH_LONG).show();

Page 94: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

77

} else {

if (newPassHolder.equals(confirmPassHolder)) {

String nrp =

getActivity().getIntent().getStringExtra("nrp");

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(HttpURL)

.addConverterFactory(GsonConverterFactory.create())

.build();

KaryawanService api =

retrofit.create(KaryawanService.class);

Call<Karyawan> call = api.ubah(nrp, newPassHolder);

call.enqueue(new Callback<Karyawan>() {

@Override

public void onResponse(Call<Karyawan> call,

Response<Karyawan> response) {

String value = response.body().getValue();

String message =

response.body().getMessage();

progressDialog = new

ProgressDialog(getContext());

progressDialog.setCancelable(false);

progressDialog.setMessage("Loading ...");

progressDialog.show();

progressDialog.dismiss();

if (value.equals("1")) {

Toast.makeText(getContext(), message,

Toast.LENGTH_SHORT).show();

getActivity().finish();

} else {

Toast.makeText(getContext(), message,

Toast.LENGTH_SHORT).show();

}

}

@Override

public void onFailure(Call<Karyawan> call,

Page 95: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

78

Throwable throwable) {

throwable.printStackTrace();

progressDialog.dismiss();

Toast.makeText(getContext(), "Error

Connection.", Toast.LENGTH_SHORT).show();

}

});

} else {

Toast.makeText(getContext(), "Failed",

Toast.LENGTH_LONG).show();

}

}

}

});

mCancel = (Button) view.findViewById(R.id.button_cancel);

mCancel.setOnClickListener(v -> {

mCurrentPassword.setText("");

mNewPassword.setText("");

mConfirmPassword.setText("");

});

return view;

}

}

29. Absensi.java

package com.example.winda-ww97.abonpolka.model;

import com.google.gson.annotations.Expose;

import com.google.gson.annotations.SerializedName;

import java.io.Serializable;

import java.sql.Time;

import java.util.Date;

public class Absensi implements Serializable{

@SerializedName("id_absen")

@Expose

private int id_absen;

Page 96: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

79

@SerializedName("nrp")

@Expose

private int nrp;

@SerializedName("status")

@Expose

private String status;

@SerializedName("waktu")

@Expose

private String waktu;

public int getIdAbsen() {

return id_absen;

}

public void setIdAbsen(int id_absen) {

this.id_absen = id_absen;

}

public int getNrp() {

return nrp;

}

public void setNrp(int nrp) {

this.nrp = nrp;

}

public String getStatus() {

return status;

}

public void setStatus(String status) {

this.status = status;

}

public String getWaktu() {

return waktu;

}

public void setWaktu(String waktu) {

this.waktu = waktu;

}

}

30. Karyawan.java

package com.example.winda-ww97.abonpolka.model;

import com.google.gson.annotations.Expose;

import com.google.gson.annotations.SerializedName;

Page 97: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

80

import java.io.Serializable;

public class Karyawan implements Serializable {

@SerializedName("nrp")

@Expose

private String nrp;

@SerializedName("nama")

@Expose

private String nama;

@SerializedName("password")

@Expose

private String password;

String value;

String message;

public String getNRP() {

return nrp;

}

public void setNRP(String nrp) {

this.nrp = nrp;

}

public String getNama() {

return nama;

}

public void setNama(String nama) {

this.nama = nama;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getValue() {

return value;

}

public void setValue(String value) {

this.value = value;

}

Page 98: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

81

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

31. Value.java

package com.example.winda-ww97.abonpolka.model;

import java.util.List;

public class Value {

String value;

String message;

List<Karyawan> karyawanList;

public String getValue() {

return value;

}

public void setValue(String value) {

this.value = value;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

public List<Karyawan> getKaryawanList() {

return karyawanList;

}

public void setKaryawanList(List<Karyawan> karyawanList) {

this.karyawanList = karyawanList;

}

}

Page 99: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

82

32. Activity_main.xml

33. activity_login.xml

Page 100: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

83

34. activity_in.xml

35. activity_history.xml

Page 101: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya

84

36. activity_forgot_password.xml

37. activity_custom_list_history.xml

Page 102: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya
Page 103: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya
Page 104: TUGAS AKHIRspmi.poltekba.ac.id/spmi/fileTA/150309281393_2018.pdf · 2018-08-28 · i pembuatan aplikasi absensi menggunakan qr code di polda kaltim berbasis android tugas akhir karya