Anda di halaman 1dari 47

Algoritma dan Pemrograman I

Pertemuan 8

Danang Purnomo, S.ST., M.Kom


Fungsi (Function)

Secara sederhana, fungsi atau function adalah kode program


yang dirancang untuk menyelesaikan sebuah tugas tertentu,
dan merupakan bagian dari program utama. Ketika di sadur ke
dalam bahasa indonesia, function ini di sebut juga
sebagai fungsi.
Berdasarkan siapa yang membuat, fungsi bisa dibedakan ke dalam 2
kelompok:
1. Built-In Function
2. User Defined Function
Built-In Function adalah sebutan untuk fungsi yang sudah ada secara
bawaan dari dalam bahasa pemrograman. Sedangkan User Defined
Function adalah fungsi yang kita (sebagai programmer) membuatnya
sendiri.
Bahasa C++ menyediakan banyak fungsi bawaan, belum
termasuk yang bisa diakses dari berbagai library atau package
pihak ketiga. Sebagai contoh, main() adalah function bawaan
C++. Namun dalam tutorial kali ini yang akan kita bahas adalah
jenis User Defined Function.
Membuat Fungsi dalam Bahasa C++
Berikut format dasar cara penulisan fungsi dalam bahasa C++:

tipeDataKembalian namaFunction() {
// Isi function disini...
// Isi function disini...
return nilai;
}

Jika suatu fungsi tidak mengembalikan nilai, tipeDataKembalian ditulis


sebagai void. Sebuah fungsi yang tidak mengembalikan nilai kadang disebut
juga sebagai procedure.
Penulisan namaFunction boleh bebas, tidak ada standar
penamaan tertentu untuk fungsi bahasa C++ selama mengikuti
aturan penulisan identifier, yakni tidak boleh di awali angka dan
tidak boleh mengandung spasi.
Beberapa ada yang menyukai menulis dalam snake_case,
dimana nama fungsi ditulis dalam huruf kecil semua dan setiap
kata dipisah dengan underscore ” _ “, contohnya
seperti cari_nama_mahasiswa(), proses_form_input()
atau tampilkan_harga_barang()
Beberapa ada yang menyukai gaya camelCase,dimana karakter
pertama nama fungsi ditulis dengan huruf kecil, kemudian setiap
karakter pertama kata berikutnya dalam huruf besar. Antar kata
tidak boleh mengandung spasi. Contohnya
seperti cariNamaMahasiswa(), prosesFormInput() atau
tampilkanHargaBarang()
Jika fungsi tersebut mengembalikan nilai, maka jalankan
perintah return seperti di baris 4. Mengenai perintah return ini
akan kita bahas dalam tutorial terpisah.
Pendefinisian User Defined Function harus ditulis di luar
function main() seperti format berikut:

#include <iostream>
using namespace std;
tipeDataKembalian namaFunction() {
// Isi function disini...
// Isi function disini...
return nilai;
}
int main()
{
// Jalankan function
namaFunction()

return 0;
}
Dalam contoh format di atas, pendefinisian function ada di
baris 5 – 9. Ketika sebuah function di definisikan, function
tersebut belum berjalan. Disini kita hanya memberitahu
compiler bahasa C++ bahwa sebuah function sudah disiapkan.
Agar bisa berjalan, sebuah function harus “dipanggil” dengan
cara menulis nama fungsi tersebut di dalam method main().
Inilah yang dilakukan oleh perintah di baris 14
Kode Program Fungsi Bahasa C++
Dalam kode program berikut ini saya membuat sebuah
fungsisapaAlgoritma1() yang ketika dijalankan akan menampilkan teks “Halo
Algoritma1”: #include <iostream>
using namespace std;
void sapaDuniailkom() {
cout << "Halo Algoritma1 " << endl;
}
int main()
{
sapa Algoritma1 ();
sapa Algoritma1();
sapa Algoritma1();
return 0;
}
Hasil kode program:

