#include <iostream.h>
#include <conio.h>
//tools
void garis();
long perata(long total);
long masukantetap(long bulanan);
long sumperbulan(long total,long bulanan);
//zfitrah
void fitrah();
long zakatfitrah(long beras);
//zpenghasilan
void penghasilan();
long nisabpenghasilan(long beras);
long zakatpenghasilan(long ratagaji, long ratakeluar);
void zakatmal();
//zakatemasperak
void emas();
void perak();
bool nisabemas(int punya);
bool nisabperak(int punya);
long zakatemasperak(int punya,long harga);
//zakatperniagaan
void perniagaan();
long nisabniaga(long hargamas);
long zakatniaga(long total);
//zakatpertanian
void pertanian();
bool nisabpertanian(int hasiltani);
float zakattani(int hasiltani,int pembagi);
//zakatternak
void ternak();
int autokambing(int kbg);
void autosapi(int sp);
//MAIN FUNCTION**********************************************
void main(){
int menu;
do{
clrscr();
cout<<"Lembaga OYIMFAIZAL ABSEN 11 dan 8"<<endl;
cout<<"MENU UTAMA PERHITUNGAN PAJAK";
garis();
cout<<"1. Zakat Fitrah\n";
cout<<"2. Zakat Penghasilan\n";
cout<<"3. Zakat Mal\n";
cout<<"4. Keluar/Exit\n";
cout<<"Masukan Pilihan Menu diatas: ";cin>>menu;
garis();
switch(menu)//switch1
{
case 1:
{fitrah();break;}
case 2:
{penghasilan();break;}
case 3:
{zakatmal();break;}
case 4:
{goto hop;}
}//eo switch 1
getch();hop:
}//eo do
while(menu!=4);
}//eo main
//END OF MAIN FUNCTION***********************************
void garis()
{
cout<<"\n--------------------------------\n";
}
long perata(long total)
{
return total/12;
}
long masukantetap(long bulanan)
{
return bulanan*12;
}
long sumperbulan(long total,long bulanan)
{
//masukkan fungsi ini dalam perulangan
return total+bulanan;
}
void fitrah()
{
long beras;
cout<<"Zakat Fitrah "<<endl;
cout<<"------------- "<<endl;
cout<<"Masukkan Harga Beras per-KG : Rp. ";cin>>beras;
cout<<"Maka Anda Harus Membayar Zakat Fitrah : Rp. "<<zakatfitrah(beras);
}
long zakatfitrah(long beras)
{
return 3.5*beras;
}
void penghasilan()
{
long ratagaji,gajibulan, gajitotal=0;
cout<<"Zakat Penghasilan"<<endl;
cout<<"-----------------"<<endl;
//gaji sama perbulan
char jw;
cout<<"Apakah Gaji Anda sama Perbulannya[Y/N] : ";cin>>jw;
garis();
if(jw=='Y' || jw=='y')
{
cout<<"Masukkan Gaji Anda per-Bulan : Rp. ";cin>>gajibulan;
gajitotal=masukantetap(gajibulan);
cout<<"Gaji Total Setahun : Rp. "<<gajitotal;
ratagaji=perata(gajitotal);
cout<<"\nMaka Rata-rata Gaji Pertahun : Rp. "<<ratagaji;
}
//gaji tidak sama perbulan
else{
for(int i=1;i<=12;i++)
{
cout<<"Masukkan Gaji Bulan ke "<<i<< ": Rp. ";cin>>gajibulan;
gajitotal=sumperbulan(gajitotal,gajibulan);
}
ratagaji=perata(gajitotal);
cout<<"Gaji Total Setahun : Rp. "<<gajitotal;
cout<<"\nMaka Rata-rata Gaji Pertahun : Rp. "<<ratagaji;
}
//hitung pengeluaran
long uangkeluar, totalkeluar=0, ratakeluar, beras=0;
garis();
cout<<"\nMasukkan Pengeluaran Anda Perbulan"<<endl;
for(int i=1;i<=12;i++)
{
cout<<"Bulan ke "<<i<<": Rp. ";cin>>uangkeluar;
totalkeluar=sumperbulan(totalkeluar,uangkeluar);
}
ratakeluar=perata(totalkeluar);
cout<<"Maka Total Pengeluaran Pertahun : Rp. "<<totalkeluar<<endl;
cout<<"Maka Rata-rata Pengeluaran Pertahun : Rp. "<<ratakeluar<<endl;
//hitung zakat
long nisab;
garis();
cout<<"Masukkan Harga Beras per-KG : Rp. ";cin>>beras;
nisab = nisabpenghasilan(beras);
cout<<"\nNisab : "<<nisab;
garis();
if((gajitotal-totalkeluar)>nisab){
cout<<"\nAnda Harus Membayar Zakat Penghasilan Sebesar Rp. "<<zakatpenghasilan(ratagaji,ratakeluar)<<" ,-"<<endl;
}
else{
cout<<"\nAnda Belum Diwajibkan Membayar Zakat Penghasilan "<<endl;
}
}
long nisabpenghasilan(long beras)
{
return beras*520;
}
long zakatpenghasilan(long ratagaji,long ratakeluar)
{
return (ratagaji-ratakeluar) * 25/100;
}
void zakatmal()
{
int pilih;
do{
clrscr();
cout<<"Zakat Mall\n";
cout<<"----------\n";
cout<<"1. Emas\n";
cout<<"2. Perak\n";
cout<<"3. Perniagaan\n";
cout<<"4. Pertanian\n";
cout<<"5. Hewan Ternak\n";
cout<<"6. Kembali ke Menu Utama Zakat\n";
cout<<"Masukan Pilihan Anda : ";cin>>pilih;
garis();
switch(pilih)//switch2
{
case 1:
{emas();break;}
case 2:
{perak();break;}
case 3:
{perniagaan();break;}
case 4:
{pertanian();break;}
case 5:
{ternak();break;}
case 6:
{goto hop;}
}//eo switch 2
getch();
}//e o do
while(pilih!=6);hop:
}
void emas()
{
int emas;
long hargamas;
cout<<"Zakat Mall Emas "<<endl;
cout<<"--------------- "<<endl;
cout<<"Masukkan Total Emas Yang Anda Simpan <pembulatan dalam gram> : ";cin>>emas;
if(nisabemas(emas))
{
garis();
cout<<"Anda Sudah Wajib Zakat Mal Emas karena Telah Melewati Nisab";
garis();
cout<<"Masukkan Harga Emas Per-Gram Sekarang : ";cin>>hargamas;
garis();
cout<<"Zakat Mal Emas yang Harus Anda Bayar Rp. "<<zakatemasperak(emas,hargamas)<<" ,-"<<endl;
}
else
{
cout<<"Anda Belum Wajib Zakat Mal Emas "<<endl;
}
}
void perak()
{
int perak;
long hargaperak;
cout<<"Zakat Mall Perak "<<endl;
cout<<"---------------- "<<endl;
cout<<"Masukkan Jumlah Perak Yang Anda punyai <pembulatan dalam gram> : ";cin>>perak;
if(nisabperak(perak))
{
garis();
cout<<"Anda Sudah Wajib Zakat Mal Perak karena Telah Melewati Nisab";
garis();
cout<<"Masukkan Harga Perak Per-Gram Sekarang : ";cin>>hargaperak;
garis();
cout<<"Zakat Mal Perak yang Harus Anda Bayar Rp. "<<zakatemasperak(perak,hargaperak)<<" ,-"<<endl;
}
else
{
cout<<"Anda Belum Wajib Zakat Mal Perak "<<endl;
}
}
bool nisabemas(int punya)
{
if(punya>85){return true;}
return false;
}
bool nisabperak(int punya)
{
if(punya>595){return true;}
return false;
}
long zakatemasperak(int punya,long harga)
{
return punya * harga / 40;
}
void perniagaan()
{
long emas,harta,totalharta=0;
char sama;
cout<<"Zakat Mall Perniagaan "<<endl;
cout<<"--------------------- "<<endl;
cout<<"Masukkan Harga Emas Per-Gram : Rp. ";cin>>emas;
garis();
cout<<"Apakah Harta Niaga Bersih Setiap Bulannya, SAMA dalam Jangka Satu tahun[Y/T] : ";cin>>sama;
if(sama=='Y'||sama=='y')
{
cout<<"Masukkan Harta Perniagaan Dalam 1 bulan : Rp. ";cin>>harta;
totalharta = masukantetap(harta);
}
else{
for(int i=1;i<=12;i++)
{
cout<<"Masukkan Harta Peniagaan Bersih Bulan Ke- "<<i<<" : Rp. ";cin>>harta;
totalharta= sumperbulan(totalharta,harta);
}
}
cout<<"Harta Niaga 1 Tahun : "<<totalharta;
if(totalharta>=nisabniaga(emas))
{
garis();
cout<<"Zakat Mal Perniagaan yang Harus Anda Bayar Rp. "<<zakatniaga(totalharta)<<" ,-"<<endl;
}
else{
garis();
cout<<"Anda Belum Wajib Zakat Mal Perniagaan "<<endl;
}
}
long nisabniaga(long hargamas)
{
return hargamas * 86;
}
long zakatniaga(long total)
{
return total/40;
}
void pertanian()
{
int hasiltani,pilihtani,pembagi;
cout<<"Zakat Mall Pertanian "<<endl;
cout<<"-------------------- "<<endl;
cout<<"Masukkan Hasil Pertanian [KiloGram] : ";cin>>hasiltani;
garis();
if(nisabpertanian(hasiltani))
{
cout<<"Anda Sudah Wajib Zakat Mal Pertanian karena Telah Melewati Nisab";garis();
cout<<"\nKetentuan Hasil Pertanian :";garis();
cout<<"1. Pertanian Diairi Oleh Air Hujan/Sungai"<<endl;
cout<<"2. Pertanian Tidak Diairi Oleh Air Hujan/Sungai"<<endl;
cout<<"\nMasukkan Pilihan [1/2] : ";cin>>pilihtani;
if (pilihtani==1)
{
pembagi=10;
}
else{
pembagi=100;
}
cout<<"Zakat Mal Pertanian yang Harus Anda Bayar "<<zakattani(hasiltani,pembagi)<<" KG"<<endl;
}
else{
cout<<"Anda Belum Wajib Zakat Mal Pertanian "<<endl;
}
}
bool nisabpertanian(int hasiltani)
{
if(hasiltani>700){return true;}
return false;
}
float zakattani(int hasiltani,int pembagi)
{
return hasiltani/pembagi; //air gratis,pembagi=10||air bayar,pembagi=100
}
void ternak()
{
int kambing,sapi;
cout<<endl;
cout<<"Zakat Mall Hewan Ternak\n";
cout<<"-----------------------\n";
cout<<"Masukkan Jumlah Kambing/Domba Yang Anda punyai : ";cin>>kambing;
cout<<endl;
if(kambing<40){cout<<"Anda Belum Wajib Zakat Mal Hewan Ternak Kambing/Domba";}
else if(kambing<=120){cout<<"Silakan Berzakat 1 Ekor Kambing(2th) atau 1 Ekor Domba(1th)"<<endl;}
else if(kambing<=200){cout<<"Silakan Berzakat 2 Ekor Kambing/Domba)"<<endl;}
else if(kambing>200)
{
cout<<"Silakan Berzakat "<<autokambing(kambing)<<" Ekor Kambing/Domba"<<endl;
}
else {cout<<"Input salah";}
garis();
cout<<"Masukkan Jumlah Sapi/Kerbau Yang Anda punyai : ";cin>>sapi;
cout<<endl;
if(sapi<30){cout<<"Anda Belum Wajib Zakat Mal Hewan Ternak Sapi/Kerbau";}
else if(sapi<40){cout<<"Silakan Berzakat 1 Ekor Sapi Jantan/Betina Tabi'";}
else if(sapi<60){cout<<"Silakan Berzakat 1 Ekor Sapi Jantan/Betina Musinnah";}
else if(sapi<70){cout<<"Silakan Berzakat 2 Ekor Sapi Jantan/Betina Tabi'";}
else if(sapi<80){cout<<"Silakan Berzakat 1 Ekor Sapi Musinnah dan 1 Ekor Betina Tabi'";}
else if(sapi<90){cout<<"Silakan Berzakat 2 Ekor Sapi Musinnah";}
else if(sapi<100){cout<<"Silakan Berzakat 1 Ekor Sapi Tabi'";}
else if(sapi<110){cout<<"Silakan Berzakat 2 Ekor Sapi Tabi' dan Ekor Sapi Musinnah";}
else if(sapi<120){cout<<"Silakan Berzakat 2 Ekor Musinnah dan 1 Ekor Tabi'";}
else if(sapi<130){cout<<"Silakan Berzakat 3 Ekor Musinnah dan 4 Ekor Tabi'";}
else if(sapi>=130)
{
autosapi(sapi);
}
else {cout<<"Input salah";}
garis();
cout<<"\n*)Musinnah = sapi/kerbau berumur 2 tahun (masuk tahun ke-3)\n Tabi' = sapi/kerbau berumur 1 tahun (masuk tahun ke-2)";
}
int autokambing(int kbg)
{
int i=3;
while(i>0)
{
if(kbg<=100*i){return i;}
i++;
}
return 0;
}
void autosapi(int sapi)
{
//jumlah sapi >= 130 ekor
int musinah, sisa, tabi;
musinah=(sapi-129)/40;
if(musinah>0)
{
sisa=(sapi-129)-musinah*40;
if((sisa/30)>0)
{
tabi=sisa/30;
}
else{tabi=0;}
cout<<"Silakan Berzakat "<<(musinah+3)<<" Ekor Musinnah & "<<(tabi+4)<<" Ekor Tabi'";
}
else if((sapi-129)>=30){cout<<"Silakan Berzakat 5 Ekor Tabi'";}
else {cout<<"Silakan Berzakat 3 Ekor Musinnah dan 4 Ekor Tabi'";}
}
0
Posted by Mu'tashim Billah in
