Anda di halaman 1dari 9

/*Penyederhanaan fungsi hidupkanalat()

perhatikan baris :
noA= hidup - 48;
hidup adalah character yang akan berisi :
'1', '2','3','4','5'
masing-masing character tsb punya nilai bilangan bulat
masing-masing : 49,50,51,52,53
jadi
'1' - 48 = 49-48 = 1
'2' - 48 = 50-48 = 2
dst

Coba sederhanakan fungsi matikanalat()
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define ON 1
#define OFF 0

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

void NyalakanAlat(int noalat);
void MatikanAlat(int noalat);
void CetakTagihanAlat(int noalat);

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

StatusMesin MesinListrik[5]={OFF,OFF,OFF,OFF,OFF};//int mesinlistrik1 = 0;
Waktu waktuproses[5]={0,0,0,0,0};
Biaya TotalBiaya;
Biaya Tagihan[5]={0,0,0,0,0};
int TARIF[5]={1,1,2,5,5};

int main(){
char pilih='0';
getch();
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';
int noA;
do{
hidup=menuhidupkanalat();
noA= hidup - 48;
if (noA >= 1 && noA<=5){ //pastikan nomor yang dipilih benar
system("cls");
if(MesinListrik[noA-1] == ON){
printf("Alat no %d sudah dalam keadaan menyala\n",noA);}
else{
NyalakanAlat(noA);
printf("Alat No %d berhasil dinyalakan\n",noA);
}
getch();
}
}while(hidup!='6');
}

void matikanalat(){
system("cls");
int i,j;
char mati='0';
do{
mati=menumatikanalat();
if(mati=='1'){
system("cls");
if(MesinListrik[0] == OFF){
printf("Lampu1 tidak dalam keadaan menyala\n");}
else{
MatikanAlat(1);
printf("Lampu1 berhasil dimatikan setelah hidup selama %.3lf
detik\n",waktuproses[0]);}
getch();
}
else if(mati=='2'){
system("cls");
if(MesinListrik[1] == OFF){
printf("Lampu2 tidak dalam keadaan menyala\n");
}
else{
MatikanAlat(2);
printf("Lampu2 berhasil dimatikan setelah hidup selama %.3lf
detik\n",waktuproses[1]);}
getch();
}
else if(mati=='3'){
system("cls");
if(MesinListrik[2] == OFF){
printf("Komputer tidak dalam keadaan menyala\n");
}
else{
MatikanAlat(3);
printf("Komputer berhasil dimatikan setelah hidup selama %.3lf
detik\n",waktuproses[2]);}
getch();
}
else if(mati=='4'){
system("cls");
if(MesinListrik[3] == OFF){
printf("AC tidak dalam keadaan menyala\n");
}
else{
MatikanAlat(4);
printf("AC berhasil dimatikan setelah hidup selama %.3lf
detik\n",waktuproses[3]);}
getch();
}
else if(mati=='5'){
system("cls");
if(MesinListrik[4] == OFF){
printf("TV tidak dalam keadaan menyala\n");
}
else{
MatikanAlat(5);
printf("TV berhasil dimatikan setelah hidup selama %.3lf
detik\n",waktuproses[4]);}
getch();
}
}while(mati!='6');
printf("\n");
CetakTagihanAlat(1);
CetakTagihanAlat(2);
CetakTagihanAlat(3);
CetakTagihanAlat(4);
CetakTagihanAlat(5);

}

void cetakbiaya(){
char cetak='0';
int noA;
system("cls");
do{
cetak=menucetakbiaya();
if(cetak=='1'){
CetakTagihanAlat(1);}
else if(cetak=='2'){
CetakTagihanAlat(2);
}
else if(cetak=='3'){
CetakTagihanAlat(3);
}
else if(cetak=='4'){
CetakTagihanAlat(4);
}
else if(cetak=='5'){
CetakTagihanAlat(5);
}
}while(cetak!='6');
}

void NyalakanAlat(int noA){
MesinListrik[noA-1] = ON;
waktuproses[noA-1] = clock();
}

void MatikanAlat(int noA){
MesinListrik[noA-1]= OFF;
waktuproses[noA-1]= (clock()-waktuproses[noA-1])/CLOCKS_PER_SEC;
Tagihan[noA-1] = Tagihan[noA-1] + (int)waktuproses[noA-1] * TARIF[noA-1];
}



void CetakTagihanAlat(int noA){

printf("Total Tagihan Alat No %d sampai saat ini : Rp %d \n",noA, Tagihan[noA-1]);
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