Halo Algoritma1
Halo Algoritma1
Halo Algoritma1
Function sapaAlgoritma1() tidak mengembalikan nilai,
sehingga tipeDataKembalian diisi dengan keyword void. Isi
dari fungsi sapaAlgoritma1() sendiri hanya 1 perintah,
yakni cout << "Halo Algoritma1" << endl seperti di baris 6.
Setelah di definisikan, sebuah fungsi bisa dijalankan berkali-
kali, inilah yang saya lakukan antara baris 11 – 13. Setiap kali
perintah sapaAlgoritma1 () dijalankan, akan tampil teks “Halo
Algoritma1” di layar.
Sebuah kode program bisa saja memiliki banyak fungsi. Berikut
contohnya: #include <iostream>
using namespace std;
void sapaLisa() {
cout << "Hai Lisa" << endl;
}
void sapaSari() {
cout << "Morning, Sari" << endl;
}
void sapaRudi() {
cout << "Halo bro,.." << endl;
}
int main()
{
sapaLisa();
sapaSari();
sapaRudi();
return 0;
}
Hasil kode program:
Hai Lisa
Morning, Sari
Halo bro,..
Kali ini kita mendefinisikan 3 fungsi di dalam kode program,
yakni function sapaLisa(), sapaSari() dan sapaRudi(). Setiap
fungsi berisi perintah cout yang berbeda-beda.
Variabel di Dalam Function
Untuk fungsi yang kompleks, kita bisa menulis variabel di dalam fungsi
tersebut. Berikut contoh penggunaannya:
#include <iostream>
using namespace std;
void hitungLuasSegitiga() {
double alas = 5;
double tinggi = 7;
double luas = (alas * tinggi) / 2;
cout << "Luas segitiga adalah: " << luas << endl;
}
int main()
{
hitungLuasSegitiga();
return 0;
}
Hasil kode program:
Luas segitiga adalah: 17.5
Kali ini kita mendefinisikan function hitungLuasSegitiga() di
baris 5 – 10. Sesuai dengan namanya, fungsi ini dipakai untuk
menghitung luas segitiga.
Di dalam fungsi hitungLuasSegitiga() terdapat
variabel alas, tinggi dan luas yang semuanya bertipe double.
Variabel alas diisi angka 5 dan variabel tinggi diisi angka 7.
Sedangkan variabel luas akan diisi hasil perhitungan (alas *
tinggi) / 2, yakni rumus untuk mencari luas segitiga. Kemudian
perintah cout di baris 9 akan menampilkan hasil perhitungan.
Untuk menjalankan fungsi ini, harus di panggil dengan
perintah hitungLuasSegitiga() dari dalam
function main() seperti di baris 14.
Program C++ Membuat Deret Angka (Kelipatan 3)
Biasanya sebuah fungsi bisa menerima nilai masukan atau nilai
input. Nilai masukan inilah yang dimaksud
dengan parameter atau argumen.
Parameter adalah sebutan untuk nilai inputan fungsi pada saat
fungsi itu di definisikan, sedangkan argumen adalah sebutan
untuk nilai inputan fungsi pada saat fungsi itu dipanggil.
Tergantung kebutuhan, sebuah fungsi bisa menerima 1, 2, atau
lebih dari 5 parameter atau argumen, namun bisa juga tidak
memerlukan sama sekali.
Sebenarnya parameter dan argumen sangat mirip dan sering di
pertukarkan. Perbedaan dari keduanya hanya di posisi pembuatan
saja. Parameter merujuk kepada inputan fungsi pada saat
pendefinisian, sedangkan argumen merujuk ke nilai input fungsi
pada saat pemanggilan.
Berikut format dasar fungsi C++ dengan parameter dan argumen:
#include <iostream>
using namespace std;
tipeDataKembalian namaFunction(tipeData param1, tipeData param2) {
// Isi function disini...
// Isi function disini...
return nilai;
}
int main()
{
// Jalankan function
namaFunction(arg1, arg2)
return 0;
}
Di akhir baris 5, yakni dalam tanda kurung
setelah namaFunction, adalah tempat untuk
penulisan parameter. Parameter dalam bahasa C++ ditulis
berpasangan antara tipeData dan nama parameter.
Dalam contoh diatas, terdapat 2 buah parameter
bernama param1 dan param2. Sepanjang isi function, param1 dan
param2 bisa diakses sebagaimana variabel biasa.
Ketika memanggil fungsi, kita harus isi kedua nilai seperti di baris
14, yakni dari perintah namaFunction(arg1, arg2).
Disini, arg1 dan arg2 adalah argumen.
Kode Program Parameter dan Argumen Fungsi
#include <iostream>
using namespace std;
void sapaLisa() {
cout << "Hai Lisa" << endl;
}
int main()
{
sapaLisa();
return 0;
}
Hasil kode program:
Hai Lisa
Fungsi ini sudah berjalan sebagaimana mestinya, akan tetapi
bagaimana jika kita ingin menyapa “Putri”? tentu kurang ideal jika
harus menulis fungsi terpisah.
Akan lebih fleksibel, saya akan modifikasi fungsi sapaLisa() agar bisa
menampung sebuah parameter dan argumen:
#include <iostream>
using namespace std;
void sapaTeman(string nama) {
cout << "Hai " << nama << endl;
}
int main()
{
sapaTeman("Lisa");
return 0;
}
Hasil kode program:
Hai Lisa
Pada saat pendefinisian fungsi sapaTeman() di baris 5, saya
menulis sapaTeman(string nama). Disini, nama adalah
sebuah parameter bertipe string.
Di dalam function, parameter bisa diakses sebagai mana layaknya
variabel. Parameter nama kemudian saya tampikan memakai
perintah cout seperti di baris 6.

