Anda di halaman 1dari 153

HALAMAN SAMPUL

IMPLEMENTASI SISTEM PENGGAJIAN


PADA KEDAI KOPI KOPIDAN BERBASIS WEB

(Studi Kasus : Kedai kopi Kopidan, Kota Yogyakarta)

LAPORAN PROYEK TUGAS AKHIR

FIKRI UMAR DANI


5180311031

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS SAINS & TEKNOLOGI
UNIVERSITAS TEKNOLOGI YOGYAKARTA
YOGYAKARTA
2022
IMPLEMENTASI SISTEM PENGGAJIAN
PADA KEDAI KOPI KOPIDAN BERBASIS WEB
(Studi Kasus : Kedai kopi Kopidan, Kota Yogyakarta)

Disusun oleh
FIKRI UMARDANI
5180311031

Telah dipertahankan di depan Dewan Penguji


pada tanggal …………………..

DEWAN PENGUJI
Nama & Gelar Jabatan Tanda tangan tanggal

………………………… Ketua penguji ..................... .............


NIK.

………………………… Penguji 1 ..................... .............


NIK.

………………………… Penguji IIS ..................... .............


NIK. (Dosen Pembimbing)

Yogyakarta, ……………………
Ketua Program Studi Sistem Informasi

…………………………………..
NIK.

ii
KATA PENGANTAR

Puji dan syukur penulis persembahkan kepada Allah SWT, karena atas
segala kehendak-Nya penulis dapat menyelesaikan penyusunan laporan Tugas
Akhir ini dengan judul “Analisis dan perancanan sistem penggajian pada kedai kopi
KopiDan”. Sholawat serta salam semoga selalu tercurah limpahkan kepada Nabi
Muhammad SAW, yang telah membawa kita menjadi manusia dengan akhlak yang
mulia.
Laporan Tugas Akhir ini disusun guna memenuhi persyaratan memperoleh
gelar Sarjana Sistem Informasi pada Fakultas Sains & Teknologi Universitas
Teknologi Yogyakarta. Pada kesempatan ini penulis sampaikan banyak terimakasih
kepada semua pihak yang telah memberi dukungan, dorongan, kemudahan, serta
bantuan selama penyusunan Laporan Tugas Akhir sehingga laporan ini dapat
terselesaikan dengan baik. Rasa terimakasih sebesar-besarnya penulis sampaikan
kepada :

1. Rektor Universitas Teknologi Yogyakarta, yang saat ini dijabat oleh


bapak Dr. Bambang Moertono Setiawan, M.M., C.A., Akt.
2. Dekan Fakultas Sains & Teknologi Universitas Teknologi Yogyakarta,
yang saat ini dijabat oleh Ibu Dr. Endy Marlina, MT.
3. Wakil Dekan Fakultas Sains & Teknologi Universitas Teknologi
Yogyakarta, yang saat ini dijabat oleh Ibu Yuli Asriningtias, S.Kom.,
M.Kom.
4. Ketua Program Studi Sistem Informasi Program Sarjana Fakultas Sains
& Teknologi Universitas Teknologi Yogyakarta, yang saat ini dijabat
oleh Bapak Umar Zaky, S.Kom., M.Cs.
5. Seluruh dosen dan staff di Program Studi Sistem Informasi Universitas
Teknologi Yogyakarta yang telah memberikan bekal ilmu yang sangat

iii
berharga membantu dan memperlancar proses penyelesaian Laporan
Tugas Akhir ini.
6. Instansi KopiDan & seluruh pegawai yang bekerja disana dikarenakan
telah mengijinkan untuk melakukan penelitian pada instasinya.
7. Bapak Ikrimach, S.kom.,M.Cs. Selaku dosen pembimbing yang telah
membimbing untuk menyelesaikan laporan Tugas Akhir ini.
8. Kedua orang tua yang selalu memberikan dukungan yang tidak ternilai.
8. Seluruh teman-teman serta sahabat yang selalu memberikan doa dan
dukungan yang berlimpah.

Penulis menyadari bahwa Laporan Tugas Akhir ini mempunyai kelemahan-


kelemahan karena keterbatasan penulis sebagai manusia biasa. Oleh karena itu, bila
ada hal-hal yang kurang berkenan, izinkan penulis memohon maaf yang sebesar
besarnya. Penulis mengharapkan kritik dan saran terutama dari dosen pembimbing.
Akhir kata, penulis ucapkan terimakasih kepada semua pihak yang ikut
berpartisipasi dalam penyusunan laporan ini. Semoga penyusunan Laporan ini
bermanfaat bagi semua pihak.

Yogyakarta, January 2023

Penulis

iv
ABSTRAK

Penelitian ini bertujuan untuk membuatkan sistem penggajian untuk instansi kedai
kopi KopiDan dikarenakan proses penggajian pada instansi tersebut masih
menggunakan alat ceklok absen dan kertas slip absen tersebut akan diserahkan pada
HRD untuk dicatat sebagai absen harian, proses penggajian dilakukan dengan
mengumpulkan data absen, data izin, dan lainnya yang akan dicatat dalam
microsoft excel dan direkap kemudian akan menghasilkan slip gaji dan laporan
penggajian, hal tersebut membuat pengelolaan penggajian berjalan lama dan
mempersulit HRD dalam menangani setiap penggajian, hal itu juga menyebabkan
kemungkinan besar kalkulasi yang dilakukan mengalami kesalahan. Dari hasil
permasalahan yang sudah dijelaskan, pada penelitian implementasi sistem
penggajian pada kedai KopiDan berbasis web agar proses penggajian dapat
dipersingkat dengan adanya sistem yang dibuat dan meminimalisir terjadinya
kesalahan dalam kalkulasi. Perancangan sistem informasi ini menggunakan Entity
Relationsip Diagram (ERD), dan Data Flow Diagram (DFD) perancangan ini juga
menggunakana perancangan UML, dan DDL. Pada perancangan ini metode yang
digunakan adalah metode waterfall. Sistem yang telah dibuat telah diuji dan dapat
menangani proses penggajian pada kedai KopiDan. Implementasi program dari
perancangan yang telah dibuat menggunakan bahasa pemrograman web.

Kata kunci: Implementasi Sistem, Sistem Penggajian, Kalkulasi, Rekap Gaji,


Kedai KopiDan

v
ABSTRACT

This study aims to develop a payroll system for the KopiDan coffee shop agency,
because the payroll process at that agency still uses an absence check tool and the
attendance slip paper will be submitted to HRD to be recorded as daily absences,
the payroll process is carried out by collecting absent data, permit data, and others
that will be recorded in Microsoft Excel and recapitulated will then produce
payslips and payroll reports, this makes payroll management take a long time and
makes it difficult for HRD to handle each payroll, it also causes a high probability
that the calculations made will experience errors. From the results of the problems
that have been described, in research the implementation of a payroll system at a
web-based KopiDan shop so that the payroll process can be shortened by having a
system created and minimizing errors in calculations. The design of this
information system uses Entity Relationship Diagrams (ERD) and Data Flow
Diagrams (DFD). This design also uses UML and DDL designs. In this design the
method used is the waterfall method. The system that has been created has been
tested and can handle the payroll process at KopiDan shops. Program
implementation of designs that have been made using web programming languages.

Keywords: System Implementation, Payroll System, Calculation, Salary Recap,


KopiDan Coffee Shop.

vi
DAFTAR ISI

HALAMAN SAMPUL ............................................................................... i


KATA PENGANTAR .............................................................................. iii
ABSTRAK ................................................................................................. v
ABSTRACT .............................................................................................. vi
DAFTAR ISI............................................................................................ vii
DAFTAR TABEL .................................................................................... ix
DAFTAR GAMBAR ................................................................................. x
BAB I PENDAHULUAN .................................................................... 1
1.1 Latar belakang ............................................................................... 1
1.2 Rumusan Masalah ......................................................................... 2
1.3 Batasan Masalah ............................................................................ 2
1.4 Tujuan Penelitian........................................................................... 2
1.5 Manfaat Tugas Akhir .................................................................... 2
1.6 Sistematika penulisan .................................................................... 2
BAB II KAJIAN HASIL PENELITIAN DAN LANDASAN TEORI
4
2.1 Kajian Hasil Penelitian .................................................................. 4
2.2 Landasan Teori .............................................................................. 8
2.2.1 Sistem ...................................................................................... 8
2.2.2 Penggajian ............................................................................... 8
2.2.3 Entity Relationship Diagram(ERD) ........................................ 9
2.2.4 Data Flow Diagram (DFD) ................................................... 11
2.2.5 Database ................................................................................ 12
2.2.6 Query ..................................................................................... 13
2.2.7 Web ....................................................................................... 13
BAB III METODE PENELITIAN...................................................... 15
3.1 Metode Penelitian ........................................................................ 15
3.2 Objek Penelitian .......................................................................... 15
3.2.1 Visi, Misi, dan Struktur Organisasi ....................................... 17
1.1 Struktur Organisasi ..................................................................... 17

vii
3.3 Produk ......................................................................................... 19
BAB IV ANALISIS DAN PERANCANGAN .................................... 21
4.1 Analisis Sistem ............................................................................ 21
4.1.1 Analisis Sistem Yang Berjalan .............................................. 21
4.1.2 Analisis Sistem Yang Akan Dibuat ....................................... 22
4.2 Analisa Kebutuhan ...................................................................... 24
4.2.1 Analisis Kebutuhan fungsional ............................................. 24
4.2.2 Analisis Kebutuhan non fungsional. ..................................... 25
4.3 Perancangan Sistem..................................................................... 26
4.3.1 Perancangan Model Proses.................................................... 26
4.3.2 Perancangan Model Data ...................................................... 30
4.3.3 Perancangan Fisik Basis Data ............................................... 30
4.3.4 Perancangan Relasi Antar Tabel ........................................... 35
4.3.5 Perancangan Antarmuka ....................................................... 36
4.4 Rancangan Anggaran Pengembangan Sistem ............................. 50
BAB V IMPLEMENTASI DAN PEMBAHASAN SISTEM .......... 51
5.1 Implementasi sistem .................................................................... 51
5.1.1 Implementasi basis data ........................................................ 51
5.1.2 Inplementasi sistem ............................................................... 59
5.2 Pembahasan ................................................................................. 80
5.2.1 Pembahasan basis data .......................................................... 80
5.2.2 Pembahasan sistem ................................................................ 84
5.2.3 Pengujian ............................................................................. 104
5.3 Inovasi sistem ............................................................................ 109
BAB VI PENUTUP ............................................................................ 110
6.1 Simpulan.................................................................................... 110
6.2 Saran .......................................................................................... 110
DAFTAR PUSTAKA ............................................................................ 111
LAMPIRAN ........................................................................................... 114

viii
DAFTAR TABEL

Tabel 2. 1 Perbandingan Tinjauan pustaka ............................................................. 5


Tabel 2. 2 Keterangan Simbol ERD ..................................................................... 11
Tabel 2. 3 DFD (Data Flow Dagram) ................................................................... 12
Tabel 4. 1 Analisis Kebutuhan Fungsional ........................................................... 25
Tabel 4. 2 Jam ....................................................................................................... 31
Tabel 4. 3 Karyawan ............................................................................................. 31
Tabel 4. 4 Gaji karyawan tetap ............................................................................. 32
Tabel 4. 5 Gaji karyawan magang ........................................................................ 32
Tabel 4. 6 Absen ................................................................................................... 33
Tabel 4. 7 Gaji harian ............................................................................................ 34
Tabel 4. 8 Set Gaji ................................................................................................ 34
Tabel 4. 9 Rancangan Anggaran Biaya ................................................................. 50
Tabel 5. 1 Pengujian ........................................................................................... 104
Tabel 5. 2 Pengujian ........................................................................................... 107
Tabel 5. 3 Pengujian ........................................................................................... 108
Tabel 5. 4 Pengujian ........................................................................................... 109

ix
DAFTAR GAMBAR

Gambar 2. 1 ERD .................................................................................................. 10


Gambar 2. 2 ERD .................................................................................................. 10
Gambar 2. 3 ERD .................................................................................................. 11
Gambar 3. 1 Gambar Peta Lokasi ......................................................................... 16
Gambar 3. 2 Gambar Kedai KopiDan ................................................................... 17
Gambar 3. 3 Gambar Struktur Organisasi ............................................................. 18
Gambar 4. 1 Gambar alur kerja penggajian .......................................................... 22
Gambar 4. 2 Gambar Jaringan Komputer ............................................................. 24
Gambar 4. 3 Gambar Diagram Konteks............................................................... 27
Gambar 4. 4 Gambar Daigram Jenjang ................................................................ 27
Gambar 4. 5 Data Flow Diagram level 1 ............................................................. 28
Gambar 4. 6 Data Flow Diagram level 2 .............................................................. 29
Gambar 4. 7 Data Flow Diagram level 2 .............................................................. 29
Gambar 4. 8 Entity Relationship Diagram ............................................................ 30
Gambar 4. 9 Relasi antar tabel .............................................................................. 36
Gambar 4. 10 Tampilan halaman login ................................................................. 37
Gambar 4. 11 Tampilan halaman jadwal masuk kerja .......................................... 37
Gambar 4. 12 Tampilan halaman absen ................................................................ 38
Gambar 4. 13 Tampilan halaman Qrcode ............................................................. 38
Gambar 4. 14 Tampilan halaman profil ................................................................ 39
Gambar 4. 15 Tampilan halaman membuat kode absen ....................................... 40
Gambar 4. 16 Tampilan halaman data karyawan .................................................. 40
Gambar 4. 17 Tampilan halaman input data karyawan ........................................ 41
Gambar 4. 18 Tampilan halaman data absen ........................................................ 42
Gambar 4. 19 Tampilan halaman gaji karyawan .................................................. 42
Gambar 4. 20 Tampilan halaman setting jam masuk ............................................ 43
Gambar 4. 21 Tampilan halaman akun pegawai ................................................... 43
Gambar 4. 22 Tampilan halaman laporan data karyawan ..................................... 44
x
Gambar 4. 23 Tampilan halaman laporan data penggajian ................................... 45
Gambar 4. 24 Tampilan halaman gaji karyawan tetap.......................................... 45
Gambar 4. 25 Tampilan halaman nilai sikap ........................................................ 46
Gambar 4. 26 Tampilan halaman Scan Qrcode .................................................... 47
Gambar 4. 27 Tampilan halaman data pegawai .................................................... 47
Gambar 4. 28 Tampilan halaman info gaji ........................................................... 48
Gambar 4. 29 Tampilan halaman data absen ........................................................ 49
Gambar 4. 30 Tampilan halaman profil ................................................................ 49
Gambar 4. 31 Tampilan halaman masukan nilai sikap ......................................... 50
Gambar 5. 1 Query active ..................................................................................... 51
Gambar 5. 2 Query active ..................................................................................... 52
Gambar 5. 3 Query active ..................................................................................... 53
Gambar 5. 4 Query active ..................................................................................... 54
Gambar 5. 5 Query active ..................................................................................... 55
Gambar 5. 6 Query active ..................................................................................... 56
Gambar 5. 7 Query active ..................................................................................... 57
Gambar 5. 8 Query active ..................................................................................... 58
Gambar 5. 9 Relasi antar tabel .............................................................................. 59
Gambar 5. 10 Tabel absen..................................................................................... 80
Gambar 5. 10 Tabel absen (lanjutan) .................................................................... 80
Gambar 5. 11 Tabel gaji harian ............................................................................. 81
Gambar 5. 11 Tabel gaji harian (lanjutan) ............................................................ 81
Gambar 5. 12 Tabel gaji karyawan magang ......................................................... 82
Gambar 5. 12 Tabel gaji karyawan magang (lanjutan) ......................................... 82
Gambar 5. 13 Tabel gaji karyawan tetap .............................................................. 82
Gambar 5. 13 Tabel gaji karyawan tetap (lanjutan) .............................................. 82
Gambar 5. 14 Tabel jam masuk ............................................................................ 83
Gambar 5. 15 Tabel karyawan .............................................................................. 83
Gambar 5. 15 Tabel karyawan (lanjutan).............................................................. 83
Gambar 5. 16 Tabel set gaji .................................................................................. 84
xi
Gambar 5. 16 Tabel set gaji (lanjutan) .................................................................. 84
Gambar 5. 17 Halaman data karyawan ................................................................. 85
Gambar 5. 18 Halaman masukan data karyawan .................................................. 86
Gambar 5. 19 Halaman edit data karyawan .......................................................... 87
Gambar 5. 20 Halaman setting gaji harian ........................................................... 87
Gambar 5. 21 Halaman masukan data .................................................................. 88
Gambar 5. 22 Halaman edit data ........................................................................... 89
Gambar 5. 23 Halaman setting jam masuk ........................................................... 89
Gambar 5. 24 Halaman masukan data .................................................................. 90
Gambar 5. 25 Halaman ubah data ......................................................................... 90
Gambar 5. 26 Halaman absen ............................................................................... 91
Gambar 5. 27 Halaman masukan data .................................................................. 91
Gambar 5. 28 Halaman ubah data ......................................................................... 92
Gambar 5. 29 Halaman gaji bonus ........................................................................ 92
Gambar 5. 30 Halaman masukan data .................................................................. 93
Gambar 5. 31 Halaman ubah data ......................................................................... 93
Gambar 5. 32 Halaman akun karyawan ................................................................ 94
Gambar 5. 33 Halaman ubah data ......................................................................... 94
Gambar 5. 34 Halaman gaji karyawan tetap ......................................................... 95
Gambar 5. 35 Halaman masukan data .................................................................. 96
Gambar 5. 36 Halaman ubah data ......................................................................... 96
Gambar 5. 37 Halaman cetak ................................................................................ 97
Gambar 5. 38 Halaman karyawan ......................................................................... 97
Gambar 5. 39 Halaman info gaji ........................................................................... 98
Gambar 5. 40 Halaman cetak ................................................................................ 98
Gambar 5. 41 Halaman ubah data ......................................................................... 99
Gambar 5. 42 Halaman absen pegawai ................................................................. 99
Gambar 5. 43 Halaman ubah data ....................................................................... 100
Gambar 5. 44 Halaman Scan Qrcode .................................................................. 100
Gambar 5. 45 Halaman Nilai sikap ..................................................................... 101
xii
Gambar 5. 46 Halaman ubah data ....................................................................... 101
Gambar 5. 47 Halaman data karyawan ............................................................... 102
Gambar 5. 48 Halaman cetak .............................................................................. 102
Gambar 5. 49 Halaman gaji karyawan tetap ....................................................... 103
Gambar 5. 50 Halaman cetak .............................................................................. 103

xiii
BAB I
PENDAHULUAN

1.1 Latar belakang


Kedai KopiDan adalah kedai yang di dirikan pada tahun 2019 dengan tujuan
mengangkat nama petani kopi di indonesia agar petani kopi indonesia dapat
bersaing dengan kopi luar negeri. Kedai KopiDan bergerak pada bidang usaha
penjualan kopi dan makanan yang dikepalai oleh PT. Cipta Rasa Jawara, kedai Kopi
KopiDan mempunyai brand tersendiri yang membuat mereka mempunyai cirikhas
tersendiri dari prodak yang lain. Kedai kopi KopiDan bertempat di jalan HOS
Cokroaminoto No. 64, Wirobrajan, Yogyakarta. Kedai kopi KopiDan mempunyai
16 pegawai pada instansinya oleh sebab itu mereka membuat data pegawai yang
digunakan untuk mengintrol penggajian pada karyawan.
Sistem penggajian yang berjalan pada instansi tersebut menggunakan mesin
scan kartu untuk melakukan absen setelah itu mesin akan mengeluarkan slip absen,
slip absen tersebut lalu diberikan kepada HRD untuk dicatat dan dimasukan dalam
microsoft excel untuk menghitung jumlah gaji yang diperoleh karyawan. Adapun
data izin tidak masuk kerja diperoleh dari pemberitahuan melalui sms ataupun
whatsapp, untuk keterlambatan masuk kerja hanya dikenakan pemotongan uang
makan.
Pada saat penggajian kedai KopiDan HRD harus mengumpulkan data absen,
data izin, dan data gaji pada karyawannya seteh itu data dimasukan kedalam
microsoft excel sehingga pada saat peroses penggajian rawan adanya kesalahan
kalkulasi atau perhitungan pada saat proses penggajian. Hal tersebut
mengakibatkan HRD untuk bekerja extra untuk melakukan kalkulasi atau
perhitungan pada saat penggajian maupun membuat laporan penggajian. Mengingat
masalah penggajian yang dihadapi oleh instansi kedai KopiDan pada penelitian ini
mengangkat judul Implementasi Sistem Penggajian Pada Kedai Kopi Kopidan
Berbasis Web dengan tujuan untuk mempermudah dan membantu tugas HRD
dalam menangani proses penggajian maupun pelaporan pada instansi kedai
KopiDan.

1
2

1.2 Rumusan Masalah


Berdasarkan latar belakang maka rumusan masalah adalah bagaimana
membuat Sistem informasi yang dapat digunakan untuk mempercepat dan
mempermudah proses rekap data penggajian dan pelaporan data pada instansi
Kedai KopiDan.

1.3 Batasan Masalah


Penelitian pembuatan sistem penggajian Pada kedai kopi kopidan, yang
mencakup berbagai hal sebagai berikut:
1. Pembuatan sistem penggajajian hanya tertuju pada para pegawai Kedai
KopiDan.
2. Perancangan database dilakukan dengan menggunakan MySQL.
3. Data yang dibuat digunakan untuk mengetahui jumlah gaji pegawai
perbulannya.

1.4 Tujuan Penelitian


Penelitian ini bertujuan untuk mempermudah dan mempersingkat dalam
melakukan penggajian serta pembuatan dokumen penggajian para pegawai yang
ada pada Kedai KopiDan. Serta mengimplementasikan perancangan yang telah
dibuat pada penelitian kerja praktik.

1.5 Manfaat Tugas Akhir


Dengan adanya sistem informasi yang buat ini diharapkan agar;
1. Mempermudah dalam mengelola data penggajian.
2. Dapat mempersingkat waktu dokumentasi penggajian.
3. Memperkecil adanya kesalahan dalam perhitungan.

1.6 Sistematika penulisan


Untuk megetahui proses dan tata urutan dalam penulisan laporan kerja
praktek, penulis memberikan sistematika penulisan sebagai berikut:
3

BAB I : PENDAHULUAN
Bab ini menjelaskan tentang latar belakang penulisan, perumusan
masalah, batasan masalah yang dibahas, tujuan dari penelitian,
manfaat penelitian, dan sistematika penulisan.

BAB II : KAJIAN HASIL PENELITIAN DAN LANDASAN TEORI


Bab ini menjelaskan tentang kajian hasil penelitian terdahulu, dan
landasan teori yang diambil.

BAB III : METODE PENELITIAN


Pada bab ini menjelaskan metode penelitian yang digunakan, objek
penelitian, dan prodak yang dihasilkan dari objek penelitian.

BAB IV : ANALISIS DAN PERANCANGAN


Pada bab ini menjelaskan mengenai analisis sistem yang berjalan
dan yang akan dibuat, analisis kebutuhan fungsional dan non
fungsional, perancangan sistem yang akan dibangun.

BAB V : IMPLEMENTASI DAN PEMBAHASAN SISTEM


Bab ini menjelaskan mengenai implementasi sistem, dan
pembahasan mengenai sistem yang telah dibuat.

BAB VI : PENUTUP
Bab ini merupakan simpulan dan rangkuman dari seluruh rangkaian
penelitian yang telah dilakukan. Bab penutup juga berisi tentang
saran-saran guna untuk mengembangkan sistem dikemudian hari
ataupun bagi instansi yang dijadikan objek penelitian.

DAFTAR PUSTAKA
LAMPIRA
BAB II
KAJIAN HASIL PENELITIAN DAN LANDASAN TEORI

2.1 Kajian Hasil Penelitian


Beberapa hasil penelitian yang pernah dilakukan oleh peneliti sebelumnya
yang memiliki bidang dan tema yang sama dengan penelitian yang akan dilakukan.
Penelitian yang dilakukan oleh Hadianto, R.T dan kawan-kawan (2022),
dengan judul perancangan aplikasi penggajian berbasis Java se 16 pada PT. Dhera
Perkasa abadi menggunakan metode waterfall. Pada penelitian tersebut membahas
tentang perancangan sistem yang dapat mempermudah penggajian pada PT. Dhera
Perkasa abadi dengan memanfaatkan metode waterfall yang nantinya dapat
digunakan untuk membantu mengelola data salah satunya yaitu data penggajian.
Penelitian Iedam Ferdian Anshori dan Ali Mulyawan (2021), dengan judul
Perancangan Sistem Informasi Berbasis WEB pada PT. WIBEE INDOEDU
NUSANTARA dengan metode yang digunakan adalah metode waterfall. Pada
penelitian tersebut sistem yang dihasilkan nantinya akan mempermudah dalam
pembuatan dan penyampaian informasi penggajian agar lebih cepat dan akurat.
Penelitian yang dilakukan Auji Hamizan dan kawan kawan (2020), dengan
judul Sistem Informasi Penggajian di PT. Perkebunan Nusantara IV menggunakan
metode waterfall. Pada penelitian tersebut membahas tentang pengembangan
sistem penggajian terutama pada pelaporan data gaji karyawan agar mempermudah
dalam proses transfer data penggajian.
Penelitian yang dilakukan Nanny Raras Setyoningrum dan Danil Syah
Arihardjo (2021), yang berjudul Analisis dan Perancangan Sistem Informasi
Penggajian Karyawan Berbasis WEB pada PT. BATAM BINTAN
TELEKOMUNIKASI LAGOI dengan menggunakan metode Waterfall. Pada
penelitian ini pembuatan sistem penggajian yang dikembangkan akan lebih
mempermudah bagian keuangan untuk menentukan gaji karyawan sedangkan untuk
karyawannya sendiri nantinya akan dapat melihat jumlah gaji yang akan diterima
pada saat penggajian.

4
5

Penelitian Gustiawan, A. Dan Tristianto, C. (2022), dengan judul


PERANCANGAN SISTEM INFORMASI PENGGAJIAN KARYAWAN
BERBASIS WEB MENGGUNAKAN METODE EXTREME PROGRAMING
PADA PT. PRADANA ENERGI GEMILANG sesuai dengan judul penelitian ini
menggunakan metode Extreme Programing. Pada penelitian ini PT, PRANANDA
ENERGI GEMILANG tergolong masih menggunakan sistem manual dikarenakan
untuk perhitungan gaji karyawan masih menggunakan Microsoft Excel, oleh sebab
itu metode perancangan aplikasi berbasis web ini menggunakan metode Extreme
Programing yang merupakan sebuah pendekatan atau model pengembangan
perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses
pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. Sistem ini
dirancang agar terciptanya efektivitas yang lebih baik dalam proses penggajian
dengan hadirnya aplikasi berbasis web tersebut. Hasil dari penelitian ini adalah
terciptanya sebuah system penggajian karyawan berbasis web untuk mempermudah
proses penggajian agar lebih cepat, efektif dan efesien.

Tabel 2. 1 Perbandingan Tinjauan pustaka


No Judul Penulis Metode Hasil/Kesimpulan
1 Perancangan aplikasi Rezki Try Waterfall Sistem Penggajian
penggajian berbasis Hadianto, ini bisa
Java se 16 pada PT. Zulhalim, dan mempermudah
Asih
Dhera Perkasa abadi dalam pencarian
Septiarini
menggunakan data akuntan, data
metode waterfall karyawan, data
jabatan, data absen,
data lembur, data
gaji, serta dapat
mempermudah
dalam pelaporan
penggajian dan
pelaporan data
karyawan.
6

Tabel 2. 2 Perbandingan Tinjauan pustaka (lanjutan)


2 Perancangan Sistem Iedam Waterfall Sistem yang
Informasi Berbasis Ferdian digunakan oleh
WEB pada PT. Anshori dan admin dan kepala
WIBEE INDOEDU Ali hrd dalam proses
Mulyawan
NUSANTARA pembuatan dan
menggunakan penyampaian
metode waterfall informasi data
penggajian
menjadi lebih cepat
dan akurat, sistem
ini juga digunakan
oleh admin untuk
3 Sistem Informasi Auji waterfall Sistem
membantu yang
dalam
Penggajian di PT. Hamizan, dihasilkan
mengelola akan
data
Perkebunan Mayasari, dapat
karyawan, absensi
Nusantara IV Rahayu meningkatkan
karyawan, dan data
menggunakan Saputri, dan efisiensi kerja,
lembur karyawan.
metode waterfall Rendy kecepatan, dan
Novhendra tepatan
Pohan pengambilan
keputusan dalam
penggajian
pegawai secara
online.
7

Tabel 2. 3 Perbandingan Tinjauan pustaka (lanjutan)


4 Analisis dan Nanny Raras waterfall Sistem yang
Perancangan Sistem Setyoningru dibangun hanya
Informasi Penggajian m dan Danil dapat mengolah
Karyawan Berbasis Syah data karyawan,
WEB pada PT. Arihardjo data pola kerja,
BATAM BINTAN data absensi, data
TELEKOMUNIKA lembur, proses
SI LAGOI dengan penggajian
menggunakan sehingga
metode Waterfall menghasilkan
5 Perancangan Sistem Agus Extreme Dengan adanya
laporan penggajian
Informasipenggajian Gustiawan Programing aplikasi
dan slip sistem
gaji
Karyawan berbasis dan penggajian
karyawan secara
WEB menggunakan
Crisantus karyawan
periodik. berbasis
metode Extreme
Tristianto web ini
Programing pada PT.
memudahkan
PRADANA ENERGI
penggajian
GEMILANG
karyawan pada PT.
Pradana Energi
Gemilang. Sistem
penggajian
karyawan berbasis
web ini dapat
meminimalisir
kesalahan dalam
penginputan data
dalam penggajian.
Perancangan
sistem penggajian
karyawan
berbabsis web ini
dibuat dengan
menggunakan
metode extreme
8

Seperti terlihat pada tabel 2.1 perbedaan dari keempat referensi dengan
judul yang diangkat oleh penulis terletak pada hasil dari penelitian, pada hasil dari
setiap penelitian dapat menghasilkan output yang berbeda beda tergantung
keperluan dari instansi yang diteliti, metode yang digunakan pada keempat
penelitian tersebut menggunakan metode yang sudah paten untuk mendukung
keakuratan sistem yang dibuat sehingga hasil yang dihasilkan dari penelitian
tersebut dapat dipertanggung jawabkan
.
2.2 Landasan Teori
2.2.1 Sistem
Menurut Santi, I.H. (2020), Sistem adalah suatu jaringan kerja dari prosedur-
prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan
suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu.
Menurut Maniah dan Hamidin, D. (2017), sistem adalah sekumpulan elemen-
elemen berupa data, jaringan kerja dari prosedur-prosedur yang saling
berhubungan, sumberdaya manusia, teknoligi baik hardware maupun software
yang saling berinteraksi sebagai satu kesatuan untuk mencapai tujuan atau sasaran
tertentu yang sama.
Menurut Santi, I.H. (2020), sistem adalah suatu jaringan kerja dari prosedur-
prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan
suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu.

2.2.2 Penggajian
Menurut Achmad S. Ruky (2006), imbalan atau gaji ini mencakup semua
pengeluaran yang dikeluarkan oleh perusahaan untuk pekerja dan diterima serta
dinikmati oleh pekerja, baik diterima langsung maupun tidak langsung.
Menurut Nilasari S. (2016), gaji atau yang dalam bahasa inggris dikenal
denngan istilah salary merupakan sebuah bentuk pembayaran secara periodik dari
sebuah perusahaan kepada seorang karyawan yang mungkin didasarkan pada
kontrak kerja.
9

Menurut Andriani A.D (2019) kompensasi (gaji) merupakan suatu bentuk


balas jasa yang diberikan kepada seorang pekerja sebagai imbalan atas jasa-jasa
pekerjaan yang dilakukan pekerja tersebut sebagai pekerja.
Menurut Hasibuan (2014), kompensasi adalah semua pendapatan yang
berbentuk uang, barang langsung ataupun tidak langsung yang diterima karyawan
sebagai imbalan atas jasa yang diberikan kepada perusahaan.
Menutut Marwansyah (2016), penghargaan atau imbalan langsung atau tidak
langsung, finan sial maupun non-finansial yang adil dan layak kepada karyawan,
sebagai balasan atas kontribusi jasanya terhadap pencapaian tujuan organisasi.

2.2.3 Entity Relationship Diagram(ERD)


Menurut (2021), Entity Relationship Diagram (ERD) merupakan model
jaringan yang menggunakan susunan data yang disimpan dalam sistem secara
abstrak, diagram ERD berupa model data konseptual yang mempresentasikan data
dalam suatu organisasi dan pembuatannya menekankan pada struktur serta
relationship data.
Menurut Ningsih S.,R dan kawan-kawan (2022), Entity Relationship
Diagram (ERD) merupakan model penyajian data yang menggunakan entitas
(entity) dan relasi atau hubungan (relationship). ERD adalah model yang sring
digunakan untuk mendesain basis data secara konseptual. Tempat untuk
menyimpan data disebut dengan entitas (entity), dimana setiap entitas mempunyai
atribut sering juga disebut sebagai field yang jumlahnya lebih dari satu.
Menurut Afifah, K. (2022), Entity Relationship Diagram (ERD) adalah
diagram berbentuk notasi grafis yang berada dalam pembuatan database yang
menghubungkan antara data satu dengan yang lain. Fungsi ERD adalah sebagai alat
bantu dalam pembuatan database dan memberikan gambaran bagaimana kerja
database yang akan dibuat. Di dalam ERD terdapat 3 elemen dasar, yaitu entitas,
atribut, dan relasi.

1. Entitas merupakan objek yang akan menjadi perhatian dalam suatu


database. Entitas dapat berupa manusia, tempat, benda, atau kondisi
10

mengenai data yang dibutuhkan. Simbol dari entitas berbentuk persegi


panjang.
2. Atribut merupakan informasi yang terdapat dalam entitas. Sebuah entitas
harus memiliki primary key sebagai ciri khas entitas dan atribut deskriptif.
Atribut biasanya terletak dalam tabel entitas atau dapat juga terpisah dari
tabel. Simbol dari atribut berbentuk elips.
3. Relasi di dalam ERD merupakan hubungan antara dua atau lebih entitas.
Simbol dari relasi berbentuk belah ketupat. Relasi yang dapat dimiliki oleh
ERD ada beberapa macam, yaitu:

a. One to One Satu anggota entitas dapat berelasi dengan satu anggota
entitas lain. Untuk keterangan One to One dapat dilihat pada gambar 2.1.

Gambar 2. 1 ERD

b.One to Many Satu anggota entitas dapat berelasi dengan beberapa


anggota entitas lain. Untuk keterangan One to Many dapat dilihat pada
gambar 2.2.

Gambar 2. 2 ERD

c. Many to Many Beberapa anggota entitas dapat berelasi dengan beberapa


anggota entitas lain. Untuk keterangan Many to Many dapat dilihat pada
gambar 2.3.
11

Gambar 2. 3 ERD

Adapun beberapa simbol dalam ERD dapat dilihat pada tabel 2.2 dibawah ini:

Tabel 2. 4 Keterangan Simbol ERD


N Gambar Keterangan
o. 1 Entitas atau bentuk persegi panjang
. merupakan sesuatu objek data yang ada di
Entitas dalam sistem, nyata maupun abstrak dimana
data tersimpan atau dimana terdapat data.
2 Relationship merupakan hubungan alamiah
. Reelasi yang terjadi antar entitas. Umumnya diberi
nama dengan kata kerja dasar

3 Atribut atau bentuk elips adalah sesuatu


. yang menjelaskan apa sebenarnya yang
Attribut dimaksud entitas atau relationship dan
mewakili atribut dari masing-masing entitas.

4 Garis merupakan penghubung antar entitas


.

2.2.4 Data Flow Diagram (DFD)


DFD adalah alat pembuatan model yang memungkinkan profesional sistem
untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang
dihubungkan satu sama lain dengan alur data, baik secara manual maupun
komputerisasi (Jogianto, 2017).
DFD adalah sebuah teknik grafis yang menggambarkan aliran informasi dan
transformasi yang diaplikasikan pada saat data bergerak dari input menjadi output
(Pressman. 2012)
12

Menurut Kristanto (2018), Data Flow Diagram (DFD) adalah suatu model
logika data atau proses yang dibuat untuk menggambarkan darimana asal data atau
kemana tujuan data yang keluar dari sistem, dimana data disimpan, proses apa yang
dihasilkan data tersebut, dan interaksi antara data yang disimpan dan diproses yang
dikenakan pada data tersebut.
DFD ini sering disebut juga dengan nama bubble chart, bubble diagram,
model proses, diagram alur kerja, atau model fungsi dari sebuah sistem. Pada tabel
2.3 dapat dilihat simbol yang digunakan dalam DFD.

Tabel 2. 5 DFD (Data Flow Dagram)


No. Gambar Keterangan

1 Eksternal Entity (kesatuan luar)


atau Boundary (batas sistem)

2. Data Flow (arus data)

3. Proses

4. Data store

2.2.5 Database
Database adalah susunan record data operasional lengkap dari suatu
organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi
dengan menggunakan metode tertentu dalam komputer sehingga mampu memenuhi
informasi yang optimal yang dibutuhkan oleh para pengguna (Setiyowati, dan Sri
Siswanti., 2021).
Basis data (Database) istilah ini berawal dari ilmu komputer, walaupun
kemudian artinya semakin luas memasukkan hal-hal diluar bidang elektronika.
Untuk kesamaan pada basis data ini sebenarnya sudah ada sebelum revolusi industri
yakni dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan
dengan bisnis (Yuliansyah et al., 2014).
13

Menurut Soyusiawaty D., dan kawan-kawan (2020), Basis Data (Database)


adalah suatu kumpulan data terhubung yang disimpan secara bersama-sama pada
suatu media, yang diorganisasikan berdasarkan sebuah skema atau struktur tertentu,
dan dengan software untuk melakukan manipulasi untuk kegunaan tertentu .
Menurut Nabil A., (2021), basis data atau database adalah kumpulan data yang
memiliki format struktur tertentu sehingga memungkinkan sistem berbasis
komputer untuk menyimpan, mengelola, dan mengambil data dengan cepat.

2.2.6 Query
Query adalah syntax atau perintah yang digunakan untuk mengakses dan
menampilkan data pada sistem database. Query memiliki kemampuan untuk
mengatur data mana yang perlu ditampilkan sesuai dengan yang Anda inginkan.
Selain itu, query dapat dipakai untuk membuat data dapat saling berinteraksi. Query
juga biasanya sering disebut dengan query language atau bahasa query. Saat ini
bahasa query yang paling populer dikalangan Database Administrator adalah SQL.
(Dewson, 2015).
Menurut Fitri R. (2020), SQL merupakan bahasa pemrograman khusus yang
digunakan untuk manajemen data dalam RDBMS. SQL biasanya berupa perintah
sederhana yang berisi instruksi-instruksi untuk memanipulasi dan pengambilan data
pada relational database yang terstruktur. Perintah SQL ini sering juga disingkat
query.
Menurut Budi H.,S (2021), SQL (Structure Query Language) adalah sebuah
bahasa yang digunakan untuk mengakses data dalam basis data relasional. Bahasa
ini secara facto merupakan bahasa standart ANSI (American Nasional Standard
Institute) yang digunakan dalam manajemen basis data relasional yang juga sering
disebut dengan istilah query.

