Anda di halaman 1dari 7

Mengenal Fungsi dan Prosedur pada C++

Dalam pemrograman, fungsi atau prosedur sering digunakan untuk membungkus program menjadi
bagian-bagian kecil.
Tujuannya agar program tidak menumpuk pada fungsi main() saja.

Bayangkan kalau program kita tambah besar dan kompleks, semua kodenya ditulis di dalam
fungsi main(), maka kita akan kesulitan membacanya. Karena itu, kita harus menggunakan Fungsi.

Apa itu Fungsi?


Fungsi adalah sub-program yang bisa digunakan kembali baik di dalam program itu sendiri, maupun di
program yang lain.

Fungsi dapat menerima input dan menghasilkan output.

Contoh fungsi yang sering kita buat adalah fungsi main().


Fungsi ini memang wajib ada di setiap program C++, karena fungsi inilah yang akan dieksekusi pertama
kali saat program berjalan.
“Kalau kita menumpuk semua kode program di dalam fungsi main(), maka program akan menjadi sulit
terbaca.” Karena itu, kita perlu membuat fungsi tersendiri agar program tidak berantakan.

Cara Membuat Fungsi pada Bahasa C++


Fungsi pada C++ dapat kita buat dengan cara seperti ini:

Fungsi biasanya akan mengembalikan sebuah nilai dari hasil prosesnya. Karena itu, kita harus
menentukan tipe data untuk nilai yang akan dikembalikan.

Apabila fungsi tersebut tidak memiliki nilai kembalian, maka kita harus menggunakan tipe void untuk
menyatakan kalau fungsi tersebut tidak akan mengembalikan nilai apa-apa.

Contoh:
void nama_fungsi(){
cout << "Ini adalah sebuah fungsi\n";
}

Lalu untuk parameter bersifat opsional, boleh ada boleh tidak.

Tergantung dari fungsi yang dibuat. Jika fungsi itu membutuhkan input, maka kita harus membuatkan
paramater. Tapi kalau tidak menerima input apapun, parameter tidak perlu dibuat.

Fungsi yang tidak menerima input, kadang juga disebut dengan prosedur.
Sekarang mari kita coba membaut fungsi pada program C++.

Silahkan buat file baru bernama fungsihello.cpp kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

// membuat hello()
void hello(){
cout << "Hello Selamat Datang!\n";
}

main() {
// memanggil hello()
hello();
}
Hasilnya:
Hello Selamat Datang!

Fungsi hello() dapat dipanggil berulang kali pada fungsi main().


Contoh:
#include <iostream>
using namespace std;

// membuat fungsi hello()


void hello(){
cout << "Hello Selamat Datang!\n";
}

main(){
// memanggil fungsi hello()
hello();
hello();
hello();
}

Maka hasilnya:
Hello Selamat Datang!
Hello Selamat Datang!
Hello Selamat Datang!

Jadi, cukup buat fungsi satu kali. Kita bisa panggil berkali-kali.

Deklarasi dan Definisi Fungsi


Pada contoh di atas, kita membuat fungsi dengan cara mendefinisikan langsung fungsinya.
Kita juga bisa membuatnya dengan deklarasi.
Contoh:
#include <iostream>
using namespace std;

// deklarasi fungsi
void hello();

main(){
// memanggil fungsi hello()
hello();
hello();
hello();
}

// Definisi fungsi
void hello(){
cout << "Hello Selamat Datang!\n";
}

Apa bedanya dengan yang tadi?


Jika kita membuat fungsi secara definisi, kita harus membuat fungsinya di atas fungsi main.
Jika dibuat di bawah fungsi main, maka program akan error.

Soalnya program C++ dieksekusi dari atas ke bawah.

Fungsi dengan Parameter


Parameter adalah variabel yang menyimpan nilai untuk diproses di dalam fungsi.
Parameter berfungsi untuk menyimpan nilai yang akan diinputkan ke fungsi.

Contoh:
void hello (string nama){
cout << "Hello " << nama << "!\n";
}

Perhatikan!
nama adalah sebuah parameter dengan tipe string.
Parameter ini akan menyimpan nilai yang diinputkan ke fungsi hello().
Lalu, bagaimana cara kita memberikan input ke fungsi?

Berikut caranya:
hello("Abdul");

Perhatikan!
"Abdul" adalah nilai yang akan kita berikan ke fungsi.

Silahkan buat program baru dengan nama fungsi_parameter.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

void hello(string nama){


cout << "Hello " << nama << "!\n";
}

main(){
say_hello("Abdul");
say_hello("Rahim");
}

