Feb 222010
 

Langsung saja, tanpa basa basi, ini adalah source code dari software penghitung nilai resistor menggunakan bahasa C. Ini adalah software yang penuh ekspresi. dibuat oleh orang yang penuh ekspresi, yaitu seorang admin dari www.maniamusik.com   :-)

//PROGRAM MENGHITUNG NILAI SUATU RESISTOR DENGAN MEMBACA GELANG WARNANYA – BAHASA C
//Ditulis oleh: captbbx
/*
<!– this is begin of the program –> */
#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 menginput, 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 mencetak 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 nilai toleransi
printf(“Maka nilai maksimumnya adalah        = %.0f Ohm\n”, maks); //mencetak nilai maksimum
printf(“dan nilai minimumnya adalah          = %.0f Ohm\n”, min); //mencetak nilai minimum
puts(“++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nPenghitungan 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();}
}
}
}
// <!– this is end of the program –> sorry, if this project too simple… :) thank you…

  7 Responses to “Program sederhana C penghitung nilai resistor”

  1. mas/mbak…
    tolong ajari saya untuk membuat program penghitung resistor (tapi bukan gelang warnaynya).
    Menghitung resistor seri, paralel dan campuran..
    tpi dalam satu program c++
    tolong…

  2. sebelumnya saya minta diajari dulu cara menghitung resistor seri, paralel m campuran.. coz g tau rumusnya… setelah itu baru saya bisa ajari..
    btw, saya mas, bukan ikan mas, apa lagi mas batangan.. tapi mas. jawaban lebih jelas, bisa anda lihat di email anda…

  3. seri:
    Rs = R1 + R2 + R3
    misal pnya 3 resistor,
    R1 = 6 ohm
    R2 = 7 ohm
    R3 = 8 ohm
    Rs = 6+7+8

    Paralel:
    1/Rp = 1/R1 + 1/R2 + 1/R3
    1/Rp = 1/6 + 1/7 + 1/8

    tapi disini batas jumlah resistor tidak ditentukan, jdi bisa untuk mnghitung 2 resistor, atau 3 atau 4 atau lebih dari itu..

    maaf mas kmrn email’y terhapus, tlg kirim lagi..
    mksh

  4. mbak tolong ajarii saya cara menghitung nilai resistor gelang warna :

    a) hijau,hitam dan kuning
    b) coklat,ungu dan merah
    c) abu abu,biru dan oranye

    trima kasih mbak saya tunggu jawabannya …

  5. @ liyya… em, bukannya dengan jalanin program itu kamu bisa itung?? tapi yah.. baiklah.. jawabnya dah dikirim ke email kamu.
    thanks.

  6. mas..
    pertanyaan saya sama dengan by thiiika_2192
    hehehehe..
    tolong donk d bantu..
    punyeng nich

    bs juga d hub. lwt Fb.
    trimakasih

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>