parameter disimpan dalam lokasi memori yang terpisah dari argumen yang asli. Perhatikan gambar berikut ini
Argumen Asli 12➡↘ Fungsi Parameter 12 Gambar 7.7. Variabel parameter yang disimpan dalam memori
7.7. Pernyataan Kembali
Bila pernyataan terakhir dalam fungsi telah selesai eksekusi, fungsi akan diakhiri. Program akan kembali ke modul yang dipanggil dan meneruskan eksekusi dari titik dimana panggilan fungsi dilakukan sebelumnya. Hal sangat dimungkinkan, meskipun salah satu fungsi memaksa untuk kembali ketempat dimana pernyataan terakhir dari program sebelumnya yang dieksekusi. Ketika menemui pernyataan kembali, fungsi dengan segera diakhiri dan menuju program semula. Hal ini seperti ditunjukkan dalam Program dibawah. fungsi bagi digunakan untuk menunjukkan hasil pembagian dari arg1 dibagi arg2. Jika arg2 diatur ke nol, fungsi akan kembali tanpa melakukan pembagian, karena operasi pembagian tidak mungkin dilakukan. Program 7.10.
#include<iostream> usingnamespacestd; voiddivide(double,double); intmain() { doublenum1,num2; cout<<"masukanduaangkayangakandibagi\n"; cout<<"angkayangkedua cin>>num1>>num2; divide(num1,num2); return0; } voiddivide(doublearg1,doublearg2) { if(arg2==0.0) { cout<<"maaf,tidakbisadibagidenganbilangannol.\n"; return; } cout<<"jawabanyaadalah:"<<(arg1/arg2)<<endl; }
7.8. Mengembalikan Nilai dari Fungsi
Dari program diatas kita telah melihat bahwa informasi dapat dilewatkan menjadi salah satu fungsi oleh sebuah parameter. Informasi juga dapat dikembalikan dari fungsi, kembali menuju program yang memanggilnya. Walaupun beberapa argumen dapat dimasukan menjadi salah satu fungsi, hanya ada satu nilai yang dapat dikembalikannya. Sesuatu dari fungsi memiliki beberapa saluran komunikasi untuk menerima data (parameter), tetapi hanya satu saluran untuk mengirim data (return value). Hal tersebut dapat digambarkan seperti dibawah ini: Argumen Fungsi Argumen Nilai Kembali Argumen Argumen Gambar 7.8. Fungsi dengan saluran beberapa data (parameter) Dalam rangka untuk mengembalikan nilai-nilai dari beberapa fungsi, mereka harus "dibuat paket" sehingga mereka dianggap sebagai satu nilai. Tipe data nilai kembali mengawali fungsi dengan nama header fungsi dan prototipe. Berikut ini menyatakan prototipe fungsi dengan nama persegi yang menerima sebuah argumen integer dan mengembalikannya menjadi integer: intpersegi(int); instruksi diatas dapat didefinisikan dalam fungsi sebagai berikut: intpersegi(intnumber) { returnnumber*number; } Fungsi tersebut hanya memiliki satu baris yang merupakan pernyataan kembali. Bila nilai fungsi kembali, maka hal tersebut harus memiliki pernyataan kembali. Ungkapan yang mengikuti kata kunci akan dievaluasi, dikonversikan ke tipe data fungsi kembali, dan dikirim kembali program yang memanggil fungsi tersebut. Untuk lebih jelasnya perhatikan Program dibawah ini: Program 7.11
#include<iostream> usingnamespacestd; intpersegi(int); intmain() { intnumber,result; cout<<"Masukanangkayangakandiakarkan:"; cin>>number; hasil=persegi(number); cout<<number<<"Hasilnyaadalah"<<hasil<<endl; return0; } intpersegi(intnumber) { returnnumber*number; }
Dibawah ini merupakan sebuah baris memanggil fungsi persegi: hasil=persegi(number); Sebuah ekspresi adalah sesuatu yang memiliki nilai. Jika suatu fungsi mengembalikan nilai, panggilan ke fungsi merupakan sebuah ekspresi. Pernyataan diatas memberikan nilai kembali dari persegi ke variabel hasil
Next read ON halaman 9.