Latihan kode program C++ kali ini akan membahas cara menghitung gaji mingguan karyawan berdasarkan golongan serta kondisi tambahan untuk menghitung upah lembur.
Soal ini umumnya dipakai untuk menguji pemahaman seputar konsep if else atau switch case.
Soal Menghitung Gaji Karyawan
Buatlah program untuk menentukan gaji karyawan mingguan dengan ketentuan sebagai berikut:
- Golongan = A maka upah per jam 5000
- Golongan = B maka upah per jam 7000
- Golongan = C maka upah per jam 8000
- Golongan = D maka upah per jam 10000
Ketentuan tambahan:
- Jika jam kerja karyawan lebih dari 48 jam per minggu maka akan mendapat uang lembur dengan perhitungan uang lembur = (jam kerja-48)*4000.
- Jika jam kerja kurang dari 48 jam maka pegawai tidak akan mendapat uang lembur.
- Perhitungan gaji pegawai adalah upah + uang lembur.
- Input berupa nama karyawan, golongan dan jam kerja.
- Outputnya adalah nama karyawan dan gaji yang diterima.
Tips Membuat Kode Program Menghitung Gaji Karyawan
Soal ini melatih pemahaman tentang cara penggunaan variabel serta cara penggunaan kondisi if else atau switch case. Berikut tutorial pendahuluan yang bisa diikuti:
- Pengertian Variabel dalam Bahasa C++
- Tipe Data Char Bahasa C++
- Tipe Data Integer Bahasa C++
- Tipe Data String Bahasa C++
- Percabangan Kondisi IF ELSE C++
- Percabangan Kondisi Switch Case C++
Karena golongan karyawan hanya berbentuk satu karakter, maka kita bisa menggunakan kondisi switch case untuk menentukan gaji harian. Setelah itu gunakan kondisi if else untuk memeriksa apakah karyawan bisa mendapat lembur atau tidak.
Silahkan anda coba sebentar untuk membuat kode program ini.
Kode Program C++ Menghitung Gaji Karyawan
Berikut salah satu solusi dari soal menghitung gaji karyawan menggunakan bahasa pemrograman C++:
#include <iostream> using namespace std; int main() { cout << "## Program Menghitung Gaji Karyawan ##" << endl; cout << "========================================" << endl; cout << endl; string nama; char golongan; int jam_kerja, upah_per_jam, total_upah; // proses input cout << "Nama Karyawan: "; getline(cin,nama); cout << "Golongan: "; cin >> golongan; cout << "Jumlah jam kerja: "; cin >> jam_kerja; // tentukan jumlah upah per jam berdasarkan golongan switch (golongan) { case 'A': upah_per_jam = 5000; break; case 'B': upah_per_jam = 7000; break; case 'C': upah_per_jam = 8000; break; case 'D': upah_per_jam = 10000; break; } total_upah = jam_kerja * upah_per_jam; // cek apakah jam kerja lebih dari 48 jam if ( (jam_kerja - 48) > 0 ) { total_upah = total_upah + ((jam_kerja - 48)*4000); } // proses output cout << endl; cout << nama << " menerima upah Rp." << total_upah << " per minggu"; cout << endl; return 0; }
Hasil kode program:
Di baris 11 – 13 terdapat kode untuk deklarasi semua variabel yang diperlukan. Lalu proses input data ada pada baris 16 – 23.
Khusus untuk input variabel nama, menggunakan fungsi getline(cin,nama) agar tidak bermasalah dengan nama yang mengandung spasi.
Kondisi switch case di baris 26 – 39 berguna untuk menentukan nilai variabel upah_per_jam. Alternatif lain bisa saja menggunakan kondisi if else.
Setelah di dapat upah_per_jam, kita bisa mencari total_upah di baris 41, yakni dengan mengalikan isi variabel jam_kerja * upah_per_jam.
Dalam soal, terdapat kondisi tambahan dimana jika jam kerja lebih dari 48, maka perlu ditambah dengan upah lembur. Inilah yang dilakukan oleh kode program di baris 44 – 46.
Kondisi if ( (jam_kerja – 48) > 0 ) hanya akan terpenuhi jika jam kerja lebih dari 48 jam. Jika kondisi ini menghasilkan nilai true, maka baris 45 akan diproses dan isi variabel total_upah akan di tambah dengan perhitungan total_upah + ((jam_kerja – 48)*4000).
Namun jika kondisi if ( (jam_kerja – 48) > 0 ) menghasilkan nilai false, tidak perlu perhitungan tambahan.
Terakhir, proses output di lakukan pada baris 50, yakni menampilkan kembali nama karyawan serta jumlah upah per minggu yang disimpan dalam variabel total_upah.
Demikian kode program latihan Menghitung Gaji Karyawan dalam bahasa pemrograman C++. Soal seperti ini cukup sering ditemukan dengan beberapa variasi jumlah gaji.
itu ketentuan no.2 salah ya?
ketentuan
1. lembur jika lebih dari 48jam
2. tidak lembur jika kurang dari 50jam
Wah iya, terimakasih koreksinya… sudah di perbaiki
pseudocode nya dong kak, aq punya persoalan yg sama
Di tampung dulu ya… tapi kalau sudah ada programnya, sudah gampang untuk buat pseudocode sendiri.
START
PRINT “## Program Menghitung Gaji Karyawan ##”
PRINT “========================================”
PRINT
DECLARE string nama
DECLARE char golongan
DECLARE int jam_kerja, upah_per_jam, total_upah
PRINT “Nama Karyawan: ”
INPUT nama
PRINT “Golongan: ”
INPUT golongan
PRINT “Jumlah jam kerja: ”
INPUT jam_kerja
SWITCH golongan
CASE ‘A’
upah_per_jam = 5000
BREAK
CASE ‘B’
upah_per_jam = 7000
BREAK
CASE ‘C’
upah_per_jam = 8000
BREAK
CASE ‘D’
upah_per_jam = 10000
BREAK
END SWITCH
total_upah = jam_kerja * upah_per_jam
IF jam_kerja > 48 THEN
total_upah = total_upah + ((jam_kerja – 48)*4000)
END IF
PRINT
PRINT nama + ” menerima upah Rp.” + total_upah + ” per minggu”
PRINT
END
record nama, gol, jam kerjanya ditampung lewat mana ya. kan harus input data dulu biar terbaca?
kak saya mau tanya kenapa pas di running itu malah beralih suruh download apk?
Runningnya pakai aplikasi apa ya?
kak mau tanya, kira2 “getline” bisa diganti dengan yang lain? karena saya tes di visual studio tidak terbaca