Anda di halaman 1dari 13

/* Solusi penyelesaian dengan menggunakan variabel global Variabel global dapat di akses langsung oleh setiap fungsi tanpa

harus dijadikan parameter fungsi. Untuk dapat mengakses setiap variabel global, nama variabel harus ditulis sama Tidak berarti variabel global tidak dapat diubah sebagai parameter fungsi. kalau sebagai parameter fungsi, aturannya tidak berbeda dengan variabel lokal

Contoh di bawah, setiap alat dibuat masing-masing 1 fungsi menyalakan mematikan dan cetak tagian sendiri-sendiri, perhatikan polanya sama semua. */ #include <stdio.h> #include <stdlib.h> #include <time.h>

#define ON 1 #define OFF 0 #define TARIFLAMPU1 1 #define TARIFLAMPU2 2 #define TARIFKOMPUTER 20 #define TARIFAC 40 #define TARIFTV 10

typedef int StatusMesin; typedef int Biaya; typedef double Waktu;

void NyalakanLampu1();

void MatikanLampu1(); void CetakTagihanLampu1(); void NyalakanLampu2(); void MatikanLampu2(); void CetakTagihanLampu2(); void NyalakanKomputer(); void MatikanKomputer(); void CetakTagihanKomputer(); void NyalakanAC(); void MatikanAC(); void CetakTagihanAC(); void NyalakanTV(); void MatikanTV(); void CetakTagihanTV();

char menu(); void hidupkanalat(); void matikanalat(); void cetakbiaya(); char menuhidupkanalat(); char menumatikanalat(); char menucetakbiaya();

StatusMesin MesinListrik1=OFF;//int mesinlistrik1 = 0; StatusMesin MesinListrik2=OFF; StatusMesin MesinListrik3=OFF; StatusMesin MesinListrik4=OFF; StatusMesin MesinListrik5=OFF; Waktu waktuproses1=0;

Waktu waktuproses2=0; Waktu waktuproses3=0; Waktu waktuproses4=0; Waktu waktuproses5=0; Biaya TotalBiaya; Biaya Tagihan1=0; Biaya Tagihan2=0; Biaya Tagihan3=0; Biaya Tagihan4=0; Biaya Tagihan5=0;

int main(){ char pilih='0'; do{ pilih=menu(); if(pilih=='1'){ hidupkanalat();} else if(pilih=='2'){ matikanalat();} else if(pilih=='3'){ cetakbiaya();} }while(pilih!='4'); system("pause"); return 0; }

void hidupkanalat(){ system("cls"); char hidup='0';

do{ hidup=menuhidupkanalat(); if(hidup=='1'){ system("cls"); if(MesinListrik1 == ON){ printf("Lampu1 sudah dalam keadaan menyala\n");} else{ NyalakanLampu1(); printf("Lampu1 berhasil dinyalakan\n"); } getch(); } else if(hidup=='2'){ system("cls"); if(MesinListrik2 == ON){ printf("Lampu2 sudah dalam keadaan menyala\n");} else{ NyalakanLampu2(); printf("Lampu2 berhasil dinyalakan\n"); } getch(); } else if(hidup=='3'){ system("cls"); if(MesinListrik3 == ON){ printf("Komputer sudah dalam keadaan menyala\n");} else{ NyalakanKomputer(); printf("Komputer berhasil dinyalakan\n");

} getch(); } else if(hidup=='4'){ system("cls"); if(MesinListrik4 == ON){ printf("AC sudah dalam keadaan menyala\n");} else{ NyalakanAC(); printf("AC berhasil dinyalakan\n"); } getch(); } else if(hidup=='5'){ system("cls"); if(MesinListrik5 == ON){ printf("TV sudah dalam keadaan menyala\n");} else{ NyalakanTV(); printf("TV berhasil dinyalakan\n"); } getch(); } }while(hidup!='6'); }

void matikanalat(){ system("cls"); int i,j;

char mati='0'; do{ mati=menumatikanalat(); if(mati=='1'){ system("cls"); if(MesinListrik1 == OFF){ printf("Lampu1 tidak dalam keadaan menyala\n");} else{ MatikanLampu1(); printf("Lampu1 berhasil dimatikan setelah hidup selama %.3lf detik\n",waktuproses1);} getch(); } else if(mati=='2'){ system("cls"); if(MesinListrik2 == OFF){ printf("Lampu2 tidak dalam keadaan menyala\n"); } else{ MatikanLampu2(); printf("Lampu2 berhasil dimatikan setelah hidup selama %.3lf detik\n",waktuproses2);} getch(); } else if(mati=='3'){ system("cls"); if(MesinListrik3 == OFF){ printf("Komputer tidak dalam keadaan menyala\n"); }

else{ MatikanKomputer(); printf("Komputer berhasil dimatikan setelah hidup selama %.3lf detik\n",waktuproses3);} getch(); } else if(mati=='4'){ system("cls"); if(MesinListrik4 == OFF){ printf("AC tidak dalam keadaan menyala\n"); } else{ MatikanAC(); printf("AC berhasil dimatikan setelah hidup selama %.3lf detik\n",waktuproses4);} getch(); } else if(mati=='5'){ system("cls"); if(MesinListrik5 == OFF){ printf("TV tidak dalam keadaan menyala\n"); } else{ MatikanTV(); printf("TV berhasil dimatikan setelah hidup selama %.3lf detik\n",waktuproses5);} getch(); } }while(mati!='6'); printf("\n");

CetakTagihanLampu1(); CetakTagihanLampu2(); CetakTagihanKomputer(); CetakTagihanAC(); CetakTagihanTV(); }