2.2.7 Web
Menurut Ani Oktarini Sari A.,O, dan kawan-kawan (2019), Website
merupakan kumpulan halaman digital yang berisi informasi berupa teks, animasi,
gambar, suara dan video atau gabungan dari semuanya yang terkoneksi oleh
14

internet, sehingga dapat dilihat oleh seluruh siapapun yang terkoneksi jaringan
internet.
Menurut Siradhi T.,L (2021), web adalah jaringan komputer yang terdiri dari
kumpulan sistus internet yang menawarkan teks, grafik, suara, dan sumberdaya
animasi melalui protokol transfer hypertexs. Orang-orang sering menyebut web
dengan istilah WWW(World Wide Web). World Wide Web adalah layanan internet
yang paling populer saat ini dan dikenal juga sebagai halaman-halaman website
yang saling terkoneksi satu dengan yang lainnya (hyperlink) yang membentuk
samudra informasi.
Menurut Permana P.,I, dan Purnomo A.,N (2013), WWW atau yang biasa
disebut Web merupakan kumpulan web server dari seluruh dunia yang mempunyai
kegunaan untuk menyediakan data dan informasi untuk dapat digunakan bersama.
Www adalah sekelompok dokumen multimedeia yang saling bertautan dengan
menggunakan tautan hypert.
BAB III
METODE PENELITIAN

3.1 Metode Penelitian


Adapun metode-metode pengumpulan data yang digunakan dalam melakukan
analisi sistem pada instasi kedai KopiDan adalah sebagai brikut:
1. Wawancara
Wawancara dilakukan pada Owner dan HRD KopiDan pembahasan
yang dilakukan membahas tentang bagaimana sistem yang sedang berjalan
pada instansi tersebut serta mendiskusikan tentang sistem yang akan dibuat
dalam penelitian.

2. Observasi
Observasi adalah metode pengumpulan data dengan cara mengamati
secara langsung dilapangan. Pengamatan sistem yang dilakukan pada
instasni terpaku pada sistem penggajian yang sedang berjalan disana serta
mencari kelemahan yang ada pada prosesnya.

3. Dokumen
Dokumen yang diamati pada instansi adalah dokumen yang berkaitan
pada sistem penggajian yang berjalan seperti data kehadiran, data gaji, dan
lainnya.

Pada penelitian ini metode yang digunakan adalah metode Waterfall.


Metode Waterfall adalah metode yang sering digunakan dalam perancangan sebuah
sistem dikarenakan metode tersebut bersifat natural, pada penelitian ini metode ini
dapat mencakup aspek-aspek yang dibutuhkan dalam perancangan yang dibuat.

3.2 Objek Penelitian


Objek penelitian adalah kedai KopiDan, informasi mengenai KopiDan
adalah sebagai berikut:

15
16

KopiDan adalah kedai kopi yang menjual aneka kopi dan makanan. Kedai
Kopi KopiDan adalah sebuah kedai yang di naungi oleh PT. Cipta Rasa Jawara. PT.
Cipta Rasa Jawara menaungi beberapa outlet seperti Rocket Chicken, Istanbul
Kebab Turki, Ben gerr, Salad Cuscis, Berikan dan KopiDan. Kedai KopiDan
memiliki 3 cabang yang tersebar didaerah Yogyakarta, untuk pusat berada di Jl.
HOS Cokroaminoto 64 Yogyakarta dan 2 cabang lainnya terletak di Jl. Glagahsari
93 Yogyakarta dan Jl. Mayor Kusmanto 110, Gergunung Klaten. Untuk keterangan
peta tempat Kedai dapat dilihat pada gambar 3.1 dan gambar 3.2.

Gambar 3. 1 Gambar Peta Lokasi

Kedai KopiDan memiliki brand tersendiri dan mempunyai cirikhas tersendiri


dari kedai yang lainnya. Pada dasarnya kedai KopiDan mengangkat nama petani
gayo agar dapat bersaing dari kopi-kopi luar negeri sehingga petani kopi indonesia
dapat dikenal oleh seluruh negeri. Kedai KopiDan Pusat terletak di Jl. HOS
Cokroaminoto No.64, Pakuncen, Wirobrajan, Kota Yogyakarta, Daerah Istimewa
Yogyakarta 55253.
17

Gambar 3. 2 Gambar Kedai KopiDan

3.2.1 Visi, Misi, dan Struktur Organisasi


1) Visi
KopiDan adalah brand asli yogyakarta yang bertujuan untuk mengankat
derajat petani kopi indonesia agar dapat bersaing dengan kopi impor,
sehingga masyarakat tidak terpaku dengan kopi yang berasal dari luar negeri.
2) Misi
Kopidan secara langsung bekerja sama dengan petani kopi Indonesia
khususnya Banjarnegara dan dataran tinggi Gayo dalam memproduksi biji
kopi terbaik dan mengolahnya hingga dapat dinikmati oleh semua konsumen
kopi Indonesia.

1.1 Struktur Organisasi


Kedai KopiDan mempunyai struktur organisasi diantaranya adalah
Manajemen yang mengepalai Staff Gudang dan Supervisor. Supervisor sendiri
mengepalai Head bar dan Head bar mengepalai Barista. Untuk penjelasan lebih
lanjut dapat dilihat pada gambar 3.3.
18

Gambar 3. 3 Gambar Struktur Organisasi

Berikut adalah tugas – tugas dari struktur organisasi diatas yaitu :


a) Manajemen
Manajemen menentukan cara terbaik agar tujuan organisasi bisa tercapai.
b) Supervisor
Supervisor melakukan monitoring produksi, pengawasan staf karyawan, melakukan
instruksi kerja, bertanggung jawab dalam keamanan, keselamatan atau kesehatan
yang terancam.
c) Staff Gudang
Staf gudang menerima dan memproses stok gudang yang masuk. Meliputi sortir,
bongkar muatan, pemberian label, serta penyimpanan produk serta melakukan
19

kontrol kualitas terhadap barang yang masuk, sedang disimpan, atau keluar dari
gudang.
d) Head Bar
Head bar bertanggung jawab atas proses operasional dan produksi di bar serta
mengawasi, melatih, memonitor kinerja dan operasional tim bawahannya.
e) Barista
Barista menyajikan kopi yang enak dengan menggunakan metode manual maupun
mesin serta mengoperasikan dan merawat alat seduh, seperti gelas, pour over cone,
mesin espresso, dan bertanggjung jawab atas kebersihan.

3.3 Produk
Kedai kopi KopiDan adalah kedai yang menjual makanan dan minuman
yang inovatif diantaranya adalah :

Minuman ;
1. Ice KopiDan Hitam. 15. Sanbru.
2. Hot KopiDan Hitam. 16. Bruli.
3. Ice KopiDan Susu. 17. Sprankling Orange.
4. Ice KopiDan Cheese. 18. Sprankling Melon.
5. Hot KopiDan Susu. 19. Sprankling Strawberry.
6. Ice KopiDan Coconut 20. Hot Matcha Millk.
Delight. 21. Hot Chocolate.
7. Ice KopiDan Matcha. 22. Ice Red Velvet Cheese.
8. Ice KopiDan Matcha 23. Ice Tiramisu Bland.
Cheese. 24. Regal Ndugal.
9. Ice KopiDan Tiramisu. 25. Tremor.
10. Ice KopiDan Avocado 26. Remis.
Vanila.
11. Ice KopiDan Avocado
Choco.
12. Ice KopiDan Rum Rege.
13. Ice KopiDan Sruvut.
14. Ice KopiDan Hazelnut.
20

Makanan :
1. Burger Ben Gerr.
2. Cheese Ben Gerr.
3. Bouble Cheese Ben Gerr.
4. Double Patty Ban Gerr.
5. Ben Gerr Lur.
6. Ben Gerr Original Beef.
7. Ben Gerr Karo Calon.
8. Ben Gerr Karo Temon.
9. Cheese Ben Gerr French Fries.
10. French Fries.
11. Chiken Wings.
12. Sampler.
13. Nasi Nelur.
14. Nasi Katsu.
15. Nasi Burger.
16. Nasi Blur.
17. Nasi Beef.
18. Salad Cuscis Original.
19. Salad Cuscis Kurma.
20. Salad Cuscis Oreo.
21. Salad Cuscis Charcoal.
22. Salad Cuscis Extra large
BAB IV
ANALISIS DAN PERANCANGAN

4.1 Analisis Sistem


Dari hasil penelitian yang telah dilakukan pada instansi kedai KopiDan berikut
adalah hasil uraian dari analisis sistem yang berjalan maupun yang akan dibuat:

4.1.1 Analisis Sistem Yang Berjalan


Kedai KopiDan mempunyai proses alur penggajian sebagai berikut: pegawai
masuk sesuai jam kerja yang ditentukan oleh instansi, jumlah gaji yang diperoleh
oleh pegawai sesuai dengan jabatan yang diberikan, jika pegawai tidak masuk kerja
dengan tanpa keterangan pegawai tidak akan mendapat gaji harian, namun jika
pegawai tidak masuk kerja dengan keterangan yang mendesak seperti sakit dan
keperluan penting lainnya maka pegawai masih akan mendapat gaji harian oleh
instansi, jika pegawai mengalami ketelatan maka pegawai akan dikenakan
potongan uang makan.
Pada proses penggajian kopidan mereka menggunakan microsoft excel pada
pembuatan slip gaji dan laporannya, untuk lebih detail dalam prosesnya adalah
sebagai beriku:
1. Pegawai akan absen pada sebuah sebuah alat absen untuk mendapat slip
jam masuk kerja.
2. Pegawai akan melakukan absen lagi pada alat absen untuk mendapat slip
jam selesai kerja.
3. Data slip akan diserahkan pada HRD dan akan direkap pada microsoft
excel.
4. HRD akan merekap data masuk, tidak masuk, dan izin kerja
menggunakan microsoft excel.
5. Pembuatan slip gaji dan laporan penggajian diketik sendiri menggunakan
microsoft excel lalu di cetak menggunakan printer.
6. Hasil cetakan slip gaji akan diterima olek karyawan dan laporan akan
diterima oleh direktur.

21
22

Pada gambar 4.1 dapat dilihat alur kerja penggajian dan perangkat yang
digunakan dalam sistem yang berjalan.

Gambar 4. 1 Gambar alur kerja penggajian

4.1.2 Analisis Sistem Yang Akan Dibuat


Dari hasil pengamatan terdapat beberapa masalah dalam proes pelaporan
data penggajian pada instansi, data gaji pegawai harus diketik secara manual pada
setiap penggajian yang berlangsung sehingga kurang efisien dalam pelaporannya.
Pada penelitian ini pembuatan perancangan yang dibuat akan mempermudah
dalam penggajian ataupun dalam pelaporan yang akan berjalan, pada penelitian ini
23

alur sistem yang akan dibangun adalah sebagai berikut; sistem akan dikendalikan
oleh dua orang yang dimana satu orang sebagai kendali pusat dan orang ke dua
sebagai operator yang mengatur kehadiran dan menilai aktifitas sedangkan pegawai
hanya bisa melakukan absensi dan melihat data absen mereka pada sistem. Sistem
akan mengkalkulasi data kehadiran pegawai dengan jumlah gaji yang telah
ditentukan, jumlah gaji harian di hitung dari pembagian gaji pokok dengan jumlah
hari yang telah ditentukan dari tanggal mulai absen sampai tanggal penggajian, gaji
lembur dihitung dari jumlah jam kerja pegawai terhitung dari setelah absen keluar,
serta gaji bonus harian dihitung dari sikap dan perilaku pegawai pada saat mulai
abesn hingga keluar kerja. Jumlah gaji dapat di edit oleh pengelola sistem, total gaji
dihitung dari total data yang diperoleh karyawan, sistem dapat mencetak laporan
dan slip gaji secara otomatis. Untuk lebih detailnya adalah sebagai berikut:
1. Operator menyalakan alat scan serta memantau kerja karyawan untuk
memberikan point kedisiplinan dan sebagainya.
2. Karyawan melakukan absen pada alat scan yang terhubung pada aplikasi
saat masuk kerja.
3. Karyawan melakukan absen lagi pada alat scan lagi saat pulang kerja.
4. Data kehadiran nanti akan dikalkulasi dengan jumlah gaji harian yang
ditentukan dari jumlah pembagian hari setingan tanggal penggajian dan
gaji pokok.
5. Jika karyawan ingin melakukan lembur karyawan harus melapor pada
operator untuk di catat mulai lembur dan pulang.
6. Admin melakukan pengelolaan data karyawan, izin, dan laporan.
7. Admin dapat mematikan akun karyawan agar tidak bisa absen
8. Direktur dapat menerima laporan lewat aplikasi.
9. Data yang direkap dapat dicetak dengan printer yang sudah terkoneksi.
Pada gambar 4.2 dapat dilihat kebutuhan perangkat komputer yang
digunakan oleh direktur, admin, dan Operator. Selain komputer direktur dan admin
juga memerlukan printer untuk mencetak slip gaji, laporan penggajian dan lainnya.
24

Gambar 4. 2 Gambar Jaringan Komputer

4.2 Analisa Kebutuhan


Dalam penelitian sistem penggajian kedai KopiDan analisis kebutuhan yang
dilakukan adalah analisi kebutuhan fungsional sistem dan analisis kebutuhan non
fungsional sistem. Pada tahapan ini menjelaskan apa saja yang dapat pengguna
lakukan terhadap fungsi sistem. Berikut adalah rincian analisis kebutuhan
fungsional sistem dan analisis kebutuhan non fungsional sistem.

4.2.1 Analisis Kebutuhan fungsional


Kebutuhan fungsional pada instansi KopiDan yang bersangkutan pada user
dapat dilihat pada tabel 4.1.
25

Tabel 4. 1 Analisis Kebutuhan Fungsional


Pengguna Kebutuhan
Admin 1. Merekap data gaji
2. Mengelola data karyawan
3. Menerima data kehadiran
4. Mengelola data kehadiran
5. Mengelola akun pegawai
Operator 1. Membuka absen masuk
2. Membuka absen keluar
3. Mencatat absen lembur
4. Mencatat aktifitas karyawan
5. Memantau data kehadiran karyawan
Direktur 1. Menerima laporan penggajian
2. Menerima laporan data karyawan
Karyawan 1. Melakukan absensi
2. Menerima slip gaji
3. Melihat data absensi
4. Melihat jadwal masuk dan keluar

4.2.2 Analisis Kebutuhan non fungsional.


Kebutuhan non fungsionl adalah kebutuhan yang melibatkan kebutuhan
user untuk menggunakan sistem tersebut, kebutuhan non fungsional yang
dibutuhkan dalam penelitian ini diantaranya adalah sebagai berikut;
1. Komputer atau pc untuk aktivitas pengelolaan data yang digunakan oleh
admin, direktur, dan Operator.
2. Printer yang sudah terkoneksi dengan sistem penggajian yag telah
dibuat.
3. Web browser (Mozilla firefox, Google chrome, Internet explorer, dan
sebagainya).
26

4.3 Perancangan Sistem


Pada tahapan ini akan menjelaskan mengenai perancangan sistem yang akan
dibuat menggunakan Entity Relationship Diagram (ERD), Data Flow Diagram
(DFD), serta tabel-tabel apa saja yang diperlukan dalam perancangan sistem
penggajian pada kedai kopi KopiDan. Berikut adalah rincian dari rancangan sistem
penggajian pada kedai kopi KopiDan:

4.3.1 Perancangan Model Proses


Pada perancangan model proses penelitian ini menggunakan Data Flow
Diagram (DFD). Data Flow Diagram (DFD) adalah tampilan informasi dari sistem
yang digambarkan menggunakan alir sistem serta menampilkan siapa saja yang
terlibat dalam sistem dari awal hingga akhir. Pada penelitian ini Data Flow
Diagram (DFD) digunakan untuk merancang aliran data yang berjalan pada sistem
yang akan dibuat.

a. Diagram Konteks
Pada gambar 4.3 dijelaskan bahwa pada proses penggajian instansi KopiDan
mempunyai empat Entitas yaitu karyawan,operator, Admin, dan Direktur. Empat
entitas tersebut mempunyai hak akses masing-masing. Admin dapat mengakses
data master seperti mendaftarkan data karyawan, mengelola absen, merekap data
gaji, dan merekap data lembur. Operator dapat membuka scan untuk absen
karyawan, memantau data kehadiran karyawan, serta mencatat aktifitas karyawan
untuk menentukan nilai bonus dan mencatat jam lembur. Untuk Karyawan dapat
melihat jam masuk kerja, menerima slip gaji, serta melihat daftar kehadiran.
Direktur dapat menerima laporan data karyawan dan laporan data penggajian pada
pada tiap bulannya.
27

Gambar 4. 3 Gambar Diagram Konteks


b. Diagram Jenjang
Daigram jenjang adalah diagram yang menjelaskan desain dan teknik
dokumentasi dalam siklus pengembangan pada fungsi sistem. Tujuan dari diagram
jenjang adalah memberikan informasi tentang fungsi-fungsi yang ada dalam sistem.
Diagram jenjang dalam sistem yang dibuat dapat dilihat pada gambar 4.4.

Gambar 4. 4 Gambar Daigram Jenjang


28

c. Data Flow Diagram level 1


Data Flow Diagram level 1 adalah rincian detail sistem atau bisa juga disebut
pemecahan sistem pada diagram konteks (DFD level 0). Dapat dilihat pada gambar
4.5 itu adalah pemecahan sistem atau rincian detail dari diagram konteks.

Gambar 4. 5 Data Flow Diagram level 1

d. Data Flow Diagram level 2


Data Flow Diagram level 2 adalah rincian detail turunan atau bisa juga disebut
pemecahan Data Flow Diagram level 1 (DFD level 1). Dapat dilihat pada gambar
4.6 dan gambar 4.7 adalah pemecahan sistem atau rincian detail dari DFD level 1.
29

Gambar 4. 6 Data Flow Diagram level 2

Gambar 4. 7 Data Flow Diagram level 2


30

4.3.2 Perancangan Model Data


Perancangan model data yang digunakan adalah menggunakan Entity
Relationship Diagram (ERD). Entity Relationship Diagram (ERD) adalah suatu
model atau rancangan yang menjelaskan hubungan atau relasi antar database dalam
sebuah desain. Entity Relationship Diagram (ERD) digambarkan dalam notasi dan
simbol yang mudah dimengerti sehingga mempermudah dalam permodelannya
sebagai contoh dalam sistem yang akan dibuat ini dapat dilihat pada gambar 4.8.

Gambar 4. 8 Entity Relationship Diagram

4.3.3 Perancangan Fisik Basis Data


Perancangan penggajian pada kedai kopi KopiDan menggunakan tabel sebagai
berikut :
1. Tabel Jam masuk
Nama tabel : jam_masuk
31

Tabel jam_masuk adalah tabel yang digunakan untuk menyeting jam masuk
kerja dan jam jam keluar. Keterangan tabel login dapat dilhat pada tabel 4.2.

Tabel 4. 2 Jam
NO Nama atribut Tipe data Lebar keterangan
1 id_jam Int 11 Primary key
2 jam_masuk date
3 Jam_keluar date

2. Tabel karyawan
Nama tabel : karyawan
Tabel karyawan adalah tabel yang digunakan untuk menyimpan data
karyawan. Keterangan tabel karyawan dapat dilihat pada tabel 4.3.
Tabel 4. 3 Karyawan
NO Nama atribut Tipe data Lebar Keterangan
1 NIP Int 11 Primary key
2 nama Varchar 50
3 alamat Varchar 50
4 Jenis_kelamin Enum ‘L’,’P’
5 Jabatan Enum ‘admin’,’operator’,’direk
tur’,’karyawan’
6 Gaji pokok Int 11
7 Status Enum ‘pegawai
magang’,’pegawai tetap’
8 Username Varchar 50
9 Password Varchar 50
10 Akun Enum ‘aktif’,’tidak aktif’
11 Sif Int 2
12 Id_jam Int 11
13 Kode_gaji Int 12
32

