Anda di halaman 1dari 114

BAB 1

PENDAHULUAN

1.1 Latar Belakang Masalah

Pentingnya teknologi informasi dalam perkembangan perusahaan saat ini tidak

dapat diabaikan. Teknologi informasi memainkan peran krusial dalam kesuksesan

suatu perusahaan. Tanpa adanya teknologi informasi, suatu perusahaan akan

menghadapi kesulitan dalam mencapai pertumbuhan yang signifikan. Teknologi

informasi merupakan fasilitas yang mendukung berbagai aspek dalam sebuah

organisasi, dan menjadi kunci kesuksesan dalam dunia bisnis modern (Wesly Jayardi,

2023). SIA mengintegrasikan proses akuntansi dengan teknologi informasi untuk

membantu organisasi dalam melacak dan mengelola transaksi keuangan,

menghasilkan laporan keuangan, serta memenuhi kebutuhan pelaporan dan

pengambilan keputusan. SIA dapat mencakup berbagai modul seperti pembukuan,

penggajian, pengelolaan persediaan, dan pelaporan keuangan. Tujuan dari SIA adalah

untuk memastikan akurasi, keandalan, dan kecepatan dalam pengolahan informasi

keuangan organisasi. Salah satu bagian dari SIA adalah sistem absensi, yang

digunakan sebagai dasar penilaian kinerja karyawan terkait dengan kedisiplinan

(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

meningkatkan kinerja perusahaan.

Monitoring atau pemantauan dapat diartikan sebagai evaluasi terhadap

aktivitas yang telah dilakukan untuk mengetahui sejauh mana kesesuaian dengan

rencana, mengidentifikasi permasalahan yang muncul, menilai efektivitas pola kerja

1
2

dan manajemen dalam mencapai tujuan, serta mengukur kemajuan melalui hubungan

antara kegiatan dan tujuan yang telah ditetapkan (Irnawati & Darwati, 2020). Dalam

menjalankan Credit Union (CU), sebuah organisasi yang keanggotaannya melibatkan

masyarakat setempat, penting untuk memiliki sistem monitoring presensi. Credit

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

memberikan layanan keuangan kepada anggota-anggotanya dengan biaya yang lebih

rendah dibandingkan lembaga keuangan lainnya, serta mendorong tabungan,

pemberian pinjaman, dan promosi kesejahteraan ekonomi anggota.

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

B, Kabupaten Kuburaya, Provinsi Kalimantan Barat. PB Sunge Manur memfokuskan

pelayanan terhadap anggota yang berasal dari kelompok usaha kecil, usaha tani, atau

rumah tangga di pedesaan.

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

terjadi kendala kekeliruan dalam pencatatan yang dihadapi CU Gerakan Konsepsi


3

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

dalam melakukan presensi kehadiran.

Berdasarkan masalah yang muncul akibat penggunaan sistem presensi yang

masih konvensional, penulis berencana untuk mengembangkan sebuah aplikasi

monitoring presensi karyawan berbasis website. Aplikasi ini akan menjadi solusi bagi

CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur dalam proses

pengambilan keputusan terkait karyawan dan juga untuk mengatasi potensi

kecurangan dalam presensi. Pilihan menggunakan website sebagai teknologi ini

disebabkan oleh kemudahan dan kepraktisan implementasinya.

1.2 Maksud dan Tujuan

Maksud dari penulisan Tugas Akhir ini yakni berikut ini:

1. Mengimplementasikan ilmu yang didapat peneliti selama menuntut ilmu di

Universitas Bina Sarana Informatika.

2. Membantu menyediakan sistem presensi yang dibutuhkan oleh tempat magang

peneliti yaitu CUG KFP PK PB Sunge Manur.

3. Membuat sebuah aplikasi monitoring presensi yang dapat meningkatkan efisiensi

dan efektivitas kerja di CUG KFP PK PB Sunge Manur.

Adapun tujuan dari penulisan TugasAkhir sebagai salah satu syarat kelulusan Program

Diploma Tiga (D.III)Program Studi Sistem InformasiAkuntansi pada Universitas Bina

SaranaInformatika.
4

1.3 Metode Penelitian

1.3.1 Metode Pengumpulan Data

Untuk mendapatkan informasi yang diperlukan direkam sebagai hard copy Last

Venture, pencipta menggunakan beberapa teknik pengumpulan informasi yang

meliputi pengamatan, rapat, dan studi penulisan. Teknik-teknik tersebut akan

digambarkan sebagai berikut:

1. Observasi

Persepsi adalah teknik untuk mengumpulkan informasi dan data yang

dikeluarkan melalui survei dan persepsi langsung tentang bagaimana kerangka

berfungsi sehingga spesialis dapat menangani masalah yang terjadi, dan peneliti

dapat mengaplikasikan ke dalam sebuah sistem aplikasi presensi yang terdapat

pada CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur.

2. Wawancara

Wawancara merupakan metode yang dilaksanakan oleh peneliti dengan

koordinator CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur

dengan memberikan beberapa pertanyaan sehingga peneliti dapat mengetahui hal-

hal yang sedang dihadapi dan apa yang dibutuhkan dalam aplikasi presensi yang

terdapat pada CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge

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

perancangan dalam penulisan Tugas Akhir ini.


5

1.3.2 Metode Pengembangan Software

Dalam pengembangan perangkat lunak ini, digunakan metode prototype.

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

mencari solusi untuk menyelesaikan masalah tersebut. (Kurniawan et al., 2021)

1. Analisis Kebutuhan Software

Berdasarkan hasil diskusi dengan Koordinator PB Sunge Manur, sistem presensi

yang dibutuhkan mencakup 3 (tiga) hal, yaitu:

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

user, kelompok user, dan catatan presensi.

b. Mudah

Karyawan mengisi nomor id dan menekan tombol maka sistem langsung

mencatat identitas dan waktu presensi dari karyawan tersebut pada basisdata.

Jika karyawan melakukan presensi kedua kalinya, presensi tersebut akan

dicatat sebagai waktu karyawan keluar dari kantor.

c. Offline

Karena keterbatasan akses internet di lokasi Kantor CUG KFP PK PB Sunge

Manur, maka sistem haruslah dapat bekerja secara offline atau berada dalam

area jaringan lokal.

2. Desain Cepat

Kebutuhan sistem terkait presensi membutuhkan rancangan antarmuka yaitu

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 untuk Koordinator, dapat melakukan login untuk mengakses halaman

khusus admin. Untuk rancangan basis data memerlukan data karyawan, data

admin, data kelompok, dan data catatan presensi.

3. Bangun Prototype

Metode prototype yakni pendekatan dalam pengembangan perangkat lunak dengan

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.

4. Evaluasi Pengguna Awal

Tahap evaluasi ini adalah langkah awal dalam serangkaian kegiatan yang bertujuan

untuk mengeksplorasi dan memperoleh informasi tentang sejauh mana

keberhasilan suatu sistem prototype yang telah dibuat dalam pengukuran tingkat

keberhasilan sistem monitoring. Evaluasi dilakukan dari berbagai sudut pandang,

termasuk persepsi pengguna, organisasi, dan aspek teknologi dari sistem

informasinya.

5. Memperbaiki Prototype

Tahap ini merupakan proses suatu tindakan mengubah untuk mengembalikan

kekeliruan atau error yang terjadi pada sistem sehingga sistem dapat berjalan baik

sesuai kebutuhan pengguna.


7

6. Implementasi dan Pemeliharaan

Tahap implementasi ini dilakukan dan telah diketahui garis besar rencana yang

telah disusun ke tahapan selanjutnya yaitu membangun sistem monitoring presensi

berbasis web dengan menggunakan metode protoype. Pemeliharaan sistem

melibatkan serangkaian tindakan yang dilakukan untuk memastikan bahwa semua

sumber daya yang digunakan berfungsi dengan baik dan mendukung operasional

sistem secara optimal.

1.4 Ruang Lingkup

Ruang Lingkup penelitian ini adalah perancangan dan pembuatan website

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

Koordinator dan Staff CU.

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,

Kecamatan Kuala Mandor B, Kabupaten Kuburaya, Provinsi Kalimantan Barat.


BAB 2

LANDASAN TEORI

2.1 Konsep Dasar Sistem

Ide dasar dari sebuah framework adalah sekumpulan komponen berbasis PC

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

Kumpulan komponen yang berkolaborasi untuk mencapai fungsi atau tujuan

tertentu membentuk sistem. Individu, peralatan, pemrograman, metodologi, informasi,

dan aset berbeda yang diatur secara terorganisir dapat membentuk kerangka kerja.

Tujuan sistem adalah menghasilkan keluaran yang diinginkan dengan memproses

input yang masuk melalui mekanisme internalnya. Sistem dapat ditemui dalam

berbagai konteks, termasuk teknologi informasi, bisnis, transportasi, atau bahkan

kehidupan sehari-hari. (Simangunsong & Informatika, 2018).

Bagian-bagian ini termasuk individu, peralatan, pemrograman, informasi,

metodologi, sumber daya, dan ikli. Manusia berperan sebagai pengguna atau pelaku

dalam sistem, sedangkan perangkat keras adalah komponen fisik seperti komputer dan

perangkat jaringan yang digunakan untuk menjalankan sistem. Perangkat lunak

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

keluaran guna mencapai tujuan yang telah ditetapkan.

2.1.2 Informasi

Data merupakan konsekuensi dari penanganan informasi yang bernilai dan

penting bagi penerima data. Informasi memberikan pengetahuan, pemahaman, atau

wawasan kepada penerima yang dapat digunakan untuk mengambil keputusan,

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

sedemikian rupa sehingga memiliki relevansi, akurasi, keandalan, dan

kebermanfaatan. Informasi memiliki sifat yang dinamis dan dapat berkembang seiring

dengan perubahan data dan kebutuhan pengguna. (Yudi Arifin, 2021).

Informasi juga dapat dikatakan sebagai hasil daripengolahan data yang

memiliki makna dan relevansi bagipenerima atau pengguna. Informasi membawa

pemahaman atau pengetahuan tentang suatu subjek atau kejadian yang bisa dipakai

untuk pengambilan keputusan,pemecahan masalah,atau komunikasi. Informasi

memiliki beberapa karakteristik, seperti kebermaknaan, ketepatan, kebaruan,

kegunaan, dan keterkaitan dengan konteks yang relevan. Informasi dapat berupa teks,

gambar, suara, atau kombinasi dari berbagai media. Pentingnya informasi dalam
11

konteks apapun adalah meningkatkan pengambilan keputusan, melakukan tindakan

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.

2.1.3 Sistem Informasi

Kerangka kerja data adalah bermacam-macam terorganisir dari bagian-bagian

yang berhubungan yang mengumpulkan, membuat karena, interaksi, menyimpan serta

menyajikan data untuk membantu mengarahkan, berpikir kritis, dan tugas bisnis.

Kerangka data terdiri dari komponen, misalnya, peralatan, pemrograman, kumpulan

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,

mengawasi sumber daya, dan mencapai tujuan organisasi. Manajemen dan

pemeliharaan keamanan informasi, serta pengoperasian proses bisnis yang efisien dan

efektif, juga merupakan fungsi penting dari sistem informasi. (Dwi Wijaya & Wardah

Astuti, n.d.).

Pengguna, perangkat keras, perangkat lunak, data, prosedur, dan jaringan

komunikasi adalah bagian dari sistem informasi yang terintegrasi. Tujuan utama

sistem informasi adalah menyediakan data yang tepat waktu, relevan, & akurat kepada

pengguna yang membutuhkannya, sehingga memungkinkan pengambilan keputusan

yang baik & efektif serta menjalankan operasi bisnis dengan efisiensi yang tinggi.
12

Sistem informasi juga berperan dalam mengelola keamanan informasi & menjaga

integritas serta ketersediaan data. (Alfriza Frisdayanti, 2019).

Dari kutipan sbeelumnya, bisa disimpulkan yakni sisteminformasi yakni

sekumpulan data yangsaling terhubung & membentuk satu kesatuan informasi yang

berharga. Sistem ini memiliki tujuan untuk melakukan tugas-tugas secara terintegrasi

& bekerja bersama dalam mencapai hasil yang diinginkan.

2.1.4 Presensi

Presensi adalah proses mencatat kehadiran seseorang yang merupakan bagian

dari pelaporan aktivitas sebuah institusi atau bagian dari institusi tersebut. Presensi

melibatkan pengumpulan & pengaturan data kehadiran dengan cara yang

memudahkan pencarian & penggunaan data tersebut jika diperlukan oleh pihak yang

berkepentingan. (Listiawan & Sediyono, n.d.).

Presensi merupakan dokumen kehadiran yang sering digunakan dalam

berbagai kegiatan seperti sekolah & tempat kerja. Mesin Presensi dirancang untuk

memudahkan menghitung kehadiran karyawan dibandingkan dengan metode tulisan

tangan, melacak kedatangan & keberangkatan karyawan, serta mengatur semua

pencatatan & informasi dalam satu sistem yang terintegrasi. (Winoto, 2020).

Berdasarkan kutipan diatas dapat disimpulkan bahwa presensi adalah

pendataan kehadiran dalam suatu institusi yang memudahkan pencarian & penggunaan

data kehadiran. Dokumen ini umumnya digunakan di sekolah & tempat kerja. Mesin

Presensi membantu menghitung kehadiran karyawan, melacak kedatangan &

keberangkatan, serta mengelola pencatatan & informasi secara terintegrasi.


13

2.1.5 Karyawan

Karyawan merujuk kepada individu yang bekerja di sebuah perusahaan atau

instansi untuk melaksanakan tugas operasional & mendapatkan balas jasa berupa

komisi atau gaji. (Moedasir, 2022).

Keberjalan atau keberhasilan kegiatan dalam mencapai tujuan suatu organisasi

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

Website merupakansekumpulan halaman informasiyang bisa diakses internet.

Setiap individu, di berbagai lokasi & kapan pun, dapat mengaksesnya selama

terhubung ke jaringan internet. (Dwi Wijaya & Wardah Astuti, n.d.)

2. Internet

Internet dapat dijelaskan sebagai suatu jaringan atau sistem yang menghubungkan

komputer-komputer secara global, menggunakan protokol transmisi paket TCP/IP.

Internet ini melayani miliaran pengguna di seluruh dunia, memungkinkan mereka

untuk saling terhubung & bertukar informasi. (Yulianto & Firdaus, 2021)

3. Web Server
14

Web Server yakni sebuah perangkatkeras atau perangkatlunak yangbertindak

sebagai penyedia layanan untuk melayani permintaan dari klien atau pengguna

untuk mengakses halaman web atau aplikasi web. Fungsinya adalah untuk

menyimpan, mengelola, & mengirimkan konten web terhadap pengguna melalui

protokol HTTP. Web server menjalankan aplikasi web & menyediakan lingkungan

yang diperlukan untuk memproses permintaan dari klien, seperti menerima

permintaan, mengambil data dari basis data, memproses logika bisnis, &

mengirimkan respons kembali ke klien. Web server memainkan peran penting

dalam menyediakan akses & ketersediaan situs web kepada pengguna di seluruh

dunia. (Chandra, 2019)

Sebuah website adalah kumpulan halaman yang saling terhubung & biasanya

berada pada server yang sama. Website berisi informasi yangdiberikan oleh

individu,kelompok, atau organisasi. Secara umum, sebuah situsweb ditempatkan di

dalam serverweb. (Siregar & Sari, 2018).

Dari kutipan di atas, bisa disimpulkan yakni website merupakan kumpulan

halamaninformasi yang bisa diakses melalui internet. Halaman-halaman ini disimpan

di dalam server web & dapat diakses oleh pengguna dari berbagai lokasi selama

terhubung dengan internet.

2.1.7 Basis Data

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

dalam suatu sistem komputer. BasisData (database) dirancang untuk menyimpan,


15

mengelola, & mengorganisir data secara efisien, sehingga memungkinkan

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.

2.2 Teori Pendukung

Teori pendukung mengacu pada kerangka pemikiran & konsep yang menjadi

dasar & panduan dalam penulisan tugas akhir ini. Beberapa teori pendukung yang

digunakan sebagai referensi dalam penelitian ini adalah sebagai berikut.

2.2.1 Perancangan

Perancangan merupakan tahap dalam proses di mana suatu entitas

didefinisikan & direncanakan dengan menggunakan berbagai teknik. Tahap ini

melibatkan penjelasan tentang struktur, komponen rinci, & juga batasan yang akan

diterapkan selama proses implementasi. Dalam konteks ini, perancangan dapat

merujuk pada sistem yang direncanakan & diperinci dalam bentuk bagan alir sistem

(system flowchart). (Zaini Muchtar et al., 2019).

Perancangan merupakan tahapan dalam proses di mana suatu objek atau sistem

didefinisikan dengan menggunakan berbagai teknik yang beragam. Dalam

perancangan, terdapat deskripsi mengenai arsitektur & detail komponen yang akan
16

digunakan, serta mempertimbangkan keterbatasan yang mungkin dihadapi selama

proses pengerjaan. (Aziz, N., Pribadi, G., & Nurcahya, 2020).

Dari kutipan tersebut, dapat disimpulkan bahwa perancangan merupakan suatu

proses di mana suatu objek atau sistem didefinisikan menggunakan berbagai teknik

yang beragam. Proses perancangan melibatkan deskripsi tentang arsitektur, detail

komponen, serta mempertimbangkan keterbatasan yang mungkin terjadi selama

pengerjaan. Menurut konsep perancangan, sistem dapat diwujudkan dalam bentuk

bagan alir sistem yang berperan sebagai alat grafis untuk menggambarkan urutan

proses.

2.2.2 ERD (Entity Relationship Diagram)

ERD yakni bagan yang dipakai dalam rangka menggambarkan hubungan

antara elemen (substansi) dalam kerangka kerja atau kumpulan data. ERD

menggambarkan entitas, karakteristiknya, & hubungan di antara mereka menggunakan

simbol grafis. ERD membantu membayangkan struktur informasi, mengenali elemen

& sifat yang disertakan, & menggambarkan hubungan antara zat-zat ini seperti one-

to-one, one-to-many, atau many-to-many. ERD sering digunakan dalam perancangan

basis data untuk menggambarkan model konseptual dari basis data yang akan

dibangun.

ERD memberikan gambaran tentang bagaimana data bereaksi di dalam sebuah

database dengan cara memodelkan hubungan antara entitas-entitas tersebut. ERD

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

& data yang ingin kita simpan.

b. Atribut: Merupakan karakteristikatau informasi yang dimiliki oleh entitas

tersebut. Atribut dapat berupa data tunggal atau beberapa nilai.

c. Relasi: Merupakan hubungan alami yang terjadiantara satuatau lebihentitas.

Relasi ini menggambarkan bagaimana entitas-entitas terkait satu sama lain.

d. Link: Merupakan garis yang menghubungkan atributdengan entitas atauentitas

dengan relasi. Link ini menunjukkan keterkaitan antara entitas & atribut, serta

antara entitas & relasi dalam ERD.

Kardinalitas Relasi

a. Satu ke satu(One to One)

Setiap komponen pada Zat A memiliki hubungan dengan paling banyak satu

komponen pada Zat B, & sebaliknya, setiap komponen pada Unsur B memiliki

hubungan dengan paling banyak satu komponen pada Zat A

b. Satu ke banyak (One to Many)

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

c. Banyak ke satu (Many to One)

Setiap komponen di Zat A memiliki asosiasi dengan paling banyak satu

komponen di Elemen B. Kemudian lagi, setiap komponen di Zat B memiliki

asosiasi dengan jumlah komponen yang paling banyak di Elemen A


18

d. Banyak ke banyak (Many to Many)

Setiap komponen pada Zat A memiliki hubungan dengan jumlah komponen

paling banyak pada Unsur B, begitu pula sebaliknya, setiap komponen pada

Zat B memiliki hubungan dengan jumlah komponen terbanyak pada Zat A

Dari kutipan tersebut, dapat disimpulkan bahwa ERD adalah sebuah diagram

yang digunakan untuk merancang hubungan antara kegiatan-kegiatan yang sesuai

dengan kebutuhan dalam suatu organisasi.

Gambar 2. 1 Simbol ERD


Sumber: (Pratama & Sariana, 2019)

2.2.3 MySQL (Structured Query Language)

MySQL adalah kerangka kerja administrasi basis informasi (DBMS) sumber

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

Inquiry Language) yang digunakan untuk mengawasi basis informasi, penanganan

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,

karena kehandalannya, kecepatan, & skalabilitasnya. MySQL juga mendukung

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

bahasa pemrograman SQL (Structured Query Language) & digunakan untuk

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

lainnya. (Simangunsong & Informatika, 2018).

Secara keseluruhan, dapat disimpulkan bahwa MySQL adalah sistem

manajemen basis data (DBMS) yang terkenal & tersedia secara bebas untuk basis data

relasional. Ini digunakan untuk menyimpan, mengelola, & mengakses data. Dibuat

menggunakan bahasa pemrograman C & C++, MySQL mendukung berbagai platform

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

basis data secara remote.


20

2.2.4 PHPMyAdmin

PhpMyAdmin adalah sebuah aplikasi web yang dikembangkan dengan

menggunakan bahasa pemrograman PHP. Aplikasi ini memungkinkan pengguna

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, &

lain sebagainya. PhpMyAdmin dirancang dengan antarmuka yang ramah pengguna,

sehingga sangat mudah digunakan bahkan oleh pengguna baru. (Rumengan et al.,

2021).

PHPMyAdmin merupakan sebuah aplikasi web yang digunakan sebagai

antarmuka grafis untuk mengelola basis data MySQL. PHPMyAdmin ditulis dalam

bahasa pemrograman PHP & menyediakan berbagai fitur yang memudahkan

pengguna dalam mengelola basis data MySQL. Dengan menggunakan PHPMyAdmin,

pengguna dapat melakukan berbagai tugas seperti membuat & menghapus basis data,

membuat tabel, mengelola struktur tabel, mengimpor & mengekspor data,

menjalankan query SQL, mengelola pengguna & hak akses, serta melakukan

pemeliharaan & optimisasi basis data. (Sihombing, 2020).

Secara keseluruhan, dapat disimpulkan bahwa PhpMyAdmin adalah sebuah

aplikasi web yang menggunakan bahasa pemrograman PHP untuk melakukan

administrasi MySQL. Dengan menggunakan PhpMyAdmin, pengguna dapat

menjalankan perintah Query tanpa harus mengetikkan perintah-perintah seperti yang

dilakukan di MS DOS. Fungsionalitasnya mencakup administrasi pengguna & hak

akses, ekspor & impor database, manajemen database, manajemen label & struktur
21

tabel, & sebagainya. PhpMyAdmin memiliki antarmuka yang mudah digunakan &

ramah pengguna, sehingga cocok digunakan oleh pengguna baru.

2.2.5 Bahasa Pemrograman PHP

Bahasa pemrograman adalah sebuah set instruksi & aturan yang digunakan

untuk mengkomunikasikan perintah kepada komputer atau mesin agar dapat

melakukan tugas tertentu. Bahasa pemrograman digunakan untuk menulis kode yang

kemudian akan dieksekusi oleh komputer. PHP berarti "Hypertext Preprocessor". PHP

adalah bahasa pemrograman yang dikembangkan khusus untuk pembuatan aplikasi

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.

(Rosa & Shalahuddin, 2017).

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

memiliki berbagai kerangka kerja (framework) yang populer, seperti Laravel,

Symfony, & CodeIgniter, yang membantu pengembang dalam membangun aplikasi

web secara efisien dengan menyediakan struktur & fitur yang siap pakai. (M.

Novendri, Saed, Ade Saputra, 2019).

Dalam kesimpulan, dapat dikatakan bahwa bahasa pemrograman adalah

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

populer untuk mempermudah pengembangan aplikasi web.

2.2.6 UML (Unifield Modelling Languange)

UML yakni bahasastandar yang digunakan untuk merencanakan, melaporkan,

& mendemonstrasikan kerangka kerja pemrograman. Pengembang perangkat lunak

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 adalah bahasa yang digunakan untuk mengkarakterisasi,

menggambarkan, mengarang, & merekam bagian-bagian dari kerangka kerja produk.

UML dapat digunakan untuk menampilkan bisnis & kerangka kerja non-pemrograman

lainnya. Gagasan tentang program komputer yang terletak pada penulisan adalah

alasan untuk mendemonstrasikan UML. UML memberikan dokumentasi yang

membantu dalam mendemonstrasikan kerangka kerja menurut sudut pandang yang

berbeda. UML digunakan dalam berbagai bidang yang memerlukan pemodelan selain

pemodelan perangkat lunak. (Glenna Oesman, 2017)

Terdapat beberapa diagram grafis UML yaitu:

1) Use case diagram

Digunakan untuk menggambarkan interaksi antara aktor-aktor & fungsi-fungsi

sistem dalam suatu sistem perangkat lunak. Diagram ini membantu dalam

memahami kebutuhan pengguna atau pemangku kepentingan (stakeholder)

yang terlibat dalam sistem & bagaimana mereka berinteraksi dengan sistem
23

tersebut. Dalam use case diagram, aktor-aktor, yang bisa berupa pengguna

manusia, perangkat keras, atau sistem eksternal lainnya, digambarkan sebagai

entitas yang berinteraksi dengan sistem. Fungsi-fungsi sistem, yang disebut use

case, menggambarkan tugas-tugas yang dilakukan oleh sistem untuk

memenuhi kebutuhan pengguna atau pemangku kepentingan. (Rosa &

Shalahuddin, 2017).

Tabel 1. Simbol Use Case Diagram

Simbol Nama Keterangan


Aktor dalam use case diagram
merupakan entitas manusia,proses,
atau sistem lain yang berinteraksi
dengan sistem informasi yang
sedang dibuat.Meskipun simbol
dari aktor sering digambarkan
sebagai gambar orang, namun
Actor / Aktor sebenarnya aktor tersebut tidak
harus berupa manusia.Aktor dapat
berupa entitas apa pun yang
berinteraksi dengan sistem
informasi. Untuk memberi
identifikasi lebih jelas, umumnya
kata benda digunakan sebagai
awalan dalam penamaan aktor.
Use case dalam diagram
digambarkan sebagai elips dengan
nama use caseyang dituliskan di
Use case
dalam elips tersebut. Use case
mewakili fungsionalitas-
fungsionalitas yangdisediakan oleh
24

sistem, di manasetiap use case


merupakan unit yang saling
bertukar pesan dengan aktor atau
unit lainnya.Biasanya, untuk
memberikandeskripsi yang lebih
jelas, namause case sering diawali
dengan kata kerja.
Interaksi terjadi antara aktor & use
caseyang terlibat dalam suatu use
Association / case,di mana aktor
Association berkomunikasidengan use case
atau use casemelakukan interaksi
dengan aktor.
Menambahkanuse case tambahan
ke dalamsebuah use case yang
membutuhkanuse case tersebut
Include /
agar dapatberfungsi dengan baik
atau sebagaipersyaratan untuk
menjalankanuse case tersebut.
Tambahkanlahsebuah use case
tambahanke dalam sebuah use case
yangmemiliki kemampuan untuk
berdiri sendiri,bahkan tanpa
Extend /
keberadaan use case tambahan
Ekstensi
tersebut.Use case tambahan ini
biasanyamemiliki nama yang sama
denganuse case yang
ditambahkannya.
Hubunganantara generalisasi &
Generalization spesialisasidalam dua use case
/ Generalisasi menggambarkan hubungan umum-
khusus,di mana salah satu use case
25

memiliki fungsi yang lebih umum


daripada yang lainnya. Arah panah
mengarah pada use case yang
menjadi generalisasi.
Kotak digunakan untuk
System menggambarkan sistem yang
digunakan.
2) Activity Diagram

Menggambarkan proses sistem perangkat lunak atau alur kerja fungsi atau

urutan aktivitas. Objek & entitas sistem berinteraksi satu sama lain & melalui

serangkaian aktivitas terstruktur dalam diagram ini. Activity Diagram

menggunakan notasi grafis seperti simbol persegi panjang (yang mewakili

aktivitas), panah (yang mewakili aliran kontrol antara aktivitas), & simbol

lainnya untuk menggambarkan keputusan, garis waktu, & penggabungan alur.

(Rosa & Shalahuddin, 2017).

Tabel 2. Simbol Activity Diagram

Simbol Nama Keterangan


