Anda di halaman 1dari 5

Pengertian Fungsi

Sejauh ini kamu telah berlatih dengan membuat program dalam fungsi utama alias fungsi main().
Bagaimana jika program yang kamu buat merupakan program yang kompleks? Apakah kamu
akan menggunakan fungsi main saja untuk semua tugas? tentu saja ini akan membuat kamu
mengalami kesulitan dalam melakukan pengembangan serta pada saat membaca struktur
program di tahap debugging.
Untuk mengatasi masalah tersebut, dalam pemrograman C++ menggunakan pendekatan fungsi,
dimana fungsi digunakan untuk membagi program berdasarkan bagian-bagian tertentu yang
memiliki tugasnya masing-masing. Tentu saja semua fungsi yang bakalan kamu buat tidak akan
berjalan sendiri-sendiri namun bekerja atas dasar panggilan atau koordinasi fungsi utama atau
fungsi main().
Nah, fungsi dalam pemrograman C++ dapat kamu deklarasikan dengan menggunakan sintaks
berikut ini:
1 tipe nama_fungsi (tipe parameter1, tipe parameter2, ...,tipe parameterN){
2
3 //Kode fungsi yang akan dialankan
4
5 return kembalian;
6
7 }
Nih mimin jelaskan satu-persatu ya, mengenai apa saja komponen dalam sebuah fungsi itu:

1. Suatu fungsi jelas memiliki tipe. Tipe suatu fungsi menentukan nilai kembalian dari
fungsi tersebut. Suatu fungsi dengan tipe int (integer) akan memberikan kembalian/
return berupa nilai bertipe integer dari pemrosesan yang sudah dilakukannya. Berbeda
dengan tipe void, dimana tipe fungsi ini tidak memiliki nilai kembalian atau dapat
dikatakan fungsi void hanya menjalankan rutin program saja.
2. Nama_fungsi merupakan pengenal suatu fungsi. Nama_fungsi akan sangat berguna dan
wajib disertakan karena sebagai basis pemanggilan.
3. Parameter merupakan variabel penampung input suatu fungsi. Dapat dikatakan bahwa
parameter merupakan satu-satunya gerbang input dan pertukaran nilai antara suatu fungsi
dengan dunia luar (fungsi main).
4. Return merupakan instruksi yang berguna mengembalikan hasil kerja suatu fungsi, untuk
dapat digunakan di dunia luar (fungsi main).

Agar kamu semakin paham dengan apa yang sudah Mimin jelaskan di atas, maka perhatikan
contoh berikut ini:
1 #include <iostream>
using namespace std;
2
3 int hitung_luas (int panjang, int lebar){
4 int luas = panjang*lebar;
5 return luas;
6 }
7
8 int main(){
int a,b,hasil;
9 cout<<"Program Hitung Luas Persegi Panjang"<<endl;
10 cout<<"-----------------------------------"<<endl;
11 cout<<"Masukkan nilai panjang :"; cin>>a;
12 cout<<"Masukkan nilai lebar :"; cin>>b;
hasil = hitung_luas(a,b);
13 cout<<"Luas persegi panjang adalah :"<<hasil<<endl;
14 return 0;
15 }
16
17
18
Program di atas merupakan program yang berfungsi menghitung luas persegi panjang, dengan
memanfaatkan sebuah fungsi. Mimin buat fungsi hitung_luas dengan tipe int (integer). Parameter
yang terdapat pada fungsi hutung_luas adalah panjang, dan lebar dengan masing-masing bertipe
data integer. Variabel luas mimin deklarasikan di dalam fungsi dan memiliki nilai berupa
perkalian panjang dan lebar. Nilai luas kemudian diumpan sebagai nilai akhir pemrosesan
dengan menggunakan instruksi return pada baris ke-enam.
Pada baris ke-17 yaitu di dalam fungsi main(), Mimin panggil fungsi hitung_luas dan diberikan
nilai parameter berupa variabel a, dan b. Nilai variabel a dan b pada baris sebelumnya
menampung nilai panjang dan lebar yang diinputkan user. Pada baris 17 pula, hasil umpan balik
(return) fungsi hitung_luas, mimin tampung pada variabel hasil untuk kemudian dicetak pada
baris ke-18 untuk melihat hasilnya. Berikut adalah hasil output program:

Fungsi Void
Seperti yang sudah Mimin jelaskan di atas, terdapat fungsi dengan tipe void, Fungsi dengan tipe
void tidak akan mengembalikan nilai apapun seperti fungsi yang sudah Mimin contohkan di atas.
Fungsi void biasanya digunakan untuk menjalankan rutin program tertentu saja. Agar kamu lebih
paham, berikut Mimin contohkan kode programnya:
1 #include <iostream>
2 #include <string>
using namespace std;
3
4 int cetak (string kata){
5 cout<<kata<<endl;
6 }
7
8 int main(){
9 string input;
cout<<"Masukkan kata :";
10 getline(cin,input);
11 cetak(input);
12 return 0;
13 }
14
15
Program di atas, merupakan program yang memanfaatkan fungsi void untuk mencetak data yang
kamu masukkan. Kamu bisa lihat tidak ada instruksi return dalam fungsi cetak tersebut. Berikut
hasil output programnya:

