Anda di halaman 1dari 3

Worksheet

Fungsi
Algoritma dan Pemrograman 1

#include <iostream>

#include <iostream>

using namespace std;

using namespace std;

float jarak(float kec, float waktu){


float hasil;
hasil = kec * waktu;
return hasil;
}

void jarak(float kec, float waktu){


hasil = kec * waktu;
}

int main()
{
float hasilJarak;
hasilJarak = jarak(3.2,4.3);
cout<<hasilJarak;
return 0;
}

int main()
{
jarak(3.2,4.3);
return 0;
}

A. Jawablah pertanyaan-pertanyaan yang terkait dengan fungsi ini langsung di sebelah kanan
pertanyaan. Perumpaan yang terjadi hanya berlaku untuk nomor tersebut dan tidak berlaku
akumulatif.
1

Apa yang terjadi dengan program fungsi di


atas? Jelaskan!

Jika variabel hasilJarak diganti dengan


jarak, apa yang terjadi? Mengapa bisa
demikian?

Jika return type fungsi jarak diganti dengan int


apa yang akan terjadi? Mengapa demikian?
float jarak(float kec, float waktu)
diganti dengan
int jarak(float kec, float waktu)

Yang terjadi pada fungsi diatas ialah sebuah


syntax dimana pertama dideklarasikan
parameter formal berupa float kec, dan float
waktu di fungsi jarak yang bertipe data float.
Serta adanya badan fungsi(function body)
dimana dideklarasikan kamus hasil yang
bertipe data float, hasil =kec*waktu, dan
fungsi pembalik nilai hasil.
Program tidak akan berjalan, diakibatkan oleh
nama yang digunakkan yaitu jarak, menjadi
double yaitu berupa nama variable dan nama
fungsi
Yang terjadi ialah program akan menampilkan
tulisan 13 yang seharusnya 13.76 dikarenakan
tipe data fungsi yang sebelumnya bisa
memuat bilangan desimal berubah menjadi
tipe data yang hanya memuat bilangan bulat

Jika statement return hasil; dihilangkan apa


yang terjadi? Mengapa demikian?

Program akan binggung dan menghasilkan


angka yang banyak, dikarenakan fungsi
merupakan sebuah fungsi yang
mengembalikan suatu nilai ke dalam fungsi
yang memanggilanya sehingga karena tidak
ada nilai balik, program gagal
Jika statement hasilJarak = jarak(3.2,4.3);
Program akan kembali binggung
Diganti dengan
dikarenakan telah dideklarikan sebuah tipe
jarak(3.2,4.3);
data bernama hasilJarak, serta telah dibuatnya
fungsi cout<<hasilJarak;, yang secara logika
Apa yang akan terjadi? Mengapa demikian?
tidak mencetak apa-apa, maka program gagal.
B. Jawablah pertanyaan-pertanyaan yang terkait dengan prosedur ini langsung di sebelah kanan
pertanyaan. Perumpaan yang terjadi hanya berlaku untuk nomor tersebut dan tidak berlaku
akumulatif, kecuali yang disebutkan berdasarkan nomor tertentu.

Apa yang terjadi dengan program prosedur di


atas? Jelaskan dan bandingkan dengan
program fungsi!

Jika prosedur yang ada di atas dimodifikasi


seperti berikut apa yang terjadi? Jelaskan
mengapa bisa demikian?
#include <iostream>
using namespace std;
void jarak(float kec, float waktu, float& hasil){
hasil = kec * waktu;
}
int main()
{
float hasil;
jarak(3.2,4.3,hasil);
cout<<hasil;
return 0;
}

Pada prosedur diatas hampir sama dengan


fungsi namun, dikarenakan ini merupakan
sebuah prosedur maka, tidak ada nilai balik,
serta tidak ada tipe data yang diberikan,
sedangkan mengenai parameter formal
maupun aktual sama. Namun..., dikarenakan
di syntax hasil=kec*waktu hasil tidak
dideklarasikan maka program akan error,
serta tidak adayan fungsi cout menyebabkan
tidak muncul apa-apa
Hasilnya akan sama dengan fungsi
sebelumnya yaitu 13.76, hanya saja berbeda
penulisan, dimana di prosedur ini
digunakannya void yang berarti tidak adanya
nilai balik, sehingga bisa diibaratkan sebagai
tempat penyimpanan data kec, waktu, dan
hasil, serta hasil=kec*waktu. Mengenai
kenapa pada parameter float hasil tertulis
sebagai float &hasil, itu dikarenak
memberikan tanda pada prosedur bahwa
kamus/parameter hasil akan dipanggil di
fungsi lain, ketika terpanggil.serta mengenai
perbedaan dimana pada parameter formal
maupun aktula hanya ada 2 parameter,
sekarang ada 3 dikarenakan ada tambahan
kamus hasil yang akan dipanggil oleh fungsi
cout<<hasil;

Dari program revisi nomor 2, jika di dalam


prosedur jarak ditambahkan deklarasi variabel
hasil apa yang terjadi? Jelaskan mengapa
demikian?

Akan terjadi error yang sering disebut sebgai


membayangi yang dimaksud oleh hal ini
ialah kata hasil terduplikat dimana sudah
terdeklarasinya kata hasil di prosedur yang
bisa terpanggil.

void jarak(float kec, float waktu, float& hasil){


float hasil;
hasil = kec * waktu;
}
4

Dari program revisi nomor 2, jika di dalam


prosedur jarak ditambahkan mekanisme
return apa yang terjadi? Jelaskan mengapa
demikian?
void jarak(float kec, float waktu, float& hasil){
hasil = kec * waktu;
return hasil;
}

Prosedur tersebut tidak akan berjalan,


dikarenakan prosedur yaitu berupa void tidak
memiliki nilai balik layaknya fungsi, sehingga
program akan mengalami error, karena ada
nilai balik hasil