Aktivitas awal sistem digambarkan
Start Point / dalam keadaan awal diagram
Status Awal aktivitas. Simbol lingkaran padat
menunjukkan keadaan awal ini.
Bagan pergerakan memiliki status
End Point /
terakhir yang menunjukkan akhir
Status Akhir
dari tindakan kerangka kerja.
Dalam diagram aktivitas, aktivitas
Activity /
sistem biasanya didahului oleh kata
Aktivitas
kerja.
26

Peregangan afiliasi terlibat ketika


Decision /
ada lebih dari satu keputusan
Percabangan
tindakan dalam garis besar gerakan.
Digunakan untuk
mendemonstrasikan latihan yang
Fork
dilakukan secara berbaris dalam
bagan tindakan.
digunakan untuk mengidentifikasi
Join aktivitas yang diperlukan dalam
diagram aktivitas.
digunakan untuk mengidentifikasi
unit bisnis yang bertanggung jawab
atas tugas-tugas dalam diagram

atau Swimlane aktivitas.

3) Sequence Diagram

Digunakan untuk menggambarkan interaksi urutan waktu dari objek sistem

perangkat lunak. Dalam skenario atau urutan kejadian, diagram ini

menggambarkan bagaimana objek berkomunikasi & berinteraksi satu sama

lain. Sequence Diagram menggunakan notasi grafis seperti objek

(dilambangkan dengan persegi panjang) & pesan (dilambangkan dengan

panah) untuk menggambarkan interaksi antara objek-objek tersebut. Diagram

ini juga dapat menampilkan urutan waktu, garis hidup objek, & pemanggilan

metode antar objek. (Rosa & Shalahuddin, 2017)

Tabel 3. Simbol Sequence Diagram

Simbol Nama Keterangan


27

Objek entity, antarmuka yang saling


Lifeline / berinteraksi. (Leo, 2022)
Garis hidup Menyatakan kehidupan suatu objek.
(Rosa & Shalahuddin, 2017)
Spesifikasi komunikasi antar objek
Message berisi informasi-informasi tentang
Entry aktivitas yang terjadi dalam
komunikasi tersebut. (Leo, 2022)
Spesifikasi komunikasi antar objek
mencakup panggilan metode & hasil
Message to
nilai pengembalian yang berkaitan
Self
dengan aktivitas yang terjadi. (Leo,
2022)
Di luar sistem informasi terdapat
pihak, proses, & sistem lain yang
berinteraksi dengan yang sedang
dibuat. Akibatnya, meskipun simbol
aktor dalam diagram biasanya
Nama aktor
Actor / Aktor menggambarkan seseorang, aktor
Atau
tersebut tidak selalu harus berupa
orang. Penghibur sering kali disapa
dengan sesuatu di awal ekspresi
yang menggambarkan pekerjaan
atau elemen penghibur.
Menunjukkan protes yang
Object /
berinteraksi satu sama lain melalui
Objek
perdagangan pesan.
mendemonstrasikan objek yang
aktif & berinteraksi satu sama lain,
Waktu Aktif menampilkan setiap tahapan yang
terkait dengan waktu aktif. Tidak
ada waktu aktif terpisah untuk aktor.
28

panah yang menunjuk ke objek yang


Pesan Tipe dibuat menunjukkan bahwa suatu
Create objek menciptakan objek lain.

menunjukkan bahwa suatu objek


memanggil objek lain atau operasi
& metodenya sendiri. Objek yang
berisi operasi atau metode yang
Pesan Tipe
dipanggil ditunjukkan dengan arah
Call
panah. Dalam contoh ini, operasi
atau metode yang dipanggil harus
ada dalam diagram kelas untuk kelas
objek yang berinteraksi.
Menunjukkan bahwa sebuah artikel
mengirimkan informasi/input/data
Pesan Tipe
ke item yang berbeda. Bantalan baut
Send
berfokus pada artikel yang
mendapat informasi.
Menunjukkan bahwa suatu item,
setelah menjalankan aktivitas atau
Pesan Tipe teknik tertentu, mengembalikan
Return nilai pengembalian ke artikel lain.
Objek yang menerima nilai balik
ditunjukkan oleh arah panah.
menandakan bahwa satu objek
mengakhiri siklus hidup yang lain.
Pesan Tipe Objek yang diakhiri ditunjukkan
Destroy oleh arah panah. Idealnya juga harus
ada operasi penghancuran jika ada
operasi pembuatan.
4) Class Diagram

Digunakan untuk menggambarkan konstruksi & koneksi antar kelas dalam

kerangka produk. Dengan menggambarkan kelas yang ada, atributnya, &


29

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

mewakili atribut, metode, & visibilitas.

Tabel 4. Simbol Class Diagram

Simbol Nama Keterangan


Bundel adalah bermacam-
macam dari setidaknya satu
Package
kelas yang digabungkan
menjadi satu.
Dalam struktur framework,
setiap class memiliki nama,
Kelas
karakteristik, & aktivitas atau
teknik.
Seperti ide titik koneksi dalam
Antarmuka /
pemrograman yang diatur
Interface
objek.
Hubungan antar kelas yang
memiliki kepentingan umum,
Asosiasi / seringkali ditunjukkan oleh
Association afiliasi yang juga dapat
digabungkan dengan
keragaman.
Keterkaitan antar kelas yang
menunjukkan penggunaan satu
Asosiasi
kelas oleh kelas lainnya,
Berarah /
seringkali ditunjukkan dengan
Directed
afiliasi yang juga dapat
Association
digabungkan dengan
bermacam-macam.
30

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

3.1 Tinjauan Kelembagaan

Pada tinjauan CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge

Manur ini akan dibahas mengenai sejarah berdirinya CU Gerakan Konsepsi Filosofi

Petani Pancur Kasih, struktur organisasi & fungsi.

Gambar 3. 1 CU Gerakan Konsepsi Filosofi Petani Pancur Kasih

3.1.1 Sejarah Berdiri

Sebelas tahun yang lalu, tepatnya 30 April 2011, 30 orang aktivis senior

Gerakan Pemberdayaan Pancur Kasih (GPPK) mendeklarasikan berdirinya CU baru

yakni Credit Union Gerakan Konsepsi Filosofi Petani Pancur Kasih(CUGKFPPK).

Kehadiran CU Gerakan Konsepsi Filosofi Petani Pancur Kasih sejatinya sebagai

bentuk konkret dari gagasan dan konsep filosofi petani yang menjadi roh

pengembangan ekonomi kerakyatan yang dilakukan GPPK selama ini. Berdirinya CU

Gerakan Konsepsi Filosofi Petani Pancur Kasih adalah momentum yang penting

dalam kancah Gerakan Credit Union karena merupakan tonggak awal dalam sejarah

penerapan Konsepsi Filosofi Petani dan wahana pengimplementasi ideology

31
32

pemberdayaan holistic Pancur Kasih sebagai solusi atas persoalan hidup rakyat dan

sekaligus sebagai counter terhadap praktik-praktik ekonomi kapitalistik Konsepsi

Filosofi Petani ini digagas dan dikembangkan oleh A.R Mecer, tokoh gerakan Credit

Union Kalimantan dan Nusantara yang bertujuan untuk mengembalikan dan

memurnikan gerakan Credit Union sebagai gerakan ekonomi kerakyatan yang khas,

mengembangkan kesejahteraan anggota dibidang moral, sosial dan finansial yang

sesungguhnya, bukan simpan pinjam uang

3.1.2 Struktur Organisasi dan Fungsi

Berikut ini merupakan struktur organisasi dan fungsi pada CU Gerakan

Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur.

a. Struktur Organisasi CU Gerakan Konsepsi Filosofi Petani Pancur Kasih

PB Sunge Manur

RAPAT ANGGOTA
TAHUNAN

PENASEHAT

DEWAN PENGURUS BADAN PENGAWAS

PANGKALATN NAGARI PONTIANAK

BIDANG PEMBERDAYAAN BIDANG ORGANISASI & BIDANG USAHA, KEUANGAN & SISTEM PENGENDALIAN
ANGGOTA PSDM PERLINDUNGAN INTERNAL (SPI)

PANGKALATN BINUA SUNGE MANUR

Gambar 3. 2 Struktur organisasi


33

b. Fungsi Organisasi

Adapun fungsi dari struktur organisasi CU Gerakan Konsepsi Filosofi Petani

Pancur Kasih adalah sebagai berikut :

1) Rapat Anggota Tahunan

Rapat yang wajib diikuti oleh seluruh anggota yang sudah bergabung

dengan CU Gerakan Konsepsi Filosofi Petani Pancur Kasih.

2) Penasehat

Membantu dan mengembangkan CU Gerakan Konsepsi Filosofi Petani

Pancur Kasih,jika ada perubahan visi misi akan ditanyakan kepada

penasehat.

3) Badan Pengawas

Melakukan pembinaan pengembangan kualitas kinerja Rapat Anggota

Tahunan, Kinerja Dewan Pimpinan dan kinerja seluruh staff CU Gerakan

Konsepsi Filosofi Petani Pancur Kasih.

4) Dewan Pengurus

Mengontrol managemen, membuat poljak.

5) Pangkalan Nagari Pontianak

Memiliki tugas penuh dalam mengelola aktivis CU Gerakan Konsepsi

Filosofi Petani Pancur Kasih, semua kegiatan perencanaan sampai dengan

pengawasan

6) Bidang Pemberdayaan Anggota.

Memiliki tugas untuk mengurus bidang pendidikan,motivasi,sosialisasi

dan penyegaran anggota.

7) Bidang Organisasi dan PSDM

Memiliki tugas dan memberi pelatihan dan pembinaan.


34

8) Bidang Usaha dan Perlindungan

Memiliki tugas untuk melindungi keuangan CU dan klaim-klaim anggota

9) Pangkalatn Binua Sunge Manur

Memiliki tugas penuh dalam mengelola seluruh kegiatan yang ada didalam

pangkalatn binua tersebut

10) Sistem Pengendalian Internal(SPI)

Memiliki tugas untuk memastikan operasional CU sesuai dengan poljak.

3.2 Tinjauan Kasus

3.2.1 Prosedur Sistem Berjalan

Prosedur sistem yang berjalan merupakan analisis mengenai tahapan-tahapa

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

melakukan paraf di lembar presensi yang sudah di sediakan oleh sekretariat,

dan pada akhir bulan akan di hitung jumlah kehadiran.

b. Prosedur Catatan

Catatan presensi sebagai catatan jam kerjanya karyawan dari catatan jam

masuk dan keluarnya karyawan.

c. Prosedur Cetak Catatan

Cetak catatan berupa rekapitulasi presensi untuk diserahkan sebagai laporan

presensi karyawan.
35

3.2.2 Rancangan Masukan

Berikut ini adalah penjelasan dari masukan:

1. Nama masukan : login

Fungsi : sebagai admin (koordinator) masuk ke dalam halaman

admin

Sumber : admin

Tujuan : masuk ke halaman admin

Frekuensi : setiap kali admin input data

Media : monitor komputer

2. Nama masukan : form karyawan

Fungsi : sebagai admin (koordinator) mengelola data

karyawan

Sumber : admin

Tujuan : mengelola data karyawan

Frekuensi : setiap kali admin mengelola data karyawan

Media : monitor komputer

3. Nama masukan : form fungsi karyawan

Fungsi : sebagai admin (koordinator) mengelola data fungsi

karyawan

Sumber : admin

Tujuan : mengelola data fungsi karyawan

Frekuensi : setiap kali admin mengelola data fungsi karyawan

Media : monitor komputer

4. Nama masukan : form presensi

Fungsi : sebagai karyawan melakukan presensi


36

Sumber : admin (koordinator) dan staff CU

Tujuan : melakukan presensi

Frekuensi : setiap kali karyawan ingin melakukan presensi

Media : monitor komputer

3.2.3 Rancangan Keluaran

Bentuk keluaran berupa tampilan pada layar monitor. Berikut ini penjelasan keluaran

dari website:

1. Nama keluaran : data karyawan

Fungsi : melihat data karyawan

Sumber : admin (koordinator)

Tujuan : melihat list data karyawan

Frekuensi : setiap admin ingin melihat data karyawan

Media : monitor komputer

2. Nama keluaran : data fungsi karyawan

Fungsi : melihat data fungsi karyawan

Sumber : admin (koordinator)

Tujuan : melihat list data fungsi karyawan

Frekuensi : setiap admin ingin melihat data fungsi karyawan

Media : monitor komputer

3. Nama keluaran : data catatan presensi

Fungsi : melihat data catatan presensi

Sumber : admin (koordinator)

Tujuan : melihat list data catatan presensi

Frekuensi : setiap admin ingin melihat data catatan presensi


37

Media : monitor computer

4. Nama keluaran : cetakan catatan presensi

Fungsi : mencetak data catatan presensi dalam berbagai

pilihan bentuk

Sumber : admin (koordinator)

Tujuan : mencetak list data catatan presensi

Frekuensi : setiap admin ingin mencetak data catatan presensi

Media : monitor komputer

3.2.4 Permasalahan Pokok

Berdasarkan hasil riset atau penelitian sistem absensi pada CU Gerakan

Konsepsi Filosofi Petani Pancur Kasih ,ditemukan beberapa permasalahan pokok yang

menghambat prosedur sistem ini berjalan.Adapun beberapa permasalahan pokok yang

ditemulan yaitu:

a. Proses presensi masih memakai teknik konvensional dengan alat tulis &

kertas,sehingga kurang efisien apabila akan melakukan rekap data,memakan

waktu yang lama dan sering terjadi kendala,kekeliruan dalam proses

pencatatan.

b. Kendala tersebut dapat berpengaruh pada saat menghitung kenaikan

gaji,potongan gaji,perhitungan lemburan maupun pemutusan kontrak kerja.

c. Hal ini juga dapat menjadi celah kecurangan bagi karyawan dalam melakukan

presensi kehadiran.
38

3.2.5 Pemecahan masalah

Setelah menguraikan permasalahan yang terjadi pada CU Gerakan Konsepsi

Filosofi Petani Pancur Kasih untuk sistem presensi maka peneliti memberikan ide

alternatif atau solusi untuk memecahkan permasalahan tersebut, yaitu :

a. Dengan menggunakan teknologi berbasis website bisa mempermudah untuk

pengelolahan data presensi terutama efesiensi untuk melakukan rekap data

kemudian efesiensi waktu yang lebih cepat dan efesiensi untuk proses

pencatatan kehadiran presensi yang lebih akurat.

b. Dengan dibuatnya sistem presensi ini diharapkan dapat membantu untuk

menghitung kenaikan gaji,potongan gaji,perhitungan lembur mau pun

pemutusan kontrak kerja secara akurat.

c. Dengan dibuatnya sistem presensi ini dapat menyimpan data digital kedalam

komputer untuk mengurangi resiko kecurangan bagi karyawan dalam

melakukan presensi kehadiran.

3.3 Analisa Kebutuhan Software

Terbagi menjadi 3 subbab yaitu analisa kebutuhan, usecase diagram, dan activity

diagram, berikut penjelasannya:

3.3.1 Analisa Kebutuhan

Berikut merupakan analisis kebutuhansistem berdasarkan akses user yang terdiri dari

koordinator dan staff cu.

1. User coordinator

a. Login

b. Melakukan presensi

c. Mengelola data karyawan


39

d. Mengelola data fungsi karyawan

e. Melihat catatan presensi

f. Mencetak catatan presensi

2. User staff cu

a. Melakukan presensi

3.3.2 Use Case Diagram

Dalam sistem aplikasi terdapat dua aktor yang memiliki hak akses yang berbeda-

beda, digambarkan dalam diagram use case berikut :

Gambar 3. 3 Use case diagram


Aktor administrator atau koordinator biasanya memiliki hak akses untuk

mengelola semua data database. Skenario yang digambarkan pada model use case

diagram untuk aktor admin adalah sebagai berikut:

a. Nama Use case : Presensi

Deskripsi : Menjelaskan proses input presensi pada sistem website

Aktor : Admin (Koordinator) dan Staff CU


40

Aksi Aktor Reaksi Sistem


Skenario Normal
1. Melakukan submit dengan
menginputkan no induk
2. Klik submit 3. Validasi Data Benar
4. Data tersimpan di database
5. Muncul pesan “Berhasil
Absen pada tanggal dan jam
user submit”
Skenario Alternatif
1. Melakukan submit dengan
menginputkan id user dan
password
2. Klik submit 3. Validasi Data Salah
4. Data no induk tidak tersedia
(karena salah input atau
tidak terdaftar)
5. Tampilan akan tetap berada
di halaman presensi dan
menunjukkan jika id
koordinasi tidak ditemukan
b. Nama Use case : Login

Deskripsi : Menjelaskan proses login admin pada sistem website

Aktor : Admin (Koordinator)

Aksi Aktor Reaksi Sistem


Skenario Normal
1. Melakukan input no induk
admin dan password
2. Klik tombol login 3. Validasi no induk admin dan
password di database
41

4. Data no induk admin dan


password tersedia pada tabel
database.
5. Masuk ke halaman
dashboard (halaman admin
website)
Skenario Alternatif
1. Melakukan input no induk
admin dan password pada
form login
2. Klik tombol login 3. Validasi no induk admin dan
password di database.
4. Data no induk admin atau
password tidak ditemukan
(karena salah input atau tidak
terdaftar)
5. Tampilan akan tetap berada
di halaman login dan
menunjukkan jika id
koordinasi atau password
tidak ditemukan
c. Nama Use case : Data karyawan

Deskripsi : Melihat, menambah, mengedit, dan menghapus data

karyawan

Aktor : Admin (Koordinator)

Aksi Aktor Reaksi Sistem


Skenario Normal
1. Melakukan Akses pada
halaman admin
2. Menampilkan data karyawan
3. Klik tambah data
42

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

Deskripsi : Melihat, menambah, mengedit, dan menghapus data fungsi

karyawan

Aktor : Admin (Koordinator)


43

Aksi Aktor Reaksi Sistem


Skenario Normal
1. Melakukan Akses pada
halaman admin
2. Menampilkan data fungsi
karyawan
3. Klik tambah data
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
44

20. Halaman menampilkan list


data terbaru setelah hapus
data baru
e. Nama Use case : Catatan Presensi

Deskripsi : Menampilkan seluruh catatan presensi karyawan dengan jam

masuk dan jam keluar otomatis

Aktor : Admin (Koordinator)

Aksi Aktor Reaksi Sistem


Skenario Normal
1. Melakukan Akses pada
halaman admin
2. Klik menu catatan presensi
3. Menampilkan data catatan
presensi
4. Cetak catatan presensi
dengan langsung memilih
hasil cetakan berupa pdf,
excel, dll.
5. Mencetak catatan presensi
6. Mendapat cetakan presensi
3.3.3 Activity Diagram

Activity diagram digunakan untuk memanfaatkan diagram use case untuk

memodelkan alur kerja proses dan urutan aktivitasnya. Bagan gerakan menunjukkan

