Study Case Menghitung Total Jam Kerja Karyawan dalam Periode Tertentu di MySQL
Tutorial ini menjelaskan cara menghitung total jam kerja karyawan dalam periode tertentu menggunakan MySQL. Data jam kerja ini berguna untuk analisis produktivitas, penggajian, dan laporan manajemen.
Langkah-langkah
1. Persiapan Database dan Tabel
Buat tabel bernama absensi untuk menyimpan data masuk dan keluar karyawan.
Query Membuat Tabel:
CREATE TABLE absensi (
id INT PRIMARY KEY AUTO_INCREMENT,
id_karyawan INT NOT NULL,
nama_karyawan VARCHAR(100) NOT NULL,
tanggal DATE NOT NULL,
jam_masuk TIME NOT NULL,
jam_keluar TIME NOT NULL
);
Penjelasan Kolom:
id: ID unik untuk setiap catatan.
id_karyawan: ID unik untuk karyawan.
nama_karyawan: Nama karyawan.
tanggal: Tanggal kehadiran.
jam_masuk: Waktu masuk kerja.
jam_keluar: Waktu keluar kerja.
2. Memasukkan Contoh Data
Tambahkan data ke tabel untuk simulasi.
Query Menambahkan Data:
INSERT INTO absensi (id_karyawan, nama_karyawan, tanggal, jam_masuk, jam_keluar)
VALUES
(1, 'Andi', '2025-01-01', '08:00:00', '16:00:00'),
(1, 'Andi', '2025-01-02', '08:30:00', '16:30:00'),
(2, 'Budi', '2025-01-01', '09:00:00', '17:00:00'),
(2, 'Budi', '2025-01-02', '09:15:00', '17:15:00'),
(3, 'Citra', '2025-01-01', '08:00:00', '15:30:00'),
(3, 'Citra', '2025-01-02', '08:00:00', '16:00:00');
Data pada Tabel:
3. Menghitung Jam Kerja Harian
Hitung durasi jam kerja harian untuk setiap catatan.
Query SQL:
SELECT
id_karyawan,
nama_karyawan,
tanggal,
TIMESTAMPDIFF(HOUR, jam_masuk, jam_keluar) AS jam_kerja
FROM
absensi;
Hasil Query:
4. Menghitung Total Jam Kerja dalam Periode Tertentu
Gunakan fungsi agregasi SUM untuk menghitung total jam kerja karyawan dalam periode tertentu.
Query SQL:
SELECT
id_karyawan,
nama_karyawan,
SUM(TIMESTAMPDIFF(HOUR, jam_masuk, jam_keluar)) AS total_jam_kerja
FROM
absensi
WHERE
tanggal BETWEEN '2025-01-01' AND '2025-01-02'
GROUP BY
id_karyawan, nama_karyawan;
Penjelasan Query:
SUM(TIMESTAMPDIFF(HOUR, jam_masuk, jam_keluar)): Menjumlahkan total jam kerja.
WHERE tanggal BETWEEN '2025-01-01' AND '2025-01-02': Menyaring data berdasarkan periode tertentu.
GROUP BY id_karyawan, nama_karyawan: Mengelompokkan hasil berdasarkan karyawan.
Hasil Query:
5. Menyimpan Hasil ke dalam Tabel Baru
Simpan hasil ini untuk keperluan laporan atau analisis lebih lanjut.
Query Membuat Tabel Baru:
CREATE TABLE total_jam_kerja AS
SELECT
id_karyawan,
nama_karyawan,
SUM(TIMESTAMPDIFF(HOUR, jam_masuk, jam_keluar)) AS total_jam_kerja
FROM
absensi
WHERE
tanggal BETWEEN '2025-01-01' AND '2025-01-02'
GROUP BY
id_karyawan, nama_karyawan;
Dengan tutorial ini, Anda dapat:
- Menghitung jam kerja harian karyawan.
- Mengakumulasi total jam kerja untuk periode tertentu.
- Menyimpan hasil penghitungan ke dalam tabel baru untuk analisis lebih lanjut.
Langkah ini sangat bermanfaat untuk memonitor kinerja karyawan dan membuat keputusan terkait jadwal kerja atau penggajian. Semoga bermanfaat dan mohon maaf jika ada ditemukan infomasi yang tidak sesuai.
Comments
Post a Comment