2. Master Organisasi & Karyawan¶
Bab ini menjelaskan cara setup struktur organisasi (pohon jabatan) dan tambah karyawan. Ini adalah prerequisite untuk semua menu lain — karyawan tidak bisa pengajuan cuti, masuk pipeline, atau dapat gaji bila belum punya jabatan + biodata.
Catatan navigasi UI (per iterasi terbaru): - Karyawan kini di sidebar group Beranda (di bawah Dashboard) — sering dipakai, layak diberi 1-click access. - Organisasi, Surat Keputusan, Waktu Kerja, Penggajian, Miscellaneous pindah ke dropdown Master Data di header (kanan atas, sebelah informasi user). Setup data ini jarang diubah; sidebar dibebaskan untuk operasi harian + reporting. - Surat Keputusan (SK) adalah container versi struktur jabatan — buat SK baru saat ada restrukturisasi; struktur lama tetap immutable.
Urutan setup¶
- (Saat restrukturisasi) Bikin Surat Keputusan baru — struktur dari SK aktif otomatis di-clone, edit yang berubah saja.
- Bikin pohon Jabatan di SK aktif (top-down dari direktur sampai staff)
- Tambah Karyawan (single via form atau bulk via CSV) — akun login otomatis dibuatkan
- Lengkapi Biodata + sub-resource (alamat, keluarga, riwayat kerja, riwayat pendidikan)
- Setup Setting Karyawan (gaji pokok + status + bank rekening) di tab "Setting Karyawan" pada halaman Karyawan Detail
- (Opsional) Atur Login Setup (kirim kredensial / reset) dan Biometrik Presensi per karyawan di tab masing-masing
2.1 Master Jabatan¶
Akses: sidebar Master Data → Organisasi.
Konsep¶
- Jabatan punya hierarki via
parent_id— bikin tree organization - Setiap jabatan punya level (golongan): angka 1-20 (default range tenant 1-10, bisa diubah di Profile Organisasi)
- Jabatan punya nomor posisi unik per tenant (mis.
DIR-001,MGR-FIN-01) - Setiap jabatan bisa punya:
- Job Description (deskripsi tugas)
- Kompetensi (skill yang dibutuhkan)
Tampilan halaman¶
Halaman Organisasi punya 2 mode toggle di pojok kanan atas:
- List view — tabel datar dengan filter parent + level
- Tree view — pohon hierarki yang bisa di-expand/collapse
Tambah Jabatan Root (level paling atas)¶
- Klik tombol "Tambah Jabatan" (kanan atas)
- Isi form:
- Nomor Posisi (wajib, unik): mis.
DIR-001 - Nama Jabatan (wajib): mis.
Direktur Utama - Parent: kosongkan (untuk jabatan root)
- Level (Golongan): 1 (paling tinggi)
- Grade: opsional, mis.
Eksekutif - Klik Simpan
Tambah Jabatan Anak¶
- Klik "Tambah Jabatan"
- Pilih Parent dari dropdown (cari nama atau nomor posisi)
- Isi field lain
- Level harus ≥ level parent (otomatis di-validate)
- Simpan
Upload Jabatan (Bulk via CSV)¶
Untuk struktur besar, upload CSV lebih cepat:
- Klik tombol "Tambah" → submenu "Upload Jabatan"
- Modal upload akan tampil
- Download Template — file CSV dengan header standar
- Isi CSV. Format kolom:
- Baris 1 = header (jangan diubah)
parent_nomor_posisikosongkan untuk jabatan root- Urutkan dari root ke leaf (parent harus ada sebelum child)
- Pilih file CSV via Choose File
- Klik Upload & Validate — sistem cek duplikat + parent valid
- Bila ada error, list error per baris akan tampil. Perbaiki CSV → upload ulang.
- Bila valid, klik Konfirmasi Insert — sistem insert semua dalam 1 transaksi (all-or-nothing).
Edit Jabatan¶
- Klik nama jabatan di list → buka Halaman Detail Jabatan
- Klik "Edit"
- Ubah field. Validasi:
- Parent baru tidak boleh menyebabkan cyclic (jabatan tidak boleh jadi parent dirinya sendiri lewat chain)
- Level baru harus ≥ level parent
- Simpan
Detail Jabatan: 2 Tab¶
Halaman detail punya 2 tab:
Tab "Deskripsi Kerja" — daftar job description: - Klik + Tambah Jobdesc → isi deskripsi → simpan - Edit/hapus per item
Tab "Kompetensi Jabatan" — daftar kompetensi: - Klik + Tambah Kompetensi → isi nama + deskripsi → simpan
Hapus Jabatan¶
- Soft delete — data tetap di DB tapi tidak ditampilkan
- Tidak bisa dihapus bila masih ada child aktif atau masih dipakai karyawan aktif (sistem akan tolak dengan pesan jelas)
- Solusi: pindahkan child / re-assign karyawan dulu
2.2 Master Karyawan¶
Akses: sidebar Master Data → Karyawan.
Tampilan halaman¶
Tabel daftar karyawan dengan kolom: - Nomor Induk (NIK) - Nama - Email - Jabatan + Golongan - Kelompok Kerja - Tipe Penempatan - Aksi (Edit / Detail)
Toolbar: search (nama/NIK/email) + filter (jabatan, kelompok kerja) + tombol Tambah.
Tambah Karyawan (single)¶
- Klik tombol "Tambah Karyawan" (kanan atas)
- Modal Tambah Karyawan wizard 2 step:
Step 1 — Identitas + Penempatan:
- Biodata mode: pilih Buat Baru atau Pakai Biodata Existing
- Buat Baru: isi Nama, Email, Tempat lahir, Tanggal lahir, Gender, Agama, Golongan darah
- Pakai Existing: cari biodata yang sudah ada (untuk kasus 1 orang dipindah ke jabatan lain)
- Nomor Induk (NIK): bebas format, prefix kode tenant disarankan (mis. KEU01-001)
- Tanggal Bergabung: format YYYY-MM-DD
- Tipe Penempatan: INISIASI (karyawan baru), PROMOSI, MUTASI, LAINNYA
- Jabatan: cari via picker — ketik nama atau nomor posisi (jangan declare semua jabatan, dropdown lambat)
- Kelompok Kerja: pilih dari dropdown (lihat bab 3 untuk setup kelompok kerja)
Step 2 — Konfirmasi: - Review semua field - Klik Simpan
Tambah Karyawan (Bulk via CSV)¶
- Tombol "Tambah Karyawan" → submenu "Upload Karyawan"
- Modal upload, Download Template dulu
- Format CSV:
nomor_induk,tanggal_bergabung,tipe_penempatan,nama,email,nomor_posisi_jabatan,kode_kelompok_kerja KEU01-001,2026-01-15,INISIASI,Budi Santoso,[email protected],STF-FIN-01,KK-FRO - Upload file → validate → konfirmasi insert (all-or-nothing)
Catatan: Bulk import HANYA membuat karyawan + biodata minimal (nama + email). Sub-resource (alamat, keluarga, riwayat) di-isi terpisah via halaman Detail Karyawan.
2.3 Halaman Detail Karyawan¶
Klik nama karyawan di list → buka halaman detail dengan 2 area:
Header info (atas): - Avatar dengan inisial nama - NIK + Jabatan + Kelompok Kerja - Email + telepon - Tempat/tanggal lahir + demografi - Data sensitif (KTP, NPWP, nama ibu) dengan mata icon untuk toggle masking - Tombol kanan atas: Edit Identitas, Setting (dropdown: Login Setup, Aktifitas Sistem, Biometrik Presensi, Terminasi)
Tab navigation (6 tab):
Tab 1: Penempatan¶
- Read-only display: NIK, tanggal bergabung, tipe penempatan, jabatan, atasan, kelompok kerja
- Tombol "Edit Penempatan" untuk update
Tab 2: Setting Karyawan (untuk payroll)¶
Field:
- Gaji Pokok (IDR, decimal): dipakai konstanta [GP] di formula
- Status Kekaryawanan: dropdown dari master (TETAP, KONTRAK, MAGANG, dll — lihat bab 4)
- Bank Akun:
- Bank: dropdown dari master bank
- Nomor Rekening
- Nama Pemilik Rekening (opsional, default = nama karyawan)
Penting: Karyawan tanpa Gaji Pokok akan dapat nominal 0 di komponen FORMULA yang pakai
[GP]. Lengkapi field ini untuk SEMUA karyawan sebelum kalkulasi gaji.Untuk bulk-set gaji_pokok by golongan jabatan, tersedia script seed seed_kalkulasi_data.py — lihat 07-proses-gaji.md.
Tab 3: Alamat¶
List alamat karyawan dengan tipe (TINGGAL / KTP / DARURAT / LAINNYA). - Tambah / Edit / Hapus per item
Tab 4: Keluarga¶
Anggota keluarga + relasi (SUAMI/ISTRI/ANAK/dll).
Tab 5: Riwayat Kerja¶
Pengalaman kerja sebelumnya. Tahun keluar harus ≥ tahun masuk.
Tab 6: Riwayat Pendidikan¶
Pendidikan formal/non-formal/kedinasan.
2.4 Edit Identitas Karyawan¶
Klik tombol "Edit Identitas" di header — modal wizard 2 step:
Step 1 — Profil Umum: - Nama, email, tempat/tanggal lahir, gender, agama, golongan darah, telepon
Step 2 — Data Sensitif (PII): - KTP, NPWP, Nama Ibu Kandung - Disimpan terenkripsi di database
Field PII: hanya HR (yang punya akses ke karyawan ini) yang boleh lihat. Saat tampil di header, default ter-mask — klik icon mata untuk reveal.
2.5 Setting Submenu (Karyawan Detail)¶
Tombol Setting di header → dropdown 4 menu:
Login Setup¶
Untuk karyawan yang mau login self-service (lihat slip gaji, ajukan cuti, dll): - Username (default = email karyawan) - Send Login Account — kirim email berisi username + password sementara
Aktifitas Sistem¶
Riwayat aksi karyawan di sistem (audit log: login, perubahan data, approval pengajuan).
Biometrik Presensi¶
Log raw clock-in/clock-out dari mesin biometrik (sebelum dikalkulasi jadi realisasi).
Beda dengan Realisasi: Biometrik = data sumber. Realisasi = hasil kalkulasi (status efektif: hadir/ijin/cuti).
Terminasi¶
Hapus / non-aktifkan karyawan dari sistem. Aksi destruktif: - Soft-delete karyawan + revoke akun login - Histori pengajuan + realisasi tetap tersimpan (untuk audit) - Modal konfirmasi penuh akan tampil — wajib ketik konfirmasi
2.6 Tips & Best Practice¶
| Tips | Alasan |
|---|---|
| Bikin pohon jabatan dulu sebelum tambah karyawan | Karyawan butuh jabatan_id saat create |
| Bikin Kelompok Kerja sebelum tambah karyawan | Karyawan butuh kelompok_kerja_id |
| Untuk testing, gunakan bulk CSV | Lebih cepat untuk 50+ karyawan |
| Cek "Pakai Biodata Existing" untuk mutasi/promosi | Hindari duplikasi PII di tenant |
| Lengkapi Setting Karyawan SEBELUM tutup bulan pertama | Tanpa gaji_pokok + status, karyawan tidak masuk kalkulasi |
| Soft-delete karyawan, jangan hard delete | Histori payroll + pengajuan terjaga |
Langkah berikutnya¶
→ 3. Master Waktu Kerja — bikin shift, jadwal mingguan, kelompok kerja, dan assign jadwal.