Skema Data — HRD (Kepegawaian, Evaluasi Kinerja, Cuti, BKD)

Status: DRAFT (13 Juli 2026) — tahap 4 dari desain skema bertahap

Melanjutkan Skema Data — Fondasi, Skema Data — Akademik Inti, dan Skema Data — Keuangan. Halaman ini mencakup Modul 6 (HRD). Modul Aset dan Perpustakaan menyusul di halaman terpisah.

1. Diagram ERD

ERD HRD

2. Migrasi Tambahan ke Tabel Pegawai

Pegawai sudah didefinisikan minimal di Skema Data — Fondasi (hanya identitas dasar untuk kebutuhan Jabatan Struktural & RBAC). Kolom berikut ditambahkan di sini:

Kolom baru Tipe Keterangan
fakultas_id bigint (FK → Fakultas, nullable) Unit kerja utama (berbeda dari jabatan struktural di RiwayatJabatan)
program_studi_id bigint (FK → ProgramStudi, nullable)
tempat_tanggal_lahir varchar
alamat text
no_hp varchar
jabatan_akademik enum(asisten_ahli, lektor, lektor_kepala, guru_besar), nullable Khusus dosen — atribut permanen, beda dari jabatan struktural (§0.1) yang periodik
status_kepegawaian enum(tetap, luar_biasa)

Kenapa fakultas_id/program_studi_id di sini, padahal sudah ada di RiwayatJabatan?

Keduanya menjawab pertanyaan berbeda. Pegawai.program_studi_id = "pegawai ini berbasis di prodi mana" (data kepegawaian dasar, dibutuhkan sinkronisasi PDDIKTI). RiwayatJabatan = "pegawai ini sedang menjabat posisi struktural apa" (mis. jadi Kaprodi) — dua hal yang independen; seorang dosen bisa berbasis di Prodi A tanpa pernah menjabat struktural apa pun.

3. Evaluasi Kinerja

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
pegawai_id bigint (FK → Pegawai) Yang dinilai
dinilai_oleh_id bigint (FK → Pegawai) Atasan — diambil dari rantai jabatan struktural (§0.1)
periode varchar mis. "2026 Semester Genap"
skor decimal, nullable
status enum(draft, final)
tanggal_evaluasi date

4. Cuti Pegawai

Berbeda dari CutiAkademik (mahasiswa, sudah ada di Skema Data — Akademik Inti) — ini cuti kerja staf/dosen.

4.1 JenisCuti (master, dikonfigurasi per tenant)

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
nama varchar mis. "Cuti Tahunan", "Cuti Sakit", "Cuti Melahirkan"

4.2 CutiPegawai

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
pegawai_id bigint (FK → Pegawai)
jenis_cuti_id bigint (FK → JenisCuti)
tanggal_mulai date
tanggal_selesai date
status enum(diajukan, disetujui, ditolak)
disetujui_oleh_id bigint (FK → Pegawai, nullable) Atasan — rantai jabatan struktural yang sama

5. Program Pelatihan

5.1 ProgramPelatihan

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
nama varchar
penyelenggara varchar
tanggal_mulai date
tanggal_selesai date

5.2 PesertaPelatihan

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
program_pelatihan_id bigint (FK → ProgramPelatihan)
pegawai_id bigint (FK → Pegawai)
status enum(terdaftar, selesai, sertifikat_terbit)

6. BKD (Beban Kerja Dosen)

6.1 AturanBKD (konfigurasi per tenant)

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
sks_minimum decimal Ambang SKS ekuivalen minimum per semester

6.2 LaporanBKD (header per dosen per semester)

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
pegawai_id bigint (FK → Pegawai)
tahun_akademik_id bigint (FK → TahunAkademik)
total_sks_ekuivalen decimal Dihitung dari jumlah DetailBKD
status enum(draft, submitted, divalidasi)
divalidasi_oleh_id bigint (FK → Pegawai, nullable) Kaprodi/asesor BKD

6.3 DetailBKD (rincian tridharma)

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
laporan_bkd_id bigint (FK → LaporanBKD)
kategori enum(pendidikan, penelitian, pengabdian, penunjang)
uraian_kegiatan text
sks_ekuivalen decimal

Notifikasi-saja, konsisten dengan keputusan sebelumnya

Bila LaporanBKD.total_sks_ekuivalen < AturanBKD.sks_minimum, sistem menampilkan notifikasi — tidak memblokir submit, tidak ada penegakan otomatis. Sama seperti PeringatanAkademik di Skema Data — Akademik Inti.

7. Rincian Komponen Gaji

Melengkapi SlipGaji (header saja) yang sudah dibuat di Skema Data — Keuangan.

7.1 KomponenGaji (master, dikonfigurasi per tenant)

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
nama varchar mis. "Gaji Pokok", "Tunjangan Jabatan", "Potongan BPJS"
jenis enum(tambahan, potongan)

7.2 SlipGajiDetail

Kolom Tipe Keterangan
id bigint (PK)
tenant_id UUID (FK → Tenant)
slip_gaji_id bigint (FK → SlipGaji — didefinisikan di Skema Data — Keuangan)
komponen_gaji_id bigint (FK → KomponenGaji)
nominal decimal

8. Row-Level Security

Pola identik dengan halaman sebelumnya — semua tabel di atas memakai tenant_id + kebijakan RLS yang sama (lihat Skema Data — Fondasi §10).

9. Langkah Berikutnya

Skema tabel Biro Aset dan Perpustakaan menyusul di halaman terpisah — bagian terakhir dari desain skema bertahap sebelum uji isolasi tenant.


Kembali ke Roadmap Implementasi atau Skema Data — Keuangan.