Anda di halaman 1dari 3

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

h> //pendeklarasian fungsi int salah(); int kerja(); int htgkembali(); int hitungcetak(double x, double y, double z); void main()//bagian utama program { kerja();//memanggil fungsi kerja } int kerja() { int a, b, c, g, z, gel[3]; //pendeklarasian variabel dan array bertipe integer double g1,g2,x,y; //pendeklarasian veriabel bertipe double printf( PROGRAM MENGHITUNG NILAI SUATU RESISTOR DENGAN MEMBACA GELANG WARNANYA\n ); printf( [0] Hitam\n[1] Coklat\n[2] Merah\n[3] jingga\n[4] Kuning\n[5] Hijau\n ); printf( [6] Biru\n[7] Ungu\n[8] Abu-Abu\n[9] Putih\n ); printf( [10] Emas\n[11] Perak\n[12] Tak Berwarna\n\n ); printf( nb: ketik angka/hurufnya saja!\n\n ); for (g=0;g<=3;g++) //perulangan untuk menginput warna gelang { printf( Ketikkan warna gelang ke-%d : , g+1); scanf( %d ,&gel[g]); //dibaca dan dimasukkan ke dalam array gel[] } switch (gel[0]) //penyeleksian kondisi pada gelang pertama { case 0 : g1=0; break; case 1 : g1=1; break; case 2 : g1=2; break; case 3 : g1=3; break; case 4 : g1=4; break; case 5 : g1=5; break; case 6 : g1=6; break; case 7 : g1=7; break; case 8 : g1=8; break; case 9 : g1=9; break; default : {printf( Masukan gelang pertama salah!\n );} } switch (gel[1]) //penyeleksian kondisi pada gelang kedua { case 0 : g2=0; break; case 1 : g2=1; break; case 2 : g2=2; break; case 3 : g2=3; break; case 4 : g2=4; break; case 5 : g2=5; break; case 6 : g2=6; break; case 7 : g2=7; break; case 8 : g2=8; break; case 9 : g2=9; break; default : {printf( Masukan gelang kedua salah!\n );} } //pada bagian ini nilai resistor ditentukan berdasarkan warna gelang switch (gel[2]) //penyeleksian kondisi pada gelang ketiga {

case 0 : x=g1*(pow(10,1));y=g2*(pow(10,0));break; case 1 : x=g1*(pow(10,2));y=g2*(pow(10,1));break; case 2 : x=g1*(pow(10,3));y=g2*(pow(10,2));break; case 3 : x=g1*(pow(10,4));y=g2*(pow(10,3));break; case 4 : x=g1*(pow(10,5));y=g2*(pow(10,4));break; case 5 : x=g1*(pow(10,6));y=g2*(pow(10,5));break; case 6 : x=g1*(pow(10,7));y=g2*(pow(10,6));break; case 7 : x=g1*(pow(10,8));y=g2*(pow(10,7));break; case 8 : x=g1*(pow(10,9));y=g2*(pow(10,8));break; case 9 : x=g1*(pow(10,10));y=g2*(pow(10,9));break; case 10 : x=g1*(pow(10,0));y=g2*(pow(10,-1));break; default : {printf( Masukan gelang ketiga salah!\n );} } //penentuan nilai toleransi switch (gel[3]) //penyeleksian kondisi pada gelang keempat { case 10 : z=5;break; case 11 : z=10;break; case 12 : z=20;break; default : {} } if ((x<=0) || (y<=0) || (z<=0)) {salah();}//jika terjadi kesalahan dalam menginp ut, maka akan tampil pesan ini else { hitungcetak(x, y, z); //pemanggilan fungsi hitungcetak } } int hitungcetak(double x,double y, double z) //fungsi untuk menghitung dan mence tak hasil { float res,tol, maks, min,w;//pendeklarasian veriabel bertipe float res=x+y; //penghitungan nilai dengan menjumlahkan variabel x dan y tol=z; //assigment pada variabel tol dengan nilai yang ada pada variabel z maks=res+(tol/100*res); //penghitungan nilai maksimum min=res-(tol/100*res); //penghitungan nilai minimum puts( \n\nBerikut hasil pengitungan:\n++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++ ); printf( Nilai Resistor tersebut adalah = %.0f OHM , res); //nilai hambatan printf( atau %.2f K.OHM\n , res/1000); //konversi ke Kilo Ohm printf( Dengan toleransi = %.0f persen\n , tol); //mencetak nila i toleransi printf( Maka nilai maksimumnya adalah = %.0f Ohm\n , maks); //mencetak nilai maksimum printf( dan nilai minimumnya adalah = %.0f Ohm\n , min); //mencetak nilai m inimum puts( ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nPenghitu ngan selesai!\n\n ); htgkembali(); } int htgkembali()//fungsi konfirmasi apakah kita akan menghitung kembali { char k; scanf( %c ,&k); { switch(k)

{ case y : kerja();break; case Y : kerja();break; case n : printf( \n\n\nTerima kasih atas penggunaan program ini.\nSemoga bermanfaat.\ n );getche;exit(0);break; case N : printf( \n\n\nTerima kasih atas penggunaan program ini.\nSemoga bermanfaat.\ n );getche;exit(0);break; default: {printf( Apakah anda ingin menghitung kembali?[jawab y atau n] );htgkembali ();} } } } int salah()//fungsi yang dipanggil jika input salah { char s; printf( \nOopss!\nMasukan anda ternyata ada yang salah!\n ); scanf( %c ,&s); { switch(s) { case y : htgkembali();break; case Y : htgkembali();break; case n : exit(0);break; case N : exit(0);break; default:{printf( Apakah anda ingin mengulanginya? );htgkembali();} } } }

Anda mungkin juga menyukai