Sub program dalam C++ berbentuk fungsi


Teori Singkat

Suatu program yang cukup panjang dapat saja ditulis dalam satu fungsi main(). Namun, agar langkah program dapat ditulis dengan baik, program biasanya dipecah kedalam sejumlah subprogram. Subprogram dalam C++ berbentuk fungsi. Dalam C++ tidak dikenal prosedur. Secara sederhana, sekelompok pernyataan dapat diambil, diapit kurung kurawal, dan dinamai, maka menjadi fungsi. Fungsi yang hanya mengerjakan tugas tertentu dan tidak menghasilkan nilai, maka fungsi itu bertipe hasil void. Fungsi seperti ini bertindak sebagai prosedur dalam bahasa lain. Perhatikan contoh berikut.

void Tambah()

{

int a, b, c;

a = 3; b = 4;

c = a + b:

cout << c;

}

void main()

{

Tambah();  //pemanggilan fungsi

getchar();

}

Ada kalanya fungsi mempunyai parameter, maka dalam pemanggilannya juga perlu disertai parameter dengan jumlah dan tipe yang sama dengan pada saat didefinisikan.

void Tambah(int a, int b)

{

int c;

c = a + b:

cout << c;

}

void main()

{

int a = 3;

Tambah(a, 4);  //pemanggilan fungsi

getchar();

}

Suatu fungsi yang memberikan hasil, maka tipe void di depan pengenal fungsi diganti dengan tipe lain. Hasil fungsi dikerjakan dengan pernyataan return.

int Tambah(int a, int b)

{

int c;

c = a + b:

return c;

}

void main()

{

int a = 3;

int d;

d = Tambah(a, 4);  //pemanggilan fungsi

cout << “d = “ << d << endl;

getchar();

}

Pelewatan parameter kedalam fungsi adalah dengan cara bagaimana parameter aktual (parameter yang terdapat dalam pemanggilan fungsi) dilewatkan ke parameter formal (parameter yang terdapat dalam definisi fungsi).

Pelewatan parameter mempunyai jenis

  • pelewatan secara nilai
  • pelewatan secara pointer
  • pelewatan secara referensi

Pelewatan secara nilai adalah parameter aktual dikopikan ke parameter formal, sehingga perubahan yang terjadi pada parameter formal tidak mempengaruhi parameter aktual. Parameter dalam fungsi Tambah() di atas (parameter a dan b) dilewatkan secara nilai.

Pelewatan secara pointer adalah parameter berupa pointer. Karena pointer menunjuk ke variabel lain, maka parameter aktual dapat dipengaruhi oleh perubahan nilai variabel yang ditunjuk oleh parameter formal. Berikut, parameter c dalam fungsi Tambah() dilewatkan secara pointer.

void Tambah(int a, int b, int* c)

{

*c = a + b:

}

void main()

{

int a = 3;

int hasil;

Tambah(a, 4, &hasil);  //pemanggilan fungsi

cout << “hasil = “ << hasil << endl;

getchar();

}

Pelewatan secara referensi berperilaku parameter formal sebagai nama alias dari parameter aktualnya. Jadi, perubahan yang terjadi pada parameter formal akan menjadi hasil di parameter aktualnya. Pelewatan parameter secara referensi ditandai dengan karakter & setelah tipe parameter. Berikut, parameter c dalam fungsi Tambah() dilewatkan secara referensi

void Tambah(int a, int b, int& c)

{

c = a + b:

}

void main()

{

int a = 3;

int hasil;

Tambah(a, 4, hasil);  //pemanggilan fungsi

cout << “hasil = “ << hasil << endl;

getchar();

}

Praktek

Program berikut terdapat fungsi Tambah() yang menjumlah semua bilangan ganjil mulai dari isi variabel awal sampai dengan isi variabel akhir. Jika awal bernilai genap maka penjumlahan dimulai dari awal+1.

#include <iostream.h>

void Tambah(int a, int b)

{

int c = 0;

int i = a;

if((a % 2) == 0)

i = a + 1;

while (i <= b)

{

c += i;

i +=2;

}

cout << “Hasil = ” << c << endl;

}

void main()

{

int awal, akhir, hasil;

cout << “Awal = “;

cin >> awal;

cout << “Akhir = “;

cin >> akhir;

Tambah(awal, akhir);

getchar();

}

~ oleh 12puby pada 9 Juni 2010.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: