Lewati ke isi

User Manual — WaktuKerja

Manual pengguna untuk aplikasi WaktuKerja (Platform HRIS Lengkap). Mencakup alur dari pendaftaran tenant baru sampai eksekusi kalkulasi gaji per periode, plus portal mobile untuk karyawan.

Untuk siapa manual ini?

  • HR / Payroll Admin — yang setup master data, kelola pengajuan, dan eksekusi payroll bulanan via portal web admin (Bab 1-9)
  • Karyawan — fitur self-service via aplikasi mobile WaktuKerja (Bab 10) — Progressive Web App yang di-install ke home screen HP
  • Pemilik Aplikasi (super admin) — sebagian master global (mis. Bank) dikelola via CLI; tidak dibahas di manual ini

Prerequisites

Sebelum memulai: - Browser modern (Chrome, Firefox, Edge versi 2 tahun terakhir) - Email kerja yang valid (untuk verifikasi akun HR) - Mengetahui struktur organisasi perusahaan (jabatan + atasan) - Kebijakan ketenagakerjaan (jam kerja, hari libur, jenis status karyawan) - Komponen gaji yang berlaku (gaji pokok, tunjangan, potongan)

Daftar Isi

# Bab Topik utama
1 Pendaftaran Tenant Registrasi organisasi, profile, login pertama, billing (tier Basic/Standar + periode bayar 3 bulan / 1 tahun) + galeri add-ons
2 Master Organisasi & Karyawan Jabatan (tree), tambah karyawan, biodata, setting payroll
3 Master Waktu Kerja Shift, pola mingguan, kelompok kerja, assignment
4 Master Pendukung Hari libur, status kekaryawanan, komponen gaji, formula, fasilitas, pinjaman
5 Pengajuan & Workflow Cuti, ijin, tukar shift, lembur, perjalanan dinas
6 Pipeline Periode Buat periode, generate jadwal harian, kalkulasi realisasi, tutup bulan
7 Proses Gaji Data waktu kerja, fasilitas, pinjaman, upload, pengecualian, kalkulasi, Konfirmasi (Tutup Bulan) + auto-arsip ke Elasticsearch
8 Gaji Non Reguler Run di luar siklus bulanan: THR, Bonus, Gaji XIII, Insentif (setup + komponen + override per karyawan + konfirmasi)
9 Laporan Reporting dari Elasticsearch: 6 laporan live (4 Waktu Kerja + 2 Penggajian: Riwayat Transfer & Distribusi Komponen). 4 menyusul (Jurnal Penggajian + 3 Non Reguler)
10 Mobile App (Portal Karyawan) Aplikasi mobile WaktuKerja (PWA): install ke home screen, bottom tab navigation, Check In/Out face capture, notifikasi (badge + polling), pengajuan full CRUD (Cuti/Ijin/Lembur/Tukar Shift), Riwayat Gaji breakdown, jadwal kerja, realisasi kehadiran (kalender visual), profil + personalia CRUD (alamat/keluarga/riwayat kerja/pendidikan)
99 Lampiran Konstanta formula, glosarium, troubleshooting

Alur singkat (happy path)

Untuk tenant baru, urutan setup dan operasional bulanan:

Setup (sekali saat onboarding):

  1. Daftar tenant → terima kredensial admin via email
  2. Master Organisasi: bikin pohon jabatan, tetapkan level (golongan)
  3. Master Waktu Kerja: bikin shift (Pagi/Siang/Malam), pola mingguan, kelompok kerja, assign jadwal
  4. Master Pendukung:
  5. Miscellaneous: input hari libur tahunan, status kekaryawanan (TETAP/KONTRAK/dll), komponen perjalanan dinas
  6. Penggajian: komponen gaji + formula + fasilitas progressif + jenis pinjaman
  7. Tambah Karyawan: bulk via CSV atau satu-per-satu via form
  8. Setting Karyawan: isi gaji pokok + status + bank rekening per karyawan

