KPI HR: Metrik People Analytics yang Benar-benar Berguna
Blog/Dashboard & Visualisasi/KPI HR: Metrik People Analytics yang Benar-benar Berguna

KPI HR: Metrik People Analytics yang Benar-benar Berguna

BimaBima
·3 Juli 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

KPI HR yang paling kepake ada delapan: turnover rate, regretted attrition, time to hire, cost per hire, retensi 90 hari, tingkat promosi internal, rasio pelamar per posisi, dan absensi. Turnover rate doang gak cukup — yang penting bukan berapa orang resign, tapi siapa yang resign. Karyawan performa tinggi yang keluar punya biaya pengganti 2-3 kali gaji tahunannya, jauh lebih mahal dari karyawan biasa.

KPI HR adalah angka yang dipakai buat ngukur kesehatan tim: siapa yang masuk, siapa yang keluar, dan berapa lama mereka bertahan.

Masalahnya, kebanyakan laporan HR isinya cuma turnover rate. Dan turnover rate doang gak ngasih tau hal yang paling penting: siapa yang keluar.

Turnover 12% yang isinya karyawan bintang jauh lebih gawat dari turnover 22% yang isinya orang yang emang gak cocok. Angka totalnya nyembunyiin itu.

Apa itu KPI HR?

KPI HR adalah metrik terukur yang nunjukin performa fungsi sumber daya manusia — dari rekrutmen, retensi, sampai pengembangan karyawan. Bedanya sama metrik biasa: KPI selalu punya ambang batas dan selalu bisa ditindaklanjuti. Kalau retensi 90 hari kamu anjlok, ada yang salah di onboarding, dan itu bisa diperbaiki minggu depan.

Istilah lain yang sering dipakai: people analytics. Artinya sama, cuma lebih nekenin pemakaian data buat ngambil keputusan, bukan cuma ngelaporin.

8 KPI HR yang beneran kepake

1. Turnover rate

Turnover rate = (Jumlah karyawan keluar / Rata-rata jumlah karyawan) x 100%

Angka dasar. Wajar di 10-15% per tahun buat perusahaan konvensional. Startup teknologi dan retail biasanya 20-30%.

Pecah per departemen. Turnover perusahaan 14% bisa nyembunyiin satu tim yang turnover-nya 45%.

2. Regretted attrition

Regretted attrition = (Karyawan bagus yang keluar / Total karyawan keluar) x 100%

Ini KPI yang paling jujur. Berapa persen dari yang keluar itu orang yang kamu pengin pertahanin?

Biaya ngeganti satu karyawan performa tinggi bisa 2-3 kali gaji tahunannya kalau dihitung dari waktu rekrutmen, onboarding, dan produktivitas yang hilang selama posisi kosong.

3. Time to hire

Time to hire = Rata-rata hari dari lowongan dibuka sampai kandidat tanda tangan

Kandidat bagus gak nunggu. Kalau proses kamu 62 hari, kandidat terbaik udah keburu diambil perusahaan lain di hari ke-30.

4. Cost per hire

Cost per hire = Total biaya rekrutmen / Jumlah orang yang direkrut

Yang paling sering kelupaan: waktu manajer yang ikut wawancara. Satu posisi dengan 6 wawancara dan 3 manajer itu jam kerja yang punya nilai.

5. Retensi 90 hari

Retensi 90 hari = (Karyawan baru yang bertahan >90 hari / Total karyawan baru) x 100%

Kalau angkanya di bawah 85%, masalahnya biasanya bukan di karyawannya. Biasanya di ekspektasi yang salah dikomunikasiin waktu wawancara, atau onboarding yang berantakan.

6. Tingkat promosi internal

Promosi internal = (Posisi diisi dari dalam / Total posisi terisi) x 100%

Ngisi posisi dari dalam lebih murah dan lebih cepat. Kalau angka ini rendah terus, orang bagus bakal cari jalan naik di tempat lain.

7. Rasio pelamar per posisi

Berapa pelamar yang masuk buat satu lowongan. Kalau cuma 4 pelamar, deskripsi lowongan atau gaji yang ditawarin kemungkinan gak nyambung sama pasar.

