
Kali ini kita akan membahas mengenai apa perbedaan antara fungsi dengan nilai balik dan fungsi tanpa nilai balik.
Sebelum membahas lebih jauh, bebrapa hal berikut harus diperhatikan. Anda harus memahami terlebih dahulu apa yang dimaksud dengan fungsi, cara mendeklarasikan, mendefenisikan dan memanggil sebuah fungsi. Jika belum memahami materi tersebut, anda dapat mempelajarinya terlebih dahulu pada link berikut ini.
Jadi, fungsi merupakan kumpulan perintah atau statemen yang dikelompokkan ke dalam suatu blok program untuk menyelesaikan suatu tugas khusus tertentu.
Ditinjau dari pengembalian nilainya, fungsi terbagi ke dalam dua jenis yaitu:
- Fungsi dengan nilai balik
- Fungsi tanpa nilai balik
Fungsi dengan nilai balik
Fungsi dengan nilai balik adalah suatu fungsi yang mengembalikan suatu nilai kepada perintah pemanggilnya.
Sebagai contoh perumpamaan. Saya tiba-tiba saja ingin makan kue Barongko (Kue tradisional Sulawesi Selatan) seperti ditunjukkan pada gambar 1 di bawah. Kebetulan, tetangga saya melayani jasa pembuatan kue tersebut. Saya kemudian meminta dibuatkan kue barongko dengan memberikan uang sejumlah 20.000 rupiah. Setelah jadi, tetangga saya mengembalikan kue barongko kepada saya sebanyak 10 buah.

Dari cerita di atas kita dapat menyamakan beberapa hal ke dalam istilah fungsi, yaitu:
- Ketika saya meminta tetangga saya membuat kue barongko diibaratkan sebagai perintah pemanggilan fungsi.
- Jasa pembuatan kue barongko milik tetangga saya dapat diibaratkan sebuah fungsi. Fungsi khusus untuk membuat kue tradisional Barongko.
- Biaya pembuatan yang saya berikan sebesar 20.000 rupiah diibaratkan argumen yang dikirimkan dan diterima oleh tetanga saya sebagai parameternya.
- Proses pembuatan kue diibaratkan sebagai proses yang terjadi didalam fungsi. Dari parameter 20.000 rupiah bisa menjadi 10 kue Barongko.
- Kue barongko sebanyak 10 buah yang diberikan ke saya diibaratkan nilai balik yang dihasilkan oleh fungsi. Dikembalikan ke saya sebagai perintah pemanggilnya (saya yang meminta dibuatkan).
Adapun ciri-ciri fungsi yang mengembalikan nilai ke perintah pemanggilnya adalah:
- Menggunakan tipe data pada awal pendeklarasian fungsi
- Tidak menggunakan void
- Memiliki keyword “return” di dalam badan fungsi
Sintaks dan contoh fungsi dengan nilai balik
Berikut sintaks fungsi dengan nilai balik. Perhatikan sintaks 1 dan gambar 1.
Sintaks 1
tipe_nilai_balik nama_fungsi (par1, par2, …, parN){
//Proses yang terjadi di dalam fungsi
return output;
}
Keterangan:
Tipe_nilai_balik
: tipe nilai balik adalah tipe data dari nilai yang dikembalikan oleh fungsi berdasarkan hasil pengolahannya. Fungsi juga diperbolehkan tidak memiliki nilai balik.nama_fungsi
: bagian ini merupakan nama dari fungsi. Compiler dapat mengenali sebuah fungsi yang dipanggil berdasarkan nama dan parameternya.par1,par2,...,parN
: adalah daftar parameter fungsi sebanyak N. Parameter akan menerima nilai argumen dari perintah pemanggil. Namun suatu fungsi juga boleh tidak memiliki parameter.return
: adalah keyword yang digunakan untuk mengakhiri fungsi dan mengembalikan nilai variabel atau output yang mengikutinya. Nilai dikembalikan ke perintah pemanggil fungsi dimana keyword return beradaoutput
: dapat berupa nilai, variabel atau perintah yang akan menghasilkan nilai. Jika berupa variabel, maka yang dikembalikan adalah isi dari variabel. Jika berupa perintah maka yang dikembalikan adalah hasil pengeksekusian perintah tersebut.
Berikut gambar ilustrasi dari sintaks 1 di atas.