Karena fungsi sapaTeman() memiliki 1 parameter, maka pada saat


memanggil fungsi ini di baris 11, kita harus mengisi sebuah argumen
yang dalam contoh ini adalah string “Lisa“.

Harap diperhatikan bahwa tipe data argumen ini harus sama dengan
tipe data pendefinisian parameter, yakni string.
Ketika dijalankan, argumen “Lisa” di baris 11 akan mengisi

parameter nama di baris 3. Sehingga ketika perintah cout <<

“Hai ” << nama << endl yang ada di dalam

fungsi sapaTeman() di proses, hasilnya adalah “Hai Lisa“.


Kita bisa menjalankan fungsi sapaTeman() dengan argumen yang
berbeda-beda, selama bertipe string:
#include <iostream>
using namespace std;
void sapaTeman(string nama) {
cout << "Hai " << nama << endl;
}
int main()
{
sapaTeman("Lisa");
sapaTeman("Sari");
sapaTeman("Putri");
return 0;
}
Hasil kode program:
Hai Lisa
Hai Sari
Hai Putri
Pendefinisian fungsi sapaTeman() masih sama seperti
sebelumnya, hanya saja kali ini fungsi tersebut saya jalankan
dengan 3 argumen berbeda antara baris 11 – 13. Hasilnya, akan
tampil teks yang berbeda-beda.
Kuncinya adalah, argumen yang diisi pada saat pemanggilan
function, akan di input ke dalam parameter function tersebut.
Jumlah dan tipe data argumen juga harus cocok dengan jumlah dan
tipe data parameter. Ketiga pemanggilan
fungsi sapaTeman() berikut akan menghasilkan error:

sapaTeman(); // tanpa argumen


sapaTeman(123); // argumen berbeda tipe data
sapaTeman("Putri","Lisa"); // jumlah argumen lebih dari 1
Contoh pertama akan error karena fungsi sapaTeman() harus
menerima satu argumen. Contoh kedua juga error karena tipe data
argumen harus string, sesuai dengan tipe data pada saat
pendefinisian parameter. Contoh ketiga kembali error karena
fungsi sapaTeman() hanya bisa menerima satu argumen saja.
Membuat Fungsi dengan Lebih dari 1 Parameter / Argumen