perkembangan umum kontrol. Diagram aktivitas juga dapat mempermudah

pengembang aplikasi untuk memahami urutan kerja sistem secara mendetail sehingga

sistem dapat berfungsi dengan baik. Garis besar gerakan harus terlihat sebagai berikut:

A. Activity diagram presensi : admin memasukkan no induk untuk melakukan

presensi. Jika berhasil, sistem akan menampilkan catatan berhasil login pada
45

tanggal dan jam saat karyawan presensi. Jika gagal, halaman akan

menampilkan no induk tidak ditemukan.

Gambar 3.3.3 A. activity diagram presensi


B. Activity diagram login: login untuk admin (koordinator) dilakukan dengan

menginputkan no induk admin dan password. Jika berhasil, halaman langsung

diarahkan ke halaman admin. Jika gagal, halaman akan menampilkan no induk

admin tidak ditemukan.


46

Gambar 3.3.3 B. Activity diagram login

Activity diagram data karyawan: Setelah masuk, hanya administrator

(koordinator) yang dapat mengakses halaman ini. Admin dapat melihat, menambah,

mengedit, dan menghapus data pegawai pada halaman data pegawai.


47

Gambar 3.3.3 C. Activity diagram data karyawan

C. Activity diagram data fungsi karyawan: Setelah masuk, hanya administrator

(koordinator) yang dapat mengakses halaman ini. Admin dapat melihat,

mengedit, dan menghapus data fungsi karyawan pada halaman data fungsi

karyawan.
48

Gambar 3.3.3 D. Activity diagram data fungsi karyawan

D. Activity diagram catatan presensi : halaman ini hanya bisa diakses oleh admin

(koordinator) setelah melaksanakan login. Pada halaman catatan presensi, bisa

dapat melihat data catatan presensi dan mencetaknya.


49

Gambar 3.3.3 E. Activity diagram catatan presensi

3.4 Desain

Tahap desain terbagi menjadi beberapa penjelesan, yaitu Entity Relationship

Diagram(ERD), Logical Relational Structure(LRS), spesifikasi file, dan beberapa

diagram UML(Unified Modelling Language).

3.4.1 Entity Relationship Diagram (ERD)

Rencana basis informasi membuat perencanaan tabel yang digambarkan oleh Entity

Relationship Diagram(ERD).
50

Gambar 3.4.1 Entity Relationship Diagram (ERD)

3.4.2 Logical Relational Structure (LRS)

Gambar 3.4.2 Logical Relational Structure (LRS)

3.4.3 Spesifikasi File

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

ditentukan dalam database: absensi_db

1. Tabel Karyawan
51

Nama Tabel : karyawan

Fungsi : menyimpan data karyawan (user)

Primary key : id_user

Software : MySQL

Tabel III. 1 Karyawan

No Field name Data Type Ket


1 id_user int(11) Primary key
2 no_induk int(11)
3 password varchar(30)
4 nama varchar(100)
5 umur int(11)
6 tgl_lahir date
7 alamat varchar(100)
8 fungsi_karyawan Int(11) Foreign key
9 role enum(“admin”,
“staff cu”)
2. Tabel Fungsi Karyawan

Nama Tabel : fungsi karyawan

Fungsi : menyimpan data fungsi dari karyawan

Primary key : kode_ fungsi karyawan

Software : MySQL

Tabel III. 2 Fungsi Karyawan

No Field name Data Type Ket


1 kode _ fungsikaryawan int(11) Primary key
2 nama varchar(100)
3. Tabel Catatan
52

Nama Tabel : catatan

Fungsi : menyimpan data presensi karyawan (user)

Primary key : id_ presensi

Software : MySQL

Tabel III. 3 Catatan

No Field name Data Type Ket


1 id_presensi int(11) Primary key
2 id_user int(11) Foreign key
3 status_absen varchar(20)
4 tanggal date
5 jam_masuk varchar(20)
6 jam_keluar varchar(20)

3.4.4 Class Diagram


53

Gambar 3.4. 3 Class Diagram

3.4.5 Sequence Diagram

Diagram Sequence adalah penggambaran visual yang menggambarkan kolaborasi

antar objek dalam kerangka. Garis besar Suksesi ini memberikan gambaran masa pakai

item dan pesan yang dikirim dan diterima di antara item tersebut.

A. Sequence Diagram Presensi

Presensi merupakan proses yang dilakukan oleh seluruh user karyawan

(koordinator dan staff CU) agar dapat melakukan presensi saat masuk dan

keluar dari kantor. Proses presensi dapat dilihat pada gambar di bawah ini:

B. Sequence Diagram Login

Login merupakan proses yang dilakukan oleh seluruh user koordinator agar

dapat mengakses halaman admin. Proses login dapat dilihat pada gambar di

bawah ini:
54

C. Sequence Diagram Data Karyawan

Kelola data karyawan merupakan proses yang dilakukan oleh karyawan

koordinator agar dapat mengelola data user berupa menambah, mengedit, dan

menghapus data. Proses kelola data karyawan dapat dilihat pada gambar di

bawah ini:
55

D. Sequence Diagram Data Fungsi Karyawan

Kelola data fungsi karyawan merupakan proses yang dilakukan oleh user

koordinator agar dapat mengelola data fungsi karyawan berupa menambah,

mengedit, dan menghapus data. Proses kelola data fungsi karyawan dapat

dilihat pada gambar di bawah ini:


56

E. Sequence Diagram catatan presensi

Melihat catatan presensi merupakan proses yang dilakukan oleh user

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.4.6 Rancangan Antar Muka (Interface)

Menggambarkan dan menjelaskan bentuk rancangan antar muka (interface) yang

terdapat dalam sistem presensi.

A. Interface Halaman Login Admin

Gambar 3.4.6. A. Interface Halaman Login Admin


B. Interface Halaman Data Karyawan
58

Gambar 3.4.6. B. Interface Halaman Data Karyawan


C. Interface Halaman Data Fungsi Karyawan

Gambar 3.4.6. C. Interface Halaman Data Fungsi Karyawan


D. Interface Halaman Data Catatan Presensi
59

Gambar 3.4.6. D. Interface Halaman Catatan Presensi


E. Interface Halaman Presensi

Gambar 3.4.6. E. Interface Halaman Presensi


F. Interface Halaman Presensi Masuk
60

Gambar 3.4.6. F. Interface Halaman Presensi Masuk


G. Interface Halaman Presensi Keluar

Gambar 3.4.6. G. Interface Halaman Presensi Keluar


H. Interface Halaman Tambah Data Karyawan
61

Gambar 3.4.6. H. Interface Halaman Tambah Data Karyawan


I. Interface Halaman Edit Data Karyawan

Gambar 3.4.6. I. Interface Halaman Edit Data Karyawan


J. Interface Halaman Tambah Data Fungsi Karyawan
62

Gambar 3.4.6. J. Interface Halaman Tambah Data Fungsi Karyawan


K. Interface Halaman Edit Data Fungsi Karyawan

Gambar 3.4.6. K. Interface Halaman Edit Data Fungsi Karyawan

3.5 Implementasi

Tahap implementasi penulis membuat beberapa bahasan, seperti code program,

blackbox testing, dan spesifikasi yang diperlukan.

3.5.1 Code Program

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();
}
}

function Simpan_Data_Karyawan($no_induk, $password, $nama, $umur,


$tgl_lahir, $alamat, $fungsi_karyawan, $role) {
global $db;
$sql = "INSERT INTO karyawan(no_induk, password, nama, umur,
tgl_lahir, alamat, fungsi_karyawan, role)";
$sql .= "VALUES('".$no_induk."', '".$password."',
'".$nama."', '".$umur."', '".$tgl_lahir."', '".$alamat."',
'".$fungsi_karyawan."', '".$role."')";
$data = mysqli_query($db, $sql);

if($data) {
return true;
} else {
return false;
}
}

function Update_Data_Karyawan($no_induk_lama, $no_induk_baru,


$password, $nama, $umur, $tgl_lahir, $alamat, $fungsi_karyawan,
$role) {
global $db;
$sql = "UPDATE karyawan SET no_induk = '".$no_induk_baru."',
password = '".$password."', nama = '".$nama."', umur = '".$umur."',
tgl_lahir = '".$tgl_lahir."', alamat = '".$alamat."',
fungsi_karyawan = '".$fungsi_karyawan."', role = '".$role."' WHERE
no_induk = '".$no_induk_lama."'";
$data = mysqli_query($db, $sql);

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();
}
}

function Simpan_Data_Fungsi_Karyawan($kode_fungsikaryawan, $nama) {


global $db;
$sql = "INSERT INTO fungsi_karyawan(kode_fungsikaryawan,
nama)";
$sql .= "VALUES('".$kode_fungsikaryawan."', '".$nama."')";
$data = mysqli_query($db, $sql);

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();
}
}