Berdasarkan sintaks di atas, perlu dicatat hal-hal berikut:
- Tipe_nilai_balik / Tipe_data harus diisi dengan tipe data yang sama dengan output (nilai yang dikembalikan oleh fungsi).
- Output (variabel atau nilai) yang akan dikembalikan ditempatkan di depan keyword return dan diakhiri dengan “;”.
- Output atau (variabel atau nilai) yang akan dikembalikan harus memiliki tipe data yang sama dengan tipe data fungsi.
- Keyword return diletakkan sebelum nilai atau variabel yang akan dikembalikan.
- Fungsi boleh tidak memiliki atau memiliki parameter
Agar dapat memahami penggunaanya, berikut kami berikan contoh jika sintaks di atas diterapkan. Perhatikan gambar 3.

Berdasarkan contoh pada gambar di atas, diketahui bahwa terdapat fungsi bernama luasPersegiPjg()
. Fungsi tersebut memiliki 2 parameter
yaitu P
dan L
. Kedua parameter adalah variabel yang dideklarasikan dengan tipe float
dan dipisahkan dengan koma
. Fungsi ini secara spesifik bertugas untuk mencari luas sebuah persegi dimana inputannya diterima pada variabel parameter P
dan L
. Nilai dari variabel P
dan L
kemudian diolah untuk mendapatkan nilai luas
yang hasilnya disimpan pada variabel luas
bertipe float
. Nilai variabel luas
kemudian dikembalikan ke perintah pemanggil fungsi dengan menggunakan keyword return
. Karena nilai yang dikembalikan bertipe float
, maka nilai balik fungsi juga bertipe float
.
Contoh program
Penerapan sintaks 1 dalam program sederhana dapat dilihat pada contoh program berikut ini.
#include <iostream>
using namespace std;
float luasPersegiPjg (float P, float L){
float luas = P * L;
return luas;
}
float luasSegiTiga(float A, float T){
float luas = 1.0/2.0 * A * T;
return luas;
}
int main() {
float pPersegi, lPersegi,aSegiTiga, tSegiTiga, luasP,luasP2, luasST;
pPersegi = 5.5;
lPersegi = 2.5;
aSegiTiga =3.0;
tSegiTiga = 2.5;
luasP = luasPersegiPjg(pPersegi,lPersegi);
luasP2 = luasPersegiPjg(3.5,1.5);
luasST = luasSegiTiga(aSegiTiga,tSegiTiga);
cout<<"Luas persegi panjang pertama adalah "<< luasP <<" meter persegi"<<endl;
cout<<"Luas persegi panjang kedua adalah "<< luasP2 <<" meter persegi"<<endl;
cout<<"Luas segi tiga pertama adalah "<< luasST <<" meter persegi"<<endl;
cout<<"Luas segi tiga kedua adalah "<< luasSegiTiga(6.0,1.0) <<" meter persegi"<<endl;
return 0;
}
Output:
Luas persegi panjang pertama adalah 13.75 meter persegi
Luas persegi panjang kedua adalah 5.25 meter persegi
Luas segi tiga pertama adalah 3.75 meter persegi
Luas segi tiga kedua adalah 3 meter persegi
Contoh program 1 adalah contoh pengimplementasian fungsi berparameter dengan nilai balik. Program tersebut merupakan program untuk mencari luas bangun datar dalam hal ini persegi panjang dan segitiga.
Penjelasan alur kerja contoh program 1
Pertama-tama pada baris 15 dideklarasikan variabel yang akan menampung nilai pada fungsi main()
yaitu variabel pPersegi, lPersegi, aSegiTiga, tSegiTiga, luasP,luasP2,
dan luasST
. Semua variabel tersebut bertipe float. Selanjutnya pada baris 16 sampai 19, variabel pPersegi , lPersegi, aSegiTiga,
dan tSegiTiga diisi dengan suatu nilai. Variabel ini nantinya akan menjadi argumen pada perintah pemanggilan fungsi pada baris 21, 22, 23, dan 28.
Sebagai contoh, pada perintah baris 21, terdapat perintah luasP = luasPersegiPjg(pPersegi,lPersegi);
. Perintah ini berarti bahwa fungsi luasPersegiPjg()
dipanggil dengan mengirimkan argumen berupa nilai yang ada pada variabel pPersegi
dan lPersegi
. Nilai kembalian dari fungsi akan disimpan pada variabel luasP
.
Selanjutnya, karena fungsi luasPersegiPjg()
dipanggil, maka fungsi tersebut dieksekusi. Nilai dari argumen pPersegi
dan lPersegi
akan diterima oleh parameter P
dan L
yang juga bertipe float secara berurutan. Kemudian pada baris 5, nilai P
dan L
dikalikan dan hasilnya disimpan pada variabel luas
yang bertipe float
. Pada baris 6, nilai luas
dikembalikan menggunakan perintah keyword return
ke perintah pemanggilnya tadi yang berada pada baris 21.
Nilai variabel luasP
kemudian ditampilkan melalui perintah baris 25. Proses yang sudah dijelaskan di atas kurang lebih sama untuk perintah pemanggil fungsi pada baris 22, dan 23.
Hal yang perlu menjadi perhatian pada contoh program 1
- Pada contoh program 1 dapat kita lihat bahwa proses pencarian luas kedua bangun datar tidak didefnisikan secara langsung pada fungsi
main()
. Namun, setiap bangun datar dibuatkan fungsinya masing-masing. Seperti ditunjukkan pada baris 4 dan 9, kedua fungsi memiliki tipe nilai balikfloat
. Mengapa demikian? sebab, nilai hasil pengolahan data pada fungsi tersebut bertipefloat
(perhatikan baris 6 dan 11, variabel setelah keywordreturn
). Nilai tersebut akan dikembalikan (ditandai dengan keywordreturn
) ke fungsi pemanggilnya masing-masing (perintah baris 21, 22, 23, dan 28) . Berikut gambar ilustrasinya, perhatikan gambar 4.

- Adapun
parameter
setiap fungsi yang ada akan menerima nilaiargumen
dari perintah pemanggilnya. Perhatikan perintah baris 21, pada baris tersebut terdapat perintahluasPersegiPjg (pPersegi, lPersegi);
. Dilihat dari namanya, perintah ini memanggil fungsiluasPersegiPjg()
(baris 4 hingga 7). Nilai argumenpPersegi
akan diterima oleh parameterP
dan nilai argumenlPersegi
akan diterima oleh parameterL
di baris 4. Hal ini berlaku sama dengan perintah pemanggil lainnya yang ada padabaris 22, 23, dan 28
. - Nilai
parameter
diolah dan menghasilkan output. Output ini dikembalikan ke fungsi pemanggilnya menggunakan keywordreturn
. Jika kita perhatikan, perintah pemanggilan fungsi pada baris 21 sampai 23 berada di depan operator penugasan sama dengan “=“. Hal tersebut menunjukkan bahwanilai balik
hasil pemanggilan fungsi akan disimpan ke dalam variabel ( variabel sebelum operator penugasan “=”). Berbeda dengan perintah pemanggilan fungsi pada baris 28, nilai baliknya langsung ditampilkan tanpa menyimpannya dulu ke variabel tertentu. Adapun perintah untuk menampilkan nilai output dapat dilihat pada baris 25 hingga 28. - Pada program di atas juga kita lihat terdapat 2 kali pemanggilan fungsi untuk fungsi
luasPersegiPjg()
(baris 21 dan 22) dan 2 kali pemanggilan fungsi untuk fungsiluasSegitiga()
(baris 23 dan 24). Hal tersebut menunjukkan bahwa dengan menggunakan fungsi kita dapat menghemat baris perintah. Karena, kita tidak perlu menuliskan perintah yang sama untuk proses yang sama. Cukup dengan memanggil fungsinya.
Fungsi tanpa nilai balik
Selain dapat mengembalikan nilai, suatu fungsi juga diperbolehkan untuk tidak mengembalikan nilai.
Fungsi tanpa nilai balik adalah suatu fungsi yang tidak mengembalikan nilai apapun kepada perintah pemanggilnya.
Adapun ciri-ciri fungsi yang tidak mengembalikan nilai ke perintah pemanggilnya adalah:
- Menggunakan void pada pendeklarasian fungsi
- Tidak memiliki keyword “return” di dalam badan fungsi
Fungsi tanpa nilai balik juga dapat memiliki atau tidak memiliki parameter. Berikut penjelasan lengkapnya.
Sintaks dan contoh fungsi tanpa nilai balik
Adapun sintaks fungsi tanpa nilai balik adalah sebagai berikut:
Sintaks 2
void nama_fungsi (par1, par2, …, parN){
//Badan fungsi
}
Berikut gambar ilustrasi dari sintaks 2 di atas. Perhatikan gambar 5.

