Mengenal FUNCTION dalam C++
Apa itu FUNCTION(FUNGSI) ??
Fungsi, atau dalam beberapa literatur ada yang mengistilahkan subrutin, subprogram maupun prosedur, adalah salah satu teknik pemrograman untuk meningkatkan modularitas program yang akan dibuat. Semakin besar tingkat modularitasnya, maka kecenderungannya adalah program itu akan relatif semakin baik. Mengapa? Karena program yang size-nya besar, banyak baris kode, akan dipecah menjadi modul-modul yang ukurannya lebih kecil. Beberapa keuntungannya adalah dalam hal efisiensi dan kemudahan dalam debugging. Dikatakan efisien karena konsep fungsi akan merangkum bagian tugas-tugas yang sama cukup dengan menuliskan kode program satu kali saja tetapi bisa dipanggil/ dijalankan berulang kali sepanjang program. Di sisi lain, jumlah baris kode program yang semakin sedikit akan memudahkan dalam menelusuri kesalahan yang ditemukan. Penggunaan konsep fungsi juga akan mengakibatkan isi dari void main() akan menjadi semakin ringkas.
Hampir sama dengan konsep fungsi dalam bahasa pemrograman lain,
fungsi dalam bahasa C++ juga terdiri dari komponen yang disebut dengan
HEADER fungsi dan BADAN fungsi. Header fungsi berisi informasi tentang
TIPE NILAI KELUARAN (return value), NAMA FUNGSI, dan PARAMETER/ ARGUMEN
FUNGSI. Return value akan berisi informasi tentang tipe data hasil
keluaran dari fungsi (misal: void, int, char, float, dsb). Nama fungsi
merupakan identifier untuk digunakan sebagai pemanggil fungsi (misal:
hitung, proses, dsb). Sedangkan parameter, umumnya digunakan sebagai
variabel untuk “jalan” masuknya input ke dalam fungsi (misal: int alas,
float jari_jari, dsb). Untuk badan (BODY) fungsi akan berisikan
baris-baris kode program yang akan dikerjakan jika fungsi tersebut
dijalankan/ dipanggil. Sebagai tambahan, void main() yang biasa kita
tulis pada saat membuat program itu juga termasuk dalam keluarga besar
fungsi. Yang khusus, fungsi main() adalah fungsi utama, artinya fungsi
tersebut HARUS ada setiap kali kita membuat program dalam bahasa C++.
Fungsi main() hanya boleh diketikkan satu kali saja di sepanjang source
code program yang kita buat.
Apa Manfaat Dari fungsi?
- Fungsi
menjadikan program C memiliki struktur yang jelas. Dengan memisahkan
langkah-langkah detil ke satu atau lebih fungsi, maka fungsi utama
(main( )) akan menjadi lebih pendek, jelas dan mudah dimengerti.
- Fungsi-fungsi
dapat dijinkan untuk menghindari penulisan yang sama berulang-ulang.
Langkah-langkah program yang sama dan sering digunakan berulang-ulang
dapat ditulis sekali saja secara terpisah dalam bentuk fungsi-fungsi,
selanjutnya bagian program yang membutuhkan langkah-langkah ini cukup
memanggil fungsi-fungsi tersebut.
Nilai akhir dari suatu fungsi adalah nilai yang dikembalikan oleh fungsi berdasarkan input parameter-parameter yang dimasukkan.
Contoh fungsi:
int rata(int x, int y, int z)
{
int ave;
ave = (x + y + z)/3;
return(ave);
}
Di dalam fungsi dikenal istilah Parameter Formal dan Parameter Aktual :
a. Parameter formal adalah parameter yang terdapat pada pendefinisian sebuah fungsi.
b. Parameter aktual adalah parameter yang terdapat pada saat pemanggilan fungsi.
Cara melewatkan parameter ke dalam suatu fungsi dapat dilakukan melalui dua cara yaitu:
a. Pelewatan parameter melalui nilai (call by value) :
- pelewatan
parameter ke dalam fungsi dengan menyalin nilai dari suatu variabel
aktualnya. Maksudnya adalah fungsi menerima masukan berupa nilai, bukan
alamat memori letak dari datanya dan nilai tersebut disimpan di alamat
memori yang terpisah dari nilai aslinya yang digunakan oleh bagian
program yang memanggil fungsi.
b. Pelewatan parameter melalui acuan/referensi (call by reference) :
- pelewatan
parameter ke dalam fungsi dengan menyalin alamat dari suatu variabel
aktualnya. Fungsi yang menerima kiriman alamat ini akan menggunakan
alamat yang sama untuk mendapatkan nilai datanya. Hal ini dilakukan
dengan menggunakan pointer. Pointer adalah variabel yang merujuk pada
alamat lokasi suatu memori tertentu, variable pointer dapat
dideklarasikan dengan menuliskan nama variabelnya diawali dengan
asterisk (‘*’). Perubahan yang terjadi pada variabel asal akan
mengakibatkan perubahan pada variabel pointernya dan sebaliknya.
Di dalam penggunaan fungsi-fungsi dalam program kita mengenal adanya istilah variable
local dan variable global :
local dan variable global :
a. Variabel lokal :
- Variabel
yang nama dan nilainya hanya dikenal di suatu blok statement tertentu
saja atau di dalam suatu fungsi. Variabel lokal harus dideklarasikan di
dalam blok bersangkutan. Variabel lokal akan dihapus dari memori jika
proses sudah meninggalkan blok statement letak variable lokalnya.
b. Variabel global :
- Variabel
yang dikenal di semua bagian-bagian tertentu dari program. Variabel
global dapat dibuat dengan cara mendeklarasikannya di luar suatu blok
statement atau di luar fungsi-fungsi yang menggunakannya.
Jenis-jenis Fungsi
1. Void(Fungi tanpa nilai balik)
Fungsi yang void sering disebut juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri-ciri dari jenis fungsi Void adalah sebagai berikut:
• Tidak adanya keyword return
• Tidak adanya tipe data di dalam deklarasi fungsi
• Menggunakan keyword void
• Tidak dapat langsung ditampilkan hasilnya
• Tidak memiliki nilai kembalian fungsi
• Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun.
• Void : void tampilkan_jml (int a, int b)
{
int jml;
jml = a + b;
cout<
}
Contoh fungsi void :
#include
#include
void luas(int &ls, int p, int l)
{ ls = p*l; }
main()
{
int pj,lb, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
luas(hsl,pj,lb);
cout<<"\nLuasnya = "<
getch();
}
|
2. NonVoid(Fungsi dengan nilai balik)
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri-ciri dari jenis fungsi non void adalah sebagai berikut:
• Ada keyword return
• Ada tipe data yang mengawali fungsi
• Tidak ada keyword void
• Memiliki nilai kembalian .
• Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
• Sehingga dapat langsung ditampilkan hasilnya
• Non-void : int jumlah (int a, int b)
Contoh fungsi non void :
#include
#include
int luas(int p, int l)
{return (p*l); }
main(){
int pj,lb;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"\nLuasnya = "<
getch();
}
|
Hubungan Return Value (RV) dan parameter (p) dalam fungsi
Kombinasi nilai di bagian RETURN VALUE (RV) dan PARAMETER (P) fungsi,
sedikitnya akan menghasilkan 4 bentuk kombinasi, yaitu: 1. RV void, P
juga void. 2. RV void, tapi P ada isinya. 3. RV bukan void, tapi P void.
4. RV dan P keduanya bukan void. Apa itu void? Keyword void pada
dasarnya akan memberitahukan kepada compiler bahwa pada bagian yang
bersangkutan tidak mempunyai nilai/ value yang perlu ditangani secara
khusus. Berikut penjelasan detailnya satu persatu.
1. RV dan P void.
Fungsi jenis ini biasanya disebut dengan istilah prosedur dalam bahasa Pascal/ Delphi atau juga dengan istilah subrutin dalam bahasa basic/ VB. Fungsi ini sama sekali mandiri, tidak membutuhkan input dan juga tidak menghasilkan output dari bagian lain program. Murni hanya berisi urut-urutan langkah saja. Ciri fungsi ini adalah jika ia melakukan proses pengolahan data maka komponen perintah input dan menampilkan output pasti akan dituliskan di dalam badan fungsi yang bersangkutan.
2. RV void, P berisi.
Fungsi ini berarti tidak akan menghasilkan keluaran bagi bagian lain program. Namun ia membutuhkan data sebagai input ke dalam fungsi. Dengan demikian fungsi jenis ini mensyaratkan terlebih dulu harus ada bagian lain program yang melakukan input data yang akan dikirimkan ke dalam fungsi sebelum menjalankan/ memanggil fungsi.
3. RV berisi, P void.
Tidak ada data input yang akan dibutuhkan oleh fungsi jenis ini. Tetapi, fungsi justru menghasilkan output. Kok bisa? Berarti bagian input data untuk fungsi ini akan ditulis langsung berada di dalam badan fungsi yang bersangkutan.
4. RV dan P berisi.
Fungsi jenis ini adalah fungsi yang murni. Ia hanya bertugas melakukan pengolahan data. Input diperoleh dari bagian lain program di atasnya. Sedangkan output hasil pengolahannya akan dikirimkan juga ke bagian lain program untuk kemudian ditampilkan secara terpisah. Fungsi ini ibarat fungsi matematis yang biasa kita kenal, seperti f(x,y) = 3x + 4y. Dimana (x,y) adalah parameternya, 3x + 4y adalah badan fungsinya. Sedangkan tanda ‘=’ menunjukkan pengiriman hasil perhitungan dari sebelah kanan ke sebelah kirinya.
Contoh-Contoh Program
1. Program menghitung luas persegi panjang
2.Program menghitung banyak bilangan ganjil dan genap
3.Program menghitung rata-rata
untuk dapat melihat source codenya
Referensi :
0 komentar:
Posting Komentar