Selamat datang di Sistem Absensi & HRIS, sebuah aplikasi web komprehensif yang dibangun dari nol menggunakan Laravel 12. Proyek ini dirancang sebagai studi kasus nyata untuk mendemonstrasikan implementasi arsitektur Laravel yang bersih, aman, dan profesional.
Aplikasi ini mengelola alur kerja esensial manajemen sumber daya manusia, mulai dari absensi harian dengan validasi canggih, alur persetujuan lembur dan cuti, hingga perhitungan gaji otomatis yang siap cetak dalam format PDF. Semua disajikan dalam antarmuka yang modern, responsif, dan intuitif berkat Tailwind CSS.
"Aku tidak berilmu; yang berilmu hanyalah DIA. Jika tampak ilmu dariku, itu hanyalah pantulan dari Cahaya-Nya."
- Fitur Utama
- Teknologi yang Digunakan
- Panduan Instalasi
- Akun Demo untuk Login
- Struktur Folder
- Panduan Kontribusi
Sistem ini dilengkapi dengan serangkaian fitur komprehensif untuk manajemen karyawan:
Sistem login yang aman dengan tiga tingkat akses berbeda:
- Admin: Memiliki akses penuh ke seluruh sistem, termasuk manajemen pengguna dan pengaturan.
- Atasan: Dapat menyetujui atau menolak pengajuan lembur dan cuti dari bawahannya.
- Karyawan: Dapat melakukan absensi, melihat riwayat, dan mengajukan lembur atau cuti.
- Validasi QR Code: Kode QR unik yang digenerate setiap hari untuk mencegah kecurangan.
- Validasi GPS & Radius: Memastikan karyawan hanya bisa absen di dalam radius lokasi kantor yang telah ditentukan.
- Alur pengajuan yang terstruktur dari Karyawan ke Atasan.
- Fitur persetujuan (Approve/Reject) dengan kolom catatan untuk feedback.
- Kemampuan untuk mengunggah dokumen pendukung (misalnya, surat sakit).
- Perhitungan gaji yang akurat berdasarkan data kehadiran, potongan, dan total jam lembur.
- Fitur cetak Slip Gaji individual dalam format PDF yang profesional.
- Laporan Absensi Bulanan per karyawan.
- Audit Log untuk melacak semua aktivitas penting yang terjadi di dalam sistem.
- Konfigurasi jam kerja (masuk dan pulang), lokasi kantor (latitude & longitude), serta radius absensi yang valid.
| Komponen | Teknologi |
|---|---|
| Backend | PHP 8.2, Laravel 12 |
| Frontend | Blade, Tailwind CSS, Alpine.js |
| Database | MySQL / MariaDB |
| Server Lokal | XAMPP / Laragon |
| Library Utama | laravel/breeze, barryvdh/laravel-dompdf |
Bagian ini memuat tiga skenario instalasi: untuk pengembangan lokal, deployment ke server VPS (atau shared hosting dengan SSH), dan deployment ke shared hosting tanpa SSH (via cPanel).
Langkah-langkah ini ditujukan untuk menyiapkan lingkungan pengembangan di mesin Anda sendiri (misalnya, laptop atau PC).
Pastikan perangkat lunak berikut sudah terinstal di komputer Anda:
- PHP 8.2+: Download PHP
- Composer: Get Composer
- Node.js 16+ (beserta npm): Download Node.js
- Server Database (MySQL 5.7+ atau MariaDB): XAMPP atau Laragon adalah pilihan populer.
- Git: Download Git
-
Clone Repositori Buka terminal, navigasikan ke direktori kerja Anda, lalu jalankan:
git clone [https://github.com/Alghifari888/sistem_cuti_karyawan.git](https://github.com/Alghifari888/sistem_cuti_karyawan.git) cd sistem_cuti_karyawan -
Install Dependensi (Backend & Frontend)
composer install npm install
-
Konfigurasi Lingkungan (.env) Salin file konfigurasi contoh dan generate kunci aplikasi unik.
cp .env.example .env php artisan key:generate
-
Setup Database
- Buat sebuah database baru di server MySQL Anda (misalnya, melalui phpMyAdmin) dengan nama
db_sistem_absensi. - Buka file
.envdan sesuaikan konfigurasinya:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=db_sistem_absensi DB_USERNAME=root DB_PASSWORD=
- Buat sebuah database baru di server MySQL Anda (misalnya, melalui phpMyAdmin) dengan nama
-
Migrasi & Seeding Database Perintah ini akan membuat semua tabel dan mengisinya dengan data awal (akun admin, atasan, karyawan).
php artisan migrate --seed
-
Buat Symbolic Link untuk Storage Penting agar file yang di-upload dapat diakses dari web.
php artisan storage:link
-
Jalankan Server Pengembangan
- Terminal 1 (Vite): Meng-compile aset CSS & JS.
npm run dev
- Terminal 2 (Server Laravel): Menjalankan aplikasi.
php artisan serve
- Terminal 1 (Vite): Meng-compile aset CSS & JS.
-
Akses Aplikasi Buka
http://127.0.0.1:8000di browser Anda.
Panduan ini untuk server yang memberikan Anda akses terminal/SSH.
- Clone Repositori: Hubungkan via SSH,
cdke direktori web Anda, lalugit clone .... - Konfigurasi .env Produksi:
cp .env.example .env- Edit file
.env: setAPP_ENV=production,APP_DEBUG=false, dan isi detail database produksi. - Jalankan
php artisan key:generate.
- Install Dependensi Produksi:
composer install --optimize-autoloader --no-devnpm installnpm run build
- Migrasi & Optimasi:
php artisan migrate --seed --force(gunakan--seedhanya jika butuh data awal).php artisan config:cachephp artisan route:cachephp artisan view:cache
- Konfigurasi Web Server: Arahkan Document Root ke folder
/publicproyek Anda. - Atur Hak Akses:
sudo chown -R www-data:www-data storage bootstrap/cachedansudo chmod -R 775 storage bootstrap/cache. - Symbolic Link:
php artisan storage:link. - Setup Cron Job: Untuk generate QR Code harian, tambahkan cron job berikut di server Anda (edit dengan
crontab -e):* * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
Metode ini bersifat manual jika tidak ada akses terminal.
-
Persiapan di Lokal:
- Jalankan
composer install --optimize-autoloader --no-devdannpm run build. - Hapus folder
node_modules. - Kompres semua file proyek (termasuk folder
vendor) ke dalam satu file.zip.
- Jalankan
-
Unggah & Ekstrak di cPanel:
- Login ke cPanel, buka
File Manager, masuk kepublic_html. UploaddanExtractfile.zipAnda ke dalam sebuah folder (misal:sistem-absensi).
- Login ke cPanel, buka
-
Atur Struktur Folder:
- Pindahkan semua isi dari
sistem-absensi/publickepublic_html. - Edit file
public_html/index.php, ubah path-nya:// Ganti 'sistem-absensi' dengan nama folder Anda require __DIR__.'/sistem-absensi/vendor/autoload.php'; $app = require_once __DIR__.'/sistem-absensi/bootstrap/app.php';
- Pindahkan semua isi dari
-
Setup Database:
- Gunakan
MySQL Database Wizarddi cPanel untuk membuat database, user, dan password. - Ekspor database lokal Anda ke file
.sql. - Impor file
.sqltersebut ke database baru melaluiphpMyAdmindi cPanel.
- Gunakan
-
Konfigurasi Final:
- Edit file
.envdi dalam foldersistem-absensi. - Atur
APP_ENV=production,APP_DEBUG=false,APP_URL=https://domainanda.com. - Masukkan detail koneksi database dari cPanel.
- Symbolic Link: Minta bantuan support hosting Anda untuk membuat symbolic link dari
public_html/storagekesistem-absensi/storage/app/public. - Cron Job: Cari menu
Cron Jobsdi cPanel. Atur perintah untuk berjalan setiap hari:(Path PHP mungkin berbeda, cek dokumentasi hosting Anda)./usr/local/bin/php /home/user_cpanel/public_html/sistem-absensi/artisan schedule:run >> /dev/null 2>&1
- Edit file
Setelah instalasi dan seeding berhasil, Anda dapat login menggunakan akun berikut:
-
Admin
- Email:
[email protected] - Password:
password
- Email:
-
Atasan
- Email:
[email protected] - Password:
password
- Email:
-
Karyawan
- Email:
[email protected] - Password:
password
- Email:
sistem-absensi/
βββ app/
β βββ Http/
β β βββ Controllers/
β β β βββ Admin/ # Controller untuk admin
β β β βββ Atasan/ # Controller untuk atasan
β β β βββ Karyawan/ # Controller untuk karyawan
β βββ Models/ # Model database
β βββ Observers/ # Model observers
βββ database/
β βββ migrations/ # Skema database
β βββ seeders/ # Data awal
βββ resources/
βββ views/ # Tampilan Blade
Kami menyambut baik kontribusi dari siapa pun.
- Fork repositori ini.
- Clone fork Anda:
git clone https://github.com/NAMA_ANDA/sistem_cuti_karyawan.git - Buat branch baru:
git checkout -b fitur/nama-fitur-baru - Lakukan perubahan, commit, dan push.
- Buat Pull Request dari fork Anda ke repositori ini.
- Ikuti standar PSR-12 dan gaya kode Laravel.
- Gunakan format Conventional Commits untuk pesan commit yang jelas.
- Fokus pada satu fitur atau perbaikan per Pull Request.
Terima kasih telah berkontribusi! π
This project is licensed under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Proyek ini dilisensikan di bawah Lisensi MIT.
Hak Cipta (c) 2025 Alghifari888
Proyek ini menggunakan Lisensi MIT, yang berarti Anda bebas menggunakan, menyalin, mengubah, dan mendistribusikan perangkat lunak ini, termasuk untuk keperluan komersial, selama menyertakan pemberitahuan hak cipta dan lisensi asli.
Perangkat lunak ini disediakan apa adanya tanpa jaminan apa pun. Pengembang tidak bertanggung jawab atas kerusakan atau masalah yang timbul dari penggunaan perangkat lunak ini.
