Anda di halaman 1dari 2

Untuk soal 1 – 2

FUNCTION fak (x, y: integer) : Integer;


BEGIN
   if y:= 0 then fak := 1
   else
      fak := x * fak (x, y-1);
END;
Writeln (fak(5, 3));
 
1. Apa hasil dari program di atas!
   a. 125
   b. 8
   c. 81
   d. 3
   e. 15

Pembahasan :
Ini adalah contoh kasus fungsi dengan mempergunakan rekursi (fungsi yang mampu
memangil dirinya sendiri)
Nilai x awal adalah 5, nilai  y awal adalah 3 maka
fak (5,3) —> 5 * fak (5, 3-1) = 5 * 25 = 125
fak (5,2) —> 5 * fak (5, 2-1) = 5 * 5 = 25
fak (5,1) —> 5 * fak (5,1-1) = 5 * 1 = 5
fak (5,0) (proses selesai karena y =0)
Jadi yang muncul adalah
125

2. Jika writeln (fak(5,3)) diganti menjadi writeln (fak(4,5)), hasil dimunculkan adalah…
    a. 20
    b. 9
    c. 1024
    d. 64
    e. 5

Pembahasan:
Kasus ini sama seperti pada soal 1
Nilai x awal adalah 4, nilai  y awal adalah 5 maka
fak (4,5) —> 4 * fak (4, 5-1) dengan mempergunakan hasil fak ( 4,4) –>  4 * 256 = 1024
fak (4,4) —> 4 * fak (4, 4-1) dengan mempergunakan hasil fak ( 4,3) –>  4 * 64 = 256
fak (4,3) —> 4 * fak (4,3-1) dengan mempergunakan hasil fak ( 4,2) –>  4 * 16 = 64
fak (4,2) —> 4 * fak (4,2-1) dengan mempergunakan hasil fak ( 4,1) –>  4 * 4  = 16
fak (4,1) —> 4 * fak (4,1-1) = 4 * 1 = 4
fak (4,0) (proses selesai karena y =0)
Jadi yang muncul adalah
1024

3. Manakah yang salah dari deklarasi dibawah ini


  a. function info(a:byte):real;
  b. function info:byte;
  c. function info(a,b:byte) : real;
  d. function info(a: real; b:integer):real;
  e. function info(a:real);

Pembahasan
Ingat bentuk dekelarasi dari suatu fungsi
FUNCTION nama_fungsi(daftar_fungsi):tipe;
- daftar parameter berisi sejumlah parameter
- tipe menyatakan tipe dari hasil fungsi
- Jika fungsi tidak memiliki parameter, tanda () tidak perlu disertakan.
jadi jawabannya adalah e.function info(a:real); 

Anda mungkin juga menyukai