function Login_Admin($password, $no_induk) {


global $db;
$sql = "SELECT * FROM karyawan WHERE no_induk =
'".$no_induk."' AND role = 'admin' AND password = '".$password."'";
68

$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_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'];

// CARI DATA KARYAWAN BERDASARKAN ID KARYAWAN


70

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 if(isset($_GET['message'])) { ?>


<?php if($_GET['message'] != '') { ?>

<div class="col-md-6" style="text-align: center;">


<?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-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'];

if(count(Login_Admin($password, $no_induk)) > 0) {


74

$_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 if(isset($_GET['message'])) { ?>


<?php if($_GET['message'] != '') { ?>

<div class="col-md-6" style="text-align: center;">


<?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-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>

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


<?php if($_GET['message'] != '') { ?>

<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>

<div class="panel panel-default">


<div class="panel-heading">Data Karyawan</div>
<div class="panel-body">
<table class="table table-hover">
<thead>
<tr>
<th>ID</th>
<th>Nama</th>
79

<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>

<a class="btn btn-danger" href="hapus_karyawan.php?no_induk=<?php


echo $karyawan['no_induk']; ?>">Hapus</a>
</td>
</tr>
<?php } // ini tutup while ?>
<?php } else { // ini dari if else ?>
<tr>
<td colspan="3">Data 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>
80

</html>
a. Tambah Data Karyawan
<?php

include "fungsi.php";

$pesan = '';

if(isset($_POST['no_induk']) && isset($_POST['password']) &&


isset($_POST['nama']) && isset($_POST['umur']) &&
isset($_POST['tgl_lahir']) && isset($_POST['alamat']) &&
isset($_POST['fungsi_karyawan']) && isset($_POST['role'])) {

if($_POST['no_induk'] != '' && $_POST['password'] != '' &&


$_POST['nama'] != '' && $_POST['umur'] != '' && $_POST['tgl_lahir']
!= '' && $_POST['alamat'] != '' && $_POST['fungsi_karyawan'] != ''
&& $_POST['role'] != '') {

$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//////////////

b. Update Data Karyawan


<?php

include "fungsi.php";

$pesan = '';

if(isset($_POST['no_induk']) && isset($_POST['password']) &&


isset($_POST['nama']) && isset($_POST['umur']) &&
isset($_POST['tgl_lahir']) && isset($_POST['alamat']) &&
isset($_POST['fungsi_karyawan']) && isset($_POST['role'])) {

if($_POST['no_induk'] != '' && $_POST['password'] != '' &&


$_POST['nama'] != '' && $_POST['umur'] != '' && $_POST['tgl_lahir']
!= '' && $_POST['alamat'] != '' && $_POST['fungsi_karyawan'] != ''
&& $_POST['role'] != '') {

$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

<a class="navbar-brand" href="">Halaman


Admin</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="data_karyawan.php">Data
Karyawan</a>
</li>
<li class="active">
<a
href="data_fungsi_karyawan.php">Fungsi Karyawan</a>
</li>
<li>
<a href="data_catatan.php">Catatan
Presensi</a>
</li>
</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>

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


<?php if($_GET['message'] != '') { ?>

<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>

<div class="panel panel-default">


<div class="panel-heading">Data Fungsi
Karyawan</div>
<div class="panel-body">
<table class="table table-hover">
<thead>
<tr>
<th>Kode Fungsi
Karyawan</th>
<th>Fungsi Karyawan</th>
<th>Pilihan</th>
</tr>
</thead>
<tbody>
<?php
if(count(Baca_Data_Fungsi_Karyaw
an()) > 0) {
foreach(Baca_Data_Fungsi_Kar
yawan() as $fungsikaryawan) {
?>
<tr>
<th scope="row"><?php echo
$fungsikaryawan['kode_fungsikaryawan']; ?></th>
<td scope="row"><?php echo
$fungsikaryawan['nama']; ?></td>
<td scope="row">
<a class="btn btn-
warning" href="edit_fungsi_karyawan.php?fungsi_karyawan=<?php echo
$fungsikaryawan['kode_fungsikaryawan']; ?>">Edit</a>

<a class="btn btn-


danger" href="hapus_fungsi_karyawan.php?fungsi_karyawan=<?php echo
$fungsikaryawan['kode_fungsikaryawan']; ?>">Hapus</a>
</td>
</tr>
<?php } // ini tutup while ?>
<?php } else { // ini dari if
else ?>
86

<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 = '';

if(isset($_POST['kode_fungsikaryawan']) && isset($_POST['nama'])) {

if($_POST['kode_fungsikaryawan'] != '' && $_POST['nama'] != '')


{

$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

$pesan = "Data tidak boleh kosong&status=gagal";


}
} else {
$pesan = "Kamu harus memasukan data fungsi
karyawan&status=gagal";
}

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'])
) {

if($_POST['kode_fungsikaryawan_baru'] != '' &&


$_POST['kode_fungsikaryawan_lama'] != '' &&
$_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">

<!-- css tambahan -->


<link rel="stylesheet"
href="https://cdn.datatables.net/buttons/1.7.0/css/buttons.dataTable
s.min.css">
</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>
<a href="data_karyawan.php">Data
Karyawan</a>
</li>
<li>
<a
href="data_fungsi_karyawan.php">Fungsi Karyawan</a>
</li>
<li class="active">
<a href="data_catatan.php">Catatan
Presensi</a>
</li>
</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="panel panel-default">
<div class="panel-heading">Data Histori
Presensi</div>
<div class="panel-body">
91

<table class="table table-hover"


id="table_id">
<thead>
<tr>
<th>ID</th>
<th>Nama</th>
<th>Status</th>
<th>Tanggal</th>
<th>Jam Masuk</th>
<th>Jam Keluar</th>
</tr>
</thead>
<tbody>
<?php
if(count(Baca_Data_Catatan()) > 0) {
foreach(Baca_Data_Catatan() as
$catat) {
?>
<tr>
<th scope="row">
<?php echo
$catat['id_presensi']; ?></th>
<td><?php echo $catat['nama'];
?></td>
<td><?php echo
$catat['status_absen']; ?></td>
<td><?php echo date('d-m-Y',
strtotime($catat['tanggal'])); ?></td>
<td><?php echo
$catat['jam_masuk']; ?></td>
<td><?php echo
$catat['jam_keluar']; ?></td>
</tr>
<?php } // ini tutup while ?>
<?php } else { // ini dari if else
?>
<tr>
<td colspan="5">Histori presensi
kosong!</td>
</tr>
<?php } // ini tutup else ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
92

<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 tambahan -->


<script
src="https://cdn.datatables.net/buttons/1.7.0/js/dataTables.buttons.
min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js
"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.m
in.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts
.js"></script>
<script
src="https://cdn.datatables.net/buttons/1.7.0/js/buttons.html5.min.j
s"></script>
<script
src="https://cdn.datatables.net/buttons/1.7.0/js/buttons.print.min.j
s">
</script>

<!-- fungsi datatable -->


<script>
$(document).ready(function () {
$('#table_id').DataTable({
// script untuk membuat export data
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]
})
});

</script>
</body>
93

</html>

3.5.2 Tampilan Website

1. Halaman Presensi

2. Halaman Presensi Masuk

3. Halaman Presensi Keluar


94

4. Halaman Login

5. Halaman Data Karyawan


95

6. Halaman Tambah Data Karyawan

7. Halaman Update Data Karyawan


96

8. Halaman Data Fungsi Karyawan

9. Halaman Tambah Data Fungsi Karyawan


97

10. Halaman Update Data Fungsi Karyawan

11. Halaman Catatan Presensi


98

3.5.3 Blackbox Testing

Pendekatan pengujian Blackbox digunakan untuk pengujian sistem ini. Black box

testing merupakan pengujian yang berhubungan dengan antarmuka framework dengan

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.

Skenario Test Case Hasil yang Hasil Kesimpulan


No.
Pengujian Diharapkan Pengujian
Proses Presensi
Melakukan Input no Menampilkan Sesuai Valid
presensi induk: diisi presensi pada Harapan
dengan data yang tanggal dan
1
menginputkan benar jam tersebut
no induk yang tercatat
benar berhasil
Melakukan Input no Sistem Sesuai Valid
2
presensi induk: diisi menampilkan Harapan
99

dengan data yang pesan id


menginputkan salah karyawan tidak
no induk yang ditemukan
salah
Proses Login
Melakukan Input no Menampilkan Sesuai Valid
login dengan induk dan menu halaman Harapan
menginputkan password: admin
1
no induk dan diisi data
password yang benar
yang benar
Melakukan Input no Sistem Sesuai Valid
login dengan induk dan menampilkan Harapan
menginputkan password: pesan id
2
no induk atau diisi data karyawan tidak
password yang salah ditemukan
yang salah
Proses Kelola Data Karyawan
Melakukan Isi seluruh Menampilkan Sesuai Valid
tambah data form pesan data Harapan
karyawan tambah data berhasil
dengan karyawan ditambahkan
mengisi form
tambah data
1
karyawan
secara
lengkap
kemudian
klik tombol
simpan
Melakukan Isi beberapa Menampilkan Sesuai Valid
2
tambah data form pesan anda Harapan
100

karyawan tambah data harus mengisi


dengan karyawan data
mengisi dan
beberapa membiarkan
form tambah beberapa
data yang
karyawan lainnya
kemudian kosong
klik tombol
simpan
Melakukan Isi seluruh Menampilkan Sesuai Valid
update data form update pesan data Harapan
karyawan data berhasil
dengan karyawan diupdate
mengisi form
update data
3
karyawan
secara
lengkap
kemudian
klik tombol
update
Melakukan Isi beberapa Menampilkan Sesuai Valid
update data form update pesan anda Harapan
karyawan data harus mengisi
dengan karyawan data
mengisi dan
4
beberapa membiarkan
form update beberapa
data yang
karyawan lainnya
kemudian kosong
101

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

Proses Lihat Data Catatan


Melihat data Klik fitur Menampilkan Sesuai Valid
catatan data catatan data presensi Harapan
presensi presensi karyawan
1
disertai waktu
presensi yang
tepat
Cetak catatan Mencetak Berhasil Sesuai Valid
presensi catatan mencetak Harapan
presensi catatan
dengan presensi sesuai
berbagai pilihan bentuk
2
macam cetak
bentuk
pilihan
cetak (CSV,
Excel, PDF)

3.5.4 Spesifikasi Hardware dan Software

Peralatan dan kerangka pemrograman pada PC merupakan perpaduan dari beberapa

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

kerangka kerja yang sedang dibuat.

1. Perangkat Keras

Perangkat keras yang dipakai pada observasi ini yakni Laptop merk HP 14-

cm0xxx AMD A9-9425 RADEON R5, dengan OS Windows 10 Home 64-bit,

dan RAM 4GB, serta GPS Garmin 78s.


104

2. Perangkat Lunak

Perangkat lunak yang dipakai pada observasi ini yakni:

a. Microsoft office 2013, digunakan untuk melakukan pengolahan dan

penulisan laporan penelitian.

b. Google chrome, digunakan untuk pengujian berjalannya sistem dalam

bentuk website.

c. MySQL, digunakan untuk mengelola Database.

d. Visual Studio Code, sebagai text editor yang digunakan untuk menulis

kode-kode bahasa pemrograman sistem.

e. Figma, digunakan untuk membuat desain user interface sebelum

dilakukan pengkodean.

f. Draw.io, digunakan untuk mendesain user requirement dengan

menggunakan metode pemodelan UML.


BAB IV

PENUTUP

4.1 Kesimpulan

Kesimpulan dapat ditarik berdasarkan temuan penelitian yang dibahas pada bab

sebelumnya dan masalah dengan sistem operasi.:

1. Di CU Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur

pegawai dapat lebih mudah melakukan absensi dengan cepat dengan bantuan

sistem absensi berbasis website.

2. Karyawan dapat lebih mudah melihat rekap kehadiran akhir bulan dengan

sistem absensi berbasis website.

3. Dengan adanya site based presence framework, dapat memudahkan Fasilitator

untuk mengecek partisipasi setiap pekerja secara cepat dan tepat di CU

Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur.

4.2 Saran

Berikut adalah beberapa saran yang dapat dibuat dari permasalahan yang ada:

1. Pelatihan penggunaan aplikasi absensi diperlukan bagi anggota CU Gerakan

Konsepsi Filosofi Petani Pancur Kasih PB Sunge Manur.

2. Harus ada pemeliharaan sistem agar tidak terjadi kerusakan sistem sehingga

dapat selalu di-refresh tanpa henti.

3. Adanya back up informasi jika sewaktu-waktu kerangka menghadapi

ketidakberuntungan informasi.

105
DAFTAR PUSTAKA

Agustin, S. S. (2022). Rancangan Desain Arsitektur Pada Bangunan Gudang Data

Kesehatan Bandar Lampung. Jurnal Teknologi Terkini, 2(5), 1–13.

Alfriza Frisdayanti. (2019). Peranan brainware dalam sistem informasi manajemen

jurnal ekonomi dan manajemen sistem informasi. Sistem Informasi,

1(September), 60–69. https://doi.org/10.31933/JEMSI

Ardiansyah S, A. R., Suryatiningsih, & Telnoni, P. A. (2019). Aplikasi Presensi

Pegawai Berbasis Web Web-Based Employee Presence Application. 5(2),

1265–1272.

Aziz, N., Pribadi, G., & Nurcahya, M. S. (2020). Analisa dan Perancangan Aplikasi

Pembelajaran Bahasa Inggris Dasar Berbasis Android. Jurnal IKRAITH-

INFORMATIKA, 1(3), 107–115.

Chandra, A. Y. (2019). Analisis Performansi Antara Apache & Nginx Web Server

Dalam Menangani Client Request. Jurnal Sistem Dan Informatika (JSI),

14(1), 48–56. https://doi.org/10.30864/jsi.v14i1.248

Dwi Wijaya, Y., & Wardah Astuti, M. (n.d.). Sistem Informasi Penjualan Tiket Wisata

Berbasis Web Menggunakan Metode Waterfall. http://www.php.net.

Gede, W., Bratha, E., Program, M., Manajemen, M., Bhayangkara, U., Raya, J., &

Penulis, K. (2022). LITERATURE REVIEW KOMPONEN SISTEM

INFORMASI MANAJEMEN: SOFTWARE, DATABASE DAN

BRAINWARE. 3(3). https://doi.org/10.31933/jemsi.v3i3

Glenna Oesman. (2017). DASAR UNIFIED MODELING LANGUAGE (UML).

106
Hardi, R. N. dan F. R. (2019). SISTEM INFORMASI PRESENSI KARYAWAN.

Jurnal Ilmiah Rekayasa Dan Manajemen Sistem Informasi, 5(2), 230–235.

Hasan, S., & Muhammad, N. (2020). Sistem Informasi Pembayaran Biaya Studi

Berbasis Web Pada Politeknik Sains Dan Teknologi Wiratama Maluku Utara.

IJIS - Indonesian Journal On Information System, 5(1), 44.

https://doi.org/10.36549/ijis.v5i1.66

Irnawati, O., & Darwati, I. (2020). Rancang Bangun Sistem Informasi Monitoring

Kehadiran Karyawan (Studi Kasus: CV. SKI Jakarta ).

Kurniawan, Y. I., Nurjaman, A. L., & Afuan, L. (2021). Sistem Presensi Karyawan

Menggunakan Quick Response Code di CV . Jenderal Software. Jurnal

Teknologi Dan Informasi (JATI), 11(September), 168–182.

https://doi.org/10.34010/jati.v11i2

Leo, A. (2022). Analisis Dan Perancangan Sistem Informasi Penjualan Aksesoris

Motor Berbasis Web Pada Toko Exolid Variasi.

Listiawan, J., & Sediyono, E. (n.d.). Perancangan Sistem Informasi Presensi Bagi

Peserta Didik dalam Mengikuti Pembelajaran Berbasis Web.

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.

Moedasir, A. (2022). Pengertian, Jenis, dan Tugas Karyawan. Majoo.

Pratama, D., & Sariana, N. (2019). Rancang Bangun Sistem Informasi Penyewaan

Kendaraan Berbasis Web. Jurnal Sistem Informasi Dan Sains Teknologi,

1(1), 1–10. https://doi.org/10.31326/sistek.v1i1.321

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

Objek. In Informatika Bandung.

Rumengan, A., Mewengkang, A., & Kaparang, D. R. (2021). Sistem Informasi

Manajemen Kearsipan Berbasis Web. Edutik : Jurnal Pendidikan Teknologi

Informasi Dan Komunikasi, 1(6), 709–718.

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.

Sihombing, B. R. D. (2020). Sistem Informasi Penyewaan Alat Bantu pada PT Bintang

Selatan Agung Kota Palembang Berbasis Web. Politeknik Negeri Sriwijaya.

Simangunsong, A., & Informatika, M. (2018). Sistem Informasi Pengarsipan

Dokumen Berbasis Web. Jurnal Mantik Penusa, 2(1), 11–19. http://e-

jurnal.pelitanusantara.ac.id/index.php/mantik/article/view/317

Siregar, H. F., & Sari, N. (2018). Rancang Bangun Aplikasi Simpan Pinjam Uang

Mahasiswa Fakultas Teknik Universitas Asahan Berbasis Web. Jurnal

Teknologi Informasi, 2(1), 53. https://doi.org/10.36294/jurti.v2i1.409

Wesly Jayardi, J. (2023). Rancangan Sistem Informasi Kepegawaian Pada Perusahaan

Distributor Sparepart Mobil Dan Motor Design of Information System in Car

And Motorcycle Spare Part Distributor Companies. In JTSI (Vol. 4, Issue 1).

108
Winoto, A. R. (2020). RANCANG BANGUN APLIKASI PRESENSI DENGAN

MEDIA SUARA MENGGUNAKAN MFCC DAN ANN BERBASIS

ANDROID. Jurnal Ilmiah SAINSBERTEK, 1(1), 1–9.

Yudi Arifin, N. dkk. (2021). Analisa Perancangan Sistem Informasi (P. T. Cahyono

(Ed.)). Yayasan Cendikia Mulia Mandiri.

Yulianto, H. D., & Firdaus, R. B. (2021). PERANCANGAN SISTEM INFORMASI

MONITORING MAGANG DESIGN INTERNSHIP MONITORING

INFORMATION SYSTEM. In IJIS Indonesian Journal on Information

System.

Zaini Muchtar, A., Informatika, T., Tinggi, S., Terpadu, T., Fikri, N., Munir, S., Si, S.,

& Kom, M. (2019). PERANCANGAN WEB E-COMMERCE UMKM

RESTORAN BAKSO AREMA MENGGUNAKAN FRAMEWORK

LARAVEL. Jurnal Teknologi Terpadu, 5(1).

109
DAFTAR RIWAYAT HIDUP

A. Biodata Mahasiswa

Nama : V.Alfira Takala

Tempat / Tgl Lahir : Aruk, 14 November 1994

Jenis Kelamin : Perempuan

Agama : Katolik

Alamat Rumah :Dusun Aruk,Desa Sebunga,Kecamatan Sajingan


Besar,Kabupaten Sambas

B. Riwayat Pendidikan Formal


1. SDN 01 Aruk, Lulus tahun 2008
2. SMP Amkur Sambas, Lulus tahun 2011
3. SMK Sajingan Besar, Lulus tahun 2015

Pontianak, 01 Juli 2023

V.Alfira Takala

110
SURAT KETERANGAN RISET

111
LAMPIRAN

Lampiran 1. Absensi Cu Gerakan Konsepsi Filosofi Petani Pancur Kasih PB Sunge


Manur

112
Lampiran 2. Berita Acara Serah Terima

113
Lampiran 3. Dokumentasi Serah Terima Aplikasi

114

Anda mungkin juga menyukai