Bagosep

Program Menghitung Gaji dengan Struct

Apr 7th, 2017
82
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. using namespace std;
  6.  
  7. struct data{
  8.     char nama[20];
  9.     char alamat[20];
  10.     char status[20];
  11. };
  12.  
  13. struct perusahaan{
  14.     data data_pegawai;
  15.     int gaji = 0;
  16.     int bonus;
  17.     int jumlah_hari;
  18.     int tunjangan;
  19.     int total;
  20.     int banyak_karyawan;
  21. };
  22.  
  23. perusahaan kantor[50];
  24. int indeks = 0;
  25.  
  26. void dataPegawai(){
  27.     cout<<"Masukanh Banyak karyawan yang belum digaji = ";cin>>kantor[49].banyak_karyawan;
  28.     for(int kounter = 0 ; kounter < kantor[49].banyak_karyawan; kounter++){
  29.             cin.ignore();
  30.         cout<<"Masukan Nama Pegawai ke "<<kounter+1<<" = ";cin.getline(kantor[indeks].data_pegawai.nama, 20);
  31.         cout<<"Masukan Alamat Pegawai ke "<<kounter+1<<" = ";cin.getline(kantor[indeks].data_pegawai.alamat, 20);
  32.         cout<<"Masukan Status Pegawai ke "<<kounter+1<<" = ";cin.getline(kantor[indeks].data_pegawai.status, 20);
  33.         cout<<"Masukan Gaji yang belum dibayar = ";cin>>kantor[indeks].gaji;
  34.  
  35.         if((strcmp(kantor[indeks].data_pegawai.status, "menikah")==0)){
  36.              kantor[indeks].tunjangan = kantor[indeks].tunjangan + (0.20 * kantor[indeks].gaji) ;
  37.         }
  38.  
  39.         else if((strcmp(kantor[indeks].data_pegawai.status, "belum")==0)){
  40.             kantor[indeks].tunjangan = kantor[indeks].tunjangan + (0.07 * kantor[indeks].gaji) ;
  41.         }
  42.  
  43.         cout<<"Anda masuk berapa hari = ";cin>>kantor[indeks].jumlah_hari;
  44.                if(kantor[indeks].jumlah_hari >= 25 && kantor[indeks].jumlah_hari <= 30 ){
  45.                 kantor[indeks].bonus = kantor[indeks].bonus + (kantor[indeks].tunjangan * 2);
  46.                }
  47.                else if(kantor[indeks].jumlah_hari >= 16 && kantor[indeks].jumlah_hari <= 24 ){
  48.                 kantor[indeks].bonus = kantor[indeks].bonus + (kantor[indeks].tunjangan * 1);
  49.                }
  50.         kantor[indeks].total = kantor[indeks].gaji + kantor[indeks].bonus + kantor[indeks].tunjangan;
  51.     indeks++;
  52.     cout<<endl;
  53.     }
  54. }
  55.  
  56. void tampilPegawai(){
  57.     for(int kounter = 0 ; kounter < indeks; kounter++){
  58.         cout<<"\nNama Pegawai ke "<<kounter+1<<" = "<<kantor[kounter].data_pegawai.nama;
  59.         cout<<"\nAlamat Pegawai ke "<<kounter+1<<" = "<<kantor[kounter].data_pegawai.alamat;
  60.         cout<<"\nStatus Pegawai ke "<<kounter+1<<"= "<<kantor[kounter].data_pegawai.status;
  61.         cout<<"\nMendapatkan Gaji Pokok "<<kounter+1<<" = "<<kantor[kounter].gaji;
  62.         cout<<"\nMendapatkan Tunjangan = "<<kantor[kounter].tunjangan;
  63.  
  64.          if(kantor[kounter].jumlah_hari < 30 && kantor[kounter].jumlah_hari > 0 ) {
  65.             cout<<"\nMendapatkan Bonus = "<<kantor[kounter].bonus;
  66.          }
  67.          else{
  68.             cout<<"\nMaaf anda input melebihi/Kurang dari jumlah hari";
  69.          }
  70.  
  71.          cout<<"\nTotal Gaji = "<<kantor[kounter].total;
  72.         cout<<endl;
  73.  
  74.     }
  75. }
  76.  
  77.  
  78.  
  79. int main()
  80. {
  81.     int pilih;
  82.     char ulang;
  83.  
  84.     do{
  85.         cout<<"Menu\n";
  86.         cout<<"1. Input data\n";
  87.         cout<<"2. Tampil data\n";
  88.         cout<<"Pilihan anda = ";cin>>pilih;
  89.         switch(pilih){
  90.         case 1:
  91.             dataPegawai();
  92.         break;
  93.         case 2:
  94.             tampilPegawai();
  95.         break;
  96.         }
  97.     cout<<"\nApakah anda ingin mengulang = (y/n) ";cin>>ulang;
  98.     }while(ulang=='y');
  99.     return 0;
  100. }
RAW Paste Data