Fungsi Overload
Suatu fungsi dalam program yang kamu buat bisa memiliki nama yang sama. Terus bagaimana
cara manggilnya Min, kalau namanya aja sama? Apa nanti fungsi utama tidak bingung dalam
melakukan pemanggilan? Oke, gini jadi yang membedakan suatu fungsi adalah parameternya,
sehingga program utama atau main() tidak akan salah panggil dan mendapatkan nilai yang salah
walaupun namanya sama. Nih buat lebih memperjelas, Mimin contohkan kode programnya:
1
2 #include <iostream>
3 using namespace std;
4
5 void fungsiOverload (void){
6 cout<<"Ini Merupakan fungsi overload"<<endl;
}
7
8 int fungsiOverload (int bil1, int bil2){
9 int operasi;
10 operasi = bil1*bil2;
11 return operasi;
}
12
13 int main(){
14 fungsiOverload();
15 cout<<"Hasil :"<<fungsiOverload(3,5)<<endl;
16 return 0;
17 }
18
Pada program di atas, Mimin membuat dua buah fungsi dengan nama yang sama yaitu
fungsiOverload. Fungsi pertama berfungsi mencetak kata Ini Merupakan fungsi overload,
sedangkan fungsi kedua bertugas melakukan perkalian dua buah bilangan. Kamu bisa lihat pada
baris 14 dan 15 bagaimana kedua fungsi yang memiliki nama beda namun dipanggil dengan cara
yang berbeda yaitu dari parameternya. Berikut adalah hasil output programnya:

Fungsi Prototype
Fungsi prototype atau prototype function sebenarnya merupakan sebuah variasi gaya dalam
mendeklarasikan sebuah fungsi. Nah coba kamu perhatikan semua fungsi yang sudah mimin
jabarkan dan jelaskan panjang kali lebar di atas, hehehe. Semua fungsi tersebut dideklarasikan
sebelum fungsi main(). Nah kenapa min kok harus dideklarasikan di awal atau sebelum fungsi
main()? Suatu sub fungsi dideklarasikan diawal suatu fungsi main() dengan tujuan agar fungsi
main dapat mengenali fungsi-fungsi yang ada. Bagaimana kalau suatu fungsi berada sesudah
fungsi main()? jelas bahwa error akan terjadi karena fungsi main tidak mengenali suatu fungsi
yang hendak dipanggil dalam fungsi utama.
Untuk menanggulangi hal tersebut, dalam pemrograman C++ dikenal istilah prototype
fungction, dimana kamu wajib mendelarasikan nama fungsi, jenis fungsi, dan parameternya saja
sebelum fungsi main agar dikenali oleh program utama. Untuk selanjutnya kamu bebas
menyusun isi suatu fungsi mengenai apa saja yang hendak dilakukan dengan fungsi tersebut serta
meletakanya setelah fungsi main().
Berikut contohnya kita gunakan fungsi yang sudah ada di atas:

1 #include<iostream>;
2 using namespace std;
3
4 int hitung_luas (int panjang, int lebar); //Prototype function
5
6 int main(){
7 int a,b,hasil;
cout<<"Program Hitung Luas Persegi Panjang"<<endl;
8 cout<<"-----------------------------------"<<endl;
9 cout<<"Masukkan nilai panjang :"; cin>>a;
10 cout<<"Masukkan nilai lebar :"; cin>>b;
11 hasil = hitung_luas(a,b);
cout<<"Luas persegi panjang adalah :"<<hasil<<endl;
12 return 0;
13 }
14
15 int hitung_luas (int panjang, int lebar){
16 int luas = panjang*lebar;
17 return luas;
}
18
19
20

Fungsi Inline
Fungsi inline merupakan metode yang digunakan untuk mempercepat pemanggilan suatu fungsi.
Biasanya fungsi yang diberikan atribut inline merupakan fungsi yang berada di dalam loop atau
dipanggil secara berulang kali. Dengan metode inline, suatu fungsi akan aktif dalam memori
sehingga mempercepat pemanggilan blok fungsi untuk diproses. Untuk mengaplikasikan
fungsi inline cukup mudah yaitu dengan menambahkan atribut inline sebelum tipe fungsi.
Berikut adalah sintaksnya:
1 inline tipe nama_fungsi (tipe parameter1, tipe parameter2, ...,tipe parameterN){
2
3 //Kode fungsi yang akan dialankan
4
5 return kembalian;
6
7 }

Anda mungkin juga menyukai