Update README.md
This commit is contained in:
parent
a2411d7d35
commit
e3d185a0c8
84
README.md
84
README.md
@ -1,2 +1,86 @@
|
|||||||
# Jumlah_Jam_Kerja
|
# 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
|
Loading…
x
Reference in New Issue
Block a user