Anda di halaman 1dari 2

Nama : M.

Naufal Rifqi Irmawansyah


Nim : 22020065
Mk : Pengantar Coding

Soal
1. Jelaskan apa yang dimaksud dengan fungsi rekursif. Apa syarat-syarat yang diperlukan
dalam menyusun sebuah fungsi rekursif.
• suatu proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya
terkandung pengertian prosedur atau fungsi.
• syarat yang menentukankapan pemanggilan rekursif itu dihentikan:
a.Harus ada disediakan kasus penghentian (termination case)
b.Tiap-tiap struktur pemanggilan harus lebih sederhana daripada
strukturpemanggilan sebelumnya.
c. Selain kedua syarat sebelumnya, maka harus ada pula sebuah “pemicu”
yangmemulai pemanggilan rekursi

2. Sebutkan proses yang terjadi pada pemanggilan fungsi rekursif. Dapatkah proses rekursif
terjadi selamanya (tanpa akhir)? Uraikan jawaban dengan ringkas dan jelas.
• Semua variabel otomatis yang terdapat di dalam fungsi rekursif akan
memilikilokasi memori sendiri pada setiap kali pemanggilan, makanya
memerlukan memori kerja (RAM) yang lebih besar.
• Pernyataan-pernyataan yang terdapat sebelum pemanggilan rekursif akan
dieksekusi (dijalankan) dengan urutan yang sama.
• Pernyataan-pernyataan yang terdapat setelah pemanggilan rekursif akan dieksekusi
dengan urutan yang terbalik terhadap pemanggilan.
• Kode program untuk fungsi rekursif di dalam memori tidak duplikat, walaupun
fungsi tersebut dipanggil beberapa kali.

3. Jelaskan perbedaan antara rekursif dan iterasi (loop) ?


• Fungsi rekursif merupakan fungsi yang melakukan perulangan dengan mengacu
pada dirinya sendiri, sedangkan fungsi iteratif merupakan fungsi yang melakukan
perulangan terutama dengan menggunakan loop.
4. Apabila sebuah program yang memuat fungsi rekursif dieksekusi, jelaskan bagimana
kompiler menangani variabel-variabel lokal yang terdapat dalam fungsi pada setiap
pemanggilan.
• Fungsi main( )
Fungsi ini hanya memuat pesan input dan output yakni memasukan nilai variabel m
dan variabel n, serta pemicu terhadap pengaktifan pemanggilan fungsi rekursif pada
statemen ”pangkat(m, n)”.
• Fungsi pangkat( )
1. Static long p = 1;
Variabel static untuk menampung hasil operasi perpangkatan, pemberian harga
awal 1 untuk mengantisipasi bilangan berpangkat nol. Digunakan tipe data long
integer untuk menampung nilai hasil yang relative besar.
2. if(n == 0)
return 1;
Kasus penghentian atau syarat penghentian rekursif, kendali dikembalikan kepada
kondisi pemanggilan sebelumnya jika dicapai penghitungan pangkat nol.
3. else
p = m * pangkat(m, n-1);
Jika pangkat masih lebih besar dari nol, dilakukan pemanggilan kembali dengan
mengirimkan nilai yang lebih kecil (decriment atau kurang satu).
4. Return p
Hasil perpangkatan dikembalikan ke fungsi main( ) setelah dilakukan pemrosesan
akhir (karena pernyataan ini terdapat setelah pemanggilan rekursif).

Anda mungkin juga menyukai