Hasilnya:
Hello Abdul!
Hello Rahim!

Hasil outputnya akan menyesuaikan dengan nilai parameter yang kita berikan ke fungsi.

Kalau ada lebih dari satu parameter, tinggal ditambahkan dan dipisah dengan tanda koma seperti ini:

void tambah(int a, int b){


cout << a << “ + “ << b << “ = “ << a+b << “\n”;
}

Mari kita coba…


Buatlah program baru barnama dua_param.c, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;

void tambah(int a, int b){


cout << a << “ + “ << b << “ = “ << a+b << “\n”;
}

main(){
tambah(1, 4);
tambah(8, 2);
tambah(3, 2);
}
Hasilnya:
1+4=5
8 + 2 = 10
3+2=5

Fungsi yang Mengembalikan Nilai


Pada contoh di atas, kita memberikan nilai input ke fungsi berupa integer, lalu di dalamnya dilakukan
operasi penjumlahan.

void tambah(int a, int b){


cout << a << “ + “ << b << “ = “ << a+b << “\n”;
}
Fungsi ini tidak mengembalikan apa-apa, karena tipe data yang diberikan pada nilai kembalian
adalah void.

Fungsi juga kadang harus menghasilkan output, karena kadang kita membutuhkan hasil dari fungsi
tersebut untuk digunakan pada proses berikutnya.
Kita bisa menggunakan kata kunci return untuk mengembalikan nilai dari fungsi.

Contoh:
int tambah(int a, int b){
return a+b;
}

Maka fungsi tambah() akan mengembalikan nilai berupa integer dari hasil penjumlahan nilai a dan b.

Silahkan buat program baru bernama fungsi_bagi.c, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;

float bagi(int a, int b){


float hasil = (float)a / (float)b;
return hasil;
}

main(){
cout << a << “ / “ << b << “ = “ << bagi(5, 2) << endl;
}

Hasilnya:
5 / 2 = 2.5

Variabel Lokal dan Variabel Global


Variabel lokal dan variabel global akan sering kita temukan dalam pembuatan fungsi.
Variabel global adalah variabel yang bisa diakses dari semua fungsi. Sedangkan variabel lokal adalah
variabel yang hanya bisa diakses dari dalam fungsi itu sendiri.

Contoh:
#include <iostream>
using namespace std;

// membuat variabel global


int nilai = 9;

main(){
// membuat variabel lokal
int nilai = 7;

// mencetak variabel
cout << "Nilai = " << nilai << endl;
}
Hasil :
Nilai = 7

Kenapa hasil = 7, karena variabel nilai dibuat ulang di dalam fungsi main.

Pada contoh di atas, kita membuat variabel global bernama nilai.


Fungsi ini berada di luar fungsi main.

Lalu di dalam fungsi main(), kita membuat variabel lagi bernama nilai dengan nilai yang berbeda.
Variabel yang ada di dalam fungsi main() adalah variabel lokal.

Sekarang coba dihapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti ini:
#include <iostream>
using namespace std;

// membuat variabel global


int nilai = 9;

main(){
// membuat variabel lokal
int nilai = 7;

// mencetak variabel
cout << "Nilai = " << nilai << endl;
}

Maka hasil outputnya adalah 9, karena variabel yang dipakai adalah variabel global.

Pass by Value dan Pass by Reference


Pass by value dan pass by reference adalah cara untuk memberikan nilai pada paramaeter.

Kalau pemberian nilai sebagai parameter dengan cara seperti ini:


kali_dua(4);
Ini disebut pass by value, karena kita memberikan nilai 4 secara langsung.

Kalau pemberian nilai seperti ini:


kali_dua(&nama_variabel);
Ini disebut pass by reference, karena kita memberikan alamat memori.

Contoh:
#include <iostream>
using namespace std;

void kali_dua(int *num){


*num = *num * 2;
}

main(){
int angka = 9;

// memanggil fungsi
kali_dua(&angka);

// mencetak isi variable setelah fungsi dipanggil


cout << "isi variabel angka = " << angka << endl;
}
Hasilnya:
isi variable angka = 18

Fungsi kali_dua() memiliki parameter berupa pointer, artinya kita harus memberikan alamat memori
untuk pointer ini.

Pada saat pemanggilan, fungsi kali_dua() kita isi parameternya dengan alamat memori dari
variabel angka.

Maka hasilnya nilai variabel angka akan dikalikan dengan 2 berdasarkan rumus pada fungsi yang kita
berikan.

Anda mungkin juga menyukai