Operasional bulanan:

  1. Buat Periode baru (mis. Mei 2026)
  2. Generate Jadwal Harian untuk seluruh karyawan
  3. Setiap hari: kelola pengajuan (cuti, ijin, tukar shift, lembur)
  4. Akhir periode: tutup bulan → snapshot evaluasi otomatis ter-buat
  5. Proses Gaji:
    • Review Data Waktu Kerja (jumlah hari kerja + lembur per karyawan)
    • Review Data Fasilitas (preview budget tunjangan)
    • Input/replicate Data Pinjaman (transaksi cicilan)
    • Upload CSV Data Upload (komponen yang nominalnya manual)
    • Set Pengecualian untuk karyawan yang butuh override khusus
    • Klik tombol Kalkulasi — sistem hitung gaji per karyawan idempotent
  6. Konfirmasi (Tutup Bulan): review komponen + karyawan vs periode lewat (2 tab gap IDR & gap %) → centang ack → Konfirmasi & Tutup Bulan. Aksi ini snapshot evaluasi ke MySQL + arsip periode + create periode baru + index ke Elasticsearch untuk Laporan (Bab 9).

Operasional ad-hoc (di luar siklus bulanan):

  1. Gaji Non Reguler — THR, Bonus, Gaji XIII, Insentif:
    • Setup: buat header run (jenis + nomor SK + periode dasar + syarat eligibility)
    • Komponen Income: pilih komponen yang ikut + atur override nominal per karyawan
    • Konfirmasi: review proyeksi total per kategori (per karyawan & per komponen) → Finalize

Reporting:

  1. Laporan — analisis historis menarik data dari Elasticsearch (auto-ter-arsip saat Tutup Bulan). 10 sub-laporan dalam 3 group (Waktu Kerja / Penggajian / Gaji Non Reguler). Status: 6/10 implemented — 4 Waktu Kerja (Jadwal Kerja, Realisasi Kehadiran dengan clock-in/out, Realisasi Lembur, Kelebihan WK) + 2 Penggajian (Riwayat Transfer dengan filter bank + bar chart distribusi, Distribusi Komponen dengan drill-down list karyawan). 4 menyusul: Jurnal Penggajian (butuh master GL account) + 3 Gaji Non Reguler. Lihat 09-laporan.md.
  • Sidebar (kiri): navigasi operasional harian — Beranda (Dashboard + Karyawan), Pengajuan, Pipeline, Proses Gaji, Gaji Non Reguler, Laporan.
  • Header (atas, sebelah informasi user): dropdown Master Data — Surat Keputusan, Organisasi, Waktu Kerja, Penggajian, Miscellaneous. Berisi setup data yang jarang diubah; sengaja dipindah dari sidebar supaya menu sidebar fokus ke operasi & reporting.
  • Header → avatar user: Profile Organisasi, Billing, System Trail, Ganti Password, Keluar.

Glosarium ringkas

Istilah Arti
Tenant Organisasi/perusahaan yang menyewa aplikasi. Setiap tenant punya data terpisah.
Biodata Data identitas seseorang (KTP, alamat, keluarga, pendidikan). 1 biodata bisa jadi karyawan di banyak penempatan.
Karyawan Penempatan biodata pada satu jabatan + kelompok kerja, dengan nomor induk + tanggal bergabung.
Jabatan Posisi/role di organisasi. Jabatan punya hierarki (parent_id) dan level (golongan 1-20).
Golongan jabatan.level (1-20). Dipakai untuk lookup tarif (fasilitas progressif, komponen perjalanan dinas).
Shift / Waktu Kerja Definisi jam masuk/pulang plus toleransi clock-in/clock-out.
Jadwal Kerja Pola mingguan: shift apa di hari Senin/Selasa/.../Minggu.
Kelompok Kerja Grup karyawan yang dapat assignment jadwal yang sama (mis. "Front Office", "Operasional").
Assignment Penugasan jadwal kerja ke kelompok kerja untuk rentang tanggal.
Periode Periode payroll satu bulanan (mis. "2026-04"). Punya tanggal mulai/selesai dan cut-off.
Realisasi Hasil kalkulasi presensi harian per karyawan: hadir / izin / cuti / dinas / libur.
Evaluasi Snapshot agregat per periode (excess working hours, kelebihan hari kerja, akumulasi lembur).
Komponen Gaji Baris yang muncul di slip gaji, dengan Model (sumber nilai): Formula / Fasilitas / Upload / Pinjaman.
Formula Ekspresi DSL kecil seperti [GP] * [WH] / 173. Konstanta seperti [GP] (Gaji Pokok), [WH] (Excess Working Hours).
Fasilitas Progressif Tunjangan dengan tarif berbeda per golongan (mis. Uang Transport: Golongan 1 = 35rb/hari, Golongan 2 = 25rb/hari).
Pengecualian Override final per (komponen × karyawan × periode). Bypass kalkulasi standar; nominal=0 = tidak berhak.
Gaji Non Reguler Run penggajian di luar siklus bulanan (THR / Bonus / Gaji XIII / Insentif). Tiap run punya Setup (header) + komponen + override per karyawan.
Periode Dasar Periode reguler yang dipakai sebagai sumber nominal default komponen di run gaji non reguler (mis. THR 2026 pakai komponen periode 2026-06).
Snapshot vs Override (non reguler) Snapshot = nilai dari kalkulasi periode dasar. Override = nilai eksplisit per karyawan yang menggantikan snapshot. Sparse — hanya yang berbeda yang disimpan.
Status Setup (non reguler) Baru = belum ada override; Proses = sudah ada override; Selesai = sudah di-Finalize (dibekukan).
Elasticsearch (ES) Cluster pencarian/agregasi yang dipakai sebagai sumber data Laporan. Index dipopulasi otomatis saat Tutup Bulan. Bukan canonical (MySQL tetap source of truth).
Index hris-realisasi 1 dokumen ES per (karyawan × tanggal) — snapshot status efektif harian setelah tutup bulan.
Index hris-evaluasi 1 dokumen ES per (karyawan × periode) — gabungan 3 metric: excess working hours, kelebihan hari kerja, akumulasi lembur.
Surat Keputusan (SK) Container/versi struktur jabatan. SK baru auto-clone struktur dari SK aktif. Status: Draft (belum berlaku) / Aktif (berlaku) / Lewat (digantikan).
PWA Progressive Web App — aplikasi web yang bisa di-install ke home screen HP (Android via Chrome, iOS via Safari "Add to Home Screen"). Setelah install, jalan fullscreen seperti native app. Mobile WaktuKerja dibangun sebagai PWA.
Kawung Jam Logo brand WaktuKerja — 4 kelopak Kawung (motif batik) di posisi 12/3/6/9 + jarum jam di tengah. Sogan + prada emas + indigo batik. File logo-waktukerja.svg shared antara portal web & mobile.
Notifikasi Feed event per karyawan: pengajuan diproses HR, tukar shift dari rekan, slip gaji baru, gaji non reguler, jadwal override. Di-trigger otomatis saat HR aksi terkait. Tampil di tab Notifikasi mobile app dengan badge unread.
Face Capture (Check In/Out) Tombol absen masuk/pulang di Beranda mobile, pakai kamera depan + overlay face frame. Foto di-capture jadi JPEG; (upload ke server face recognition di-develop terpisah).
Tier Paket berlangganan WaktuKerja: Basic (gratis ≤15 karyawan, lalu Rp 4.500/karyawan + hosting Rp 12.000/bulan) untuk fitur waktu kerja saja; Standar (Rp 7.200/karyawan, min 10) untuk paket lengkap termasuk payroll, PPh 21, BPJS.
Periode Pembayaran Pilihan billing cycle: Bayar 3 Bulan (subtotal × 3) atau Bayar 1 Tahun dengan diskon 15% (subtotal × 12 × 0.85). Konfirmasi pembayaran via WhatsApp ke tim WaktuKerja.
Add-On Modul opsional di atas tier Standar — 9 add-on dalam 3 kategori (Integrasi: Multibank/WA; HR Lanjutan: Karir/Survey/Rekrutmen/Performance; Asesmen: Matriks/Exercise/AI Scoring). Aktivasi via galeri di halaman Billing → request WhatsApp.

Bantuan

Issue / fitur missing → laporkan ke admin sistem internal organisasi Anda.

Untuk troubleshooting umum, lihat 99-lampiran.md.