Kita bisa menginput lebih dari satu argumen ke dalam fungsi


selama pendefinisian fungsi tersebut juga ditulis dengan lebih dari
satu parameter.
Dalam contoh berikut saya memodifikasi
fungsi sapaTeman() agar bisa menerima 3 argumen:
#include <iostream>
using namespace std;
void sapaTeman(string nama1, string nama2, string nama3) {
cout << "Hai " << nama1 << ", ";
cout << nama2 << ", dan " << nama3 << endl;
}
int main()
{
sapaTeman("Lisa", "Nova", "Putri");
return 0;
}
Hasil kode program:
Hai Lisa, Hai Sari, Hai Putri
Di baris 5, pendefinisian fungsi sapaTeman() sekarang punya 3
parameter bertipe string, yakni nama1, nama2 dan nama3.
Maka untuk menjalankan fungsi ini, juga harus diinput dengan 3
argumen bertipe string seperti di baris 12.
Membuat Function hitungLuasSegitiga()
Sebagai contoh terakhir, berikut modifikasi
fungsi hitungLuasSegitiga() yang bisa menerima 2 argumen
bertipe integer:
#include <iostream>
using namespace std;
void hitungLuasSegitiga(int alas, int tinggi) {
double luas = (alas * tinggi) / 2.0;
cout << "Luas segitiga adalah: " << luas << endl;
}
int main()
{
hitungLuasSegitiga(5, 7);
hitungLuasSegitiga(2, 10);
hitungLuasSegitiga(191, 357);
return 0;
}
Hasil kode program:
Luas segitiga adalah: 17.5
Luas segitiga adalah: 10
Luas segitiga adalah: 34093.5
Di baris 5, fungsi hitungLuasSegitiga() saya definisikan
dengan 2 buah parameter bertipe int, yakni alas dan tinggi.
Penamaan parameter boleh bebas, sama mengikuti aturan
penamaan variabel / identifier, misalnya tidak boleh ada spasi
dan tidak boleh diawali angka.
Antara baris 12 – 14 saya menjalankan
fungsi hitungLuasSegitiga() sebanyak 3 kali dengan nilai
argumen yang berbeda-beda.
Sebagai contoh, ketika compiler C++ memproses
perintah hitungLuasSegitiga(5, 7), angka 5 ini akan mengisi
parameter alas, dan angka 7 akan mengisi parameter tinggi.
Selanjutnya kedua parameter masuk ke perhitungan luas di
baris 6. Hasilnya kemudian di tampilkan dari perintah cout <<
“Luas segitiga adalah: ” << luas << endl.
 Setelah perulangan, variabel hasil akan berisi jumlah
perkalian dari 1 * 2 * 3 * dst. Variabel ini kemudian
ditampilkan dengan perintah cout di baris 20.
Kode Program C++ Menghitung Faktorial (plus Angka)

Untuk latihan ini, kita harus menampilkan angka hasil perkalian,


yakni 1 * 2 * 3 * dst.
Sekilas ini tampak mudah karena tinggal menambah satu perintah
cout << ” i * “ ke dalam perulangan. Namun terdapat sedikit
masalah karena di angka terakhir, tanda perkalian ” * ” akan selalu
tampil. Bagaimana caranya agar di perulangan terakhir tidak perlu
tampil tanda perkalian? kita butuh bantuan kondisi if:
Latihan
1. Buatlah penerapan fungsi (bebas jngan sama dengan materi)
2. Buatlah penerapan Argumen (bebas jngan sama dengan
materi)
3. Buatlah penerapan Parameter (bebas jngan sama dengan
materi)
TERIMA KASIH

Anda mungkin juga menyukai