3. Tabel gaji karyawan tetap


Nama tabel : gaji_karyawan_tetap
Tabel gaji_karyawan_tetap digunakan untuk menentukan gaji karyawan tetap.
Keterangan tabel gaji_karyawan_tetap dapat dilihat pada tabel 4.4.

Tabel 4. 4 Gaji karyawan tetap


NO Nama atribut Tipe data Lebar Keterangan
1 No_slipT int 11 Primary key
2 Gaji Int 12
3 Uang_makan Int 12
4 Tunjangan Int 11
5 Upah_lembur Int 11
6 Potongan Int 11
7 Pajak Int 11
8 Kedisiplinan Int 12
9 Kerapian Int 12
10 Toleransi Int 12
11 Attitude Int 12
12 Total_gaji Int 11

4. Tabel gaji karyawan magang


Nama tabel : gaji_karyawan_magang
Tabel gaji_karyawan_magang digunakan untuk menentukan gaji dan
membuat laporan gaji karyawan magang. Keterangan tabel
gaji_karyawan_magang dapat dilihat pada tabel 4.5.

Tabel 4. 5 Gaji karyawan magang


NO Nama atribut Tipe data Lebar Keterangan
1 No_slipM int 11 Primary key
2 Gaji Int 11
33

Tabel 4. 6 Gaji karyawan magang (lanjutan)


3 Uang_makan Int 11
4 Tunjangan Int 11
5 Upah_lembur Int 11
6 Potongan Int 11
7 Pajak Int 11
8 Kedisiplinan Int 11
9 Kerapian Int 11
10 Toleransi Int 11
11 Attitude Int 11
12 Total_gaji Int 11

5. Tabel absen
Nama tabel : absen
Tabel absen digunakan untuk mendata absen para karyawan. Keterangan tabel
absendapat dilihat pada tabel 4.6.
Tabel 4. 7 Absen
NO Nama atribut Tipe data Lebar Keterangan
1 Kode_absen Varchar 25 Primary key
2 NIP Int 11 Foreign key
3 Tanggal_masuk Date
4 Jam_masuk Time
5 Tanggal_keluar Date
6 Jam_keluar Time
7 Tanggal_lembur Date
8 Jam_lembur Time
9 Izin Varchar 50
10 Ststus_absen Enum ‘telat’,’tepat
waktu’
11 Id_gaji Int 12 Foreign key
34

6. Tabel Gaji harian


Nama tabel : gaji_harian
Tabel gaji_harian digunakan untuk merekap data aktifitas karyawan untuk
menentukan jumlah bonus yang didapat perharinya. Untuk lebih jelasnya bisa
dilihat pada tabel 4.7

Tabel 4. 8 Gaji harian


NO Nama Atribut Tipe Data Lebar Keterangan
1 Id_gaji Int 12 Primary key
2 Tanggal Date
3 Uang_makan_hari Int 11
4 Kedisiplinan Int 1
5 Kerapian Int 1
6 Toleransi Int 1
7 Attitude Int 1
8 Izin Int 2
9 No_slipT Int 11
10 No_slipM Int 11

7. Tabel set gaji


Nama tebel : set_gaji
Tabel set gaji digunakan untuk menyeting nilai gaji bonus pada karyawan
setiap harinya. Untuk lebih jelasnya dapat dilihat pada tabel 4.8

Tabel 4. 9 Set Gaji


NO Nama Atribut Tipe data Lebar Keterangan
1 Kode_gaji Int 12 Primary key
2 Uang_makan Int 11
3 Tanggal_muali Date
35

Tabel 4. 10 Set Gaji (lanjutan)


4 Tanggal_akhir Date
5 Set_hari Int 12
6 Uang_kedisiplinan Int 12
7 Uang_kerapian Int 12
8 Uang_toleransi Int 12
9 Uang_attitude Int 12

4.3.4 Perancangan Relasi Antar Tabel


pada tahapan ini ditujukan untuk mengetahui relasi antar tabel yang telah
dibuat pada perancangan sebelumnya. Pada pernacangan sebelumnya relasi yang
dibuat penggabungan beberapa tabel diantaranya adalah tabel karyawan dengan
tabel absen, tabel absen dengan tabel gaji karyawan tetap, dan tabel absen dengan
tabel gaji karyawan magang. Relasi antar tabel yang telah dirancang dapat dilihat
pada gambar 4.9.
36

Gambar 4. 9 Relasi antar tabel

4.3.5 Perancangan Antarmuka


Perancangan antar muka ini digunakan untuk berinteraksi antara pengguna
dengan sistem yang akan dibuat. Perancangan antar muka yang dibuat bertujuan
untuk mempermudah dalam pengoprasian atau interaksi user dengan sistem agar
sistem dapat dengan mudah memahami perintah apa yang di inginkan oleh user.
Berikut adalah perancangan tampilan antar muka yang akan dibuat.
1. Tampilan halaman login
Halaman login digunakan untuk menentukan user mana yang akan
memasuki sistem sehingga sistem akan mengarahkan user pada halaman
berdasarkan level yang telah di atur pada sistem. Perancangan halaman login
dapat dilihat pada gambar 4.10.
37

Gambar 4. 10 Tampilan halaman login

2. Tampilan halaman karyawan


Halaman interface untuk karyawan adalah halaman yang digunakan oleh
user dengan level karyawan. Tampilan interface pada karyawan mempunyai 2
tampilan seperti berikut:
a. Tampilan Info gaji
Halaman kerja digunakan untuk negetahui jumlah gaji yang diterima
karyawan berdasarkan NIP nya. Perancangan halaman jadwal kerja bisa
dilihat pada gambar 4.11.

Gambar 4. 11 Tampilan halaman jadwal masuk kerja


38

b. Tampilan absen
Halaman absen pada karyawan digunakan untuk melihat apakah
karyawan tersebut sudah melakukan absen. Perancangan halaman absen
bisa dilihat pada gambar 4.12.

Gambar 4. 12 Tampilan halaman absen

c. Tampilan Qrcode
Halaman Qrcode pada karyawan digunakan untuk menampilkan kode Qr
milik karyawan yang natinya digunakan untuk absen pada scanning.
Perancangan halaman Qrcode bisa dilihat pada gambar 4.13.

Gambar 4. 13 Tampilan halaman Qrcode


39

d. Tampilan Profil
Halaman Profil pada karyawan digunakan untuk menampilkan Profil
akun karyawan yang berupa username dan paswword setiap karyawan yang
bisa di ubah. Perancangan halaman Profil bisa dilihat pada gambar 4.14.

Gambar 4. 14 Tampilan halaman profil

3. Tampilan halaman admin


Pada halaman admin terdapat 4 tampilan interface yang dapat diakses oleh
admin untuk berinteraksi dengan sistem yaitu halaman buat absen, halaman
data karyawan, input data karyawan, dan halaman data absen untuk lebih
jelasnya dapat dilihat pada tampulan berikut:

a. Tampilan halaman Buat Qrcode


Halaman buat Buat Qrcode digunakan untuk membuat melihat Qrcode
pada setiap karyawan yang sudah terdaftar pada sistem absen. Perancangan
halaman Buat Qrcode bisa dilihat pada gambar 4.15.
40

Gambar 4. 15 Tampilan halaman membuat kode absen

b. Tampilan halaman data karyawan


Hamalan data karyawan pada menu admin digunakan untuk mengedit
data karyawan, menghapus, ataupun memperbaharui data. Perancangan
halaman data karyawan bisa dilihat pada gambar 4.16.

Gambar 4. 16 Tampilan halaman data karyawan


41

c. Tampilan halaman input dan edit data karyawan


Halaman input dan edit data karyawan pada halaman admin digunakan
untuk mendata dan mengedit data karyawan yang belum maupun yang
sudah terdaftar pada sistem. Perancangan halaman input dan edit data
karyawan bisa dilihat pada gambar 4.17.

Gambar 4. 17 Tampilan halaman input data karyawan

d. Tampilan halaman data absen


Halaman data absen pada menu admin digunakan untuk mengedit data
kehadiran karyawan, menghapusnya maupun mengubahnya. Perancangan
halaman data karyawan bisa dilihat pada gambar 4.18.
42

Gambar 4. 18 Tampilan halaman data absen

e. Tampilan halaman Gaji karyawan


Halaman data absen pada menu admin digunakan untuk mengedit data
kehadiran karyawan, menghapusnya maupun mengubahnya. Perancangan
halaman data karyawan bisa dilihat pada gambar 4.19.

Gambar 4. 19 Tampilan halaman gaji karyawan

f. Tampilan halaman Setting jam masuk


Halaman data absen pada menu admin digunakan untuk mengedit data
kehadiran karyawan, menghapusnya maupun mengubahnya. Perancangan
halaman data karyawan bisa dilihat pada gambar 4.20.
43

Gambar 4. 20 Tampilan halaman setting jam masuk

g. Tampilan halaman Akun pegawai


Halaman data absen pada menu admin digunakan untuk mengedit data
kehadiran karyawan, menghapusnya maupun mengubahnya. Perancangan
halaman data karyawan bisa dilihat pada gambar 4.21.

Gambar 4. 21 Tampilan halaman akun pegawai

4. Tampilan halaman direktur


Pada halaman direktur terdapat 2 tampilan interface yang dapat digunakan
ileh direktur diantaranya adalah sebagai berikut:
a. Tampilan halaman laporan data karyawan
44

Halaman laporan data karyawan pada menu direktur dugunakan untuk


mengetahui data tiap karyawan yang baru masuk, maupun karyawan yang
sudah lama. Perancangan halaman laporan data karyawan dapat dilihat pada
gambar 4.22.

Gambar 4. 22 Tampilan halaman laporan data karyawan

b. Tampilan halaman laporan gaji karyawan tetap


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah
gaji karyawan perbulan maupun tahunan. Perancangan halaman laporan
data penggajian dapat dilihat pada gambar 4.23.
45

Gambar 4. 23 Tampilan halaman laporan data penggajian

c. Tampilan halaman laporan gaji karyawan tetap


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah
gaji karyawan perbulan maupun tahunan. Perancangan halaman laporan
data penggajian dapat dilihat pada gambar 4.24.

Gambar 4. 24 Tampilan halaman gaji karyawan tetap


46

5. Tampilan halaman direktur


Pada halaman direktur terdapat 7 tampilan interface yang dapat
digunakan oleh direktur diantaranya adalah sebagai berikut:

a. Tampilan halaman Nilai sikap


Halaman laporan data gaji digunakan direktur untuk mengetahui
jumlah gaji karyawan perbulan maupun tahunan. Perancangan halaman
laporan data penggajian dapat dilihat pada gambar 4.25.

Gambar 4. 25 Tampilan halaman nilai sikap

b. Tampilan halaman Scan Qrcode

Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah gaji
karyawan perbulan maupun tahunan. Perancangan halaman laporan data penggajian
dapat dilihat pada gambar 4.26.
47

Gambar 4. 26 Tampilan halaman Scan Qrcode

c. Tampilan halaman Data pegawai


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah gaji
karyawan perbulan maupun tahunan. Perancangan halaman laporan data penggajian
dapat dilihat pada gambar 4.27.

Gambar 4. 27 Tampilan halaman data pegawai


48

d. Tampilan halaman Info gaji


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah gaji
karyawan perbulan maupun tahunan. Perancangan halaman laporan data penggajian
dapat dilihat pada gambar 4.28.

Gambar 4. 28 Tampilan halaman info gaji

e. Tampilan halaman data absen


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah gaji
karyawan perbulan maupun tahunan. Perancangan halaman laporan data penggajian
dapat dilihat pada gambar 4.29.
49

Gambar 4. 29 Tampilan halaman data absen

f. Tampilan halaman profil


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah gaji
karyawan perbulan maupun tahunan. Perancangan halaman laporan data penggajian
dapat dilihat pada gambar 4.30.

Gambar 4. 30 Tampilan halaman profil


50

g. Tampilan halaman masukan nilai sikap


Halaman laporan data gaji digunakan direktur untuk mengetahui jumlah gaji
karyawan perbulan maupun tahunan. Perancangan halaman laporan data penggajian
dapat dilihat pada gambar 4.31.

Gambar 4. 31 Tampilan halaman masukan nilai sikap


4.4 Rancangan Anggaran Pengembangan Sistem

Tabel 4. 11 Rancangan Anggaran Biaya


Waktu
Harga satuan
NO Kebutuhan / Jumlah Total (Rp)
(Rp)
bulan
A Anggaran Biaya SDM
1 Analisis 1 4.000.000 4.000.000
Designer 1 3.000.000 3.000.000
Programer 1 5.000.000 5.000.000
Tester 1 3.000.000 3.000.000

B Kebutuhan Server
1 Domain dan 12 1 300.000 3.600.000
Hosting
Total biaya 18.600.000
BAB V
IMPLEMENTASI DAN PEMBAHASAN SISTEM

5.1 Implementasi sistem


Sistem akan diimplementasikan berdasarkan desain dan rancangan yang
telah dibuat dari perancangan sebelumnya. Berdasarkan perancangan sistem pada
bab sebelmnya, pada bab ini sistem akan diimplementasikan menjadi dua kategori
yaitu Implementasi basis data dan Inplementasi sistem.

5.1.1 Implementasi basis data


Database pada hasil perancangan ini diberi nama penggajian. Database ini
berfungsi untuk menampung tabel-tabel data yang dibutuhkan dalam sistem. Untuk
membuat database penggajian dibutuhkan query sebagai berikut:
CREATE DATABASE penggajian;

Gambar 5. 1 Query active

Pada gambar 5.1 dapat dilihat bahwa query dapat dibaca dengan waktu
0.002 dan kecepatan transfer file 2.024, total dari kecepatan proses query adalah
2.026 seshingga query ini sangat efektif dalam sistem yang dibuat.

Setelah membuat database dibutuhkan tabel-tabel untuk menyimpan data


pada sistem yang akan dibuat beberapa tabel yang akan dibuat adalah tabel
karyawan, gaji karyawan tetap, gaji karyawan magang, set gaji, absen, gaji harian,
dan tabel jam masuk.

51
52

• Tabel Karyawan
Tabel karyawan adalah tabel yang berisikan data setiap karyawan
diantaranya adalah NIP, nama, alamat, jenis kelamin, jabatan, gaji pokok,
status, username, password, akun, sif, id jam, dan kode gaji. Berikut adalah
query pembuatan tabel karyawan.

CREATE TABLE `karyawan` (


`NIP` INT(11) NOT NULL,
`nama` VARCHAR(50) DEFAULT NULL,
`alamat` VARCHAR(50) DEFAULT NULL,
`jenis_kelamin` ENUM('L','P') DEFAULT NULL,
`jabatan` ENUM('admin','direktur','operator','karyawan')
DEFAULT NULL,
`gaji_pokok` INT(11) DEFAULT NULL,
`status` ENUM('pegawai tetap','pegawai magang') DEFAULT NULL,
`username` VARCHAR(50) DEFAULT NULL,
`password` VARCHAR(20) DEFAULT NULL,
`akun` ENUM('aktif','tidak aktif') DEFAULT NULL,
`sif` INT(2) DEFAULT NULL,
`id_jam` INT(11) DEFAULT NULL,
`kode_gaji` INT(12) DEFAULT NULL,
PRIMARY KEY (`NIP`))

Gambar 5. 2 Query active


53

Pada gambar 5.2 dapat dilihat bahwa query dapat dibaca dengan waktu
0.808 dan kecepatan transfer file 2.030, total dari kecepatan proses query adalah
2.838 seshingga query ini sangat efektif dalam sistem yang dibuat.

• Tabel gaji karyawan magang


Tabel gaji karyawan magang adalah tabel yang berisikan data gaji
karyawan magang yang isinya antara lain no slipM, gaji, uang makan,
tunjangan, upah lembur, potongan, pajak, kedisiplinan, kerapian, toleransi,
attitude, dan total gaji. Berikut adalah query pembuatan tabel gaji karyawan
magang.
CREATE TABLE `gaji_karyawan_magang` (
`no_slipM` int(11) NOT NULL,
`gaji` int(12) DEFAULT NULL,
`uang_makan` int(12) DEFAULT NULL,
`tunjangan` int(12) DEFAULT NULL,
`upah_lembur` int(12) DEFAULT NULL,
`potongan` int(12) DEFAULT NULL,
`pajak` int(12) DEFAULT NULL,
`kedisiplinan` int(12) DEFAULT NULL,
`kerapian` int(12) DEFAULT NULL,
`toleransi` int(12) DEFAULT NULL,
`attitude` int(12) DEFAULT NULL,
`total_gaji` int(12) DEFAULT NULL,
PRIMARY KEY (`no_slipM`))

Gambar 5. 3 Query active


54

Pada gambar 5.3 dapat dilihat bahwa query dapat dibaca dengan waktu
0.622 dan kecepatan transfer file 2.074, total dari kecepatan proses query adalah
2.696 seshingga query ini sangat efektif dalam sistem yang dibuat.

• Tabel gaji karyawan tetap


Tabel gaji karyawan tetap adalah tabel yang berisikan data gaji
karyawan tetap yang isinya antara lain no slipT, gaji, uang makan,
tunjangan, upah lembur, potongan, pajak, kedisiplinan, kerapian, toleransi,
attitude, dan total gaji. Berikut adalah query pembuatan tabel gaji karyawan
tetap.

CREATE TABLE `gaji_karyawan_tetap` (


`no_slipT` int(11) NOT NULL,
`gaji` int(12) DEFAULT NULL,
`uang_makan` int(12) DEFAULT NULL,
`tunjangan` int(12) DEFAULT NULL,
`upah_lembur` int(12) DEFAULT NULL,
`potongan` int(12) DEFAULT NULL,
`pajak` int(12) DEFAULT NULL,
`kedisiplinan` int(12) DEFAULT NULL,
`kerapian` int(12) DEFAULT NULL,
`toleransi` int(12) DEFAULT NULL,
`attitude` int(12) DEFAULT NULL,
`total_gaji` int(12) DEFAULT NULL,
PRIMARY KEY (`no_slipT`))

Gambar 5. 4 Query active


55

Pada gambar 5.4 dapat dilihat bahwa query dapat dibaca dengan waktu
0.574 dan kecepatan transfer file 2.009, total dari kecepatan proses query adalah
2.583 seshingga query ini sangat efektif dalam sistem yang dibuat.

• Tabel set gaji


Tabel set gaji adalah tabel yang berisikan data untuk mengatur jumlah
waktu penggajian dan gaji bonus yang akan di setting pada aplikasi. Data
yang ada pada tabel set gaji diantaranya adalah kode gaji, uang makan,
tanggal mulai, tanggal akhir, set hari, uang kedisiplinan, uang kerapian,
uang toleransi, uang attitude, dan uang lembur. Berikut adalah query
pembuatan tabel set gaji.

CREATE TABLE `set_gaji` (


`kode_gaji` int(12) NOT NULL,
`uang_makan` int(11) DEFAULT NULL,
`tanggal_mulai` date DEFAULT NULL,
`tanggal_akhir` date DEFAULT NULL,
`set_hari` int(12) DEFAULT NULL,
`uang_kedisiplinan` int(12) DEFAULT NULL,
`uang_kerapian` int(12) DEFAULT NULL,
`uang_toleransi` int(12) DEFAULT NULL,
`uang_attitude` int(12) DEFAULT NULL,
`uang_lembur` int(11) DEFAULT NULL,
PRIMARY KEY (`kode_gaji`))

Gambar 5. 5 Query active


56

Pada gambar 5.5 dapat dilihat bahwa query dapat dibaca dengan waktu
0.877 dan kecepatan transfer file 2.076, total dari kecepatan proses query adalah
2.954 seshingga query ini sangat efektif dalam sistem yang dibuat.

• Tabel absen
Tabel absen adalah tabel yang berisikan data absen setiap karyawan,
data pada tabel absen diantaranya adalah kode absen, NIP, tanggal masuk,
jam masuk, tanggal keluar, jam keluar, tanggal lembur, jam lembur, izin,
status absen, dan id gaji. Berikut adalah query pembuatan tabel absen.

CREATE TABLE `absen` (


`kode_absen` int(11) NOT NULL AUTO_INCREMENT,
`NIP` int(11) DEFAULT NULL,
`tanggal_masuk` date DEFAULT NULL,
`jam_masuk` time DEFAULT NULL,
`tanggal_keluar` date DEFAULT NULL,
`jam_keluar` time DEFAULT NULL,
`tanggal_lembur` date DEFAULT NULL,
`jam_lembur` time DEFAULT NULL,
`izin` varchar(50) DEFAULT NULL,
`status_absen` enum('telat','tepat waktu') DEFAULT
NULL,
`id_gaji` int(12) DEFAULT NULL,
KEY `NIP` (`NIP`),
KEY `kode_absen` (`kode_absen`))

Gambar 5. 6 Query active


57

Pada gambar 5.6 dapat dilihat bahwa query dapat dibaca dengan waktu
0.702 dan kecepatan transfer file 2.054, total dari kecepatan proses query adalah
2.757 seshingga query ini sangat efektif dalam sistem yang dibuat.

• Tabel gaji harian


Tabel gaji harian adalah tabel yang berisikan data gaji bonus harian yang
dimiliki karyawan, data yang ada pada tabel gaji harian antara lain adalah
id gaji, tanggal, uang makan hari, kedisiplinan, kerapian, toleransi, attitude,
izin, no slipT, dan no slipM. Berikut adalah query pembuatan tabel gaji
harian.

CREATE TABLE `gaji_harian` (


`id_gaji` int(12) NOT NULL,
`tanggal` date DEFAULT NULL,
`uang_makan_hari` int(11) DEFAULT NULL,
`kedisiplinan` int(1) DEFAULT NULL,
`kerapian` int(1) DEFAULT NULL,
`toleransi` int(1) DEFAULT NULL,
`attitude` int(1) DEFAULT NULL,
`izin` int(2) DEFAULT NULL,
`no_slipT` int(11) DEFAULT NULL,
`no_slipM` int(11) DEFAULT NULL)

Gambar 5. 7 Query active

Pada gambar 5.7 dapat dilihat bahwa query dapat dibaca dengan waktu
0.530 dan kecepatan transfer file 1.986, total dari kecepatan proses query adalah
2.516 seshingga query ini sangat efektif dalam sistem yang dibuat.
58

• Tabel jam masuk


Tabel jam masuk adalah tabel yang berisikan data untuk mengatur jam
masuk dan keluar kerja berdasarkan sif, untuk data tabel jam masuk
diantaranya adalah id jam, jam masuk, dan jam keluar. Berikut adalah query
pembuatan tabel jam masuk.

CREATE TABLE `jam_masuk` (


`id_jam` int(11) NOT NULL,
`jam_masuk` time DEFAULT NULL,
`jam_keluar` time DEFAULT NULL,
PRIMARY KEY (`id_jam`))

Gambar 5. 8 Query active

Pada gambar 5.8 dapat dilihat bahwa query dapat dibaca dengan waktu
0.562 dan kecepatan transfer file 2.009, total dari kecepatan proses query adalah
2.572 seshingga query ini sangat efektif dalam sistem yang dibuat.

Relasi antar tabel digunakan untuk menghubungkan tabel satu dengan yang lainnya
reli antar tabel ini digunakan untuk mencegah duplikat data atau data yang sama
dalam satu database, penghubung anatara tabel satu dengan yang lainnya yaitu
menggunakan primary key dan foreign key yang saling terhubung. Implementasi
relasi antar tabel pada database penggajian dapat dilihat pada gambar 5.9.
59

Gambar 5. 9 Relasi antar tabel

5.1.2 Inplementasi sistem


Pada tahapan implementasi ini sistem akan diuraikan dalam bentuk kode
program php yang disusun sesuai kebutuhan. Pada penguraian ini penyusunan
sistem manggunakan program natif dan bootstrap 5. Untuk kode program yang
digunakan diantaranya dapat dilihat sebagai berikut:
1. Tampilan admin
a. Kode program absen

<nav class="navbar navbar-expand-lg navbar-light bg-warning


fixed-top">
<div class="container">
<h3><i class="bi bi-cart-plus text-success m-
3"></i></h3>
<a class="navbar-brand fw-bold" href="#">Admin</a>
<button class="navbar-toggler" type="button" data-
bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
60

</button>
<div class="collapse navbar-collapse"
id="navbarSupportedContent">
<ul class="navbar-nav ms-auto me-4">
<li class="nav-item">
<a class="nav-link active" aria-
current="page" href="akun.php">kelola akun</a>
</li>
<li class="nav-item">
<a class="nav-link"
href="admin.php">kelola data</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle"
href="#" id="navbarDropdown" role="button" data-bs-
toggle="dropdown" aria-expanded="false">
kontak kami
</a>
<ul class="dropdown-menu" aria-
labelledby="navbarDropdown">
<li><a class="dropdown-item"
href="https://www.instagram.com/cirenglegend1/"><i class="bi
bi-instagram m-2"></i>instagram</a></li>
</ul>
</li>
</ul>

<h4><i class="bi bi-cart4 ms-3 me-2">Cari


data</i></h4>
<form class="d-flex">
<input class="form-control me-2" type="search"
placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success me-
5" type="submit">Search</button>
</form>
<a class="btn btn-outline-success position-
absolute end-0" type="submit" href="../login.php">Logout</a>
61

</div>
</div>
</nav>

<div class="row">
<div class="col-md-2 bg-light mt-3">
<div class="list-group">
<button type="button" class="list-group-item
list-group-item-action active" aria-current="true">
PILIHAN
</button>
<a type="button" class="list-group-item list-
group-item-action" href="admin.php">Absen</a>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-
headingOne">
<button class="accordion-button collapsed"
type="button" data-bs-toggle="collapse" data-bs-target="#flush-
collapseOne" aria-expanded="false" aria-controls="flush-
collapseOne">
Data karyawan
</button>
</h2>
<div id="flush-collapseOne" class="accordion-
collapse collapse" aria-labelledby="flush-headingOne" data-bs-
parent="#accordionFlushExample">
<a type="button" class="list-group-item
list-group-item-action" href="data/datakaryawanT.php">Data
karyawan tetap</a>
<a type="button" class="list-group-item
list-group-item-action" href="data/datakaryawanM.php">Data
karyawan magang</a>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-
headingTwo">
62

<button class="accordion-button collapsed"


type="button" data-bs-toggle="collapse" data-bs-target="#flush-
collapseTwo" aria-expanded="false" aria-controls="flush-
collapseTwo">
kelola Data gaji
</button>
</h2>
<div id="flush-collapseTwo" class="accordion-
collapse collapse" aria-labelledby="flush-headingTwo" data-bs-
parent="#accordionFlushExample">
<a type="button" class="list-group-item
list-group-item-action" href="data/gajikaryawanT.php">Gaji
karyawan tetap</a>
<a type="button" class="list-group-item
list-group-item-action" href="data/gajikaryawanM.php">Gaji
karyawan magang</a>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-
headingThree">
<button class="accordion-button collapsed"
type="button" data-bs-toggle="collapse" data-bs-target="#flush-
collapseThree" aria-expanded="false" aria-controls="flush-
collapseThree">
Setting Penggajian
</button>
</h2>
<div id="flush-collapseThree"
class="accordion-collapse collapse" aria-labelledby="flush-
headingThree" data-bs-parent="#accordionFlushExample">
<a type="button" class="list-group-item
list-group-item-action" href="setgaji/setgaji.php">Setting
tanggal gaji</a>
<a type="button" class="list-group-item
list-group-item-action" href="penggajian/gajihariini.php">Gaji
Harian</a>
63

</div>
</div>
</div>
</div>

<?php
include('../koneksi/conet.php');
$data = mysqli_query($connet, "SELECT * FROM absen");
$no = 1;
?>
<div class="col">
<div class="mas-md-5 mt-2">
<br>
<div class="col-md-5">
<H4 class="tab fs-2 fw-bold ">ABSEN</H4>
</div>
<hr class="garis fw-bold">
<div>
<button type="submit" class="btn btn-primary"
data-bs-target="#absen" data-bs-toggle="modal">Input
data</button>
</div>

b. Kode program akun


<div class="collapse navbar-collapse"
id="navbarSupportedContent">
<ul class="navbar-nav ms-auto me-4">
<li class="nav-item">
<a class="nav-link active" aria-
current="page" href="akun.php">kelola akun</a>
</li>
<li class="nav-item">
<a class="nav-link"
href="admin.php">kelola data</a>
</li>
64

<li class="nav-item dropdown">


<a class="nav-link dropdown-toggle"
href="#" id="navbarDropdown" role="button" data-bs-
toggle="dropdown" aria-expanded="false">
kontak kami
</a>
<ul class="dropdown-menu" aria-
labelledby="navbarDropdown">
<li><a class="dropdown-item"
href="https://www.instagram.com/cirenglegend1/"><i class="bi
bi-instagram m-2"></i>instagram</a></li>
</ul>
</li>
</ul>

<h4><i class="bi bi-cart4 ms-3 me-2">Cari


data</i></h4>
<form method="GET" action="" class="d-flex">
<input class="form-control me-2" name="cari"
type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success"
type="submit">Search</button>
</form>
<a class="btn btn-outline-success position-
absolute end-0" type="submit" href="../login.php">Logout</a>
</div>
</div>
</nav>

<div class="row">
<div class="col-md-2 bg-light">
<div class="list-group">
<button type="button" class="list-group-item
list-group-item-action active" aria-current="true">
PILIHAN
</button>
65

<a type="button" class="list-group-item list-


group-item-action" href="akun.php">Akun</a>
<a href="Qrcode/qrcode.php" type="button"
class="list-group-item list-group-item-action">Buat Qrcode</a>
<a type="button" class="list-group-item list-
group-item-action" href="set_jam/setjam.php">Set jam Masuk</a>
</div>
</div>

<?php
include('../koneksi/conet.php');
$data = mysqli_query($connet, "SELECT * FROM karyawan");
$cee = mysqli_num_rows($data);