8. Tingkat absensi

Absensi = (Hari absen tak terencana / Total hari kerja) x 100%

Absensi yang naik pelan-pelan di satu tim sering jadi tanda awal sebelum gelombang resign.

Gimana cara ngitungnya pakai SQL?

Kamu cuma butuh satu tabel dengan lima kolom: id, tanggal masuk, tanggal keluar, departemen, level.

-- Turnover rate tahunan per departemen
WITH populasi AS (
  SELECT
    departemen,
    COUNT(*) FILTER (WHERE tgl_keluar IS NULL) AS aktif_sekarang,
    COUNT(*) FILTER (
      WHERE tgl_keluar BETWEEN '2026-01-01' AND '2026-12-31'
    ) AS keluar_tahun_ini
  FROM karyawan
  GROUP BY departemen
)
SELECT
  departemen,
  aktif_sekarang,
  keluar_tahun_ini,
  ROUND(100.0 * keluar_tahun_ini
    / NULLIF(aktif_sekarang + keluar_tahun_ini, 0), 1) AS turnover_persen
FROM populasi
ORDER BY turnover_persen DESC;

Klausa FILTER (WHERE ...) itu cara ngitung bersyarat di PostgreSQL. Di database lain, ganti pakai CASE WHEN di dalam SUM.

Buat retensi 90 hari:

SELECT
  DATE_TRUNC('quarter', tgl_masuk) AS kuartal_masuk,
  COUNT(*) AS total_masuk,
  COUNT(*) FILTER (
    WHERE tgl_keluar IS NULL
       OR tgl_keluar > tgl_masuk + INTERVAL '90 days'
  ) AS lolos_90_hari,
  ROUND(100.0 * COUNT(*) FILTER (
    WHERE tgl_keluar IS NULL
       OR tgl_keluar > tgl_masuk + INTERVAL '90 days'
  ) / COUNT(*), 1) AS retensi_persen
FROM karyawan
WHERE tgl_masuk >= '2025-01-01'
GROUP BY 1
ORDER BY 1;

Bagian tgl_keluar IS NULL penting. Karyawan yang masih kerja belum punya tanggal keluar, dan mereka jelas lolos 90 hari.

Contoh kasus: perusahaan distribusi 240 karyawan

Data dari satu perusahaan distribusi UMKM yang aku bantu rapiin laporannya. 240 karyawan, 6 departemen.

DepartemenKaryawanTurnover 2026Retensi 90 hari
Gudang7831,2%68%
Sales lapangan6224,6%74%
Customer service3417,1%88%
Keuangan219,5%100%
IT1816,7%83%
Manajemen277,4%100%
Total24021,3%79%

Angka nasionalnya 21,3%. Manajemen bakal bilang "ya, retail emang gitu".

Tapi lihat gudang: turnover 31,2%, retensi 90 hari cuma 68%. Artinya hampir sepertiga karyawan gudang baru kabur sebelum masa percobaan habis.

Waktu aku cek alasan keluarnya, 19 dari 24 orang yang resign dalam 90 hari nulis hal yang sama: jam kerja yang beda jauh dari yang dijanjiin waktu wawancara. Bukan gajinya. Bukan bosnya. Ekspektasi yang salah dikomunikasiin.

Biaya rekrutmen ulang buat 24 posisi itu Rp 96 juta setahun. Perbaikannya gratis: ubah kalimat di iklan lowongan dan jelasin jadwal shift di wawancara pertama.

Kesalahan umum di dashboard HR

Cuma nampilin angka total. Turnover perusahaan 21% keliatan normal. Turnover gudang 31% itu darurat. Selalu pecah per departemen.

Percaya survei engagement tahunan. Karyawan takut jawabannya kebaca atasan, dan datanya udah basi pas dilaporin. Retensi 90 hari dan promosi internal lebih susah dipoles.

Gak bedain regretted dan non-regretted. Kalau semua yang keluar dianggap sama, kamu bakal ngabisin energi buat nahan orang yang emang harusnya pergi.

Ngukur time to hire tapi gak ngukur kualitas hire. Rekrut cepat itu gampang kalau standarnya diturunin. Pasangin sama retensi 90 hari.