void cetakbiaya(){ char cetak='0'; system("cls"); do{ cetak=menucetakbiaya(); if(cetak=='1'){ CetakTagihanLampu1();} else if(cetak=='2'){ CetakTagihanLampu2(); } else if(cetak=='3'){ CetakTagihanKomputer(); } else if(cetak=='4'){ CetakTagihanAC(); } else if(cetak=='5'){ CetakTagihanTV(); } }while(cetak!='6'); }

void NyalakanLampu1(){ MesinListrik1 = ON; waktuproses1 = clock(); }

void MatikanLampu1(){ MesinListrik1 = OFF; waktuproses1 = (clock()-waktuproses1)/CLOCKS_PER_SEC; Tagihan1 = Tagihan1 + (int)waktuproses1 * TARIFLAMPU1; }

void CetakTagihanLampu1(){ printf("Total Tagihan Lampu 1 sampai saat ini : Rp %d \n",Tagihan1); getch(); }

void NyalakanLampu2(){ MesinListrik2 = ON; waktuproses2 = clock(); }

void MatikanLampu2(){ MesinListrik2 = OFF; waktuproses2 = (clock()-waktuproses2)/CLOCKS_PER_SEC; Tagihan2 = Tagihan2 + (int)waktuproses2 * TARIFLAMPU2; }

void CetakTagihanLampu2(){ printf("Total Tagihan Lampu 2 sampai saat ini : Rp %d \n",Tagihan2);

getch(); }

void NyalakanKomputer(){ MesinListrik3 = ON; waktuproses3 = clock(); }

void MatikanKomputer(){ MesinListrik3 = OFF; waktuproses3 = (clock()-waktuproses3)/CLOCKS_PER_SEC; Tagihan3 = Tagihan3 + (int)waktuproses3 * TARIFKOMPUTER; }

void CetakTagihanKomputer(){ printf("Total Tagihan Komputer sampai saat ini : Rp %d \n",Tagihan3); getch(); }

void NyalakanAC(){ MesinListrik4 = ON; waktuproses4 = clock(); }

void MatikanAC(){ MesinListrik4 = OFF; waktuproses4 = (clock()-waktuproses4)/CLOCKS_PER_SEC; Tagihan4 = Tagihan4 + (int)waktuproses4 * TARIFAC; }

void CetakTagihanAC(){ printf("Total Tagihan AC sampai saat ini : Rp %d \n",Tagihan4); getch(); }

void NyalakanTV(){ MesinListrik5 = ON; waktuproses5 = clock(); }

void MatikanTV(){ MesinListrik5 = OFF; waktuproses5 = (clock()-waktuproses5)/CLOCKS_PER_SEC; Tagihan5 = Tagihan5 + (int)waktuproses5 * TARIFTV; }

void CetakTagihanTV(){ printf("Total Tagihan TV sampai saat ini : Rp %d \n",Tagihan5); getch(); }

char menu(){ char pilih; system("cls"); printf("Selamat Datang\n"); printf("di Program Mesin Listrik On-Off\n\n"); printf("1. Nyalakan Listrik \n"); printf("2. Matikan Listrik \n");

printf("3. Biaya \n"); printf("4. Exit \n\n"); printf("Silakan pilih (1/2/3/4) : "); scanf("%c",&pilih); return pilih; }

char menuhidupkanalat(){ char alathidup; system("cls"); printf("HIDUPKAN ALAT\n\n"); printf("1. Lampu 1 \n"); printf("2. Lampu 2 \n"); printf("3. Komputer \n"); printf("4. AC \n"); printf("5. TV \n"); printf("6. Kembali ke menu utama\n"); printf("\n"); printf("Silakan pilih (1/2/3/4/5/6) : "); scanf("%c",&alathidup); return alathidup; }

char menumatikanalat(){ char alatmati; system("cls"); printf("MATIKAN ALAT\n\n"); printf("1. Lampu 1 \n"); printf("2. Lampu 2 \n");

printf("3. Komputer \n"); printf("4. AC \n"); printf("5. TV \n"); printf("6. Kembali ke menu utama\n"); printf("\n"); printf("Silakan pilih (1/2/3/4/5/6) : "); scanf("%c",&alatmati); return alatmati; }

char menucetakbiaya(){ char alatbiaya; system("cls"); printf("CETAK BIAYA\n\n"); printf("1. Lampu 1 \n"); printf("2. Lampu 2 \n"); printf("3. Komputer \n"); printf("4. AC \n"); printf("5. TV \n"); printf("6. Kembali ke menu utama\n"); printf("\n"); printf("Silakan pilih (1/2/3/4/5/6) : "); scanf("%c",&alatbiaya); return alatbiaya; }

Anda mungkin juga menyukai