$data1 = mysqli_query($connet, "SELECT * FROM karyawan


where akun='aktif'");
$cek = mysqli_num_rows($data1);

$data2 = mysqli_query($connet, "SELECT * FROM karyawan


where akun='tidak aktif'");
$cek1 = mysqli_num_rows($data2);

$no = 1;

if (isset($_GET['cari'])) {
$min = $_GET['cari'];
if ($min == '') {
$data = mysqli_query($connet, "SELECT * FROM
karyawan");
} else {
$data = mysqli_query($connet, "SELECT * FROM
karyawan where NIP='$min' or nama like '%$min%' or jabatan like
'%$min%' or status like'%$min%' or akun like '%$min%'");
} } ?>
66

2. Tampilan operator
a. Kode program Info

<?php
session_start();
$NIP = $_SESSION['nip'];
include('../koneksi/conet.php');
$data = mysqli_query($connet, "SELECT * FROM absen INNER
JOIN karyawan
ON absen.`NIP`=karyawan.`NIP` where jabatan in
('karyawan','operator')");

$data1 = mysqli_query($connet, "SELECT * FROM karyawan where


NIP='$NIP'");
$ulang1 = mysqli_fetch_array($data1);
$no = 1;

if (isset($_GET['cari'])) {
$min = $_GET['cari'];
if ($min == '') {
$data = mysqli_query($connet, "SELECT * FROM absen
INNER JOIN karyawan
ON absen.`NIP`=karyawan.`NIP` where jabatan in
('karyawan','operator')");
} else {
$data = mysqli_query($connet, "SELECT * FROM absen
INNER JOIN karyawan
ON absen.`NIP`=karyawan.`NIP` where jabatan in
('karyawan','operator') and id_gaji='$min' or tanggal_masuk like
'%$min%'");
}
}
?>
<div class="row">
<div class="col-md-2 bg-light">
<div class="list-group">
67

<button type="button" class="list-group-item


list-group-item-action active" aria-current="true">
PILIHAN
</button>
<button type="button" class="list-group-item
list-group-item-action" href="operator.php">Data absen</button>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-
headingOne">
<button class="accordion-button collapsed"
type="button" data-bs-toggle="collapse" data-bs-target="#flush-
collapseOne" aria-expanded="false" aria-controls="flush-
collapseOne">
Data karyawan
</button>
</h2>
<div id="flush-collapseOne" class="accordion-
collapse collapse" aria-labelledby="flush-headingOne" data-bs-
parent="#accordionFlushExample">
<a type="button" class="list-group-item
list-group-item-action" href="data/datakaryawanT.php?NIP=<?=
$NIP ?>">Data Karyawan Tetap</a>
<a type="button" class="list-group-item
list-group-item-action" href="data/datakaryawanM.php?NIP=<?=
$NIP ?>">Data Karyawan Magang</a>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-
headingTwo">
<button class="accordion-button collapsed"
type="button" data-bs-toggle="collapse" data-bs-target="#flush-
collapseTwo" aria-expanded="false" aria-controls="flush-
collapseTwo">
Info gaji
</button>
</h2>
68

<div id="flush-collapseTwo" class="accordion-


collapse collapse" aria-labelledby="flush-headingTwo" data-bs-
parent="#accordionFlushExample">
<a type="button" class="list-group-item
list-group-item-action" href="data/gajikaryawanT.php?NIP=<?=
$NIP ?>">Gaji karyawan tetap</a>
<a type="button" class="list-group-item
list-group-item-action" href="data/gajikaryawanM.php?NIP=<?=
$NIP ?>">Gaji karyawan magang</a>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-
headingThree">
<button class="accordion-button collapsed"
type="button" data-bs-toggle="collapse" data-bs-target="#flush-
collapseThree" aria-expanded="false" aria-controls="flush-
collapseThree">
Scan Qrcode
</button>
</h2>
<div id="flush-collapseThree"
class="accordion-collapse collapse" aria-labelledby="flush-
headingThree" data-bs-parent="#accordionFlushExample">
<a type="button" class="list-group-item
list-group-item-action" href="secanqr/secan.php?NIP=<?= $NIP
?>">Absen Masuk</a>
<a type="button" class="list-group-item
list-group-item-action" href="secanqr/secan2.php?NIP=<?= $NIP
?>">Absen Keluar</a>
</div>
</div>
<a type="button" class="list-group-item list-
group-item-action" href="data/sikap.php?NIP=<?= $NIP ?>">Nilai
sikap</a>
69

<button type="submit" class="list-group-item


list-group-item-action" data-bs-target="#beli" data-bs-
toggle="modal">Profil</button>
</div>
</div>

b. Kode program Scan Qrcode


<div class="col">
<div class="col-md-5">
<H4 class="tab fs-3 fw-bold ">Absen masuk</H4>
</div>
<div class="col-md-6">
<video id="preview"></video>
</div>
<div class="col-md-6">
<label></label>
<input type="hidden" name="text" id="text"
readonyy="" placeholder="scan qrcode" class="form-control"
onkeyup="autofill()">
</div>
</div>
<audio id="sound" src="beep-08b.mp3"></audio>

<script>
var music = document.getElementById('sound');

var scanner = new Instascan.Scanner({


video: document.getElementById('preview'),
scanPeriod: 5,
mirror: false

});

scanner.addListener('scan', function(content) {
$("#text").val(content)
$("#text").trigger('blur')
autofill()
70

music.play()
navigator.geolocation.getCurrentPosition((
data, err) => {
if (err) {
console.log(err)
} else {
console.log(data)
}
})
// $.ajax({
// url: '',
// type: 'get',
// data: '',
// success: function(res) {
// alert('success absen')
// },
// error: function(xhr, option, error)
{
// alert('error')
// }
// })
});
Instascan.Camera.getCameras().then(function(ca
meras) {
if (cameras.length > 0) {
scanner.start(cameras[0]);
$('[name="options"]').on('change',
function() {
if ($(this).val() == 1) {
if (cameras[0] != "") {
scanner.start(cameras[0]);
} else {
alert('No Front camera
found!');
}
} else if ($(this).val() == 2) {
if (cameras[1] != "") {
71

scanner.start(cameras[1]);
} else {
alert('No Back camera
found!');
}
}
});

} else {
console.error('No cameras found.');
alert('No cameras found.');
}
}).catch(function(e) {
console.error(e);
alert(e);
});

function autofill() {
var nip = $("#text").val();
$.ajax({
url: 'inputabsen.php',
data: 'NIP=' + nip
});
}
</script>
</div>
<?php } ?>

3. Tampilan direktur
a. Kode program data

<div class="col-md-10">
<div class="mas-md-5 mt-2">
<br>
<div class="col-md-5">
<H4 class="tab fs-2 fw-bold ">Data
Karyawan</H4>
72

</div>
<hr class="garis fw-bold">

<?php
if (isset($_GET['cari'])) {
$min = $_GET['cari'];
if ($min == '') {
$data = mysqli_query($connet, "SELECT *
FROM karyawan");
} else {
$data = mysqli_query($connet, "SELECT *
FROM karyawan where status like '%$min%' or NIP='$min' OR nama
like'%$min%' or jabatan like'%$min%' or alamat like'%$min%'");
}
}

?>

<hr class="garis fw-bold">


<div class="tab">
<table class="table mt-3">
<thead>
<tr>
<th scope="col">NO</th>
<th scope="col">NIP</th>
<th scope="col">Nama</th>
<th scope="col">Alamat</th>
<th scope="col">Jenis kelamin</th>
<th scope="col">Jabatan</th>
<th scope="col">Gaji Pokok</th>
<th scope="col">Status</th>
<th scope="col">Kode gaji</th>
<th scope="col">Cetak</th>
</tr>
</thead>
<tbody>
<?php
73

while ($ulang =
mysqli_fetch_array($data)) {
?>
<tr>
<td><?= $no++; ?></td>
<td><?= $ulang['NIP'];
?></td>
<td><?= $ulang['nama'];
?></td>
<td><?= $ulang['alamat'];
?></td>
<td><?=
$ulang['jenis_kelamin']; ?></td>
<td><?= $ulang['jabatan'];
?></td>
<td><?= $ulang['gaji_pokok'];
?></td>
<td><?= $ulang['status'];
?></td>
<td><?= $ulang['kode_gaji'];
?></td>
<td> <a class="btn btn-
primary" href="aksi/cetakdata.php?NIP=<?php

echo $ulang['NIP']
?>">Cetak</a></td>
</tr>
</div>

<?php
}
?>
</tbody>
</table>
</div>
</div>
74

b. Kode program gaji

<div class="col-md-10">
<div class="mas-md-5 mt-2">
<br>
<div class="col-md-5">
<H4 class="tab fs-3 fw-bold ">Gaji Karyawan
Tetap</H4>
</div>
<hr class="garis fw-bold">

<?php
if (isset($_GET['cari'])) {
$min = $_GET['cari'];
if ($min == '') {
$data = mysqli_query($connet, "SELECT *
FROM gaji_karyawan_tetap");
} else {
$data = mysqli_query($connet, "SELECT *
FROM gaji_karyawan_tetap where no_slipT='$min'");
}
}

?>

<hr class="garis fw-bold">


<div class="tab">
<table class="table mt-3">
<thead>
<tr>
<th scope="col">NO</th>
<th scope="col">No slip</th>
<th scope="col">Gaji</th>
<th scope="col">Uang makan</th>
<th scope="col">Tunjangan</th>
<th scope="col">Upah lembur</th>
75

<th scope="col">Potongan</th>
<th scope="col">Info pajak</th>
<th scope="col">Kedisiplinan</th>
<th scope="col">Kerapian</th>
<th scope="col">Toleransi</th>
<th scope="col">Attitude</th>
<th scope="col">Total gaji</th>
<th scope="col">Cetak Slip</th>
</tr>
</thead>
<tbody>
<?php
while ($ulang =
mysqli_fetch_array($data)) {
?>
<tr>
<td><?= $no++; ?></td>
<td><?= $ulang['no_slipT'];
?></td>
<td><?= $ulang['gaji'];
?></td>
<td><?= $ulang['uang_makan'];
?></td>
<td><?= $ulang['tunjangan'];
?></td>
<td><?= $ulang['upah_lembur'];
?></td>
<td><?= $ulang['potongan'];
?></td>
<td><?= $ulang['pajak'];
?></td>
<td><?= $ulang['kedisiplinan'];
?></td>
<td><?= $ulang['kerapian'];
?></td>
<td><?= $ulang['toleransi'];
?></td>
76

<td><?= $ulang['attitude'];
?></td>
<td><?= $ulang['total_gaji'];
?></td>
<td> <a class="btn btn-
primary" href="../admin/data/aksi/pdfT.php?no_slip=<?php

echo
$ulang['no_slipT'] ?>">Cetak Slip</a></td>
</tr>
</div>

</div>
<?php
}
?>
</tbody>
</table>
</div>
</div>

4. Tampilan karyawan
a. Kode program info

<div class="col">
<div class="mas-md-5 mt-2">
<div class="col-md-5">
<H4 class="tab fs-2 fw-bold ">ABSEN</H4>
</div>
<hr class="garis fw-bold">
<a type="text" class="btn btn-primary "
style="width: 280px; height:60px;">
<h4 style="position:absolute ; left:260px;
top:160px;">Jam masuk =<?= $ulang1['jam_masuk']; ?></h4>
</a>
77

<a type="text" class="btn btn-primary "


style="width: 280px; height:60px;">
<h4 style="position:absolute ; left:540px;
top:160px;">Jam keluar =<?= $ulang1['jam_keluar']; ?></h4>
</a>
<a type="text" class="btn btn-primary "
style="width: 300px; height:60px;">
<h4 style="position:absolute ; left:820px;
top:160px;">Status akun =<?= $ulang1['akun']; ?></h4>
</a>
<hr class="garis fw-bold">
<div class="tab">
<table class="table mt-3">
<thead>
<tr>
<th scope="col">NO</th>
<th scope="col">NIP</th>
<th scope="col">tanggal masuk</th>
<th scope="col">jam masuk</th>
<th scope="col">jam keluar</th>
<th scope="col">jam lembur</th>
<th scope="col">izin</th>
<th scope="col">Status absen</th>
</tr>
</thead>
<tbody>
<?php
while ($ulang =
mysqli_fetch_array($data)) {
?>
<tr>
<td><?= $no++; ?></td>
<td><?= $ulang['NIP'];
?></td>
<td><?=
$ulang['tanggal_masuk']; ?></td>
78

<td><?= $ulang['jam_masuk'];
?></td>
<td><?= $ulang['jam_keluar'];
?></td>
<td><?= $ulang['jam_lembur'];
?></td>
<td><?= $ulang['izin'];
?></td>
<td><?= $ulang['status_absen'];
?></td>
</tr>

</div>
<?php
}
?>
</tbody>
</table>
</div>
</div>

b. Kode program Qrcode

<?php
$NIP = $_GET["NIP"];
include('../koneksi/conet.php');
$data = mysqli_query($connet, "SELECT * FROM
gaji_karyawan_tetap where no_slipT='$NIP'");
$data1 = mysqli_query($connet, "SELECT * FROM karyawan where
NIP='$NIP'");
$ulang1 = mysqli_fetch_array($data1);
$no = 1;
?>
<div class="row">
<div class="col-md-2 bg-light">
<div class="list-group">
79

<button type="button" class="list-group-item


list-group-item-action active" aria-current="true">
PILIHAN
</button>
<a type="button" class="list-group-item list-
group-item-action" href="karyawan.php">Info absen</a>
<a type="button" class="list-group-item list-
group-item-action" href="cek.php">Info gaji</a>
<button type="submit" class="list-group-item
list-group-item-action" data-bs-target="#absen" data-bs-
toggle="modal">QRcode</button>
<button type="submit" class="list-group-item
list-group-item-action" data-bs-target="#beli" data-bs-
toggle="modal">Profil</button>
</div>
</div>

<div class="modal fade" id="absen" tabindex="-1" aria-


labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog ">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">QRcode</h5>
<button type="button" class="btn-close"
data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="">
<div class="col ">
<img class=" "
src="../admin/Qrcode/kode<?php

echo $NIP; ?>.png" alt="" width="450px">


</div>
</div>
</div>
80

</div>
</div>
</div>

5.2 Pembahasan
5.2.1 Pembahasan basis data
Pada tahapan pebahasan basis data query pembuatan tabel di uraikan dan
dibahasa berdasarkan kegunaan dari setiap tabel yang telah dibuat. Dalam
pembuatan basis data terdapat 7 tabel yang digunakan untuk menjalankan sistem
diantaranya adalah tabel absen, tabel gaji harian, tabel gaji karyawan magang, tabel
gaji karyawan tetap, tabel jam masuk, tabel karyawan, dan tabel set gaji untuk lebih
jelasnya dapat dilihat pada pembahasan berikut.
1. Tabel absen
Tabel absen digunakan untuk menyimpan data absen karyawan setiap harinya,
tabel absen mencatat tanggal dan waktu absen setiap karyawan yang masuk dan
keluar kerja, untuk lebih detailnya dapat dilihat pada gambar 5.10.

Gambar 5. 10 Tabel absen

Gambar 5. 11 Tabel absen (lanjutan)


81

2. Tabel gaji harian


Tabel gaji harian digunakan untuk mencatat gaji bonus karyawan berdasarkan
performa kerja pada karyawan setiap harinya, untuk lebih detailnya dapat dilihat
pada gambar 5.11.

Gambar 5. 12 Tabel gaji harian

Gambar 5. 13 Tabel gaji harian (lanjutan)

3. Tabel gaji karyawan magang


Tabel gaji karyawan magang digunakan untuk meniympan data perhitungan gaji
pada setiap karyawan magang yang telah tercatat pada tabel karyawan, untuk
detail data tabel gaji karyawan magang dapat dilihat pada gambar 5.12.
82

Gambar 5. 14 Tabel gaji karyawan magang

Gambar 5. 15 Tabel gaji karyawan magang (lanjutan)

4. Tabel gaji karyawan tetap


Tabel gaji karyawan tetap digunakan untuk menyimpan data perhitungan gaji
pada setiap karyawan tetap yang telah tercatat pada tabel karyawan, untuk detail
data tabel gaji karyawan magang dapat dilihat pada gambar 5.13.

Gambar 5. 16 Tabel gaji karyawan tetap

Gambar 5. 17 Tabel gaji karyawan tetap (lanjutan)


83

5. Tabel jam masuk


Tabel jam masuk digunakan untuk menentukan waktu jam masuk dan keluar
kerja, untuk detail tabel jam masuk dapat dilihat pada gambar 5.14.

Gambar 5. 18 Tabel jam masuk

6. Tabel karyawan
Tabel karyawan digunakan untuk menyimpan data karyawan, untuk detail tabel
karyawan dapat dilihat pada gambar 5.15.

Gambar 5. 19 Tabel karyawan

Gambar 5. 20 Tabel karyawan (lanjutan)


7. Tabel set gaji
Tabel set gaji digunakan untuk mengatur gaji bonus yang akan diterima oleh
karyawan berdasarkan kriteria yang telah di tentukan, untuk detail tabel set gaji
dapat dilihat pada gambar 5.16.
84

Gambar 5. 21 Tabel set gaji

Gambar 5. 22 Tabel set gaji (lanjutan)

5.2.2 Pembahasan sistem


Sitem penggajian yang dibuat pada penelitian ini digunakan untuk
memepermudah penggajian, sistem yang dibuat mempunyai 4 (empat) hak akses
yaitu karyawan, admin, operator, dan direktur. Detail pengaplikasian sistem
penggajian dapat dilihat sebagai berikut:
1. Admin memasukan data pegawai dengan data lengkap beserta gaji yang telah
ditentukan untuk perbulannya, setelah itu admin menentukan jam kerja dan
tanggal mulai kerja beserta tanggal penggajian, admin juga memasukan gaji
bonus yang nantinya digunakan untuk memberikan gaji bonus harian seperti
upeh lembur, kerapian, dan sebagainya.
2. Operator mengaktifkan scan Qrcode untuk karyawan melakukan absen, data
karyawan yang telah absen dapat dinilai kinerjanya berdasarkan performa kerja
dari tiap-tiap karyawan oleh operetor.
3. Pada akun karyawan terdapat kode Qr yang berguna untuk melakukan absen
pada scanner yang telah diaktifkan oleh operator.
4. Karyawan yang akunnya dinonaktifkan tidak dapat melakukan absen pada
scanner sehingga jika ingin mengaktifkannya harus menghubungi admin.
5. Untuk melakukan lembur karyawan harus melapor ke operator agar dicatat jam
lemburnya.
6. Perhitungan gaji pokok dilakukan dengan membagi gaji pokok dengan jumlah
hari yang telah di setting oleh admin pada settingan tanggal mulai kerja sampai
tanggal penggajian.
85

7. Perhitungan gaji lembur dihitung dengan mengkalikan jumlah jam lembur yang
dilakukan oleh karyawan dengan gaji lembur yang telah di setting admin.
8. Untuk perhitungan gaji bonus dilakukan dengan mengkalikan data gaji binus
dengan jumlah poin yang telah diterima karyawan dari tanggal mulai kerja
hingga tanggal penggajian.

Berikut adalah tampilan-tampilan dalam sistem informasi penggajian beserta


kegunaannya.
1. Halaman data karyawan
Pada halaman pegawai terdapat data pegawai yang dapat dilihat pada
gambar 5.17 halaman ini berfungsi untuk melihat data pegawai yang telah
terdaftar pada aplikasi.

Gambar 5. 23 Halaman data karyawan

Pada halamn data karyawan terdapat halaman input data yang digunakan untuk
memasukan data karyawan yang belum terdaftar pada aplikasi. Untuk lebih jelasnya
dapat dilihat pada gambar 5.18.
86

Gambar 5. 24 Halaman masukan data karyawan

pada halamn data karyawan juga terdapat halaman untuk mengedit data karyawan
yang sudah terdaftar pada aplikasi. Halaman untuk mengedit data karyawan dapat
dilihat pada gambar 5.19.
87

Gambar 5. 25 Halaman edit data karyawan

2. Halaman setting gaji harian


Pada halaman setting penggajian terdapat data gaji bonus karyawan yang
kemudian akan dikalikan dengan hasil point bonus yang didapat oleh
karyawan, halaman setting gaji harian dapat dilihap dapa gambar 5.20.

Gambar 5. 26 Halaman setting gaji harian


88

Pada halaman setting data gaji harian terdapat halaman masukan data dan ubah
data untuk memasukan data maupun mengeditnya halaman masukan data dan ubah
data dapat dilihat pada gambar 5.21 dan gambar 5.22.

Gambar 5. 27 Halaman masukan data


89

Gambar 5. 28 Halaman edit data

3. Halaman setting jam masuk


Halaman setting jam masuk digunakan untuk menyetting jam masuk kerja pada
karyawan sehingga karyawan hanya akan bisa absen berdasarkan waktu yang
telah di tentukan. Halaman setting jam masuk dapat dilihat pada gambar 5.23.

Gambar 5. 29 Halaman setting jam masuk


90

Halaman setting jam masuk memiliki halaman unput data dan ubah data yang
digunakan untuk memasukan settingan jam masuk baru ataupun mengubah data
yang telah ada. Halaman input data dan ubah data dapat dilihat pada gambar 5.24
dan gambar 5.25.

Gambar 5. 30 Halaman masukan data

Gambar 5. 31 Halaman ubah data


91

4. Halaman absen
Pada halaman absen berisikan data karyawan yang telah malukan absen pada
aplikasi melalui scan qrcode, halaman absen dapat dilihat pada gambar 2.26.

Gambar 5. 32 Halaman absen

Pada halaman absen juga terdapat halaman masukan data untuk memasukan data
absen secata manual dan halaman ubah data untuk mengubah data absen karyawan.
Halaman masukan data dan ubah data dapat dilihat pada gambar 5.27 dan gambar
5.28.

Gambar 5. 33 Halaman masukan data


92

Gambar 5. 34 Halaman ubah data


5. Halaman gaji harian
Halaman gaji harian terdapat tampilan data point yang didapat oleh karyawan
setiap harinya, halaman gaji harian dapat dilihat pada gamabr 5.29.

Gambar 5. 35 Halaman gaji bonus


93

Pada halaman gaji harian juga terdapat halaman untuk memasukan data bonus gaji
secara manual dan halaman ubah data untuk mengubah data bonus yang didapat.
Halaman masukan data dan ubah data dapat dilihat pada gambar 5.30 dan gambar
5.31.

Gambar 5. 36 Halaman masukan data

Gambar 5. 37 Halaman ubah data


94

6. Halaman akun karyawan


Halaman akun karyawan terdapat tampilan data akun karyawan yang sudah
terdaftar pada aplikasi, akun karyawan berisikan data user karyawan dan harus
di aktifkan oleh admin agar bisa melakukan absensi pada aplikasi. Halaman
akun karyawan dapat dilihat pada gambar 5.32.

Gambar 5. 38 Halaman akun karyawan

Pada halaman akun pegawai terdapat halaman ubah data untuk menubah data
karyawan agar aktif maupun tidak aktif dan juga bisa mengubah data username
maupun passeord beserta sif dan id jamnya. Halaman ubah data akun karyawan
dapat dilihat pada gambar 5.33.

Gambar 5. 39 Halaman ubah data


95

7. Halaman gaji karyawan


Halaman gaji karyawan terdapat data hasil penjumlahan gaji karyawan
berdasarkan jumlah hari kerja, jam lembur kerja, dan bonus gaji yang diperoleh
oleh karyawan, cara menjulmahkan gaji karyawan adalah dengan menekan
tombol jalankan penggajian makan semua gaji yang diperoleh karyawan akan
dijumlahkan dalam tabel tersebut. Halaman gaji karyawan dapat dilihat pada
gambar 5.34.

Gambar 5. 40 Halaman gaji karyawan tetap

Pada halaman gaji karyawan terdapat halaman masukan data untuk menginputkan
data baru pada tabel penggajian dan halaman ubah untuk merubah data pada tabel
gaji karyawan. Halaman masukan data dana ubah data dapat dilihat pada gambar
5.35 dan gambar 5.36.
96

Gambar 5. 41 Halaman masukan data

Gambar 5. 42 Halaman ubah data

Pada halaman penggajian juga terdapat halaman untuk mencetak hasil dari
penggajian karyawan halaman tersebut berisikan dentitas karyawan beserta detail
data penggajian dari setiap karyawan. Halaman cetak data penggajian dapat dilihat
pada gambar 5.37.
97

Gambar 5. 43 Halaman cetak

8. Halaman karyawan
Pada halaman info absen karyawan terdapat dapat tabel info absen yang
berisikan data absen karyawan tersebut dengan jadwal jam masuk dan keluar
kerja. Halaman info absen karyawan dapat dilihat pada gambar 5.38.

Gambar 5. 44 Halaman karyawan

Halaman info gaji terdapat info detail gaji yang diteriman karyawan, pada halaman
ini juga terdapat halaman cetak slip gaji yang bisa digunakan untuk mencetak slip
gaji untuk mengetehui detail gaji yang diterima. Halaman detail info detail gaiji dan
cetak slip dapat dilihat pada gamba 5.39 dan gambar 5.40.
98

Gambar 5. 45 Halaman info gaji

Gambar 5. 46 Halaman cetak

Halaman profil digunakan untuk mengetahui akun karyawan dan juga bisa untuk
mengubah username dan password karyawan. Halaman profil dapat dilihat pada
gambar 5.41.
99

Gambar 5. 47 Halaman ubah data

9. Halaman Operator
Halaman operator terdapat info absen pegawai yang digunakan untuk
memantau karyawn apakah mereka sudah melakukan absen pada aplikasi.
Halaman info karyawan dapat dilihat pada gambar 5.42.

Gambar 5. 48 Halaman absen pegawai

pada halaman tabel karyawan terdapat button untuk pindah pada halaman ubah
lembur dan izin yang digunakan untuk engubah data lembur dan izin karyawan.
Halaman ubah lembur dan izin dapat dilihat pada gambar 5.43.
100

Gambar 5. 49 Halaman ubah data

Halaman scan qrcode adalah halaman yang terhubung dengan kamera yang
digunakan untuk mescan kode QR agar karyawan dapat melakukan absen pada
aplikasi. Halaman scan qrcode dapat dilihat pada gambar 5.44.

Gambar 5. 50 Halaman Scan Qrcode


101

Halaman nilai sikap digunakan untuk memberikan nilai sikap pada karyawan yang
nantinya akan dikalikan dengan gaji bonus sesuai kreteria penggajian. Halaman
nilai sikap dapat dilihat pada gambar 5.45.

Gambar 5. 51 Halaman Nilai sikap

Halaman ubah nilai sikap adalah halaman yang digunakan untuk mengisi nilai sikap
pada setiap karyawan yang terdaftar dan absen pada aplikasi. Halaman nilai sikap
dapat dilihat pada gambar 5.46.

Gambar 5. 52 Halaman ubah data


102

10. Halaman direktur


Halaman data karyawan berisikan data karyawan yang sudah terdaftar pada
aplikasi. Halaman data karyawan dapat dilihat pada gambar 5.47.

Gambar 5. 53 Halaman data karyawan

Halaman cetak berisikan detail data karyawan yang telah terdaftar pada aplikasi dan
siap di cetak ataupun di download. Halaman cetak bisa dilihat pada gambar 5.48.

Gambar 5. 54 Halaman cetak


103

Halaman gaji karyawan pada direktur berisikan data yang sama dengan halaman
gaji karyawan yang sebelumnya. Halaman gaji karyawn dapat dilihat pada gambar
5.49.

Gambar 5. 55 Halaman gaji karyawan tetap

Halaman cetak slip pada direktur juga sama pada cetak slip gaji sebelumnya yaitu
berisikan detail gaji dan performa kera karyawan. Halaman cetak slip dapat dilihat
pada gambar 5.50.

Gambar 5. 56 Halaman cetak


104

5.2.3 Pengujian
Pada penelitian ini pengujian aplikasi menggunakan metode black box yaitu
dengan mengecek setiap fungsi pada aplikasi apakah berfungsi sesuai dengan yang
semestinya. untuk lebih detailnya dapat dilihat pada pengujian berikut ini:
1. Halaman admin
pada halaman admin dilakukan berbagai pengujian untuk mengetes apakah
fungsi dari setiap fitur sudah sesuai dengan apa yang dinginkan. Dari berbagai
pengujian hasil yang diperoleh adalah sebagai berikut:

Tabel 5. 1 Pengujian
Hasil yang Hasil
NO Sekenario Tes Case Kesimpulan
diharapkan pengujian
Data dapat
dimasukan,
NIP tertriger
Tombol
pada tabel
tambah Sesuai
Memasukan gaji
data pada dengan apa
1 data pada data karyawan, Valid
halaman yang di
karyawan dan data
data inginkan
karyawan
karyawan
otomatis akan
dibuatkan
kode Qr nya
Tombol
Sesuia
Mengedit data edit pada
Data dapat di dengan apa
2 yang sudah halaman Valid
edit yang di
ada data
inginkan
karyawan
105

Tabel 5. 2 Pengujian (lanjutan)


Membuat Tombol
Sesuia
akun pegawai edit pada
Data dapat di dengan apa
3 berdasarkan halaman Valid
edit yang
data pegawai akun
diinginkan
yang ada pegawai
Tombol
Dapat masukan Data dapat di Sesuai
memasukan data pada masukan dengan apa
4 Valid
sif dan jam halaman kedalam yang
masuk kerja set jam database diinginkan
masuk
Tombol Sesuai
Data absen Data dapat
edit pada dengan apa
5 dapat dimanipulai Valid
halaman yang
dimanipulasi atau di edit
absen diinginkan
Tombol Sesuai
Dapat meng
Data akun edit pada dengan apa
6 edit data akun Valid
dapat di edit halaman yang
karyawan
akun diinginkan
Gaji bonus Tombol Sesuai
data gaji
pada edit pada dengan apa
7 bonus dapat Valid
karyawan halaman yang
di edit
dapat di edit gaji harian diinginkan
106

Tabel 5. 3 Pengujian (lanjutan)


Tanggal mulai
Tombol
dan akhir Data tanggal
masukan
gajian dapat di dan gaji Sesuai
data dan
buat dan di bonus dapat dengan apa
8 edit pada Valid
edit dan dimasukan yang
halaman
jumlah gaji serta data diinginkan
set gaji
bonus dapat di dapat di edit
harian
temtukan
Gaji dihitung
dari jumlah
gaji pokok di
bagi dengan
jumlah hari
yang di Data yang
halaman set diperoleh dari
gaji harian Tombol perkalian
setelah itu data penggajian aplikasi Sesuai
di hasil dari pada sesuai dengan dengan apa
9 Valid
pembagian di halaman perkalian yang
kalikan gaji yang telah diinginkan
dengan jumlah karyawan dilakukan
masuk kerja dengan
dan hasil itu manual
akan di
jumlahkan
dengan hasil
perkalian gaji
bonus
107

Tabel 5. 4 Pengujian (lanjutan)


Data
Data dari hasil Tombil Sesuai
penggajian
perhitungan cetak pada dengan apa
10 dapat dicetak Valid
penggajian halaman yang
maupun di
dapat dicetak penggajian diiinginkan
download

2. Halaman operator
Pada halaman operator dilakukan serangkaian tes untuk menguji fungsi fitur
dan sistem yang ada pada halaman operator. Hari serangkaian tes yang telah
dilakukan didapat hasil sebagai berikut:

Tabel 5. 5 Pengujian
Hasil yang Hasil Kesimpulan
NO Sekenario Tes case
diharapkan pengujian
Kamera dapat
mendeteksi kode
Qr dan
melakukan
absen
berdasarkan data
jam masuk yang
telah disetting
Scan kamera di pada halaman
hadapkan set jam masuk Hasil dari
dengan kode qr Scan kamera dengan data pengujian
apakah kamera pada karyawan yang sesuai Valid
1
scanner dapat halaman melakukan scan dengan apa
mendeteksi kode scan qrcode serta yang
qr tersebut atau memberikan diharapkan
tidak nilai telat atau
tepat waktu juga
memberikan
data triger absen
pada gaji harian
dan jika telat
tidak akan
mendapat uang
makan
108

Tabel 5. 6 Pengujian (lanjutan)

Button Edit Data dapat di


Sesuai
data gaji edit untuk
Mengedit data dengan apa Valid
2 harian pada memberikan
gaji harian yan\g di
halaman gaji point bonus
inginkan
harian pada karyawan

Dapat
Button Edit memasukan data Sesuai
Menisi data
pada lembur dengan apa Valid
3 lembur
halaman karyawan yang
karyawan
data absen kedalam diinginkan
database

Button cetak Dapat mencetak Sesuia


Dapat mencetak
pada data dari hasil dengan apa Valid
4 data hasil
halaman info penggajian yang yang
penggajian
gaji telah di lakukan dinginkan

3. Halaman karyawan
Pada halaman karyawan dilakukan werangkainan pengujian untuk mengetes
apakah fungsi dari fitur seperti apa yang diinginkan. Dari hasil pengujian
didapat hasil sebagai berikut:

Tabel 5. 7 Pengujian
Hasil yang Hasil Kesimpulan
NO Sekenario Tes case
diharapkan pengujian
Button ubah Sesuai
Mengubah Data username
pada dengan apa Valid
1 username atau atau password
halaman yang
password dapat di ubah
profil diinginkan

Button cetak Data Slip gaji Sesuai


Mencetak data
pada dapat di cetak dengan apa Valid
2 slip gaji hasil
halaman info maupun di yang
penggajian
gaji download diharapkan
109

4. Halaman direktur
Dari hasil rangkaian pengujian yang dilakukan terhadap fitur yang ada pada
halaman direktur didapat hasil sebagai berikut:

Tabel 5. 8 Pengujian
Hasil yang Hasil Kesimpulan
NO Sekenario Tes case
diharapkan pengujian
Button cetak Sesuia
Mencetak atau Data dapat di
pada dengan apa Valid
1 di mendownload cetak ataupun di
halaman yang
data karyawan download
karyawan diinginkan

Mencetak atau Button cetak Sesuia


Data dapat di
di mendownload pada dengan apa Valid
2 cetak ataupun di
data gaji halaman gaji yang
download
karyawan karyawan diinginkan

5.3 Inovasi sistem


Inovasi sistem yang didapat dari pembuatan sistem penggajian kedai
KopiDan berbasis web ini adalah sebagai berikut:
1. Penggajian yang dilakukan semulanya masih mneggunakan microsoft excel
sehingga pengetikan yang dilakukan cukup lama sehingga adanya kesalahan
dalam peerhitungan, dengan aplikasi ini perhitungan bisa dapat dipermudah
dalam pencatatannya,
2. Karyawan tidak harus menunggu slip gaji dari perusahaan, karyawan tinggal
menyerahkan slip gaji yang telah dicetak sendiri atau juga bisa memintanya
pada perusahaan untuk di acc agar bisa mendapatkan gaji.
3. Karyawan dapat melihat jadwal masuk kerja mereka sendiri juga dapat melihat
data absen mereka sendiri.
4. Direktur bisa mencetak data gaji maupun gaji karyawan sendiri melalui
aplikasi.
BAB VI
PENUTUP

6.1 Simpulan
Dari hasil laporan penelitian kerja praktik ini dapat diambil beberapa kesimpulan
diantaranya adalah sebagai berikut:
1. Analisis yang dibuat dengan menggunakan data yang diperoleh pada instansi
kedai KopiDan. Cara memperoleh data adalah dengan wawancara dan
observasi yang telah dilakukan pada instansi kedai Kopidan.
2. Perancangan sistem dilakukan seteah melakukan pengumpulan data yang
diperlukan. Perancangan ini terdiri dari perancangan logis dan perancangan
fisik. Perancangan logis terdiri dari perancangan Entity Relationship Diagram
(ERD), dan perancangan Data Flow Diagram (DFD) dari sistem yang dibuat.
Perancangan fisik terdiri dari darabase, struktur tabel yang digunakan, dan
desain tampilan web sistem penggajian.
3. Perancangan ini dapat membantu proses penggajian dengan cara
mempersingkatnya dengan manggunakan sistem yang telah dirancang
berdasarkan sistem penggajian yang ada dalam instansi.
4. Dari hasil perancangan yang telah dibuat diimplementasikan dalam sebuah
program sistem penggajian berbasis web yang kemudian akan mempermudah
dalam menjalankan penggajian pada instansi.

6.2 Saran
Setelah melakukan penelitian, maka dalam laporan ini penulis menyantumkan
saran yang mungkin dapat digunakan dalam pengembangan sisrem kedepannya.
Saran-saran tersebut antara lain:
1. Belum ada fitur untuk menambahkan aktifitas pada gaji bonus.
2. Penyimpanan kode qr yang berupa jpg masih berada di folder program.
3. Sistem ini diharapkan dapat dikembangkan agar program yang dibuat dapat
lebih menunjang tidak hanya di instansi KopiDan saja

110
DAFTAR PUSTAKA

Afiifah, K., Azzahra, Z. F., & Anggoro, A. D. (2022). Analisis Teknik Entity-
Relationship Diagram dalam Perancangan Database: Sebuah Literature
Review. INFORMATIKA DAN TEKNOLOGI (INTECH).

Andriani, A. D., Mulyana, A., Widarnandana, I. D., Armunanto, A., Sumiati, I.,
Susanti, L., . . . Dewi, I. C. (2022). Manajemen Sumber daya Manusia.
Makasar: CV.Tohar Media.

Anshori, I. F., & Mulyawan, A. (2021). ERANCANGAN SISTEM INFORMASI


PENGGAJIAN BERBASIS WEB. Jurnal Computech & Bisnis.

Bachrun, S. (2019). PENGGAJIAN TERINTEGRASI. Jakarta: PT. Gramedia


Pustaka Utama.

Budi, H. S. (2021). PENGENALAN DASAR SQL. Yogyakarta: CV. BUDI


UTAMA.

Fitri, R. (2020). Pemrograman Basis data Menggunakan MySQL. Banjarmasin:


Poliban press.

Gustiawan, A., & Tristianto, C. (2022). PERANCANGAN SISTEM INFORMASI


PENGGAJIAN KARYAWAN BERBASIS WEB MENGGUNAKAN
METODE EXTREME PROGRAMMING PADA PT. PRADANA
ENERGI GEMILANG. Jurnal Ilmu Komputer.

Hadianto, R. T., Zulhalim, & Septiarini, A. (2022). Perancangan aplikasi


penggajian berbasis java se 16 pada PT Dhera perkasa abadi. Jurnal
Sainsdan Teknologi Widyaloka.

Hadiprakoso, R. B. (2021). SISTEM BASIS DATA. RBH.

111
112

Hamizan, A., Mayasari, Saputri, R., & Pohan, R. N. (2020). Sistem Informasi
Penggajian di PT. Perkebunan Nusantara IV. Jurnal Manajemen
Informatika.

Huda, M. (2010). Membuat Aplikasi Database Dengan Java, MySQL, dan


NetBeans. Jakarta: PT. Gramedia.

Mania, M., Purnama, B. E., & Sukadi. (2016). Sistem Informasi Penggajian
Karyawan Mitra Karya Prima Di Pembangkit Listrik Tenaga Uap 1 Pacitan.
Indonesian Journal on Software Engineering.

Nilasari, S. (2016). PANDUAN PRAKTIS MENYUSUN SISTEM PENGGAJIAN &


BENEFIT. Jakarta: Raih Asa Sukses.

Permana, P. I., & Purnomo, A. N. (2013). PEMROGRAMAN WEB DAN


PERANGAT BERGERAK. Gramedia Widiasarana Indonesia.

Romindo, Niar, H., Sipayung, R., Yendrianof, J. D., Faisal, M. A., Febrianty, . . .
Purba, B. (2020). Sistem Informasi Bisnis. Yayasan Kita Menulis.

S. Rucky, A. (2006). Manajemen Penggajian & Pengupahan Untuk Karyawan


Perusahaan. Jakarta: PT. Gramedia Pustaka Utama.

Sari , A. O., Abdilah , A., & Sunarti . (2019). WEB PROGRAMMING. Yogyakarta:
GRAHA ILMU.

Sari, I. P. (2021). Buku Ajar Rekayasa Perangkat Lunak. UMSUPRESS.

Setiyowati, & Siswanti, S. (2021). PERANCANGAN BASIS DATA &


PENGENALAN SQL SERVER MANAGEMENT STUDIO. Semarang:
Lembaga Penelitian dan Pengabdian Kepada Masyarakat Universitas Dian
Nuswantoro.

Setyoningrum, N. R., & Arihardjo, D. S. (2021). ANALISIS DAN


PERANCANGAN SISTEM INFORMASI PENGGAJIAN KARYAWAN
113

BERBASIS WEB PADA PT. BATAM BINTAN TELEKOMUNIKASI


LAGOI. Jurnal Informatika Teknologi dan Sains.

Soyusiawaty, D., Winiarti, S., Rosyda, M., & Fahana, J. (2020). BUKU AJAR
MATA KULIAH BASIS DATA. Yogyakarta: Program Studi Teknik
Informatika Fakultas Teknologi Industri Universitas Ahmad Dahlan.

Sriadhi, T. L. (2021). PEMROGRAMAN WEB DASAR. Yayasan Kita Menulis.


LAMPIRAN

Admin
a. Penggajian
<?php
include('../../../koneksi/conet.php');

// cari tanggal cutof


$query1 = mysqli_query($connet, "select * from set_gaji");
$row1 = mysqli_fetch_array($query1);
$hari = $row1['set_hari'];
$Umakan = $row1['uang_makan'];
$tanggalM = $row1['tanggal_mulai'];
$tanggalS = $row1['tanggal_akhir'];
$uanglembur = $row1['uang_lembur'];

$data = [];
$gaji = '';
$query = mysqli_query($connet, "SELECT * FROM karyawan INNER
JOIN set_gaji
ON karyawan.`kode_gaji` = set_gaji.`kode_gaji` where
status='pegawai magang'");
while ($row = mysqli_fetch_array($query)) {

$query5 = mysqli_query($connet, "Select * FROM gaji_harian


where id_gaji='" . $row['NIP'] . "'");
$d = mysqli_fetch_array($query5);
$hari1 = $d['id_gaji'];
//===========================================
$query10 = mysqli_query($connet, "Select * FROM gaji_harian
where id_gaji='" . $row['NIP'] . "' and kedisiplinan='1'");
$disiplin = mysqli_num_rows($query10);

$query7 = mysqli_query($connet, "Select * FROM gaji_harian


where id_gaji='" . $row['NIP'] . "' and kerapian='1'");
$rapi = mysqli_num_rows($query7);

114
115

$query8 = mysqli_query($connet, "Select * FROM gaji_harian


where id_gaji='" . $row['NIP'] . "' and toleransi='1'");
$toleransi = mysqli_num_rows($query8);

$query9 = mysqli_query($connet, "Select * FROM gaji_harian


where id_gaji='" . $row['NIP'] . "' and attitude='1'");
$attitude = mysqli_num_rows($query9);

//=================================================

$dis = $row['uang_kedisiplinan'];
$ra = $row['uang_kerapian'];
$to = $row['uang_toleransi'];
$at = $row['uang_attitude'];

$totdis = $dis * $disiplin;


$totra = $ra * $rapi;
$tottol = $to * $toleransi;
$totat = $at * $attitude;

mysqli_query($connet, "UPDATE gaji_karyawan_magang set


kedisiplinan='$totdis', kerapian='$totra',
toleransi='$tottol', attitude='$totat' where
no_slipM='$hari1'");

//=======================================================
=======================
$query2 = mysqli_query($connet, "select * from absen where
tanggal_masuk between '$tanggalM' and '$tanggalS' and NIP=
'$hari1'");
$row2 = mysqli_num_rows($query2);

$query3 = mysqli_query($connet, "select * from absen where


tanggal_lembur between '$tanggalM' and '$tanggalS'
and NIP= '$hari1'");
while ($row3 = mysqli_fetch_array($query3)) {
$keluar = strtotime($row3['jam_keluar']);
116

$lembur = strtotime($row3['jam_lembur']);
$ubah = ($lembur - $keluar) / 3600;
$totallembur = (int)$ubah;
$semua += $totallembur;
}

$query4 = mysqli_query($connet, "SELECT * FROM


gaji_karyawan_magang where no_slipM='$hari1'");
$row4 = mysqli_fetch_array($query4);
$a = $row4['tunjangan'];
$b = $row4['potongan'];
$c = $row4['pajak'];
$e = $row4['kedisiplinan'];
$f = $row4['kerapian'];
$g = $row4['toleransi'];
$h = $row4['attitude'];

$query6 = mysqli_query($connet, "select * from absen where


tanggal_masuk between '$tanggalM' and '$tanggalS' and NIP=
'$hari1' and status_absen='tepat waktu'");
$row5 = mysqli_num_rows($query6);

$gaji = $row['gaji_pokok'];
$hasil = (int)($gaji / $hari * $row2);
$hasil2 = (int)($uanglembur * $semua);

$hasil1 = $Umakan * $row5;

$total = $hasil + $hasil1 + $a + $hasil2 + $e + $f + $g +


$h - $b - $c;

// echo "id gaji magang = ";


// echo $hasil2;

// echo ' uang makan= ';


// echo $hasil1;
117

// echo ' gaji =';


// echo $hasil;
// echo ' lembur = ';
echo $row3['jam_keluar'];

mysqli_query($connet, "UPDATE gaji_karyawan_magang SET


gaji='$hasil',uang_makan='$hasil1',upah_lembur='$hasil2',
total_gaji='$total' where no_slipM='$hari1'");

// array_push($data, [
// 'nip' => $row['NIP'],
// 'jumlah_absen' => $row2,
// 'gaji' => (int)($row['gaji_pokok'] / 30 * $row2)
// ]);
}

header("location: ../gajikaryawanM.php");

// var_dump($data);

b. Cetak slip
<!DOCTYPE html>
<html lang="en">

<head>

<script type="text/javascript"
src="https://rawgit.com/schmich/instascan-
builds/master/instascan.min.js"></script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min
.js"></script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/webrtc-
adapter/3.3.3/adapter.min.js"></script>

<meta charset="UTF-8">
118

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


<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Document</title>
</head>

<body>

<?php
include('../../../koneksi/conet.php');

$kode = $_GET["no_slip"];
// var_dump($kode);
$data = mysqli_query($connet, "SELECT * FROM
gaji_karyawan_tetap WHERE no_slipT='$kode'");
$datakar = mysqli_query($connet, "SELECT * FROM karyawan
WHERE NIP='$kode'");

$set = mysqli_query($connet, "SELECT * FROM karyawan INNER


JOIN set_gaji ON karyawan.`kode_gaji`= set_gaji.`kode_gaji`
WHERE NIP='$kode' ");
$cek = mysqli_fetch_array($set);
$hari = $cek['set_hari'];

$persen = mysqli_query($connet, "SELECT * from gaji_harian


where id_gaji='$kode' and kedisiplinan='1'");
$cek1 = mysqli_num_rows($persen);

$persen1 = mysqli_query($connet, "SELECT * from gaji_harian


where id_gaji='$kode' and kerapian='1'");
$cek2 = mysqli_num_rows($persen1);

$persen2 = mysqli_query($connet, "SELECT * from gaji_harian


where id_gaji='$kode' and toleransi='1'");
$cek3 = mysqli_num_rows($persen2);
119

$persen3 = mysqli_query($connet, "SELECT * from gaji_harian


where id_gaji='$kode' and attitude='1'");
$cek4 = mysqli_num_rows($persen3);

$disiplin = ($cek1 / $hari) * 100;


$kerapian = ($cek2 / $hari) * 100;
$toleransi = ($cek3 / $hari) * 100;
$attitude = ($cek4 / $hari) * 100;

?>
<div class="col-md-10">
<div class="mas-md-5 mt-2">

<div class="col-md-5">
<center>
<H2 style="margin-top: 50px;">Gaji Karyawan
Tetap <br> tanggal <?= $cek['tanggal_akhir']; ?></H2>
</center>
</div>
<hr class="garis fw-bold">
<div>
<center>
<H3>Kedai KopiDan</H3>
</center>
</div>
<div style="margin-top:10px ;">
<center>
<h4>Jl. HOS Cokroaminoto No.64, Pakuncen,
Wirobrajan,
<br> Kota Yogyakarta, Daerah Istimewa
Yogyakarta 55253
</h4>
</center>

</div>
<br>
<hr class="garis fw-bold">
120

<div class="tab " style="position:absolute; left:


50px;">
<?php
$ulang = mysqli_fetch_array($data);
$ulang1 = mysqli_fetch_array($datakar);
$nama = $ulang1['nama'];
?>

<h4></h4>
<h4> NIP : <?= $ulang1['NIP']; ?></h4>
<h4>Nama : <?= $ulang1['nama']; ?></h4>
<h4>Jabatan : <?= $ulang1['jabatan']; ?></h4>
<h4>Status : <?= $ulang1['status']; ?></h4>
<hr class="garis fw-bold">
<h4>PENGHASILAN </h4>
<h4>gaji pokok : Rp.<?= $ulang['gaji']; ?></h4>
<h4>Uang makan : Rp.<?= $ulang['uang_makan'];
?></h4>
<h4>Tunjangan : Rp.<?= $ulang['tunjangan'];
?></h4>
<h4>Upah lembur : Rp.<?= $ulang['upah_lembur'];
?></h4>
<h4>Potongan : Rp.<?= $ulang['potongan']; ?></h4>
<h4>Pajak : Rp.<?= $ulang['pajak']; ?></h4>
<h4>Kedisiplinan : Rp.<?= $ulang['kedisiplinan'];
?></h4>
<h4>Kerapian : Rp.<?= $ulang['kerapian']; ?></h4>
<h4>Toleransi : Rp.<?= $ulang['toleransi'];
?></h4>
<h4>Attitude : Rp.<?= $ulang['attitude']; ?></h4>
<hr class="garis fw-bold">
<h4>Total gaji : Rp.<?= $ulang['total_gaji'];
?></h4>
</div>
<div class="baru" style="position:absolute; right:
50px;">
<h4>PERSEN DATA AKTIFITAS</h4>
121

<h4>Disiplin : <?= $disiplin ?> %</h4>


<h4>Kerapian : <?= $kerapian ?> %</h4>
<h4>Toleransi : <?= $toleransi ?> %</h4>
<h4>Attitude : <?= $attitude ?> %</h4>
</div>
</div>
</div>

<script>
window.print();
</script>

<?php
// require_once('../../../dompdf/dompdf_config.inc.php');

// $data2 = "pdfM.php";
// $dompdf = new DOMPDF();
// $dompdf->load_html($data2);
// $dompdf->render();
// $dompdf->stream($nama . '.pdf', array("attachment" =>
0));
?>

</body>

</html>

c. Qrcode
<!doctype html>
<html lang="en">

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1">
122

<!-- Bootstrap CSS -->


<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bo
otstrap.min.css" rel="stylesheet" integrity="sha384-
EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLAS
jC" crossorigin="anonymous">
<link rel="stylesheet" href="../../style.css">
<link rel="stylesheet" href="../../koneksi/conet.php">
<title>Qrcode</title>
</head>

<body>
<nav class="navbar navbar-expand-lg navbar-light bg-warning
fixed-top">
<div class="container">
<h3><i class="bi bi-cart-plus text-success m-
3"></i></h3>
<a class="navbar-brand fw-bold" href="#">Admin</a>
<button class="navbar-toggler" type="button" data-
bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse"
id="navbarSupportedContent">
<ul class="navbar-nav ms-auto me-4">
<li class="nav-item">
<a class="nav-link active" aria-
current="page" href="../akun.php">kelola akun</a>
</li>
<li class="nav-item">
<a class="nav-link"
href="../admin.php">kelola data</a>
</li>
<li class="nav-item dropdown">
123

<a class="nav-link dropdown-toggle"


href="#" id="navbarDropdown" role="button" data-bs-
toggle="dropdown" aria-expanded="false">
kontak kami
</a>
<ul class="dropdown-menu" aria-
labelledby="navbarDropdown">
<li><a class="dropdown-item"
href="https://www.instagram.com/cirenglegend1/"><i class="bi
bi-instagram m-2"></i>instagram</a></li>
</ul>
</li>
</ul>

<h4><i class="bi bi-cart4 ms-3 me-2">Cari


data</i></h4>
<form method="GET" action="" class="d-flex">
<input class="form-control me-2" name="cari"
type="search" placeholder="Masukan NIP" aria-label="Search">
<button class="btn btn-outline-success"
type="submit">Search</button>
</form>
<a class="btn btn-outline-success position-
absolute end-0" type="submit" href="../../login.php">Logout</a>
</div>
</div>
</nav>

<div class="row">
<div class="col-md-2 bg-light">
<div class="list-group">
<button type="button" class="list-group-item
list-group-item-action active" aria-current="true">
PILIHAN
</button>
<a type="button" class="list-group-item list-
group-item-action" href="../akun.php">Akun</a>
124

<a href="qrcode.php" type="button" class="list-


group-item list-group-item-action">Buat Qrcode</a>
<a type="button" class="list-group-item list-
group-item-action" href="../set_jam/setjam.php">Set jam
Masuk</a>
</div>
</div>

<?php
include('../../koneksi/conet.php');
$data = mysqli_query($connet, "SELECT * FROM karyawan");
$no = 1;

if (isset($_GET['cari'])) {
$min = $_GET['cari'];
if ($min == '') {
$data = mysqli_query($connet, "SELECT * FROM
karyawan");
} else {
$data = mysqli_query($connet, "SELECT * FROM
karyawan where NIP='$min' or nama like '%$min%'");
}
}
?>
<div class="col-md-10">
<div class="mas-md-5">
<div class="col-md-2">
<H4 class="ju mt-3 text-
center"><strong>Qrcode</strong></H4>
</div>
<hr class="garis fw-bold">
<br>
<hr class="garis fw-bold">
<table class="table">
<thead>
<tr>
<th scope="col">NO</th>
125

<th scope="col">NIP</th>
<th scope="col">Nama</th>
<th scope="col">Alamat</th>
<th scope="col">Jenis kelamin</th>
<th scope="col">Jabatan</th>
<th scope="col">Qrcode</th>
</tr>
</thead>
<tbody>
<?php
while ($ulang = mysqli_fetch_array($data))
{
?>
<tr>
<td><?= $no++; ?></td>
<td><?= $ulang['NIP']; ?></td>
<td><?= $ulang['nama']; ?></td>
<td><?= $ulang['alamat']; ?></td>
<td><?= $ulang['jenis_kelamin'];
?></td>
<td><?= $ulang['jabatan'];
?></td>
<td>
<button href="?NIP=<?php
echo $ulang['NIP'] ?>" type="button" class="btn btn-primary bg-
success ms-3" data-bs-target="#beli<?= $no ?>" data-bs-
toggle="modal">Qrcode</button>
</td>
</tr>

<form action="aksi/editabsen.php"
method="post" target="_blank">
<div class="modal fade"
id="beli<?= $no ?>" tabindex="-1" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog
modal-lg">
126

<div class="modal-
content">
<div class="modal-
header">
<h5 class="modal-
title" id="exampleModalLabel">Qrcode :<?= $ulang['nama'];
?></h5>
<button
type="button" class="btn-close" data-bs-dismiss="modal" aria-
label="Close"></button>
</div>
<div class="modal-
body">
<div class="">
<div class="">
<div
class="">
<?php
$kode
= $ulang['NIP'];
re
quire_once('../../phpqrcode/qrlib.php');
QR
code::png("$kode", "kode" . $kode . ".png", "M", 20, 20);
?>
<img
src="kode<?= $kode ?>.png" alt="" style="position:absoplute;
width:700px;">
</div>
</div>
</div>
</div>
<div class="modal-
footer">
<button
type="sumbit" name="submit" class="btn btn-primary bg-primary
ms-3">Cetak</button>
127

</div>
</div>
</div>
</div>
</form>
<?php
}
?>
</tbody>
</table>
</div>
</div>
</div>
<!-- Optional JavaScript; choose one of the two! -->

<!-- Option 1: Bootstrap Bundle with Popper -->


<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/boot
strap.bundle.min.js" integrity="sha384-
MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxV
XM" crossorigin="anonymous"></script>

<!-- Option 2: Separate Popper and Bootstrap JS -->


<!--
<script
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/um
d/popper.min.js" integrity="sha384-
IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R
8p" crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/boot
strap.min.js" integrity="sha384-
cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0Ec
QF" crossorigin="anonymous"></script>
-->
</body>
</html>
128

Operator
a. Masukan absen
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min
.js"></script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/webrtc-
adapter/3.3.3/adapter.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.1.min.js"
integrity="sha256-
o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ="
crossorigin="anonymous"></script>

<?php
include('../../koneksi/conet.php');

$_NIP = $_GET['kod'];

date_default_timezone_set('asia/jakarta');
$tgl = date('Y-m-d');
$jm = date('H:i:s');
$C = date('H');
$D = date('s');
//echo ($jm);

$sql = mysqli_query($connet, "SELECT * FROM absen where


tanggal_keluar='$tgl' && NIP='$_NIP'");
$qr = mysqli_num_rows($sql);
$ks = mysqli_fetch_array($sql);
$kl = $ks['jam_masuk'];

$query6 = mysqli_query($connet, "SELECT * FROM absen where


tanggal_masuk='$tgl' && NIP='$_NIP'");
$absen = mysqli_fetch_array($query6);
$st = $absen['status_absen'];
129

$query = mysqli_query($connet, "SELECT * FROM karyawan where


NIP='$_NIP'");
$data = mysqli_fetch_array($query);
$np = $data['NIP'];
$akn = $data['akun'];
$stat = $data['status'];

$jamM = mysqli_query($connet, "SELECT * FROM karyawan INNER JOIN


jam_masuk on
karyawan.id_jam=jam_masuk.id_jam where NIP='$_NIP'");
$jmcek = mysqli_fetch_array($jamM);
$b = $jmcek['jam_masuk'];
$keluar = $jmcek['jam_keluar'];

// perhitungan jam
$dif1 = strtotime($jm);
$dif2 = strtotime($keluar);

$timediff = ($dif2 - $dif1) / 60;


//=====================================

$set = mysqli_query($connet, "SELECT * from set_gaji INNER JOIN


karyawan on set_gaji.kode_gaji=karyawan.kode_gaji where
NIP='333'");
$bj = mysqli_fetch_array($set);
$um = $bj['uang_makan'];

if ($_NIP == $np) {
if ($akn == "aktif") {
if ($stat == "pegawai tetap") {
if ($qr == 0) {
if ($st == "tepat waktu") {
if ($timediff <= 0) {
mysqli_query($connet, "UPDATE absen SET
tanggal_keluar='$tgl',jam_keluar='$keluar' WHERE NIP='$_NIP' &&
tanggal_masuk='$tgl'");
130

mysqli_query($connet, "UPDATE gaji_harian


SET uang_makan_hari='$um' WHERE id_gaji='$_NIP' &&
tanggal='$tgl' ");
header("location : secan2.php");
} else {
header("location : secan2.php");
}
} else {
if ($timediff <= 0) {
mysqli_query($connet, "UPDATE absen SET
tanggal_keluar='$tgl',jam_keluar='$keluar' WHERE NIP='$_NIP' &&
tanggal_masuk='$tgl'");
header("location : secan2.php");
} else {
header("location : secan2.php");
}
}
} else {
echo "maaf anda sudah absen";
header("location : secan2.php?kode=3");
}
} else {
if ($qr == 0) {
if ($st == "tepat waktu") {
if ($timediff <= 0) {
mysqli_query($connet, "UPDATE absen SET
tanggal_keluar='$tgl',jam_keluar='$keluar' WHERE NIP='$_NIP' &&
tanggal_masuk='$tgl'");
mysqli_query($connet, "UPDATE gaji_harian
SET uang_makan_hari='$um' WHERE id_gaji='$_NIP' &&
tanggal='$tgl' ");
header("location : secan2.php");
} else {
header("location : secan2.php");
}
} else {
if ($timediff <= 0) {
131

mysqli_query($connet, "UPDATE absen SET


tanggal_keluar='$tgl',jam_keluar='$keluar' WHERE NIP='$_NIP' &&
tanggal_masuk='$tgl'");
header("location : secan2.php");
} else {
header("location : secan2.php");
}
}
} else {
echo "maaf anda sudah absen";
header("location : secan2.php?kode=3");
}
}
} else {
header("location : secan2.php?kode=2");
// echo '<script>
// window.alert("Akun tidak aktif");
// window.location.href="secan2.php";
// </script>';
// header("location : secan2.php");
}
} else {
echo "data tidak terdaftar";
header("location : secan2.php?kode=1");
}

// mysqli_query($connet, "UPDATE absen SET


status_absen=IF(TIME_TO_SEC(TIMEDIFF('$b','$kl'))/60<=0,'telat
','tepat waktu') WHERE NIP='$_NIP' && tanggal_masuk='$tgl'");
// header("location : secan2.php");

Cari data
<nav class="navbar navbar-expand-lg navbar-light bg-warning
fixed-top">
<div class="container">
<h3><i class="bi bi-cart-plus text-success m-
3"></i></h3>
132

<a class="navbar-brand fw-bold" href="#">Operator</a>


<button class="navbar-toggler" type="button" data-
bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse"
id="navbarSupportedContent">
<ul class="navbar-nav ms-auto me-4">
<li class="nav-item">
<a class="nav-link fw-bold me-3"
href="operator.php">data</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle"
href="#" id="navbarDropdown" role="button" data-bs-
toggle="dropdown" aria-expanded="false">
kontak kami
</a>
<ul class="dropdown-menu" aria-
labelledby="navbarDropdown">
<li><a class="dropdown-item"
href="https://www.instagram.com/cirenglegend1/"><i class="bi
bi-instagram m-2"></i>instagram</a></li>
</ul>
</li>
</ul>

<h4><i class="bi bi-cart4 ms-3 me-3">Cari


data</i></h4>
<form method="GET" action="" class="d-flex">
<input class="form-control me-2" name="cari"
type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success"
type="submit">Search</button>
</form>
133

<a class="btn btn-outline-success position-


absolute end-0" type="submit" href="../login.php">Logout</a>
</div>
</div>
</nav>
<?php
session_start();
$NIP = $_SESSION['nip'];
include('../koneksi/conet.php');
$data = mysqli_query($connet, "SELECT * FROM absen INNER
JOIN karyawan
ON absen.`NIP`=karyawan.`NIP` where jabatan in
('karyawan','operator')");

$data1 = mysqli_query($connet, "SELECT * FROM karyawan where


NIP='$NIP'");
$ulang1 = mysqli_fetch_array($data1);
$no = 1;

if (isset($_GET['cari'])) {
$min = $_GET['cari'];
if ($min == '') {
$data = mysqli_query($connet, "SELECT * FROM absen
INNER JOIN karyawan
ON absen.`NIP`=karyawan.`NIP` where jabatan in
('karyawan','operator')");
} else {
$data = mysqli_query($connet, "SELECT * FROM absen
INNER JOIN karyawan
ON absen.`NIP`=karyawan.`NIP` where jabatan in
('karyawan','operator') and id_gaji='$min' or tanggal_masuk like
'%$min%'");
}
}
?>
134

Direktur
a. Cetak data karyawan
<!DOCTYPE html>
<html lang="en">

<head>

<script type="text/javascript"
src="https://rawgit.com/schmich/instascan-
builds/master/instascan.min.js"></script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min
.js"></script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/webrtc-
adapter/3.3.3/adapter.min.js"></script>

<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<title>Document</title>
</head>

<body>

<?php
include('../../koneksi/conet.php');

$kode = $_GET["NIP"];
// var_dump($kode);
$datakar = mysqli_query($connet, "SELECT * FROM karyawan
WHERE NIP='$kode'");

$ulang = mysqli_fetch_array($datakar);
$status = $ulang['status'];
135

?>
<div class="col-md-10">
<div class="mas-md-5 mt-2">

<div class="col-md-5">
<center>
<H2 style="margin-top: 50px;">Data <?=
$status; ?></H2>
</center>
</div>
<hr class="garis fw-bold">
<div>
<center>
<H3>Kedai KopiDan</H3>
</center>
</div>
<div style="margin-top:10px ;">
<center>
<h4>Jl. HOS Cokroaminoto No.64, Pakuncen,
Wirobrajan,
<br> Kota Yogyakarta, Daerah Istimewa
Yogyakarta 55253
</h4>
</center>
</div>
<hr class="garis fw-bold">
<div class="tab " style="position:absolute; left:
50px;">

<h3>Data pegawai</h3>
<h4> NIP : <?= $ulang['NIP']; ?></h4>
<h4>Nama : <?= $ulang['nama']; ?></h4>
<h4>Jabatan : <?= $ulang['jabatan']; ?></h4>
<h4>Status : <?= $ulang['status']; ?></h4>
<h4>Alamat : <?= $ulang['alamat']; ?></h4>
<h4>Jenis kelamin : <?= $ulang['jenis_kelamin'];
?></h4>
136

<h4>Gaji pokok : Rp.<?= $ulang['gaji_pokok'];


?></h4>
</div>
</div>
</div>

<script>
window.print();
</script>

<?php
// require_once('../../../dompdf/dompdf_config.inc.php');

// $data2 = "pdfM.php";
// $dompdf = new DOMPDF();
// $dompdf->load_html($data2);
// $dompdf->render();
// $dompdf->stream($nama . '.pdf', array("attachment" =>
0));
?>

</body>
</html>

Login
a. Masuk
<!doctype html>
<html lang="en">

<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1">

<!-- Bootstrap CSS -->


137

<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bo
otstrap.min.css" rel="stylesheet" integrity="sha384-
EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLAS
jC" crossorigin="anonymous">
<link rel="stylesheet" href="style.css">
<title>login</title>
</head>

<body>

<?php

if (isset($_GET['kode']) == 1) {
echo '<script>
window.alert("username atau password salah");
window.location.href="login.php";
</script>';
} else {
?>
<div class="cont">
<h4 class="text-center">MASUK</h4>
<hr>
<form class="login" action="aksi/ceklogin.php"
method="POST">
<div class="login">
<label>Username</label>
<input type="text" name="username"
class="form-control" placeholder="Masukan Username">
</div>
<div class="login">
<label>Password</label>
<input type="password" name="password"
class="form-control" placeholder="Masukan password anda">
</div> <br>
<button type="submit" class="btn btn-
primary">Masuk</button>
138

<a type="submit" class="btn btn-primary position-


absolute" style="left: 790px ;" href="dasbor.php">Dasbor</a>
</form>
</div>
<?php } ?>

<!-- Optional JavaScript; choose one of the two! -->

<!-- Option 1: Bootstrap Bundle with Popper -->


<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/boot
strap.bundle.min.js" integrity="sha384-
MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxV
XM" crossorigin="anonymous"></script>

<!-- Option 2: Separate Popper and Bootstrap JS -->


<!--
<script
src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/um
d/popper.min.js" integrity="sha384-
IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R
8p" crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/boot
strap.min.js" integrity="sha384-
cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0Ec
QF" crossorigin="anonymous"></script>
-->
</body>

</html>

b. Cek login
<?php
include("../koneksi/conet.php");

$user = $_POST['username'];
139

$pasw = $_POST['password'];

$query = mysqli_query($connet, "SELECT * FROM karyawan where


username='$user'&& password='$pasw'");
$cek = mysqli_num_rows($query);
//echo $cek;
if ($cek > 0) {
session_start();
$data = mysqli_fetch_array($query);
$NP = $data['NIP'];
$user = $data['username'];
$pas = $data['password'];
$level = $data['jabatan'];
$_SESSION['nip'] = $NP;
$_SESSION['username'] = $user;
$_SESSION['password'] = $pas;
$_SESSION['level'] = $level;
// if ($result['level'] == "admin") {
// header('location: ../admin/admin.php');
// } elseif ($result['level'] == "direktur") {
// header('location: ../direktur/direktur.php');
// } elseif ($result['level'] == "operator") {
// header('location: ../operator/operator.php');
// } elseif ($result['level'] == "karyawan") {
// header('location: ../karyawan/karyawan.php');
// } else {
// echo ("akun tidak terdaftar");
// }
header('location: level.php');
} else {
header("location: ../login.php?kode=1");
}

c. Level
<?php
session_start();
if ($_SESSION['level'] == "admin") {
140

header('location: ../admin/admin.php');
} elseif ($_SESSION['level'] == "direktur") {
header('location: ../direktur/direktur.php');
} elseif ($_SESSION['level'] == "operator") {
header('location: ../operator/operator.php');
} elseif ($_SESSION['level'] == "karyawan") {
header('location: ../karyawan/karyawan.php');
} else {
echo ("akun tidak terdaftar");
}

Anda mungkin juga menyukai