Jumlah_Jam_Kerja/README.md

2.7 KiB
Raw Blame History

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 023
  • 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)

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