Fungsi Pada C++
Apa itu Fungsi (Function)?
Fungsi atau Function dalam C++ adalah sekumpulan pernyataan yang dibuat dan dirancang untuk melakukan tugas khusus.
Kegunaan dari fungsi yang dibuat dapat mengurangi penulisan ulang program yang sama. Bisa digunakan kembali baik di dalam program itu sendiri maupun di dalam program lain. Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat dikembangkan.
Setiap program C++ setidaknya memiliki satu fungsi yaitu fungsi main()
. Fungsi main()
digunakan untuk menjalankan kode yang kita buat.
Kita dapat membuat banyak fungsi dalam satu program, tetapi fungsi main()
hanya dapat membuat satu fungsi main()
dalam satu program. Setiap program hanya memiliki satu fungsi main()
.
Struktur Fungsi
Sebuah fungsi sederhana mempunyai bentuk penulisan sebagai berikut:
nama_fungsi (argument)
{
pernyataan;
}
Keterangan:
- Nama fungsi boleh dituliskan secara bebas dengan ketentuan, tidak menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.
- Argumen, diletakkan diantara tanda kurung "( )" yang terletak dibelakang nama fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong.
- Pernyataan/perintah, diletakkan diantara tanda kurung "{ }".
Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.
Contoh pembuatan fungsi sederhana:
#include <iostream>
using namespace std;
//membuat fungsi kata()
void kata(){
cout<<"Whoooops!"<<endl;
}
main(){
//memanggil fungsi kata()
kata();
}
Hasil fungsi yang dibuat:
Whoooops!
Process returned 0 (0x0) execution time : 0.050 s
Press any key to continue.
Prototipe Fungsi
Prototipe fungsi digunakan untuk mendeklarasikan ke kompiler mengenai:
- Tipe data keluaran dari fungsi.
- Jumlah parameter yang digunakan.
- Tipe data dari masing-masing parameter yang digunakan.
Keuntungan menggunakan prototipe yaitu:
- Kompiler akan melakukan konversi antara tipe parameter dalam definisi dan parameter fungsi.
- Jika jumlah parameter yang digunakan dalam definisi fungsi dan pada saat pemanggilan fungsi berbeda atau tidak sama, maka akan menunjukkan kesalahan.
Contoh prototipe fungsi:
float total(float a, float b); //diakhiri titik koma
//float : tipe data keluaran
//total : nama fungsi
//float a : tipe data parameter pertama
//float b : tipe data parameter kedua
Bentuk definisi dalam penggunaan fungsi yang dideklarasikan dengan menggunakan prototipe, harus diubah. Sebagai contoh pada pendefinisian berikut:
float total(a, b)
float a,b;
Bentuk pendefinisian diatas harus diubah menjadi bentuk modern pendefinisian fungsi:
float total(float a, float b) //tidak menggunakan titik koma
//float : tipe keluaran fungsi
//total : nama fungsi
//float a : tipe parameter a
//float b : tipe parameter b
Parameter Fungsi
Terdapat dua macam parameter fungsi, yaitu:
- Parameter formal merupakan variabel yany terdapat pada daftar parameter yang berada didalam definisi fungsi.
- Parameter aktual adalah variabel yang digunakan pada pemanggilan suatu fungsi.
Bentuk penulisan Parameter Formal:
//parameter formal
float total(float a, float b){
return(a+b);
}
Bentuk penulisan Paramater Aktual:
main(){
//parameter aktual
x = total(a, b);
}
Ada dua cara untuk melewatkan parameter ke dalam fungsi, yaitu berupa:
Pemanggilan dengan nilai (call by value)
Pada pemanggilan dengan nilai yaitu nilai dari parameter aktual akan dimasukkan ke parameter formal.
Dengan cara ini parameter aktual tidak bisa berubah, walaupun nilai dari parameter formal berubah.
Berikut contoh pemanggilan dengan nilai dapat dilihat pada contoh berikut:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int tambah (int m,int n)
{
m+=5;
n+=7;
cout<<" Nilai Di dalam Fungsi Tambah()";
cout<<" m = "<<m<<" n = "<<n;
cout<<endl;
}
main()
{
int a,b;
a=5;
b=9;
cout<<" Nilai Sebelum Fungsi Digunakan ";
cout<<" a = "<<a<<" b = "<<b;
cout<<endl;
tambah(a,b);
cout<<" Nilai Setelah Fungsi Digunakan ";
cout<<" a = "<<a<<" b = "<<b;
cout<<endl;
}
Hasil output:
Nilai Sebelum Fungsi Digunakan a = 5 b = 9
Nilai Di dalam Fungsi Tambah() m = 10 n = 16
Nilai Setelah Fungsi Digunakan a = 5 b = 9
Process returned 0 (0x0) execution time : 0.157 s
Press any key to continue.
Pemanggilan dengan referensi (call by reference)
Pemanggilan dengan referensi merepukan pemanggilan alamat suatu variabel di dalam suatu fungsi.
Cara ini dapat dipakai untuk mengubah isi suatu variabel yang di luar dari fungsi dengan melaksanakan pengubahan nilai dari suatu variabel dilakukan didalam fungsi.
Contoh pemanggilan dengan referensi:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int tambah (int *m,int *n)
{
*m+=5;
*n+=7;
cout<<" Nilai Di dalam Fungsi Tambah()";
cout<<" m = "<<*m<<" n = "<<*n;
cout<<endl;
}
main()
{
int a,b;
a=5;
b=9;
cout<<" Nilai Sebelum Fungsi Digunakan ";
cout<<" a = "<<a<<" b = "<<b;
cout<<endl;
tambah(&a,&b);
cout<<" Nilai Setelah Fungsi Digunakan ";
cout<<" a = "<<a<<" b = "<<b;
cout<<endl;
}
Hasil output:
Nilai Sebelum Fungsi Digunakan a = 5 b = 9
Nilai Di dalam Fungsi Tambah() m = 10 n = 16
Nilai Setelah Fungsi Digunakan a = 10 b = 16
Process returned 0 (0x0) execution time : 0.058 s
Press any key to continue.
Pernyataan return()
Digunakan untuk mengirimkan nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya.
Pernyataan return()
diikuti oleh argumen yang berupa nilai yang akan dikirimkan.
Contoh pemakaian pernyataan return()
dapat dilihat pada contoh berikut:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
int tambah (int *m) //fungsi tambah
{
return (*m+=2);
}
main()
{
int a,b = 5;
a=tambah(&b);
cout<<" Nilai Setelah Pemanggil Fungsi adalah "<<a;
cout<<endl;
}
Hasil output:
Nilai Setelah Pemanggil Fungsi adalah 7
Process returned 0 (0x0) execution time : 0.056 s
Press any key to continue.
Pengiriman Data ke Fungsi
Pengiriman data konstanta ke fungsi
Mengirimkan suatu nilai data konstanta ke suatu fungsi yang lain dapat dilakukan dengan cara yang mudah, dapat dilihat dari program berikut:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
float luas (float sisi)
{
return (sisi*sisi);
}
main()
{
float L;
L=luas(4);
cout<<" Luas Bujur Sangkar adalah "<<L;
cout<<endl;
}
Perhatikan kode di atas...
Dalam struktur program diatas bahwa, pernyataan L=luas(4);
akan dikirimkan nilai kepada fungsi luas()
, untuk diolah lebih lanjut, yang nilai tersebut akan ditampung pada variabel sisi
.
Selanjutnya di dalam fungsi return terjadi perkalian sisi dengan sisi, setelah itu hasil perkalian tersebut dikirim balik ke variabel L
yang memanggil fungsi.
Hasil output:
Luas Bujur Sangkar adalah 16
Process returned 0 (0x0) execution time : 0.053 s
Press any key to continue.
Pengiriman data variabel ke fungsi
Bentuk pengiriman data variabel, sama seperti halnya pengiriman suatu nilai data konstanta ke suatu fungsi, hanya saja nilai yang dikirimkan tersebut senantiasa dapat berubah-ubah.
Bentuk pengiriman tersebut dapat dilihat dari program berikut:
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
float luas (float sisi)
{
return (sisi*sisi);
}
main()
{
float L,S;
cout<<" Menghitung Luas Bujur Sangkar";cout<<endl;
cout<<" Masukan Nilai Sisi Bujur Sangkar : ";cin>>S;
L=luas (S);
cout<<" Luas Bujur Sangkar = "<<L<<" cm";
cout<<endl;
}
Hasil output:
Menghitung Luas Bujur Sangkar
Masukan Nilai Sisi Bujur Sangkar : 14
Luas Bujur Sangkar = 196 cm
Process returned 0 (0x0) execution time : 11.756 s
Press any key to continue.
Itulah penjelasan tentang Fungsi pada C++ dengan contoh sederhana program dan hasil outputnya.
Referensi: Buku Utama C++, Frieyadie, S.Kom