Fungsi Pada Pemrograman C++

posted in: Pemrograman C++ | 9

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:


tipe nama_fungsi (tipe parameter1, tipe parameter2, ...,tipe parameterN){

//Kode fungsi yang akan dialankan

return kembalian;

}

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:

#include <iostream>
using namespace std;

int hitung_luas (int panjang, int lebar){
int luas = panjang*lebar;
return luas;
}

int main(){
int a,b,hasil;
cout<<"Program Hitung Luas Persegi Panjang"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai panjang :"; cin>>a;
cout<<"Masukkan nilai lebar :"; cin>>b;
hasil = hitung_luas(a,b);
cout<<"Luas persegi panjang adalah :"<<hasil<<endl;
return 0;
}

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-luas-persegi-panjang

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:


#include <iostream>
#include <string>
using namespace std;

int cetak (string kata){
cout<<kata<<endl;
}

int main(){
string input;
cout<<"Masukkan kata :";
getline(cin,input);
cetak(input);
return 0;
}

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-void

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:


#include <iostream>
using namespace std;

void fungsiOverload (void){
cout<<"Ini Merupakan fungsi overload"<<endl;
}

int fungsiOverload (int bil1, int bil2){
int operasi;
operasi = bil1*bil2;
return operasi;
}

int main(){
fungsiOverload();
cout<<"Hasil :"<<fungsiOverload(3,5)<<endl;
return 0;
}

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-overload

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:

 

#include<iostream>;
using namespace std;

int hitung_luas (int panjang, int lebar); //Prototype function

int main(){
int a,b,hasil;
cout<<"Program Hitung Luas Persegi Panjang"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai panjang :"; cin>>a;
cout<<"Masukkan nilai lebar :"; cin>>b;
hasil = hitung_luas(a,b);
cout<<"Luas persegi panjang adalah :"<<hasil<<endl;
return 0;
}

int hitung_luas (int panjang, int lebar){
int luas = panjang*lebar;
return luas;
}

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:


inline tipe nama_fungsi (tipe parameter1, tipe parameter2, ...,tipe parameterN){

//Kode fungsi yang akan dialankan

return kembalian;

}

 

“Selagi masih ada ilmu yang bermanfaat dan kesempatan, sebarkanlah”

Salam sinauarduino.com

9 Responses

  1. salsabillahdevia

    gan itu pake code block bukan?
    btw nice article gan (y)

  2. Naufal Dzaky

    min, kurang system(“pause”);

  3. Gan itu dalam fungsi void harusnya void cetak, bukan int

  4. MUHAMMAD HAZIM

    gan…ko punya ane cepet colapse nya yah..tapi bisa,aneh

  5. mantap gan artikelnya mudah dipahami

  6. Romanus pradista899

    Gan btw articel ny bgus, bt fungsi void slah ktik it, shrusny void bkan iny

Leave a Reply