Nampilin data individual di dashboard yang bisa diakses banyak orang. Data gaji dan rating performa itu sensitif. Agregasi minimal 5 orang per kelompok, dan pasang batasan akses. Aku bahas soal ini lebih lanjut di artikel keamanan data.

FAQ

Berapa turnover rate yang wajar di perusahaan Indonesia?

Perusahaan konvensional 10-15% per tahun. Startup teknologi dan retail biasanya 20-30%. Yang lebih penting: pecah berdasarkan performa dan lama kerja. Turnover 12% yang isinya karyawan bintang lebih bahaya dari 22% yang isinya orang yang gak cocok.

Apa itu regretted attrition dan kenapa penting?

Persentase karyawan yang keluar padahal perusahaan pengin mereka bertahan. Biaya ngeganti satu karyawan performa tinggi bisa 2-3 kali gaji tahunannya. Turnover total bisa keliatan aman padahal regretted attrition-nya lagi meledak.

Gimana cara ngitung cost per hire?

Jumlahin semua biaya rekrutmen, bagi jumlah orang yang direkrut. Yang sering kelupaan: waktu manajer yang ikut wawancara. Enam wawancara dengan 3 manajer itu jam kerja yang punya nilai.

KPI HR mana yang paling sering disalahpakai?

Employee engagement score dari survei tahunan. Angkanya sering dipoles dan datanya udah basi pas dilaporin. Retensi 90 hari dan promosi internal ngasih sinyal yang lebih jujur.

Data apa yang dibutuhin buat bikin dashboard HR?

Minimal lima kolom: id karyawan, tanggal masuk, tanggal keluar, departemen, level. Kalau bisa nambah alasan keluar dan rating performa terakhir, dashboard kamu naik kelas.

Penutup

Yang bisa kamu pakai mulai minggu ini:

  • Pecah turnover per departemen. Angka nasional 21,3% nyembunyiin gudang yang 31,2%.
  • Ukur retensi 90 hari. Ini yang paling cepat ngasih tau apakah onboarding kamu rusak.
  • Bedain regretted dan non-regretted attrition. Tanpa itu, kamu ngabisin energi di orang yang salah.

Buat referensi definisi metrik yang dipakai secara internasional, panduan perhitungan turnover dari SHRM lumayan rapi dan bisa dijadiin acuan.

Mau nulis query HR-nya sendiri? Latihan CTE dan agregasi bersyarat di NgulikSQL — dua hal itu yang paling sering kepake di people analytics. Lanjut baca glossary cohort analysis kalau kamu mau ngulik retensi karyawan per angkatan masuk.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel Terkait

Cara Membuat Dashboard di Google Sheets Tanpa Tools Tambahan
Dashboard & Visualisasi
12 Juli 2026•9 menit baca

Cara Membuat Dashboard di Google Sheets Tanpa Tools Tambahan

Dashboard penjualan yang rapi bisa kamu bikin cuma pakai Google Sheets — tanpa Looker Studio, tanpa add-on, tanpa bayar apa pun. Ini urutan 6 langkahnya, lengkap dengan rumusnya.

BimaBima
Dashboard vs Laporan: Bedanya dan Kapan Bikin yang Mana
Dashboard & Visualisasi
9 Juli 2026•8 menit baca

Dashboard vs Laporan: Bedanya dan Kapan Bikin yang Mana

Dashboard buat mantau angka yang berubah tiap hari. Laporan buat jawab satu pertanyaan sekali dan tuntas. Salah pilih, kerjaanmu kebuang.

BimaBima
KPI Keuangan: Metrik yang Dibaca CFO Setiap Bulan
Dashboard & Visualisasi
6 Juli 2026•9 menit baca

KPI Keuangan: Metrik yang Dibaca CFO Setiap Bulan

Delapan KPI keuangan yang beneran dibuka CFO tiap bulan, rumusnya, dan cara nyusunnya jadi satu dashboard yang kebaca dalam 90 detik.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

Copyright © 2026 - All rights reserved

LINKS
SupportPricingDatasetBlogAffiliates
LEGAL
Terms of servicesPrivacy policy
Ngulik Data
DatasetLeaderboardBlogStore