Minggu, 17 November 2013

PROGRAM GAJI

LISTING PROGRAM



LOGIKA PROGRAM


#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>
main()
{
int jkar, I, total=0, gp = 700000;
int jam[50],tunjangan[50],hlembur[50],pajak[50],pbersih[50];
char nama[50][50],gol[50];
·          Program ini meggunakan include iostream, conio dan stdio yang bertujuan untuk menerima inputan dan include iomanip ditujukan untuk pembuatan setiosflag yang bertujuan agar teks pada layar output ditempatkan sesuai dengan yang di inginkan.. agar pada saat menampilkan output terlihat rapih dan mudah di mengerti.
·         Pendeklarasian variable dalam main program dengan nama variable jkar, i, gp atau gaji pokok dengan  nilai Rp 700.000,- dan total dengan nilai 0.. lalu ada pendeklarasian array dengan indeks 50 dengan nama variable jam, tunjangan, hlembur, pajak, pbersih dengan tipe data integer..
·         Pembuatan array dengan tipe data char, dan bernama nama dengan indeks 50 karakter dan 50 data dan variable gol dengan indeks 50.

cout<<"program hitung honor karyawan kontrak\n";
cout<<"PT.STAY COOL\n\n";
cout<<"Masukan jumlah karyawan: ";cin>>jkar;
for(i=1;i<=jkar;i++)
 {
·         Pembuatan layar output pertamayang di gunakan untuk meminta inputan jumlah karyawannya yang akan disimpan pada variable jkar, lalu pembuatan variable for yang digunakan untuk membuat perulangan degan variable I yang di tujukan agar program tetap meminta data karyawan sebanyak jumlah karyawan yang telah di inputkan sebelumnya.

   cout<<"Karyawan ke- "<<i<<endl;
   cout<<"Nama Karyawan : ";gets(nama[i]);
   cout<<"Golongan(1/2/3) : ";cin>>gol[i];
   cout<<"Jumlah Jam Kerja: ";cin>>jam[i];
·         Ini juga pembuatan layar output untuk meminta masukkan Nama Karyawan, Golongan, Jumlah Jam Kerja.. dengan kata lain disini pembuatan array dengan menggunakan indeks variable I yang tergantung seberapa banyak memasukkan jumlah karyawannya..
·         Nama Karyawan akan disimpan pada variable nama dengan indeks variable I dikarenakan jumlah karyawan tergantung dengan seberapa banyak nilai inputan jumlah karyawannya.. oleh karena itu dibuat array karena tidak hanya satu data karyawan saja yang di inputkan dalam program ini.
Menggunakan statement gets agar scanner mengenal karakter spasi.
·         Golongan akan disimpan pada variable gol, dan Jumlah Jam Kerja akan disimpa pada variable jam, semua variable disini dibuat menjadi array.. dengan menggunakan indeks variable i

if(gol[i]=='1')
 {tunjangan[i]=(gp*5)/100;}
else if(gol[i]=='2')
 {tunjangan[i]=(gp*10)/100;}
else if(gol[i]=='3')
 {tunjangan[i]=(gp*15)/100;}
else
 {tunjangan[i]=0;}
·         Ini adalah percabangan dengan menggunakan statement if else yang digunakan untuk penyeleksian golongan yang telah di input sebelumnya, jika yang dimasukkan adalah satu maka akan ada pemberian nilai untuk variable tunjangan dengan indeks variable I dimana gaji pokok (variable gp) dikalikan dengan 5%, jika yang di inputkan dua dikalikan dengan 10% dan jika yang dimasukkan 3 dikalikan dengan 15%..
·         Jika golongan yang dimasukkan selain dengan yang di atas maka nilai dari variable tunjangan adalah nol.

hlembur[i]=(jam[i]-240)*2500;
pajak[i]=(10*(gp+tunjangan[i]+hlembur[i]))/100;
pbersih[i]=(gp+tunjangan[i]+hlembur[i])-pajak[i];
total=total+pbersih[i];
}
·         Pemberian nilai untuk variable hlembur                yang digunakan untuk pemberian honor lembur dengan ketentuan jumlah jam dikurang dengan 240 dikalikan dengan Rp 2500,-
·         Pajak dengan ketentuan 10% yang di ambil dari (gaji pokok + tunjangan + honor lembur)
·         ((gaji pokok + tunjangan + honor lembur) – pajak ) adalah rumus yang digunakan untuk menentukan pendapatan bersih dari setiap karyawan..
·         Yang terakhir adalah variable total yang digunakan untuk menampilkan total gaji yang dikeluarkan, dari seluruh karyawan yang berdasarkan penginputan jumlah karyawannya.



clrscr();
cout<<"\n\n\t\t\t\tPT. STAY COOL"<<endl;
cout<<"-----------------------------------------------------------------------------"<<endl;
cout<<"No\tNama"<<endl;
cout<<"  \tKaryawan\t\tTunjangan\tHonor\t\t Pendapatan"<<endl;
cout<<"  \t\t\t\tJabatan\t\tLembur\t Pajak\t Bersih"<<endl;
cout<<"-----------------------------------------------------------------------------"<<endl;
for(i=1;i<=jkar;i++)
{
cout<<setiosflags(ios::left)<<setw(6)<<i;
cout<<setiosflags(ios::left)<<setw(26)<<nama[i];
cout<<setiosflags(ios::left)<<setw(14)<<tunjangan[i];
cout<<setiosflags(ios::left)<<setw(10)<<hlembur[i];
cout<<setiosflags(ios::left)<<setw(9)<<pajak[i];
cout<<setiosflags(ios::left)<<setw(8)<<pbersih[i];
cout<<endl;
}
cout<<"-----------------------------------------------------------------------------\n";
cout<<"Total Gaji Yang Dikeluarkan\t\t\t\t      Rp "<<total;

getch()
{
·         Ini adalah pembuatan layar output yang kedua dimana ada penjelasan mengenai nama karyawan, tunjangan jabatan, honor lembur dan pendapatan bersih.
·         Membuat perulangan for yang digunakan untuk membuat indeks array yang akan menampilkan seluruh isi data karyawan dan jumlah gajinya (isi array).
·         Setiosflags disini digunakan untuk membuat teks rata.. sebagai contoh à (ios::left) adalah rata kiri dan statement (setw(6)) setw ini ditujukan untuk memberikan ruang digit atau space untuk suatu isi variabel sebanyak 6 digit/space. 
OUTPUT PROGRAM