studIKasus
Apa perbedaan fungsi dengan nilai balik dan fungsi tanpa nilai balik? & Kapan masing -- masing fungsi tersebut digunakan?

Return it or Not
A. Fungsi Dengan Nilai Balik
Fungsi ini berguna untuk melakukan suatu proses yang memerlukan nilai kembalian atau OUTPUT. fungsi ini wajib didefinisikan tipe data dari nilai yang akan dikembalikan. Fungsi ini disebut juga denganĀ Fungsi Non Prosedural.
Ciri-cirinya:
- Tanpa keyword void
- Ada keyword return
- Ada tipe data yang mengawali fungsi
- Memiliki nilai kembalian
- Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu, sehingga dapat langsung ditampilkan hasilnya
- Contoh deklarasi: int jumlah (int a, int b)
Contoh:
#include<iostream.h>
// Prototipe fungsi
Long kuadrat (long i);
--------------------------------------
//Definisi fungsi
Long kuadrat (long i)
{
return (i*i)
}
Pernyataan return pada fungsi diatas digunakan untuk mengembalikan fungsi kuadrat(), yang mana rumus kuadrat diperoleh dari hasil kali bilangan itu sendiri, misal i kuadrat = i x i, sebagaimana telah didefinisikan dalam fungsi diatas.
Contoh lagi:
Masih dengan prinsip yang sama yaitu mengalikan bilangan itu sendiri, namun beda implementasinya, kali ini kita definisiakan pada rumus luas persegi.

C++ Luas Persegi Nilai Balik
#include <iostream.h>
#include <conio.h>
//Ini merupakan fungsi dengan nilai balik (return).
//awal fungsi,
float luas(float s)
{
float luas;
luas=s*s;
return luas; //mengembalikan nilai ke fungsi
}
//akhir fungsi (fungsi utamanya)
void main()
{
float sisi;
float L;
cout<<"menghitung luas persegi"<<endl;
cout<<"Masukan sisi : "; cin>>sisi;
L=luas(sisi); //memanggil fungsi dan L menampung nilai dari fungsi
cout<<"Luas : "<<L;
getch();
}
B. Fungsi Tanpa Nilai Balik
Merupakan fungsi yang tidak memerlukan nilai balik/output. Fungsi ini memiliki satu tujuan/fokus sering di istilahkan dengan logical inherent atau spesific purpose. Fungsi ini disebut juga denganĀ Fungsi Prosedural.
Ciri-cirinya:
- Tidak adanya keyword return
- Menggunakan keyword void
- Tidak adanya tipe data di dalam deklarasi fungsi.
- Tidak dapat langsung ditampilkan hasilnya.
- Tidak memiliki nilai kembalian fungsi
- Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun.
- Contoh deklarasi : void tampilkan_jml (int a, int b)
Sehingga, gambaran perbedaan antara keduanya adalah sebagai berikut:
Misal pendefinisiannya sama-sama menggunakan i x i, maka Fungsi Nilai Balik bisa digunakan untuk menghitung luas persegi atau kuadrat suatu nilai, sedangkan Fungsi Tanpa Nilai Balik hanya bisa berlaku salah satunya saja, misal luas lingkaran ya luas lingkaran saja, atau jika kuadrat nilai ya kuadrat nilai saja.
Contoh:
#include<iostream.h>
void tampilkan() // argumen kosong
{
cout<<"Terima Kasih telah mengunjungi blog saya"<<endl;
cout<<"Bla...Blaa..Bla.."<<endl;
cout<<"\t Silahkan tinggalkan komentar anda"<<endl;
getch();
}
Contoh lagi:
Menggunakan prinsip i * i, namun fungsi ini didedikasikan hanya untuk luas persegi. Lihat perbedaannya di source code.

C++ Luas Persegi Tanpa Nilai Balik
#include <conio.h>
#include <iostream.h>
//Ini merupakan fungsi tanpa nilai balik (void).
//awal fungsi,
void luas(float s)
{
float luas;
luas=s*s;
cout<<"luas : "<<luas<<endl;
}
//akhir fungsi (fungsi utamanya)
void main()
{
float sisi;
cout<<"menghitung luas persegi"<<endl;
cout<<"Masukan sisi : "; cin>>sisi;
luas(sisi); // memanggil fungsi
getch();
}