PENDAHULUAN
organisasi, dan menjadi kunci kesuksesan dalam dunia bisnis modern (Wesly Jayardi,
penggajian, pengelolaan persediaan, dan pelaporan keuangan. Tujuan dari SIA adalah
keuangan organisasi. Salah satu bagian dari SIA adalah sistem absensi, yang
(Irnawati & Darwati, 2020). Dalam pelaksanaan sistem presensi, faktor pendukung
yang penting adalah memiliki manajemen sistem yang baik. Manajemen sistem yang
baik diperlengkapi dengan sistem yang sesuai dengan kebutuhan, yang dapat
aktivitas yang telah dilakukan untuk mengetahui sejauh mana kesesuaian dengan
1
2
dan manajemen dalam mencapai tujuan, serta mengukur kemajuan melalui hubungan
antara kegiatan dan tujuan yang telah ditetapkan (Irnawati & Darwati, 2020). Dalam
Union (CU) adalah sebuah lembaga keuangan nirlaba yang beroperasi berdasarkan
prinsip keanggotaan dan kepemilikan bersama. Credit Union sering kali didirikan oleh
anggota dengan kepentingan yang serupa, seperti karyawan suatu perusahaan, anggota
serikat pekerja, atau warga sekitar suatu komunitas. Tujuan utama Credit Union adalah
CU Gerakan Konsepsi Filosofi Petani Pancur kasih (CUG KFP PK) merupakan
KSP dimana kegiatan utamanya adalah menampung simpanan atau tabungan dan
melayani pinjaman atau kredit anggota. CUG KFP PK mempunyai beberapa Kantor
Cabang yang disebut sebagai Pangkalan Binua (PB). Salah satu PB dari CUG KFP PK
adalah PB Sunge Manur yang terletak di Desa Kubu Padi, Kecamatan Kuala Mandor
pelayanan terhadap anggota yang berasal dari kelompok usaha kecil, usaha tani, atau
Dari hasil observasi yang telah peneliti lakukan pada CU Gerakan Konsepsi
Filosofi Petani Pancur Kasih PB Sunge Manur yaitu proses presensi masih
menggunakan teknik konvensional memakai alat tulis dan kertas, sehingga kurang
efisien apabila akan melakukan rekap data, memakan waktu yang banyak dan sering
Filosofi Petani Pancur Kasih PB Sunge Manur. Kendala tersebut dapat berpengaruh
pada saat menghitung kenaikan gaji, potongan gaji, perhitungan lemburan, maupun
pemutusan kontrak kerja. Hal ini juga dapat menjadi celah kecurangan bagi karyawan
monitoring presensi karyawan berbasis website. Aplikasi ini akan menjadi solusi bagi
CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur dalam proses
Adapun tujuan dari penulisan TugasAkhir sebagai salah satu syarat kelulusan Program
SaranaInformatika.
4
Untuk mendapatkan informasi yang diperlukan direkam sebagai hard copy Last
1. Observasi
berfungsi sehingga spesialis dapat menangani masalah yang terjadi, dan peneliti
2. Wawancara
hal yang sedang dihadapi dan apa yang dibutuhkan dalam aplikasi presensi yang
Manur.
3. Studi Pustaka
Metode ini melibatkan studi teori dari literatur, buku, dan situs-situs penyedia
layanan yang terkait dengan objek Tugas Akhir. Hal ini dilakukan sebagai dasar
Metode prototype ini merupakan tahapan awal dalam pembuatan sistem perangkat
lunak yang bertujuan untuk memperlihatkan gambaran dari ide yang ada, menguji
desain yang telah dirancang, mengidentifikasi masalah yang mungkin muncul, dan
a. Sederhana
Tampilan antarmuka user hanya terdiri dari form isian nomor id dan tombol
submit. Untuk antarmuka admin, terdapat halaman login dengan nomer id, data
b. Mudah
mencatat identitas dan waktu presensi dari karyawan tersebut pada basisdata.
c. Offline
Manur, maka sistem haruslah dapat bekerja secara offline atau berada dalam
2. Desain Cepat
halaman utama untuk presensi dan halaman khusus admin untuk mengelola user
6
dan melihat catatan presensi. Halaman khusus admin berisi data user, kelompok
user, dan catatan presensi. Koordinator dan Staff CU dapat langsung mengisi form
dan mengklik tombol submit pada halaman utama untuk melakukan presensi.
khusus admin. Untuk rancangan basis data memerlukan data karyawan, data
3. Bangun Prototype
tujuan untuk mengilustrasikan sistem yang akan dibangun oleh peneliti. Prototype
ini dibuat sebelum tahap pengembangan sebenarnya atau bahkan dirancang secara
khusus untuk pengembangan sebelum diproduksi dalam skala penuh atau secara
massal. Penggunaan metode ini dapat mendeteksi kesalahan dan umpan balik
pengguna lebih cepat sehingga peneliti dapat menghasilkan solusi lebih baik dalam
pengerjaan.
Tahap evaluasi ini adalah langkah awal dalam serangkaian kegiatan yang bertujuan
keberhasilan suatu sistem prototype yang telah dibuat dalam pengukuran tingkat
informasinya.
5. Memperbaiki Prototype
kekeliruan atau error yang terjadi pada sistem sehingga sistem dapat berjalan baik
Tahap implementasi ini dilakukan dan telah diketahui garis besar rencana yang
sumber daya yang digunakan berfungsi dengan baik dan mendukung operasional
presensi karyawan berbasis website pada cu gerakan konsepsi filosofi petani pancur
kasih pb sunge manur dengan metode prototype dan dapat diakses secara offline.
Visual Studio Code sebagai tools untuk menuliskan kode program yang kemudian di
run di google chrome, dan aplikasi pendukung lainnya seperti draw.io dan figma
sebagai pembuat desain perancangan sistem. Sistem dapat diakses oleh 2 user yaitu
User Koordinator berperan sebagai admin, dimana user tersebut memiliki hak
istimewa untuk dapat mengelola data user dan kelompok user seperti menambah,
mengubah, dan menghapus data, serta melihat catatan presensi. Sedangkan fitur
presensi dapat diakses oleh kedua user tersebut karena Koordinator dan Staff CU
tercatat sebagai karyawan. Karyawan dapat secara langsung mengisi form dengan
mengetikkan id dan mengklik tombol submit pada halaman utama untuk melakukan
presensi. Jika karyawan melakukan presensi kedua kalinya, presensi tersebut akan
dicatat sebagai waktu karyawan keluar dari kantor. Data Koordinator dan Staff CU
8
yang digunakan tersedia dari PB Sunge Manur yang terletak di Desa Kubu Padi,
LANDASAN TEORI
buatan manusia yang dirancang untuk mengelola informasi, menyimpan data, memilah
struktur, dan mengarahkan aset manusia dan PC. Gagasan di balik ini adalah
mengubah input sistem menjadi output yang memenuhi tujuan yang sudah ditetapkan
terlebih dahulu.
2.1.1 Sistem
dan aset berbeda yang diatur secara terorganisir dapat membentuk kerangka kerja.
input yang masuk melalui mekanisme internalnya. Sistem dapat ditemui dalam
metodologi, sumber daya, dan ikli. Manusia berperan sebagai pengguna atau pelaku
dalam sistem, sedangkan perangkat keras adalah komponen fisik seperti komputer dan
merujuk pada program dan aplikasi yang berfungsi untuk menjalankan tugas-tugas
sistem. Data digunakan sebagai informasi yang dikumpulkan, disimpan, dan diolah
dalam sistem. Prosedur mengatur tata cara kerja sistem dan memandu interaksi antara
komponen. Sumber daya mencakup sumber daya fisik dan non-fisik yang digunakan
9
10
dalam sistem, seperti energi, keuangan, infrastruktur, dan tenaga kerja. Lingkungan
merupakan faktor eksternal yang mempengaruhi sistem, termasuk kondisi fisik, sosial,
politik, atau ekonomi di sekitar sistem. (Gede et al., 2022). Sistem sebagaimana
disebutkan pada kutipan sebelumnya, terdiri dari beberapa subsistem yang saling
berhubungan yang melakukan kerja sama untuk mengolah masukan dan menghasilkan
2.1.2 Informasi
memahami situasi, atau menjalankan tindakan yang tepat. Informasi biasanya disusun
dalam bentuk yang dapat dipahami, seperti teks, angka, grafik, gambar, atau suara.
Untuk menjadi informasi yang berguna, data harus diolah dan diinterpretasikan
kebermanfaatan. Informasi memiliki sifat yang dinamis dan dapat berkembang seiring
pemahaman atau pengetahuan tentang suatu subjek atau kejadian yang bisa dipakai
kegunaan, dan keterkaitan dengan konteks yang relevan. Informasi dapat berupa teks,
gambar, suara, atau kombinasi dari berbagai media. Pentingnya informasi dalam
11
yang efektif, dan mencapai tujuan yang diinginkan. (Hasan & Muhammad, 2020).
Dari kutipan di atas, bisa disimpulkan hasil dari proses pengolahan data yang
memiliki makna dan memberikan manfaat bagi pengguna. Informasi ini memiliki nilai
penting dalam membantu pengguna dalam pengambilan keputusan yang efektif, baik
untuk situasi saat ini maupun masa depan. Informasi memberikan pemahaman dan
panduan yang diperlukan untuk pengambilan keputusan yang tepat dan berhasil.
menyajikan data untuk membantu mengarahkan, berpikir kritis, dan tugas bisnis.
data, organisasi korespondensi, dan individu yang terlibat dengan penggunaan dan
dewan kerangka kerja. Tujuan utama sistem informasi adalah menyediakan data
berkualitas tinggi, tepat waktu, dan relevan untuk mendukung operasi bisnis,
pemeliharaan keamanan informasi, serta pengoperasian proses bisnis yang efisien dan
efektif, juga merupakan fungsi penting dari sistem informasi. (Dwi Wijaya & Wardah
Astuti, n.d.).
komunikasi adalah bagian dari sistem informasi yang terintegrasi. Tujuan utama
sistem informasi adalah menyediakan data yang tepat waktu, relevan, & akurat kepada
yang baik & efektif serta menjalankan operasi bisnis dengan efisiensi yang tinggi.
12
Sistem informasi juga berperan dalam mengelola keamanan informasi & menjaga
sekumpulan data yangsaling terhubung & membentuk satu kesatuan informasi yang
berharga. Sistem ini memiliki tujuan untuk melakukan tugas-tugas secara terintegrasi
2.1.4 Presensi
dari pelaporan aktivitas sebuah institusi atau bagian dari institusi tersebut. Presensi
memudahkan pencarian & penggunaan data tersebut jika diperlukan oleh pihak yang
berbagai kegiatan seperti sekolah & tempat kerja. Mesin Presensi dirancang untuk
pencatatan & informasi dalam satu sistem yang terintegrasi. (Winoto, 2020).
pendataan kehadiran dalam suatu institusi yang memudahkan pencarian & penggunaan
data kehadiran. Dokumen ini umumnya digunakan di sekolah & tempat kerja. Mesin
2.1.5 Karyawan
instansi untuk melaksanakan tugas operasional & mendapatkan balas jasa berupa
sangat bergantung pada keterlibatan & kontribusi unsur manusia dalam organisasi
tersebut (Hardi, 2019). Dari kutipan tersebut, dapat disimpulkan bahwa karyawan
adalah orang-orang yang bekerja di perusahaan atau instansi untuk melakukan tugas
operasional & menerima komisi atau gaji sebagai balas jasa. Keberadaan unsur
manusia sangat penting bagi organisasi dalam mencapai tujuan yang telah ditetapkan.
2.1.6 Website
Website adalah bermacam-macam halaman situs web yang terkait & diakses
melalui web. Informasi, konten, atau layanan dapat disajikan kepada pengguna internet
melalui website.
1. Website
Setiap individu, di berbagai lokasi & kapan pun, dapat mengaksesnya selama
2. Internet
Internet dapat dijelaskan sebagai suatu jaringan atau sistem yang menghubungkan
untuk saling terhubung & bertukar informasi. (Yulianto & Firdaus, 2021)
3. Web Server
14
sebagai penyedia layanan untuk melayani permintaan dari klien atau pengguna
untuk mengakses halaman web atau aplikasi web. Fungsinya adalah untuk
protokol HTTP. Web server menjalankan aplikasi web & menyediakan lingkungan
permintaan, mengambil data dari basis data, memproses logika bisnis, &
dalam menyediakan akses & ketersediaan situs web kepada pengguna di seluruh
Sebuah website adalah kumpulan halaman yang saling terhubung & biasanya
berada pada server yang sama. Website berisi informasi yangdiberikan oleh
di dalam server web & dapat diakses oleh pengguna dari berbagai lokasi selama
Basis data yakni suatu sistem komputerisasi yang dirancang untuk menjaga &
menyimpan data yang telah diproses serta membuatnya dapat diakses saat diperlukan
(Agustin, 2022).
Basis Data yakni kumpulan terstruktur daridata yang saling terkait & disimpan
pengaksesan, penggunaan, & pengolahan data dengan mudah. BasisData terdiri dari
tabel-tabel yang terdiri dari baris&kolom, di mana setiap baris mewakili entitas
tunggal & setiap kolom mewakili atribut atau data yang terkait dengan entitas tersebut.
(Rachmadi, 2020).
Dari penjelasan tersebut, bisa disimpulkan basis data yakni kumpulan data
yangsaling terkait & terorganisir dengan baik untuk memudahkan akses & penggunaan
data di masa depan. Data-data ini disimpan dalam media penyimpanan elektronik &
dapat diorganisasi, disaring, dikelompokkan, & diatur sesuai dengan tujuan yang
diharapkan.
Teori pendukung mengacu pada kerangka pemikiran & konsep yang menjadi
dasar & panduan dalam penulisan tugas akhir ini. Beberapa teori pendukung yang
2.2.1 Perancangan
melibatkan penjelasan tentang struktur, komponen rinci, & juga batasan yang akan
merujuk pada sistem yang direncanakan & diperinci dalam bentuk bagan alir sistem
Perancangan merupakan tahapan dalam proses di mana suatu objek atau sistem
perancangan, terdapat deskripsi mengenai arsitektur & detail komponen yang akan
16
proses di mana suatu objek atau sistem didefinisikan menggunakan berbagai teknik
bagan alir sistem yang berperan sebagai alat grafis untuk menggambarkan urutan
proses.
antara elemen (substansi) dalam kerangka kerja atau kumpulan data. ERD
& sifat yang disertakan, & menggambarkan hubungan antara zat-zat ini seperti one-
basis data untuk menggambarkan model konseptual dari basis data yang akan
dibangun.
merupakan alat yang berguna dalam perancangan database (Pratama & Sariana, 2019).
ERD adalah suatu bentuk pemodelan awal dalam pengembangan basis data yang
didasarkan pada teori himpunan dalam bidang matematika. Pemodelan ini digunakan
17
untuk merepresentasikan hubungan antar entitas dalam basis data relasional. (Raif,
Teuku, 2021) Berikut ini adalah beberapa simbol yang dipakai pada ERD:
a. Entitas: Merupakan objek nyata atau abstrak yang memiliki karakteristik tertentu
dengan relasi. Link ini menunjukkan keterkaitan antara entitas & atribut, serta
Kardinalitas Relasi
Setiap komponen pada Zat A memiliki hubungan dengan paling banyak satu
komponen pada Zat B, & sebaliknya, setiap komponen pada Unsur B memiliki
Setiap komponen dalam Zat A dikaitkan dengan jumlah komponen yang paling
banyak di Unsur B. Di sisi lain, setiap komponen dalam Zat B hanya terhubung
dengan semua hal yang dianggap sebagai satu komponen dalam Unsur A
paling banyak pada Unsur B, begitu pula sebaliknya, setiap komponen pada
Dari kutipan tersebut, dapat disimpulkan bahwa ERD adalah sebuah diagram
terbuka & terkenal. Dalam basis data relasional, DBMS ini digunakan untuk
menyimpan, mengelola, & mengakses data. MySQL tersedia untuk Windows, Linux,
& macOS, & dikembangkan menggunakan bahasa pemrograman C & C++. MySQL
memiliki elemen yang solid, termasuk dukungan untuk bahasa SQL (Organized
pertukaran, pencatatan, keamanan informasi, replikasi, & itu baru permulaan. MySQL
19
juga mendukung koneksi jaringan untuk mengakses basis data secara remote. MySQL
banyak digunakan di berbagai aplikasi & situs web, dari skala kecil hingga besar,
integrasi dengan bahasa pemrograman seperti PHP, Python, & Java, sehingga dapat
digunakan dalam pengembangan aplikasi web & perangkat lunak. (Siregar & Sari,
2018).
MySQL juga dapat dikatakan sebagai sebuah sistem manajemen basis data
relasional (RDBMS) yang populer & sering digunakan. RDBMS ini didasarkan pada
mengelola, menyimpan, & mengakses data dalam basis data. MySQL merupakan
perangkat lunak sumber terbuka yang tersedia secara gratis & mendukung berbagai
platform sistem operasi, termasuk Windows, Linux, & macOS. MySQL banyak
digunakan dalam pengembangan aplikasi web & situs web dinamis, serta sering
digunakan sebagai backend dalam sistem informasi, e-commerce, & aplikasi bisnis
manajemen basis data (DBMS) yang terkenal & tersedia secara bebas untuk basis data
relasional. Ini digunakan untuk menyimpan, mengelola, & mengakses data. Dibuat
seperti Windows, Linux, & macOS. MySQL memiliki fitur yang kuat, termasuk
dukungan untuk bahasa SQL, pemrosesan transaksi, indeks, keamanan data, replikasi,
& banyak lagi. Selain itu, MySQL juga mendukung koneksi jaringan untuk mengakses
2.2.4 PHPMyAdmin
untuk menjalankan perintah Query pada database tanpa perlu mengetikkan perintah-
perintah seperti yang dilakukan pada MS DOS. Beberapa perintah yang dapat
dilakukan melalui PhpMyAdmin antara lain administrasi pengguna & hak akses,
ekspor & impor database, manajemen database, manajemen label & struktur tabel, &
sehingga sangat mudah digunakan bahkan oleh pengguna baru. (Rumengan et al.,
2021).
antarmuka grafis untuk mengelola basis data MySQL. PHPMyAdmin ditulis dalam
pengguna dapat melakukan berbagai tugas seperti membuat & menghapus basis data,
menjalankan query SQL, mengelola pengguna & hak akses, serta melakukan
akses, ekspor & impor database, manajemen database, manajemen label & struktur
21
tabel, & sebagainya. PhpMyAdmin memiliki antarmuka yang mudah digunakan &
Bahasa pemrograman adalah sebuah set instruksi & aturan yang digunakan
melakukan tugas tertentu. Bahasa pemrograman digunakan untuk menulis kode yang
kemudian akan dieksekusi oleh komputer. PHP berarti "Hypertext Preprocessor". PHP
web. PHP umumnya digunakan sebagai bahasa pemrograman sisi server, & itu berarti
kode PHP dijalankan di sisi server & menghasilkan tampilan atau reaksi yang
dikirimkan dari klien (program). (Siregar & Sari, 2018) PHP pertama kali
dikembangkan oleh seorang insinyur perangkat lunak bernama Rasmus Lerdorf. Pada
tahun 1994, Rasmus Lerdorf membuat halaman web pertama menggunakan PHP.
PHP memiliki dukungan yang kuat terhadap berbagai sistem manajemen basis
data, seperti MySQL, PostgreSQL, & Oracle, serta kemampuan untuk memproses
berbagai format file, termasuk gambar, video, & dokumen. Selain itu, PHP juga
web secara efisien dengan menyediakan struktur & fitur yang siap pakai. (M.
sebuah set instruksi & aturan yang digunakan untuk mengkomunikasikan perintah
kepada komputer atau mesin. PHP banyak digunakan sebagai bahasa pemrograman
22
server-side & memiliki dukungan yang kuat terhadap sistem manajemen basis data &
pemrosesan berbagai format file. PHP juga memiliki berbagai kerangka kerja yang
menggunakan UML untuk menyajikan visualisasi yang terstruktur & jelas dari sistem
yang akan dibangun. Struktur, interaksi, perilaku, & komunikasi antara komponen
sistem dari sistem perangkat lunak semuanya dapat dijelaskan dengan bantuan
berbagai diagram yang disediakan oleh UML. (Putra & Andriani., 2019).
UML dapat digunakan untuk menampilkan bisnis & kerangka kerja non-pemrograman
lainnya. Gagasan tentang program komputer yang terletak pada penulisan adalah
berbeda. UML digunakan dalam berbagai bidang yang memerlukan pemodelan selain
sistem dalam suatu sistem perangkat lunak. Diagram ini membantu dalam
yang terlibat dalam sistem & bagaimana mereka berinteraksi dengan sistem
23
tersebut. Dalam use case diagram, aktor-aktor, yang bisa berupa pengguna
entitas yang berinteraksi dengan sistem. Fungsi-fungsi sistem, yang disebut use
Shalahuddin, 2017).
Menggambarkan proses sistem perangkat lunak atau alur kerja fungsi atau
urutan aktivitas. Objek & entitas sistem berinteraksi satu sama lain & melalui
aktivitas), panah (yang mewakili aliran kontrol antara aktivitas), & simbol
3) Sequence Diagram
ini juga dapat menampilkan urutan waktu, garis hidup objek, & pemanggilan
koneksi di antara mereka, diagram ini memberikan tampilan statis dari sistem.
Class Diagram menggunakan notasi grafis seperti kotak (yang mewakili kelas),
garis (yang mewakili hubungan antara kelas), & simbol lainnya untuk
Hubungan kelas-ke-kelas
(umum-spesifik) yang
Generalisasi
menggambarkan generalisasi &
spesialisasi.
kelas yang memiliki hubungan
Kebergantungan yang menunjukkan bagaimana
/ Dependency satu kelas mempengaruhi yang
lain.
Hubungan antara kelas yang
menunjukkan hubungan
Agregasi /
"semua-sebagian" (whole-part)
Aggregation
antara satu kelas dengan kelas
lainnya.
BAB 3
PEMBAHASAN
Manur ini akan dibahas mengenai sejarah berdirinya CU Gerakan Konsepsi Filosofi
Sebelas tahun yang lalu, tepatnya 30 April 2011, 30 orang aktivis senior
bentuk konkret dari gagasan dan konsep filosofi petani yang menjadi roh
Gerakan Konsepsi Filosofi Petani Pancur Kasih adalah momentum yang penting
dalam kancah Gerakan Credit Union karena merupakan tonggak awal dalam sejarah
31
32
pemberdayaan holistic Pancur Kasih sebagai solusi atas persoalan hidup rakyat dan
Filosofi Petani ini digagas dan dikembangkan oleh A.R Mecer, tokoh gerakan Credit
memurnikan gerakan Credit Union sebagai gerakan ekonomi kerakyatan yang khas,
PB Sunge Manur
RAPAT ANGGOTA
TAHUNAN
PENASEHAT
BIDANG PEMBERDAYAAN BIDANG ORGANISASI & BIDANG USAHA, KEUANGAN & SISTEM PENGENDALIAN
ANGGOTA PSDM PERLINDUNGAN INTERNAL (SPI)
b. Fungsi Organisasi
Rapat yang wajib diikuti oleh seluruh anggota yang sudah bergabung
2) Penasehat
penasehat.
3) Badan Pengawas
4) Dewan Pengurus
pengawasan
Memiliki tugas penuh dalam mengelola seluruh kegiatan yang ada didalam
dari proses yang dilakukan dalam sistem yang berjalan saat ini. Adapun tahapan-
tahapan dari aplikasi monitoring presensi karyawan berbasis website pada CU Gerakan
Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur adalah sebagai berikut:
a. Prosedur Presensi
Pegawai setiap hari melakukan presensi masuk dan pulang dengan cara
b. Prosedur Catatan
Catatan presensi sebagai catatan jam kerjanya karyawan dari catatan jam
presensi karyawan.
35
admin
Sumber : admin
karyawan
Sumber : admin
karyawan
Sumber : admin
Bentuk keluaran berupa tampilan pada layar monitor. Berikut ini penjelasan keluaran
dari website:
pilihan bentuk
Konsepsi Filosofi Petani Pancur Kasih ,ditemukan beberapa permasalahan pokok yang
ditemulan yaitu:
a. Proses presensi masih memakai teknik konvensional dengan alat tulis &
pencatatan.
c. Hal ini juga dapat menjadi celah kecurangan bagi karyawan dalam melakukan
presensi kehadiran.
38
Filosofi Petani Pancur Kasih untuk sistem presensi maka peneliti memberikan ide
kemudian efesiensi waktu yang lebih cepat dan efesiensi untuk proses
c. Dengan dibuatnya sistem presensi ini dapat menyimpan data digital kedalam
Terbagi menjadi 3 subbab yaitu analisa kebutuhan, usecase diagram, dan activity
Berikut merupakan analisis kebutuhansistem berdasarkan akses user yang terdiri dari
1. User coordinator
a. Login
b. Melakukan presensi
2. User staff cu
a. Melakukan presensi
Dalam sistem aplikasi terdapat dua aktor yang memiliki hak akses yang berbeda-
mengelola semua data database. Skenario yang digambarkan pada model use case
karyawan
4. Menampilkan halaman
tambah data
5. Mengisi form tambah data
6. Klik “tambah”
7. Data masuk ke database
8. Halaman menampilkan list
data terbaru setelah
ditambahkan data baru
9. Melakukan edit data
10. Select data
11. Data terpilih
12. Menampilkan halaman edit
data
13. Mengisi form edit data
14. Save data
15. Data tersimpan pada basis
data
16. Halaman menampilkan list
data terbaru setelah editan
data baru
17. Melakukan hapus Data
18. Klik hapus data
19. Data terhapus dari basis data
20. Halaman menampilkan list
data terbaru setelah hapus
data baru
d. Nama Use case : Data Fungsi Karyawan
karyawan
memodelkan alur kerja proses dan urutan aktivitasnya. Bagan gerakan menunjukkan
pengembang aplikasi untuk memahami urutan kerja sistem secara mendetail sehingga
sistem dapat berfungsi dengan baik. Garis besar gerakan harus terlihat sebagai berikut:
presensi. Jika berhasil, sistem akan menampilkan catatan berhasil login pada
45
tanggal dan jam saat karyawan presensi. Jika gagal, halaman akan
(koordinator) yang dapat mengakses halaman ini. Admin dapat melihat, menambah,
mengedit, dan menghapus data fungsi karyawan pada halaman data fungsi
karyawan.
48
D. Activity diagram catatan presensi : halaman ini hanya bisa diakses oleh admin
3.4 Desain
Rencana basis informasi membuat perencanaan tabel yang digambarkan oleh Entity
Relationship Diagram(ERD).
50
Basis data adalah kumpulan data terkait, terpusat, dan terorganisir yang dapat
digunakan untuk berbagai tugas pemrosesan data dengan cepat dan mudah. Program
website yang saya buat bertujuan untuk menyimpan semua data dengan nama yang
1. Tabel Karyawan
51
Software : MySQL
Software : MySQL
Software : MySQL
antar objek dalam kerangka. Garis besar Suksesi ini memberikan gambaran masa pakai
item dan pesan yang dikirim dan diterima di antara item tersebut.
(koordinator dan staff CU) agar dapat melakukan presensi saat masuk dan
keluar dari kantor. Proses presensi dapat dilihat pada gambar di bawah ini:
Login merupakan proses yang dilakukan oleh seluruh user koordinator agar
dapat mengakses halaman admin. Proses login dapat dilihat pada gambar di
bawah ini:
54
koordinator agar dapat mengelola data user berupa menambah, mengedit, dan
menghapus data. Proses kelola data karyawan dapat dilihat pada gambar di
bawah ini:
55
Kelola data fungsi karyawan merupakan proses yang dilakukan oleh user
mengedit, dan menghapus data. Proses kelola data fungsi karyawan dapat
koordinator agar dapat melihat dan mencetak data catatan presensi. Proses
melihat dan mencetak data catatan presensi dapat dilihat pada gambar di bawah
ini:
57
3.5 Implementasi
Memaparkan hasil code program yang dituliskan dalam pembuatan sistem presensi.
63
1. Fungsi
<?php
// BUKA SESSION
session_start();
date_default_timezone_set('Asia/Jakarta');
$localtime_assoc = localtime(time(), true);
setlocale(LC_ALL, 'id-ID', 'id_ID');
// KONEKSI DATABASE
$db = mysqli_connect('localhost', 'root', '', 'absensi_db');
if (mysqli_connect_errno()) {
echo "Gagal terhubung dengan database absensi_db : " .
mysqli_connect_error();
exit();
}
// FUNGSI FUNGSI
function Baca_Data_Karyawan() {
global $db;
$sql = "SELECT * FROM karyawan";
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
function Cek_Data_Karyawan($no_induk) {
global $db;
$sql = "SELECT * FROM karyawan WHERE no_induk =
'".$no_induk."' LIMIT 1";
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
64
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
if($data) {
return true;
} else {
return false;
}
}
if($data) {
return true;
} else {
return false;
}
65
function Delete_Data_Karyawan($no_induk) {
global $db;
$sql = "DELETE FROM karyawan WHERE no_induk =
'".$no_induk."'";
$data = mysqli_query($db, $sql);
if($data) {
return true;
} else {
return false;
}
}
function Baca_Data_Fungsi_Karyawan() {
global $db;
$sql = "SELECT * FROM fungsi_karyawan";
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
function Cek_Data_Fungsi_Karyawan($kode_fungsikaryawan) {
global $db;
$sql = "SELECT * FROM fungsi_karyawan WHERE
kode_fungsikaryawan = '".$kode_fungsikaryawan."' LIMIT 1";
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
66
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
if($data) {
return true;
} else {
return false;
}
}
function Update_Data_Fungsi_Karyawan($kode_fungsikaryawan_baru,
$kode_fungsikaryawan_lama, $nama) {
global $db;
$sql = "UPDATE fungsi_karyawan SET kode_fungsikaryawan =
'".$kode_fungsikaryawan_baru."', nama = '".$nama."' WHERE
kode_fungsikaryawan = '".$kode_fungsikaryawan_lama."'";
$data = mysqli_query($db, $sql);
if($data) {
return true;
} else {
return false;
}
}
function Delete_Data_Fungsi_Karyawan($kode_fungsikaryawan) {
global $db;
$sql = "DELETE FROM fungsi_karyawan WHERE kode_fungsikaryawan
= '".$kode_fungsikaryawan."'";
$data = mysqli_query($db, $sql);
if($data) {
return true;
} else {
return false;
}
67
function Baca_Data_Catatan() {
global $db;
$sql = "SELECT * FROM catatan JOIN karyawan WHERE
catatan.id_user = karyawan.id_user" ;
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
function Cari_ID_Karyawan($no_induk) {
global $db;
$sql = "SELECT * FROM karyawan WHERE no_induk =
'".$no_induk."'";
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
function Cari_Catatan($no_induk) {
global $db;
$querykaryawan = mysqli_query($db, "SELECT * FROM karyawan
WHERE no_induk = ".$no_induk);
$karyawan = mysqli_fetch_assoc($querykaryawan);
$id_user = $karyawan["id_user"];
$sql = "SELECT * FROM catatan WHERE id_user =
'".$id_user."' AND tanggal = '".date('Y-m-d')."' ORDER BY
id_presensi DESC LIMIT 1";
$data = mysqli_query($db, $sql);
$jumlah = mysqli_num_rows($data);
$data_baru = array();
$no = 0;
while ($baris = mysqli_fetch_array($data)) {
$data_baru[$no] = $baris;
$no++;
}
if($jumlah > 0) {
return $data_baru;
} else {
return array();
}
}
function Tulis_Catatan($no_induk) {
global $db;
$querykaryawan = mysqli_query($db, "SELECT * FROM karyawan
WHERE no_induk = ".$no_induk);
$karyawan = mysqli_fetch_assoc($querykaryawan);
69
$id_user = $karyawan["id_user"];
$sql = "INSERT INTO catatan(id_user, status_absen, tanggal,
jam_masuk)";
$sql .= "VALUES('".$id_user."', 'masuk', '".date('Y-m-d')."',
'".date('H:i:s')."')";
$data = mysqli_query($db, $sql);
if($data) {
return true;
} else {
return false;
}
}
function Update_Catatan($no_induk) {
global $db;
$querykaryawan = mysqli_query($db, "SELECT * FROM karyawan
WHERE no_induk = ".$no_induk);
$karyawan = mysqli_fetch_assoc($querykaryawan);
$id_user = $karyawan["id_user"];
$sql = "UPDATE catatan SET status_absen = 'keluar',
jam_keluar = '".date('H:i:s')."' WHERE id_user = '".$id_user."' AND
tanggal = '".date('Y-m-d')."' ";
$data = mysqli_query($db, $sql);
if($data) {
return true;
} else {
return false;
}
}
?>
1. Presensi
a. Controller
<?php
include "fungsi.php";
$pesan = '';
if(isset($_POST['no_induk'])) {
if($_POST['no_induk'] != '') {
$no_induk = $_POST['no_induk'];
if(count(Cari_ID_Karyawan($no_induk)) > 0) {
// ADA
foreach(Cari_ID_Karyawan($no_induk) as $karyawan) {
$status_absen = "masuk";
if(count(Cari_Catatan($no_induk)) > 0) {
// ADA DATA KARYAWAN DI TABEL CATAT
foreach(Cari_Catatan($no_induk) as $data_catat)
{
if($data_catat['status_absen'] == 'masuk') {
if(Update_Catatan($no_induk)) {
$pesan = "Kamu berhasil presensi
keluar tanggal ".date('d-m-Y')." jam
".date('H:i:s')."&status=berhasil";
} else {
$pesan = "Kamu gagal presensi keluar
tanggal ".date('d-m-Y')." jam ".date('H:i:s')."&status=gagal";
}
} else {
$pesan = "Kamu sudah pernah melakukan
presensi pada tanggal ".date('d-m-Y',
strtotime($data_catat['tanggal']))." jam ".date('H:i:s',
strtotime($data_catat['jam keluar']))."&status=berhasil";
}
}
} else {
if(Tulis_Catatan($no_induk)) {
$pesan = "Kamu berhasil presensi masuk
tanggal ".date('d-m-Y')." jam ".date('H:i:s')."&status=berhasil";
} else {
$pesan = "Kamu gagal presensi keluar tanggal
".date('d-m-Y')." jam ".date('H:i:s')."&status=gagal";
}
}
}
} else {
$pesan = "ID Karyawan tidak ditemukan&status=gagal";
}
} else {
$pesan = "ID Karyawan tidak boleh kosong&status=gagal";
}
} else {
$pesan = "Kamu harus memasukan ID Karyawan&status=gagal";
}
71
if($pesan != '') {
header("Location: index.php?message=".$pesan);
}
?>
b. View
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<title>Silahkan Lakukan Presensi</title>
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css"
rel="stylesheet">
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
72
}
</style>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="">Presensi
Karyawan</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="admin.php">Login Admin</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="col-md-12" style="margin-top: 20px;">
<div class="col-md-3"></div>
<?php } ?>
<?php } ?>
<div class="col-md-3"></div>
</div>
<div class="col-md-12">
<form class="form-signin"
action="proses_presensi.php" method="POST">
<div style="text-align: center;">
<h3 class="form-signin-
heading">Presensi</h3>
73
</div>
<label for="inputID" class="sr-only">Masukan
Nomor Induk Karyawan</label>
<input name="no_induk" type="text" id="inputID"
class="form-control" placeholder="Masukan Nomor Induk Karyawan"
required autofocus>
<br>
<button class="btn btn btn-info btn-block"
type="submit">Masuk</button>
</form>
</div>
</div>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.
js"></script>
<script src="bootstrap-3.3.7-
distjs/bootstrap.min.js"></script>
</body>
</html>
2. Login Admin
a. Controller
<?php
include "fungsi.php";
$pesan = '';
if(isset($_POST['no_induk'])) {
if($_POST['no_induk'] != '') {
} else {
$pesan = "ID Admin tidak boleh kosong&status=gagal";
}
} else {
$pesan = "Kamu harus memasukan ID Admin&status=gagal";
}
if(isset($_POST['password'])) {
if($_POST['password'] != '') {
$password = $_POST['password'];
$no_induk = $_POST['no_induk'];
$_SESSION["no_induk"] = $no_induk;
header("Location: data_karyawan.php");
} else {
$pesan = "ID Admin tidak ditemukan&status=gagal";
}
} else {
$pesan = "ID Admin tidak boleh kosong&status=gagal";
}
} else {
$pesan = "Kamu harus memasukan ID Admin&status=gagal";
}
if($pesan != '') {
header("Location: data_karyawan.php?message=".$pesan);
}
?>
b. View
<!DOCTYPE html>
<html lang="id_user">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<title>Silahkan Lakukan Presensi</title>
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css"
rel="stylesheet">
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
75
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
</style>
</head>
<body>
<div class="container">
<div class="col-md-12" style="margin-top: 20px;">
<div class="col-md-3"></div>
<?php } ?>
<?php } ?>
<div class="col-md-3"></div>
</div>
<div class="col-md-12">
<form class="form-signin"
action="proses_login_admin.php" method="POST">
<div style="text-align: center;">
<h3 class="form-signin-heading">Login
Admin</h3>
</div>
<label for="no_induk" class="sr-only">Nomor
Induk Khusus Admin</label>
<input name="no_induk" type="text" id="no_induk"
class="form-control" placeholder="Nomor Induk Khusus Admin" required
autofocus>
76
<br>
<label for="inputPassword" class="sr-
only">Password</label>
<input name="password" type="password"
id="password" class="form-control" placeholder="Password" required
autofocus>
<br>
<button class="btn btn-lg btn-primary btn-block"
type="submit">Masuk</button>
<a href="index.php" class="btn btn-lg btn-link
btn-block">Kembali</a>
</form>
</div>
</div>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.
js"></script>
<script src="bootstrap-3.3.7-
distjs/bootstrap.min.js"></script>
</body>
</html>
3. Data Karyawan
<?php
include "fungsi.php";
if(isset($_SESSION["no_induk"])) {
if($_SESSION["no_induk"] == '') {
header("Location: admin.php?message=Sessi login
kosong&status=gagal");
}
} else {
header("Location: admin.php?message=Sessi login tidak
ada&status=gagal");
}
?>
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Data Karyawan</title>
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css"
rel="stylesheet">
<style type="text/css">
body {
77
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
</style>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="">Halaman Admin</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active">
<a href="data_karyawan.php">Data Karyawan</a>
</li>
<li>
<a href="data_fungsi_karyawan.php">Fungsi Karyawan</a>
</li>
<li>
<a href="data_catatan.php">Catatan Presensi</a>
</li>
78
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="keluar.php">Keluar</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="jumbotron">
<div class="col-md-12">
<div class="col-md-4"></div>
<div class="col-md-4">
<?php if($_GET['status'] == 'berhasil') { ?>
<div class="alert alert-success" role="alert"><?php echo
$_GET['message']; ?></div>
<?php } else { ?>
<div class="alert alert-danger" role="alert"><?php echo
$_GET['message']; ?></div>
<?php } ?>
</div>
<?php } ?>
<?php } ?>
<div class="col-md-4"></div>
</div>
<div class="col-md-12">
<p>
<a class="btn btn-primary" href="tambah_karyawan.php"
role="button">Tambah Data Karyawan</a>
</p>
<th>Umur</th>
<th>Tanggal Lahir</th>
<th>Alamat</th>
<th>Fungsi Karyawan</th>
<th>Role</th>
<th>Pilihan</th>
</tr>
</thead>
<tbody>
<?php
if(count(Baca_Data_Karyawan()) > 0) {
foreach(Baca_Data_Karyawan() as $karyawan) {
?>
<tr>
<th scope="row"><?php echo $karyawan['no_induk']; ?></th>
<td><?php echo $karyawan['nama']; ?></td>
<td><?php echo $karyawan['umur']; ?></td>
<td><?php echo $karyawan['tgl_lahir']; ?></td>
<td><?php echo $karyawan['alamat']; ?></td>
<td><?php echo $karyawan['fungsi_karyawan']; ?></td>
<td><?php echo $karyawan['role']; ?></td>
<td scope="row">
<a class="btn btn-warning" href="edit_karyawan.php?no_induk=<?php
echo $karyawan['no_induk']; ?>">Edit</a>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.
js"></script>
<script src="bootstrap-3.3.7-distjs/bootstrap.min.js"></script>
</body>
80
</html>
a. Tambah Data Karyawan
<?php
include "fungsi.php";
$pesan = '';
$no_induk = $_POST['no_induk'];
$password = $_POST['password'];
$nama = $_POST['nama'];
$umur = $_POST['umur'];
$tgl_lahir = $_POST['tgl_lahir'];
$alamat = $_POST['alamat'];
$fungsi_karyawan = $_POST['fungsi_karyawan'];
$role = $_POST['role'];
if(count(Cek_Data_Karyawan($no_induk)) > 0) {
// ADA
$pesan = "ID Karyawan sudah pernah
terdaftar&status=gagal";
} else {
Simpan_Data_Karyawan($no_induk, $password, $nama, $umur,
$tgl_lahir, $alamat, $fungsi_karyawan, $role);
$pesan = "Data Karyawan berhasil
ditambah&status=berhasil";
}
} else {
$pesan = "Data tidak boleh kosong&status=gagal";
}
} else {
$pesan = "Kamu harus memasukan data karyawan&status=gagal";
}
if($pesan != '') {
header("Location: tambah_karyawan.php?message=".$pesan);
}
81
?>
////////////VIEW//////////////
include "fungsi.php";
$pesan = '';
$no_induk = $_POST['no_induk'];
$password = $_POST['password'];
$nama = $_POST['nama'];
$umur = $_POST['umur'];
$tgl_lahir = $_POST['tgl_lahir'];
$alamat = $_POST['alamat'];
$fungsi_karyawan = $_POST['fungsi_karyawan'];
$role = $_POST['role'];
if(count(Cek_Data_Karyawan($no_induk)) > 0) {
// ADA
$pesan = "ID Karyawan sudah pernah
terdaftar&status=gagal";
} else {
Simpan_Data_Karyawan($no_induk, $password, $nama, $umur,
$tgl_lahir, $alamat, $fungsi_karyawan, $role);
$pesan = "Data Karyawan berhasil
ditambah&status=berhasil";
}
} else {
$pesan = "Data tidak boleh kosong&status=gagal";
}
} else {
$pesan = "Kamu harus memasukan data karyawan&status=gagal";
}
82
if($pesan != '') {
header("Location: tambah_karyawan.php?message=".$pesan);
}
?>
c. Delete Data Karyawan
<?php
include "fungsi.php";
$pesan = '';
if(isset($_GET['no_induk'])) {
if($_GET['no_induk'] != '') {
$no_induk = $_GET['no_induk'];
if(count(Cek_Data_Karyawan($no_induk)) > 0) {
Delete_Data_Karyawan($no_induk);
$pesan = "Data Karyawan sudah dihapus&status=berhasil";
} else {
$pesan = "Karyawan tidak ditemukan&status=gagal";
}
} else {
$pesan = "ID Karyawan tidak ada&status=gagal";
}
} else {
$pesan = "Karyawan tidak ditemukan&status=gagal";
}
if($pesan != '') {
header("Location: data_karyawan.php?message=".$pesan);
}
?>
4. Data Fungsi Karyawan
<?php
include "fungsi.php";
if(isset($_SESSION["no_induk"])) {
if($_SESSION["no_induk"] == '') {
header("Location: admin.php?message=Sessi login
kosong&status=gagal");
}
} else {
header("Location: admin.php?message=Sessi login tidak
ada&status=gagal");
}
?>
83
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<title>Data Fungsi Karyawan</title>
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css"
rel="stylesheet">
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
</style>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
84
<div class="container">
<div class="jumbotron">
<div class="col-md-12">
<div class="col-md-4"></div>
<div class="col-md-4">
<?php if($_GET['status'] == 'berhasil') { ?>
<div class="alert alert-success"
role="alert"><?php echo $_GET['message']; ?></div>
<?php } else { ?>
<div class="alert alert-danger"
role="alert"><?php echo $_GET['message']; ?></div>
<?php } ?>
</div>
<?php } ?>
<?php } ?>
85
<div class="col-md-4"></div>
</div>
<div class="col-md-12">
<p>
<a class="btn btn-primary"
href="tambah_fungsi_karyawan.php" role="button">Tambah Fungsi
Karyawan</a>
</p>
<tr>
<td colspan="2">Data Fungsi
Karyawan kosong!</td>
</tr>
<?php } // ini tutup else ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.
js"></script>
<script src="bootstrap-3.3.7-
distjs/bootstrap.min.js"></script>
</body>
</html>
a. Tambah Fungsi Karyawan
<?php
include "fungsi.php";
$pesan = '';
$kode_fungsikaryawan = $_POST['kode_fungsikaryawan'];
$nama = $_POST['nama'];
if(count(Cek_Data_Fungsi_Karyawan($kode_fungsikaryawan)) >
0) {
// ADA
$pesan = "Fungsi karyawan sudah pernah
terdaftar&status=gagal";
} else {
Simpan_Data_Fungsi_Karyawan($kode_fungsikaryawan,
$nama);
$pesan = "Data Fungsi Karyawan berhasil
ditambah&status=berhasil";
}
} else {
87
if($pesan != '') {
header("Location: tambah_fungsi_karyawan.php?message=".$pesan);
}
?>
b. Update Fungsi Karyawan
<?php
include "fungsi.php";
$pesan = '';
if(isset($_POST['kode_fungsikaryawan_baru']) &&
isset($_POST['kode_fungsikaryawan_lama']) &&
isset($_POST['nama'])
) {
$kode_fungsikaryawan_baru =
$_POST['kode_fungsikaryawan_baru'];
$kode_fungsikaryawan_lama =
$_POST['kode_fungsikaryawan_lama'];
$nama = $_POST['nama'];
if(count(Cek_Data_Fungsi_Karyawan($kode_fungsikaryawan_lama)
) > 0) {
// ADA
Update_Data_Fungsi_Karyawan($kode_fungsikaryawan_baru,
$kode_fungsikaryawan_lama, $nama);
$pesan = "Data Fungsi Karyawan berhasil
diupdate&status=berhasil";
} else {
$pesan = "Data Fungsi Karyawan tidak
ditemukan&status=gagal";
}
} else {
$pesan = "Data tidak boleh kosong&status=gagal";
88
}
} else {
$pesan = "Kamu harus memasukan data&status=gagal";
}
if($pesan != '') {
header("Location: data_fungsi_karyawan.php?message=".$pesan);
}
?>
c. Delete Fungsi Karyawan
<?php
include "fungsi.php";
$pesan = '';
if(isset($_GET['fungsi_karyawan'])) {
if($_GET['fungsi_karyawan'] != '') {
$kode_fungsikaryawan = $_GET['fungsi_karyawan'];
if(count(Cek_Data_Fungsi_Karyawan($kode_fungsikaryawan)) >
0) {
Delete_Data_Fungsi_Karyawan($kode_fungsikaryawan);
$pesan = "Data Fungsi Karyawan sudah
dihapus&status=berhasil";
} else {
$pesan = "Fungsi Karyawan tidak ditemukan&status=gagal";
}
} else {
$pesan = "ID Fungsi Karyawan tidak ada&status=gagal";
}
} else {
$pesan = "Parameter Fungsi Karyawan tidak
ditemukan&status=gagal";
}
if($pesan != '') {
header("Location: data_fungsi_karyawan.php?message=".$pesan);
}
?>
5. Data Catatan
<?php
include "fungsi.php";
if(isset($_SESSION["no_induk"])) {
if($_SESSION["no_induk"] == '') {
header("Location: admin.php?message=Sessi login
kosong&status=gagal");
89
}
} else {
header("Location: admin.php?message=Sessi login tidak
ada&status=gagal");
}
?>
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<title>Data Catatan Presensi</title>
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css"
rel="stylesheet">
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #eee;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
90
</style>
<!-- datatable style -->
<link rel="stylesheet" type="text/css"
href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.css">
<div class="container">
<div class="jumbotron">
<div class="panel panel-default">
<div class="panel-heading">Data Histori
Presensi</div>
<div class="panel-body">
91
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.
js"></script>
<script src="bootstrap-3.3.7-
distjs/bootstrap.min.js"></script>
<!-- jquery -->
<script src="http://code.jquery.com/jquery-
1.11.0.min.js"></script>
<!-- jquery datatable -->
<script type="text/javascript" charset="utf8"
src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.js"></s
cript>
</script>
</body>
93
</html>
1. Halaman Presensi
4. Halaman Login
Pendekatan pengujian Blackbox digunakan untuk pengujian sistem ini. Black box
menunjukkan bahwa kemampuan yang terdapat pada framework dapat bekerja dengan
baik, informasi didapat dengan tepat dan hasil yang disampaikan akurat. Spesifikasi
fungsional digunakan untuk pengujian, tetapi baik desain maupun kode program tidak
diuji. Pada tabel dibawah ini ditampilkan test case pengujian menggunakan metode
blackboxtesting.
klik tombol
update
Melakukan Klik fitur Menampilkan Sesuai Valid
delete data hapus data pesan data Harapan
5
karyawan karyawan berhasil
dihapus
Proses Kelola Data Fungsi Karyawan
Melakukan Isi seluruh Menampilkan Sesuai Valid
tambah data form pesan data Harapan
fungsi tambah data berhasil
karyawan fungsi ditambahkan
dengan karyawan
mengisi form
tambah data
1
fungsi
karyawan
secara
lengkap
kemudian
klik tombol
simpan
Melakukan Isi beberapa Menampilkan Sesuai Valid
tambah data form pesan anda Harapan
fungsi tambah data harus mengisi
karyawan fungsi data
dengan karyawan
2 mengisi dan
beberapa membiarkan
form tambah beberapa
data fungsi yang
karyawan lainnya
kemudian kosong
102
klik tombol
simpan
Melakukan Isi seluruh Menampilkan Sesuai Valid
update data form update pesan data Harapan
fungsi data fungsi berhasil
karyawan karyawan diupdate
dengan
mengisi form
update data
3
fungsi
karyawan
secara
lengkap
kemudian
klik tombol
update
Melakukan Isi beberapa Menampilkan Sesuai Valid
update data form update pesan anda Harapan
fungsi data fungsi harus mengisi
karyawan karyawan data
dengan dan
mengisi membiarkan
4 beberapa beberapa
form update yang
data lainnya
karyawan kosong
kemudian
klik tombol
update
Melakukan Klik fitur Menampilkan Sesuai Valid
delete data hapus data pesan data Harapan
5
fungsi fungsi berhasil
karyawan karyawan dihapus
103
perangkat keras PC yang saling berhubungan. Sistem dapat berjalan dengan baik jika
didukung oleh fasilitas penunjang yang baik pula. Berikutnya adalah beberapa
peralatan dan bagian pemrograman yang diperlukan untuk membuat dan menjalankan
1. Perangkat Keras
Perangkat keras yang dipakai pada observasi ini yakni Laptop merk HP 14-
2. Perangkat Lunak
bentuk website.
d. Visual Studio Code, sebagai text editor yang digunakan untuk menulis
dilakukan pengkodean.
PENUTUP
4.1 Kesimpulan
Kesimpulan dapat ditarik berdasarkan temuan penelitian yang dibahas pada bab
pegawai dapat lebih mudah melakukan absensi dengan cepat dengan bantuan
2. Karyawan dapat lebih mudah melihat rekap kehadiran akhir bulan dengan
4.2 Saran
Berikut adalah beberapa saran yang dapat dibuat dari permasalahan yang ada:
2. Harus ada pemeliharaan sistem agar tidak terjadi kerusakan sistem sehingga
ketidakberuntungan informasi.
105
DAFTAR PUSTAKA
1265–1272.
Aziz, N., Pribadi, G., & Nurcahya, M. S. (2020). Analisa dan Perancangan Aplikasi
Chandra, A. Y. (2019). Analisis Performansi Antara Apache & Nginx Web Server
Dwi Wijaya, Y., & Wardah Astuti, M. (n.d.). Sistem Informasi Penjualan Tiket Wisata
Gede, W., Bratha, E., Program, M., Manajemen, M., Bhayangkara, U., Raya, J., &
106
Hardi, R. N. dan F. R. (2019). SISTEM INFORMASI PRESENSI KARYAWAN.
Hasan, S., & Muhammad, N. (2020). Sistem Informasi Pembayaran Biaya Studi
Berbasis Web Pada Politeknik Sains Dan Teknologi Wiratama Maluku Utara.
https://doi.org/10.36549/ijis.v5i1.66
Irnawati, O., & Darwati, I. (2020). Rancang Bangun Sistem Informasi Monitoring
Kurniawan, Y. I., Nurjaman, A. L., & Afuan, L. (2021). Sistem Presensi Karyawan
https://doi.org/10.34010/jati.v11i2
Listiawan, J., & Sediyono, E. (n.d.). Perancangan Sistem Informasi Presensi Bagi
M. Novendri, Saed, Ade Saputra, dan C. E. F. (2019). Aplikasi Inventaris Barang pada
MTs Nurul Islam Dumai Menggunakan PHP dan MySQL. Lentera Dumai,
10(2), 46–57.
Pratama, D., & Sariana, N. (2019). Rancang Bangun Sistem Informasi Penyewaan
107
Rachmadi, T. (2020). SISTEM BASIS DATA. TIGA E-book.
Raif, Teuku, dan M. R. (2021). ERD & Praktikum DBMS. Frontiers in Neuroscience,
14(1), 1–13.
Rosa, & Shalahuddin. (2017). Rekayasa Perangkat Lunak Terstruktur dan Berorientasi
https://doi.org/10.53682/edutik.v1i6.3296
Rusdi, I., Mulyani, A. S., & Herlina, I. (2020). Rancang Bangun Sistem Informasi
Pembelian Pada Cv. Cimanggis Jaya Depok. Jurnal AKRAB JUARA, 5(2),
180–197.
jurnal.pelitanusantara.ac.id/index.php/mantik/article/view/317
Siregar, H. F., & Sari, N. (2018). Rancang Bangun Aplikasi Simpan Pinjam Uang
And Motorcycle Spare Part Distributor Companies. In JTSI (Vol. 4, Issue 1).
108
Winoto, A. R. (2020). RANCANG BANGUN APLIKASI PRESENSI DENGAN
Yudi Arifin, N. dkk. (2021). Analisa Perancangan Sistem Informasi (P. T. Cahyono
System.
Zaini Muchtar, A., Informatika, T., Tinggi, S., Terpadu, T., Fikri, N., Munir, S., Si, S.,
109
DAFTAR RIWAYAT HIDUP
A. Biodata Mahasiswa
Agama : Katolik
V.Alfira Takala
110
SURAT KETERANGAN RISET
111
LAMPIRAN
112
Lampiran 2. Berita Acara Serah Terima
113
Lampiran 3. Dokumentasi Serah Terima Aplikasi
114