Last active
October 16, 2022 12:57
-
-
Save oktavianto/1b8858a4d8d64992da6d9e566d8c23ba to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <string> | |
using namespace std; | |
struct Pegawai { | |
string nip; | |
string nama; | |
string alamat; | |
string telepon; | |
string kategori; | |
int jam_kerja_harian; | |
}; | |
int main(){ | |
Pegawai pegawai[5]; | |
int pilih; | |
int i = 0; | |
string cari_nip; | |
do{ | |
cout << "==============================" << endl; | |
cout << "Program Penggajian Pegawai" << endl; | |
cout << "==============================" << endl; | |
cout << "1. Input Data" << endl; | |
cout << "2. Entry jam kerja harian" << endl; | |
cout << "3. Print slip gaji" << endl; | |
cout << "4. Exit" << endl; | |
cout << "Pilih : "; | |
cin >> pilih; | |
switch(pilih){ | |
case 1: | |
// Input Data | |
cout << "Input Data Pegawai" << endl; | |
cout << "NIP : "; | |
cin >> pegawai[i].nip; | |
cout << "Nama : "; | |
cin >> pegawai[i].nama; | |
cout << "Alamat : "; | |
cin >> pegawai[i].alamat; | |
cout << "Telepon : "; | |
cin >> pegawai[i].telepon; | |
cout << "Kategori (D1, D2, D3) : "; | |
cin >> pegawai[i].kategori; | |
i++; | |
break; | |
case 2: | |
// Entry jam kerja harian | |
cout << "==============================" << endl; | |
cout << "Entry jam kerja harian" << endl; | |
cout << "==============================" << endl; | |
cout << "Cari NIP : "; | |
cin >> cari_nip; | |
for(int j = 0; j < i; j++){ | |
if(cari_nip == pegawai[j].nip){ | |
cout << "NIP : " << pegawai[j].nip << endl; | |
cout << "Nama : " << pegawai[j].nama << endl; | |
cout << "Alamat : " << pegawai[j].alamat << endl; | |
cout << "Telepon : " << pegawai[j].telepon << endl; | |
cout << "Kategori : " << pegawai[j].kategori << endl; | |
// 2. input jam kerja harian | |
cout << "Jam kerja harian : "; | |
cin >> pegawai[j].jam_kerja_harian; | |
// 3. tampilkan data pegawai beserta jam lembur harian (jam kerja harian - 8) dan jam lembur bulanan (jam lembur harian * 20) | |
int jam_lembur_harian = pegawai[j].jam_kerja_harian - 8; | |
int jam_lembur_bulanan = jam_lembur_harian * 20; | |
cout << "Jam lembur harian : " << jam_lembur_harian << endl; | |
cout << "Jam lembur bulanan : " << jam_lembur_bulanan << endl; | |
} else { | |
cout << "Data tidak ditemukan" << endl; | |
} | |
} | |
break; | |
case 3: | |
// Print slip gaji | |
cout << "==============================" << endl; | |
cout << "Print slip gaji" << endl; | |
cout << "==============================" << endl; | |
cout << "Cari NIP : "; | |
cin >> cari_nip; | |
for(int j = 0; j < i; j++){ | |
if(cari_nip == pegawai[j].nip){ | |
// tampilkan slip gaji | |
cout << "Slip Gaji" << endl; | |
cout << "NIP : " << pegawai[j].nip << endl; | |
cout << "Nama : " << pegawai[j].nama << endl; | |
cout << "Alamat : " << pegawai[j].alamat << endl; | |
cout << "Telepon : " << pegawai[j].telepon << endl; | |
cout << "Kategori : " << pegawai[j].kategori << endl; | |
cout << "Jam kerja harian : " << pegawai[j].jam_kerja_harian << endl; | |
// jam lembur | |
int jam_lembur_harian = pegawai[j].jam_kerja_harian - 8; | |
int jam_lembur_bulanan = jam_lembur_harian * 20; | |
cout << "Jam lembur harian : " << jam_lembur_harian << endl; | |
cout << "Jam lembur bulanan : " << jam_lembur_bulanan << endl; | |
// hitung gaji pokok | |
int gaji_pokok; | |
if(pegawai[j].kategori == "D1"){ | |
gaji_pokok = 2500000; | |
} else if(pegawai[j].kategori == "D2"){ | |
gaji_pokok = 2000000; | |
} else if(pegawai[j].kategori == "D3"){ | |
gaji_pokok = 1500000; | |
} | |
cout << "Gaji Pokok : " << gaji_pokok << endl; | |
// hitung gaji lembur | |
int gaji_lembur = jam_lembur_bulanan * 20000; | |
cout << "Gaji Lembur : " << gaji_lembur << endl; | |
// hitung gaji total | |
int gaji_total = gaji_pokok + gaji_lembur; | |
cout << "Gaji Total : " << gaji_total << endl; | |
} else { | |
cout << "Data tidak ditemukan" << endl; | |
} | |
} | |
break; | |
case 4: | |
break; | |
default: | |
cout << "Pilihan tidak ada" << endl; | |
} | |
}while(pilih != 3); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment