Study Case Menganalisis Tren Turnover Karyawan dalam Perusahaan di MySQL

Tutorial ini membahas cara menganalisis tren turnover karyawan menggunakan MySQL. Analisis turnover membantu perusahaan memahami tingkat keluar-masuknya karyawan dalam periode tertentu, yang dapat digunakan untuk meningkatkan strategi retensi.


Langkah-langkah

1. Persiapan Database dan Tabel

Buat tabel bernama karyawan_turnover untuk menyimpan data karyawan yang bergabung dan keluar dari perusahaan.


Query Membuat Tabel:

CREATE TABLE karyawan_turnover (

    id_karyawan INT PRIMARY KEY AUTO_INCREMENT,

    nama_karyawan VARCHAR(100) NOT NULL,

    tanggal_masuk DATE NOT NULL,

    tanggal_keluar DATE NULL

);

Penjelasan Kolom:


id_karyawan: ID unik untuk setiap karyawan.

nama_karyawan: Nama karyawan.

tanggal_masuk: Tanggal karyawan mulai bekerja.

tanggal_keluar: Tanggal karyawan berhenti bekerja. Jika NULL, karyawan masih aktif.


2. Memasukkan Contoh Data

Tambahkan data ke tabel untuk simulasi.


Query Menambahkan Data:

INSERT INTO karyawan_turnover (nama_karyawan, tanggal_masuk, tanggal_keluar)

VALUES

('Andi', '2023-01-01', '2023-12-31'),

('Budi', '2023-02-15', NULL),

('Citra', '2023-03-01', '2023-09-30'),

('Dewi', '2023-05-01', '2023-10-15'),

('Eka', '2023-06-01', NULL);


Data pada Tabel:


3. Menghitung Jumlah Karyawan yang Masuk dan Keluar per Bulan

Gunakan fungsi COUNT untuk menghitung jumlah karyawan yang bergabung dan keluar setiap bulan.


Query SQL:

SELECT 

    DATE_FORMAT(tanggal_masuk, '%Y-%m') AS bulan,

    COUNT(*) AS karyawan_masuk

FROM 

    karyawan_turnover

GROUP BY 

    bulan

UNION ALL

SELECT 

    DATE_FORMAT(tanggal_keluar, '%Y-%m') AS bulan,

    COUNT(*) AS karyawan_keluar

FROM 

    karyawan_turnover

WHERE 

    tanggal_keluar IS NOT NULL

GROUP BY 

    bulan;


Penjelasan Query:

DATE_FORMAT(tanggal_masuk, '%Y-%m'): Mengelompokkan data berdasarkan bulan dan tahun.

COUNT(*): Menghitung jumlah karyawan yang masuk atau keluar.

UNION ALL: Menggabungkan hasil masuk dan keluar menjadi satu laporan.

WHERE tanggal_keluar IS NOT NULL: Hanya menghitung karyawan yang sudah keluar.


Hasil Query:


4. Menganalisis Tingkat Turnover per Bulan

Untuk menghitung tingkat turnover, gunakan formula:

Tingkat Turnover (%) = (Jumlah Karyawan Keluar / Total Karyawan Awal Bulan) × 100


Query SQL:

WITH masuk AS (

    SELECT 

        DATE_FORMAT(tanggal_masuk, '%Y-%m') AS bulan,

        COUNT(*) AS karyawan_masuk

    FROM 

        karyawan_turnover

    GROUP BY 

        bulan

),

keluar AS (

    SELECT 

        DATE_FORMAT(tanggal_keluar, '%Y-%m') AS bulan,

        COUNT(*) AS karyawan_keluar

    FROM 

        karyawan_turnover

    WHERE 

        tanggal_keluar IS NOT NULL

    GROUP BY 

        bulan

),

turnover AS (

    SELECT 

        m.bulan,

        m.karyawan_masuk,

        COALESCE(k.karyawan_keluar, 0) AS karyawan_keluar

    FROM 

        masuk m

    LEFT JOIN 

        keluar k

    ON 

        m.bulan = k.bulan

)

SELECT 

    bulan,

    karyawan_masuk,

    karyawan_keluar,

    ROUND((karyawan_keluar / (karyawan_masuk + 1)) * 100, 2) AS tingkat_turnover

FROM 

    turnover;


Penjelasan Query:

CTE masuk: Mengelompokkan jumlah karyawan yang masuk.

CTE keluar: Mengelompokkan jumlah karyawan yang keluar.

LEFT JOIN: Menggabungkan data karyawan masuk dan keluar.

ROUND((karyawan_keluar / (karyawan_masuk + 1)) * 100, 2): Menghitung tingkat turnover.


5. Visualisasi Hasil

Untuk analisis lebih mendalam, hasil query dapat diekspor ke alat visualisasi seperti Excel atau Tableau untuk membuat grafik tren turnover.


Dengan tutorial ini, diharapkan dapat:

  • Menghitung jumlah karyawan yang masuk dan keluar per bulan.
  • Menganalisis tingkat turnover.
  • Mengidentifikasi pola atau tren turnover untuk periode tertentu.

Langkah ini membantu perusahaan mengidentifikasi periode kritis dengan tingkat turnover tinggi dan mengambil tindakan untuk meningkatkan retensi karyawan. Semoga bermanfaat dan mohon maaf jika terdapat kesalahan informasi yang disampaikan.

Comments

Popular posts from this blog

Integrating PHP with Message Queues RabbitMQ Kafka

FastAPI and UVLoop: The Perfect Pair for Asynchronous API Development

Konfigurasi dan Instalasi PostgreSQL Secara Lengkap di Windows Linux dan MacOS