Skip to content

FiryanulRizky/Sistem-Manajemen-Absensi-Karyawan

Repository files navigation

Sistem-Manajemen-Absensi-Karyawan

Oleh : Muhammad Firyanul Rizky, email : firyan2903@gmail.com, no. hp : 0895606181117

Dibuat menggunakan Framework Laravel 9

Ketentuan demo aplikasi :

  1. instalasi database pada file env dengan nama database: absensi
  2. diberikan 3 pilihan untuk fill data pada database :
    • dengan seeder : jalankan php artisan migrate:fresh --seed
    • import data absensi.sql yang sudah disediakan
    • dengan eloquent orm
  3. masuk sesi admin
  4. masuk sesi karyawan
    • email anul29@mail.com dan password :123456
    • email (sesuai data seeder : Perawat s/d Petugas Kebersihan) => password (semua akun sama) : petugas123

Update Aplikasi :

  1. Fitur Register Admin terdapat pada awal sesi sebelum login
  2. Sedangkan Fitur Register Karyawan terdapat dalam sesi Admin setelah login

NOTE : Penambahan admin selain melalui menu register bisa dilakukan juga menggunakan eloquent orm, untuk petunjuk bisa lihat screenshot paling bawah. Sedangkan Untuk karyawan bisa dilakukan pada fitur tambah karyawan pada sesi admin atau bisa juga memakai eloquent orm dengan ketentuan :

  1. lakukan perintah php artisan tinker, lalu buat variabel baru $emp = new App\Employee
  2. selanjutnya ikuti petunjuk pada screenshot paling bawah untuk menambahkan elemen 'user_id', 'first_name', 'last_name', 'sex', 'dob', 'join_date', 'desg', 'department_id', 'salary', 'photo'

Berikut adalah ketentuan yang sudah terpenuhi :

1. Menggambarkan flow diagram / usecase diagram sederhana yang menggambarkan fitur sistem

Catatan 2  Use Case Diagram

2. Mengatur Status Absen masuk yang dilakukan karyawan sebelum jam 09.00 pagi, sedangkan absen keluar dilakukan setelah jam 17.00 akan diberikan status tidak valid pada sistem.

Operasi Logic Controller yang mengatasi permasalahan no. 2 15  Logic Controller dalam menampilkan status absensi

Operasi Logic View yang akan menampilkan masing-masing status absensi berdasarkan ketentuan. 16  Logic View dalam menampilkan status absensi

Hasil Implementasi masalah no. 2 -- Tampak Absensi Terlambat jika absensi dilakukan jam 09.00 pagi atau lebih, sedangkan sebelum jam 9 akan dinyatakan tepat waktu -- 9  Tampak Absensi Terlambat

-- Tampak Absensi Tidak Valid jika absensi dilakukan diatas jam 17:00 sampai jam 7 Pagi -- 10  Tampak Absensi Tidak Valid

2. menyediakan fitur pengajuan ketidakhadiran kerja dibagi menjadi 2 yaitu izin sakit dan izin cuti.

11  Daftar Cuti Karyawan

Ketentuan masalah no. 2 adalah :

-- 1. Apabila karyawan sedang sakit, izin sakit bisa diinputkan maksimal H+3 sejak tanggal ketidakhadiran karyawan -- -- 2. Apabila karyawan ingin mengajukan cuti, karyawan dapat menginputkan izin cuti maksimal H-1 dari rencana ketidakhadiran karyawan -- Dibawah ini adalah operasi logic yang mengatur ketentuan 1 dan 2 untuk izin sakit dan cuti.

Operasi Logic untuk mengatasi ketentuan pertama dan kedua :

17  Logic Controller dalam mengatur izin sakit atau cuti

Apabila melanggar ketentuan pertama, maka akan tampil alert :

12  Batasan Pengajuan Maksimum 3 Hari untuk Izin Sakit

Sedangkan, jika melanggar ketentuan kedua, maka akan tampil alert :

13  Batasan Pengajuan Maksimum H-1 untuk Izin Cuti

-- 3. Setelah izin cuti diinputkan, manajer/atasan karyawan dalam hal ini user dengan sesi admin harus melakukan approval terhadap izin cuti yang diajukan --

3  List Cuti Karyawan

4  Ubah Status Cuti Karyawan

3. Semua data yang terekam dari semua fitur diatas dapat ditampilkan menjadi sebuah laporan yang berisi ketidakhadiran dan absensi karyawan.

Ketentuan Masalah No. 3 adalah :

-- 1. Laporan ditampilkan per karyawan dan hanya dapat dilihat oleh HRD dan manajer/atasan --

Mengatasi masalah 1, sistem dibuat dengan 2 user, yakni admin dan karyawan, pada sesi admin user bisa melihat laporan per karyawan :

2  Dashboard Admin

3  List Absensi Karyawan

-- 2. karyawan hanya bisa melihat rekaman data dirinya sendiri saja -- Mengatasi masalah 2, diperlukan sesi user karyawan yang hanya di autorisasi dan diizinkan untuk melihat laporannya sendiri :

5  Dashboard Karyawan

List Absensi Karyawan

4. Absen masuk dan keluar menggunakan geo-tagging dari tempat tertentu.

Berikut 2 dibawah adalah implementasinya, sistem sudah bisa menginputkan wilayah berdasarkan geo tagging lokasi.

Geo Tagging Untuk absen masuk :

7  Absen Masuk Karyawan

Geo Tagging Untuk absen keluar :

8  Absen Keluar Karyawan

4. Menggunakan Eloquent ORM Laravel dalam melakukan interaksi database.

Berikut adalah implementasinya : 14  Interaksi Database dengan Eloquent ORM Laravel