From e3d185a0c85becf7e47e42866bceffd3ef62c522 Mon Sep 17 00:00:00 2001 From: 202410715285 SOLEH <202410715285@mhs.ubharajaya.ac.id> Date: Fri, 9 May 2025 19:33:30 +0700 Subject: [PATCH] Update README.md --- README.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/README.md b/README.md index 5bdd4e6..dc189e8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,86 @@ # Jumlah_Jam_Kerja +# 🕒 Perhitungan Jumlah Jam Kerja Karyawan + +## 📘 Deskripsi Soal + +Soal ini berkaitan dengan perhitungan jumlah total jam kerja karyawan dalam satu hari berdasarkan jam masuk dan jam keluar. Sistem perhitungan dibagi menjadi dua kategori: **jam kerja normal** dan **jam lembur**. Jam kerja normal ditetapkan selama maksimal **8 jam**. Jika karyawan bekerja lebih dari 8 jam, maka kelebihannya dianggap sebagai **lembur** dengan perhitungan nilai lembur berdasarkan sistem bobot sebagai berikut: + +- Jam lembur pertama: dikalikan **1** +- Jam lembur kedua: dikalikan **2** +- Jam lembur ketiga dan seterusnya: dikalikan **3** + +Total jam kerja efektif dalam sehari adalah jumlah dari jam kerja normal (maksimal 8 jam) dan nilai jam lembur yang dihitung berdasarkan aturan di atas. + +## 📊 Contoh Soal + +### Input: +7 10 +10 20 +1 10 +### Output: +h#1: 3 +h#2: 11 +h#3: 9 + +### Penjelasan: +- **7 10** → Total kerja 3 jam → semua jam normal → total = **3** +- **10 20** → Total kerja 10 jam → 8 jam normal + 2 lembur + - Lembur: 1×1 + 1×2 = 3 → total = 8 + 3 = **11** +- **1 10** → Total kerja 9 jam → 8 jam normal + 1 lembur + - Lembur: 1×1 = 1 → total = 8 + 1 = **9** + +## 📌 Batasan Soal + +- Input terdiri dari dua angka per baris: `jam_masuk` dan `jam_keluar` +- Pemisah antara angka adalah spasi (` `) +- Nilai jam dalam rentang **0–23** +- `jam_keluar > jam_masuk` +- Tidak ada input invalid (dijamin valid) +- Jumlah entri bisa lebih dari satu baris + +## 🧠 Strategi Penyelesaian + +1. **Baca dan parsing input** sebagai pasangan `jam_masuk` dan `jam_keluar`. +2. Hitung total jam kerja sebagai `total_jam = jam_keluar - jam_masuk`. +3. Jika `total_jam <= 8`, maka semua dihitung sebagai jam normal. +4. Jika lebih dari 8, maka: + - 8 jam pertama = jam normal + - Sisanya = jam lembur +5. Hitung nilai lembur berdasarkan aturan bobot: + - Jam lembur pertama dikali 1 + - Jam lembur kedua dikali 2 + - Jam lembur ke-3 dan seterusnya dikali 3 +6. Jumlahkan `jam_normal + nilai_lembur` untuk mendapatkan total nilai jam kerja efektif. +7. Ulangi proses untuk setiap baris data. + +## 💻 Contoh Kode (Python) +```python +def hitung_jam_kerja(jam_masuk, jam_keluar): + total_jam = jam_keluar - jam_masuk + if total_jam <= 8: + return total_jam + else: + lembur = total_jam - 8 + lembur_total = 0 + if lembur >= 1: + lembur_total += 1 * 1 + if lembur >= 2: + lembur_total += 1 * 2 + if lembur > 2: + lembur_total += (lembur - 2) * 3 + return 8 + lembur_total + data = [ + (7, 10), + (10, 20), + (1, 10), +] + for i, (masuk, keluar) in enumerate(data, start=1): + total = hitung_jam_kerja(masuk, keluar) + print(f"h#{i}: {total}") + + + Hasil output: + h#1: 3 + h#2: 11 + h#3: 9 \ No newline at end of file