Berdasarkan sintaks di atas, perlu dicatat hal-hal berikut:
- Fungsi tanpa nilai balik harus dideklarasikan dengan tipe void.
- Tidak menggunakan keyword return.
- Biasanya hasil pengolahan data langsung ditampilkan melalui badan fungsi.
- Boleh tidak emiliki atau memiliki parameter
Agar dapat memahami penggunaanya, berikut kami berikan contoh ketika sintaks di atas diterapkan. Perhatikan gambar 6.

Jika dilihat, contoh di atas sama dengan contoh pada gambar 3. Namun, pada contoh gambar 6, fungsi luasPersegiPjg()
memiliki tipe void
dan tidak memiliki keyword return
. Hal tersebut menunjukkan bahwa fungsi luasPersegiPjg()
di atas tidak memiliki nilai balik. Pada fungsi di atas, hasil langsung ditampilkan sebagai output melalui perintah cout
.
Contoh program
#include <iostream>
using namespace std;
void luasPersegiPjg (float P, float L){
float luas = P * L;
cout<<"Luas persegi panjang adalah "<< luas <<" meter persegi"<<endl;
}
int main() {
float pPersegi, lPersegi;
pPersegi = 5.5;
lPersegi = 2.5;
luasPersegiPjg(pPersegi,lPersegi);
return 0;
}
Output:
Luas persegi panjang adalah 13.75 meter persegi
Kita lihat pada baris 10 dideklarasikan variabel Ppersegi
dan Lpersegi
. Pada baris 11 dan 12, nilai 5.5 ditugaskan masuk ke variabel pPersegi
dan 2.5 ke Lpersegi
. Pada baris 14 dilakukan pemanggilan fungsi luasPersegiPjg()
dengan mengirimkan argumen pPersegi
dan LPersegi
.
Fungsi akan menrima nilai argumen berdasarkan urutan parameter. Kemudian akan diolah pada badan fungsi dan hasilnya yang disimpan pada variabel luas
ditampilkan ke layar melalui perintah baris 6.
Pada contoh program di atas dapat kita ketahui bahwa fungsi luasPersegiPjg()
bertipe void
dan tanpa keyword return
. Hal tersebut menunjukkan bahwa fungsi tersebut hanya dapat dipanggil namun tidak akan mengembalikan nilai apapun. Fungsi tersebut hanya dipanggil untuk mengeksekusi perintah yang ada di badan fungsi. Gambar ilustrasi dapat dilihat pada gambar 7 di bawah ini.

Sintaks pemanggilan fungsi
Adapun cara untuk memanggil sebuah fungsi dapat dilihat pada sintaks 3 yang ditunjukkan pada gambar 8 berikut.

Penggunaan sintaks 3 dicontohkan pada gambar 8.

Berdasarkan sintaks dan contoh yang diberikan di atas, pemanggilan fungsi dapat dilakukan hanya dengan menyebutkan nama fungsi diikuti dengan parameternya. Jika suatu fungsi memiliki 3 parameter, maka perintah pemanggilnya juga disertai dengan 3 argumen. Dimana, setiap argumen dipisahkan dengan koma. Jika suatu fungsi tidak memiliki parameter, maka perintah pemanggilnya tidak perlu diisi dengan argumen.
Semoga dapat menambah wawasan teman-teman yang masih baru dalam dunia pemrograman. Semoga bermanfaat.
Jika ingin mendengarkan penjelasan secara lisan, jangan sungkan untuk mengunjungi channel youtube kami “PAKKODING“.
Oh iya, share halaman ini agar orang-orang yang baru belajar pemrograman dapat terbantu.
Salam hangat dari tim pakkoding.id.
9,495 total views, 4 views today