Dasar Pemogramann Komputer Fungsi





 
Latihan
  Latihan 1
Syntax  pada Microsoft Visual C++ :
/*fungsi*/
#include <stdio.h>
//deklarasi fungsi
int cari(int n1, int n2);
void prin (int m);
//main function
main ()
{
     int i=5;
     int j=7;
     int k;
     k=cari(i,j);
     prin(k);
     return 0;
}
//<--fuction definition here
int cari (int a, int b)
{if (a>b) return a;
else return b;
}
void prin(int m)
{
     printf ("Bilangan terbesar adalah : %d\n",m);
}
//end 

 Penjelasan Program :
Program ini merupakan sebuah program yang digunakan untuk menentukan bilangan terbesar dengan menggunakan fungsi. Pertama pada fungsi main kita deklarasikan i dan j yang masing-masing kita beri nilai 5 dan 7. Selanjutnya akan variabel i dan j tadi akan masuk pada fungsi cari yang nantinya akan ditentukan bilangan terbesarnya. Jika a> b maka akan menjadi a sedangkan jika sebaliknya maka akan menjadi b. Setelah di dapat hasil dari fungsi cari maka akan masuk pada fungsi prin yang akan menampilkan hasil setelah proses tadi.Saat program dijalankan akan muncul bilangan terbesar 7.

Latihan 2
Syntax  pada Microsoft Visual C++ :
#include <iostream.h>
//deklarasi fungsi
int calcsalestax(float purchase, float taxrate=0.1);
//mamin function
main ()
{
     float purchase;
     cout<<"Masukkan pembelian: ";
     cin>>purchase;

     float tax=calcsalestax(purchase);
     cout<<"Pajak pembelian adalah : "<<tax<<endl;
     return 0;
}
int calcsalestax(float purchase, float taxrate)
{
     return purchase * taxrate;
}

Penjelasan Program :
Program ini merupakan sebuah program yang digunakan untuk menghitung pajak pembelian. Ketika program dijalankan maka kita diminta untuk memasukkan pembelian kita, selanjutnya akan dilakukan proses penghitungan pajak pembelian. Setelah kita memasukkan pembelian maka selanjutnya akan masuk pada fungsi perhitungan pajak yakni 0.1atau 10% dari total pemeblian kita. Selanjutnya akan kembali ke fungsi main() atau fungsi utama dan akan menampilkan pajak pembelian kita.

Fungsi Rekursif
Latihan 1
Coding pada Microsoft Visual C++ :
/*aplikasi rekursif pada faktorial*/
#include <iostream.h>
#include <stdlib.h>
int faktorial(int a)
{
     if(a==0)
                 return 1;
     else
                 return a *(faktorial(a-1));
}
void main()
{
     int x;
     cout<<"Mencari Nilai Faktorial \n";
     cout<<"Masukkan nilai n= ";
     cin>>x;
     cout<<"Faktorial "<<x<<"!="<<faktorial (x)<<endl;
}

Penjelasan Program :
Program tersebut digunakan untuk menghitung nilai faktorial.Kita diminta untuk memasukkan nilai n yang akan dicari nilai faktorialnya. Selanjutnya nilai tersebut akan masuk pada fungsi faktorial dan akan dihitung nilainya menggunakan fungsi faktorial (fungsi rekursif). Faktorial dari bilangan asli n adalah hasil perkalian antara bilangan bulat positif yang kurang dari atau sama dengan n.

Latihan 2
      Coding pada Microsoft Visual C++ :
/*aplikasi rekursif pada fibonacci*/
#include <iostream.h>
long fibo(long a)
{
     if (a==1 || a==2)
                 return 1;
     else
                 return fibo(a-1)+fibo(a-2);
}
void main ()
{
     int x;
     cout<<"Mencari nilai fibonacci \n";
     cout<<"Masukkan nilai n= ";
     cin>>x;
     cout<<"Fibonacci "<<x<<" = "<<fibo(x)<<endl;
     }

Penjelasan Program :
Program tersebut digunakan untuk menghitung nilai fibonacci. Kita diminta untuk memasukkan nilai n yang akan dicari nilai fibonaccinya. Selanjutnya nilai tersebut akan masuk pada fungsi fibonacci dan akan dihitung nilainya menggunakan fungsi fibonacci (fungsi rekursif). Bilangan fibonacci adalah suatu deret bilangan bulat positif (integer) tak berhingga yang secara berurutan adalah didefinisikan sebagai berikut :
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, dst....
Jika diamati deret bilangan fibbonacci di atas maka dapat dipahami bahwa nilai bilangan fibonacci suku ke n dalam deret tersebut dapat dihitung dengan menjumlahkan dua bilangan terdekat pada urutan sebelumnya.


Call by Value dan Call by Reference
Coding pada Microsoft Visual C++ :
#include <iostream.h>
voidrtukar(int*, int*);
voidvtukar(int, int);
main ()
{
            inta,b;
            a=99;
            b=11;
            //call by reference
            cout<<"Nilaisebelumpemanggilanfungsi : "<<endl;
            cout<<"Nilai a= "<<a<<", Nilai b= "<<b<<endl;
            rtukar(&a,&b);
            cout<<"Nilaisetelahpemanggilanfungsirtukar: "<<endl;
            cout<<"Nilai a= "<<a<<", Nilai b= "<<b<<endl<<endl<<endl;
            //kembalikankenilaisemula
            a=99;
            b=11;
            //call by value
            cout<<"\nNilaisebelumpemanggilanfungsi : "<<endl;
            cout<<"Niali a= "<<a<<", Nilai b= "<<b<<endl<<endl;
            vtukar(a,b);
            cout<<"Nilaisetelahpemanggilanfuungsivtukar: "<<endl;
            cout<<"Nilaai a= "<<a<<", Nilai b= "<<b<<endl;
            return 0;
}
void  rtukar (int *px, int *py)
{
            int temp;
            temp = *px;
            *px = *py;
            *py = temp;
            cout<<"\nNilaipadafungsidengan call by reference : "<<endl;
            cout<<"Nilaipx= "<<*px<<", Nilaipy= "<<*py<<endl<<endl;
}
voidvtukar (intpx, intpy)
{
            int temp;
            temp = px;
            px = py;
            py = temp;
            cout<<"Nilaipadafungsidengan call by value : "<<endl;
            cout<<"Nilaipx= "<<px<<", Nilaipy= "<<py<<endl<<endl;


Penjelasan Program :
Program diatas ditujukan untuk menukar nilai dari dua buah nilai. Dalam program tersebut penukaran nilai dilakukan dengan dua cara yakni mengunakan fungsi call by value dan call by reference. Fungsi call by value merupakan fungsi yang melewatkan nilai parameter variabel ke dalam fungsi, sedangkan fungsi call by reference adalah fungsi yang melawatkan alamat variabel ke dalam fungsi. Program di atas merupakan program pemanggilan fungsi pada suatu nilai yang kemudian melakukan fungsi tukar pada nilai-nilai tersebut. Untuk melakukan nilai tukar ini bisa digunakan fungsi call by value dan reference karena untuk membuat program ini agar syntax nya lebih sederhana bisa dilakukan dengan memanggil alamat variabel untuk kemudian nilai variabel itu ditampilkan.