Contoh Program Borland C++ Tentang Penggajian Karyawan


Hello Blogger, pada kesempatan kali ini saya akan membahas tentang bahasa pemrograman C++. Pada artikel kali ini, saya akan membagikan contoh program yang sudah pernah saya buat untuk tugas kuliah saya.

Contoh program kali ini adalah bertema tentang penggajian, yang dimana sudah menggunakan array, fungsi, dan teman-temannya. Jadi sobat bisa cek saja langsung untuk script dari program saya.

Ini adalah tampilan program yang sudah saya buat :


Dan berikut adalah listing dari program gaji yang sudah saya buat :


#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

garis(){
    cout<<"\n========================================\n";
}
garis2(){
    cout<<"========================================\n";
}
garis3(){
    cout<<"\n\n========================================\n";
}

main(){
    int i, j, k=1;

    struct{
     char nama[50];
     char pendidikan[3];
     char status_nikah;
     char jabatan[3];
     char lagi;
   }data[5];

   struct{
     int pokok;
     int total;
     int pendidikan;
     int lembur;
   }gaji[5];

   struct{
     int nikah;
   }tunjangan[5];

   struct{
     int jam_kerja;
     int hari_kerja;
     int lembur;
   }waktu[5];

    atas:
    clrscr();

    cout<<"\t\t\t\t================================================\n";
    cout<<"\t\t\t\t|\tPROGRAM MENGHITUNG GAJI KARYAWAN       |\n";
    cout<<"\t\t\t\t|\t    PT. SEJAHTERA PROGRAMKU            |\n";
    cout<<"\t\t\t\t================================================\n";

   cout<<"\nMasukkan banyak data    : "; cin>>i;
   if(i<=0){
       cout<<"Banyak data tidak boleh null"<<endl;
      goto atas;
   }
   else{
   for(j=1;j<=i;j++){
   garis();
   cout<<"Data ke - "<<k++<<endl;
   garis2();
    cout<<"Nama karyawan         : "; gets(data[i].nama);
    cout<<"Status nikah [Y/T]    : "; cin>>data[i].status_nikah;
    cout<<"Jabatan [SK/BD/KRY]   : "; cin>>data[i].jabatan;
    cout<<"Pendidikan [D3/S1/S2] : "; cin>>data[i].pendidikan;
    cout<<"Lama kerja (per-jam)  : "; cin>>waktu[i].jam_kerja;
    cout<<"Lama hari kerja       : "; cin>>waktu[i].hari_kerja;
    cout<<"Lama lembur (per-jam) : "; cin>>waktu[i].lembur;

   // Tunjangan Nikah
   if(data[i].status_nikah=='y'||data[i].status_nikah=='Y'){
        tunjangan[i].nikah=200000;
    }
    else if(data[i].status_nikah=='t'||data[i].status_nikah=='T'){
        tunjangan[i].nikah=0;
    }
    else{
        cout<<"\nMaaf kode status nikah yang anda masukkan salah!";
        getch();
      k=1;
        goto atas;
    }

   // Gaji Pokok
   if(strcmp(data[i].jabatan,"sk")==0||strcmp(data[i].jabatan,"SK")==0){
        gaji[i].pokok=waktu[i].jam_kerja*waktu[i].hari_kerja*25000;
    }
    else if(strcmp(data[i].jabatan,"bd")==0||strcmp(data[i].jabatan,"BD")==0){
        gaji[i].pokok=waktu[i].jam_kerja*waktu[i].hari_kerja*20000;
    }
   else if(strcmp(data[i].jabatan,"kry")==0||strcmp(data[i].jabatan,"KRY")==0){
        gaji[i].pokok=waktu[i].jam_kerja*waktu[i].hari_kerja*15000;
    }
    else
   {
        cout<<"\nMaaf kode jabatan yang anda masukkan salah!";
        getch();
      k=1;
        goto atas;
    }

   // Lembur
   if(waktu[i].lembur==0){
       gaji[i].lembur=0;
   }
   else if(strcmp(data[i].jabatan,"sk")==0||strcmp(data[i].jabatan,"SK")==0){
        gaji[i].lembur=waktu[i].lembur*10000;
    }
    else if(strcmp(data[i].jabatan,"bd")==0||strcmp(data[i].jabatan,"BD")==0){
        gaji[i].lembur=waktu[i].lembur*9000;
    }
   else if(strcmp(data[i].jabatan,"kry")==0||strcmp(data[i].jabatan,"KRY")==0){
        gaji[i].lembur=waktu[i].lembur*8000;
    }
    else{
        cout<<"\nMaaf lembur yang anda masukkan salah!";
        getch();
      k=1;
        goto atas;
    }

   // Tunjangan Pendidikan
   if(strcmp(data[i].pendidikan,"d3")==0||strcmp(data[i].pendidikan,"D3")==0){
        gaji[i].pendidikan=0.05*gaji[i].pokok; // 5 %
    }
    else if(strcmp(data[i].pendidikan,"s1")==0||strcmp(data[i].pendidikan,"S1")==0){
        gaji[i].pendidikan=0.075*gaji[i].pokok; // 7,5 %
    }
   else if(strcmp(data[i].pendidikan,"s2")==0||strcmp(data[i].pendidikan,"S2")==0){
        gaji[i].pendidikan=0.1*gaji[i].pokok;  // 10 %
    }
    else{
        cout<<"\nMaaf kode pendidikan yang anda masukkan salah!";
        getch();
      k=1;
        goto atas;
    }
   gaji[i].total=tunjangan[i].nikah+gaji[i].pokok+gaji[i].lembur+gaji[i].pendidikan;
    garis2();
   cout<<"Nama                 : "<<data[i].nama;
   cout<<"\nTunjangan Nikah      : "<<tunjangan[i].nikah;
   cout<<"\nGaji Pokok           : "<<gaji[i].pokok;
   cout<<"\nGaji Lembur          : "<<gaji[i].lembur;
   cout<<"\nTunjangan Pendidikan : "<<gaji[i].pendidikan;
    garis();
    cout<<"Total Gaji           : "<<gaji[i].total;
    garis();
   }
   }

    bawah:
    cout<<"\nEntry Data lagi (Y/T) ? ";cin>>data[i].lagi;
        if(data[i].lagi=='Y'||data[i].lagi=='y'){
          k=1;
            goto atas;
        }
        else if(data[i].lagi=='N'||data[i].lagi=='n'){
            cout<<"\nTerima Kasih";
        }
        else{
            cout<<"\nTerima Kasih";
        }
getch();
}

Note : SK (Sekretaris), BD (Bendahara), KRY (Karyawan)

No comments:

Post a Comment