DASAR TEORI
a.
FUNGSI
Fungsi (Function) merupakanblokdarikode yang dirancang untuk
melaksanakan tugas khusus. Fungsi-fungsi yang sudah kita kenal sebelumnya adalah
fungsi main(), yang bersifa tmutlak, karena fungs iini program akan dimulai,
sebagai contoh yang lainnya fungsi printf(), cout() yang mempunyai tugas
untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.
b.
STRUKTUR FUNGSI
Sebuahfungsisederhanamempunyaibentukpenulisansebagaiberikut :
nama_fungsi(argumen)
{
… pernyataan / perintah;
… pernyataan / perintah;
… pernyataan / perintah;
}
Keterangan:
-Nama fungsi, boleh dituliskan secara bebas dengan ketentuan,
tidak menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.
- Argumen, diletakan diantara
tanda kurung “( )” yang terletak dibelakang nama fungsi. Argumen boleh diisi dengan
suatu data atau dibiarkan kosong.
- Pernyataan / perintah,
diletakkan diantara tanda kurung kurawal ‘{ }’.
Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.
c. PROTOTIPE FUNGSI
Prototipe fungsi digunakan untuk mendeklarasikan kekompiler mengenai:
1.
Tipe data keluaran dari fungsi.
2.
Jumlah parameter yang digunakan
3.
Tipe data dari masing-masing
parameter yang digunakan.
Keuntungan didalam pemakai prototype yaitu :
v Kompiler akan melakukan konversi antara tipe parameter dalam definisi
dan parameter fungsi.
v Jika jumlah parameter yang digunakan dalam definisi fungsi dan pada
saat pemanggilan fungsi berbeda atau tidaksama, maka akan menunjukkankesalahan
d. PARAMETER FUNGSI
Terdapat dua macam paraparameter
fungsi, yaitu :
ü Parameter Aktual adalah variabel yang digunakan pada pemanggilan suatu fungsi.
ü Parameter formal adalah variabel yang
terdapat pada daftar parameter yang berada didalam definisi fungsi.
Bentuk penulisan
Parameter Formal dan Parameter Aktual.
Ada dua cara untuk melewatkan
parameter kedalam fungsi, yaitu berupa :
1.
Pemanggilan
dengan Referensi(CallbyReference)
Pemanggilan dengan
reference merupakan pemanggilan alamat suatu variable didalam fungsi. Cara ini dapat
dipakai untuk mengubah isi suatu variabel yang diluar dari fungsi dengan melaksanakan
pengubahan nilai dari suatu variable dilakukan didalam fungsi.
2.
Pemanggilan
dengan nilai (Call by Value )
Pada pemanggilan dengan
nilai yaitu nilai dari parameter actual akan dimasukkan keparameter formal.
Dengan cara ini nilai parameter actual tidak bisa berubah, walaupun nilai dari
parameter formal berubah.
e. PERNYATAAN RETURN().
Digunakan untuk mengirimkan
nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya.
Pernyataan return() diikuti oleh argumen yang berupa nilai yang
akan dikirimkan.
f. PENGIRIMAN DATA VARIABEL
KE FUNGSI
Bentuk pengiriman data
Variabel, sama seperti halnya pengiriman suatu nilai data konstanta kesuatu
fungsi, hanya saja nilai yang dikirimkan tersebut senantiasa dapat berubah-ubah.
KODE PROGRAM HITUNG NILAI GELANG RESISTOR
# include <conio.h>
# include <iostream.h>
# include <stdio.h>
# include <iomanip.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
char lagi, g1 [10][10], g2 [10][10], g3 [10][10], g4
[10], g4new [10];
//int ng4 [5];
int i,n,j,k,r,temp, a[10],b, awal [5], akhir [5],
g1new [5], g2new [5], g3new [5], ng3 [10];
int g1a[10], g1b[10], g1c[10], g3c[100],
pangkat[100], ohm[100], jml_g1_pangkt[100], g1d[100];//, g2a[10], g2b[10],
g3a[10], g3b[10];
double rata, total;
char warna_g4()
{
if (g4[i]=='A'||g4[i]=='a')
cout<<" Emas ";
else if (g4[i]=='B'||g4[i]=='b')
cout<<" Perak ";
else
cout<<" Pilihan Hanya A dan B ";
return 0;
}
char perubah_4()
{
if (g4[i]=='A'||g4[i]=='a')
cout<<"5 %";
else if (g4[i]=='B'||g4[i]=='b')
cout<<"10 %";
else
cout<<" Pilihan Hanya A dan B ";
return 0;
}
char perubah_1()
{
if (g1a[i]==0)
cout<<" Hitam ";
else if (g1a[i]==1)
cout<<" Coklat ";
else if (g1a[i]==2)
cout<<" Merah ";
else if (g1a[i]==3)
cout<<" Jingga ";
else if (g1a[i]==4)
cout<<" Kuning ";
else if (g1a[i]==5)
cout<<" Hijau ";
else if (g1a[i]==6)
cout<<" Biru ";
else if (g1a[i]==7)
cout<<" Ungu ";
else if (g1a[i]==8)
cout<<" Abu-abu ";
else if (g1a[i]==9)
cout<<" Putih ";
else
cout<<" Pilihan Hanya 0-9 ";
return 0;
}
char perubah_2()
{
if (g1b[i]==0)
cout<<" Hitam ";
else if (g1b[i]==1)
cout<<" Coklat ";
else if (g1b[i]==2)
cout<<" Merah ";
else if (g1b[i]==3)
cout<<" Jingga ";
else if (g1b[i]==4)
cout<<" Kuning ";
else if (g1b[i]==5)
cout<<" Hijau ";
else if (g1b[i]==6)
cout<<" Biru ";
else if (g1b[i]==7)
cout<<" Ungu ";
else if (g1b[i]==8)
cout<<" Abu-abu ";
else if (g1b[i]==9)
cout<<" Putih ";
else
cout<<" Pilihan Hanya 0-9 ";
return 0;
}
char perubah_3()
{
if (g1c[i]==0)
cout<<" Hitam ";
else if (g1c[i]==1)
cout<<" Coklat ";
else if (g1c[i]==2)
cout<<" Merah ";
else if (g1c[i]==3)
cout<<" Jingga ";
else if (g1c[i]==4)
cout<<" Kuning ";
else if (g1c[i]==5)
cout<<" Hijau ";
else if (g1c[i]==6)
cout<<" Biru ";
else if (g1c[i]==7)
cout<<" Ungu ";
else if (g1c[i]==8)
cout<<" Abu-abu ";
else if (g1c[i]==9)
cout<<" Putih ";
else
cout<<" Pilihan Hanya 0-9 ";
return 0;
}
main ()
{
do {
clrscr();
cout<<"^Kode Warna resistor^ :
"<<endl;
cout<<"1. Coklat "<<endl;
cout<<"2. Merah "<<endl;
cout<<"3. Jingga "<<endl;
cout<<"4. Kuning "<<endl;
cout<<"5. Hijau "<<endl;
cout<<"6. Biru "<<endl;
cout<<"7. Ungu "<<endl;
cout<<"8. Abu-abu"<<endl;
cout<<"9. Putih
"<<endl<<endl;
cout<<"^Kode Toleransi
resistor^:"<<endl;
cout<<"A. Perak "<<endl;
cout<<"B. Emas
"<<endl<<endl<<endl;
cout<<"Masukan jumlah resistor :
";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Resistor ke -
"<<i<<endl;
l1:cout<<"Kode warna gelang 1 :
";cin>>g1[i];
if ((g1[i][10] >9)&&(g1[i][10] <0))
{
cout<<"Maaf!!! nilai dalam Skala 0-9
\n";
cout<<"silahkan ulangi lagi \n";
goto l1;
}
l2:cout<<"Kode warna gelang 2 : ";
cin>>g2 [i];
if ((g2[i][10] >9)&&(g2[i][10] <0))
{
cout<<"Maaf!!! nilai dalam Skala 0-9
\n";
cout<<"silahkan ulangi lagi \n";
goto l2;
}
l3:cout<<"Kode warna gelang 3 :
";cin>>g3 [i];
if ((g3[i][10] >9)&&(g3[i][10] <0))
{
cout<<"Maaf!!! nilai dalam Skala 0-9
\n";
cout<<"silahkan ulangi lagi \n";
goto l3;
}
l4:cout<<"Kode warna gelang 4 :
";cin>>g4 [i];
if (g4[i]!= 'A' && g4[i]!='a' &&
g4[i]!='B' && g4[i]!='b')
{
cout<<"Maaf!!! Pilihan Hanya A dan
B\n";
cout<<"silahkan ulangi lagi \n";
goto l4;
}
g1a[i]=atoi(g1[i]);
g1b[i]=atoi(g2[i]);
g1c[i]=atoi(g3[i]);
g3c[i]=(pow(10,g1c[i]));
g1d[i]=(pow(10,(g1c[i]+1)));
jml_g1_pangkt[i]=(g1a[i]*g1d[i]);
pangkat[i]=(g1b[i]*g3c[i]);
ohm[i]=(jml_g1_pangkt[i]+pangkat[i]);
}
cout<<"============================================================================"<<endl;
cout<<" PROGRAM HITUNG NILAI RESISTOR
"<<endl;
cout<<"============================================================================"<<endl;
cout<<"----------------------------------------------------------------------------"<<endl;
cout<<"No. Gelang 1 Gelang 2 Gelang 3
Gelang 4 Ohm Toleransi"<<endl;
cout<<"----------------------------------------------------------------------------"<<endl;
for (j=n;j>=1;j--)
{
awal[j]=ohm[j];
}
for (j=n;j>=1;j--)
{
for (k=j;k>=1;k--)
{
if (ohm[j]<ohm[k])
{
temp=ohm[j];
ohm[j]=ohm[k];
ohm[k]=temp;
}
}
}
for (j=n;j>=1;j--)
{
for (k=n;k>=1;k--)
{
if (awal[j]==ohm[k])
{
g1new[k]=g1a[j];
g2new[k]=g1b[j];
g3new[k]=g1c[j];
g4new[k]=g4 [j];
}
}
}
for (i=0; i<n; i++)
{
total=0;
for (i=0; i<n; i++)
total=total+ohm[i];
}
rata=total/n;
for (i=1;i<=n;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setprecision(2)<<setw(6)<<perubah_1();
cout<<setprecision(2)<<setw(6)<<perubah_2();
cout<<setprecision(2)<<setw(6)<<perubah_3();
cout<<setprecision(2)<<setw(7)<<warna_g4();
cout<<setprecision(2)<<setw(6)<<ohm[i];
cout<<setprecision(2)<<setw(7)<<perubah_4()<<endl;
}
cout<<endl;
cout<<"---------------------------------------------------------------------------";
cout<<endl;
cout<<"Nilai Tertinggi
="<<endl;
cout<<"Nilai Terendah
="<<endl;
cout<<"Nilai Rata-rata
="<<rata<<endl;
cout<<"Jumlah nilai resistor ""
s/d Resistor "<<" Ohm "<<endl;
cout<<"Ulang Kembali
(Y/T)?";cin>>lagi; //pilihan perulangan
}
while ((lagi=='Y')||(lagi=='y'));
getche();