Anda di halaman 1dari 5

Nama : Rahmi Mailiayas Wati

Nim : 20133073
Prodi : Akuntansi

PENGANTAR CODING

Pertanyaan Pemahaman
1. Jelaskan apa yang dimaksud dengan fungsi rekursif. Apa syarat-syarat yang
diperlukan dalam menyusun sebuah fungsi rekursif!
Fungsi rekursif adalah salah satu teknik pemrograman yang cukup penting,
dimana dalam beberapa kasus menggunakan fungsi rekursif akan jauh lebih mudah.
Selain itu proses yang berjalan akan jauh lebih cepat dan efisien, hanya saja akan
membutuhkan space memori yang cukup banyak karena proses iterasi dari bagian
fungsi tersebut akan dipanggil secara terus menerus sehingga memerlukan ruang
penyimpanan yang cukup besar jika dibandingkan dengan proses lainnya.
a. Harus ada disediakan kasus penghentian (termination case)
b. Tiap-tiap Struktur pemanggilan harus lebih sederhana daripada struktur
pemanggilan sebelumnya
c. selain kedua syarat sebelumnya maka harus ada pula sebuah pemicu yang
memulai pemanggilan rekursif
2. Sebutkan proses yang terjadi pada pemanggilan fungsi rekursif. Dapatkah
proses rekursif terjadi selamanya (tanpa akhir)? Uraikan jawaban dengan ringkas dan
jelas.

Variabel n akan terbentuk sebanyak kali sesuai dengan banyaknya


pemanggilan (statemen if (n<5)). Pernyataan “saya suka rekursif!” ditampilkan sesuai
dengan urutan pemanggilan, yaitu 1 sampai 5, sedangkan pernyataan “Rekursif saya
suka!”, ditampilkan dengan urutan terbalik terhadap pemanggilan, yaitu dari 5 ke 1.
Pada proses rekursif terdapat sebuah konsep yang disebut pemrosesan akhir, yaitu
pemrosesan yang dilakukan setelah kembali dari kegiatan pemanggilan. Hasil dari
tiap-tiap pemanggilan tergantung pada hasil pemanggilan berikutnya, sehingga setiap
kali kembali dari sebuah pemanggilan, akan dilakukan pemrosesan terhadap hasil
yang diperoleh untuk menentukan hasil pemanggilan sebelumnya.

This study source was downloaded by 100000840053190 from CourseHero.com on 12-02-2022 08:49:42 GMT -06:00

https://www.coursehero.com/file/129348367/TUGAS-9-PengCoding-Rahmi-mailiayas-wati-20133073docx/
3. Jelaskan perbedaan antara rekursif dan iterasi (loop) ?

Dasar Untuk Rekursif iterasi


Perbandingan
Dasar Pernyataan dalam tubuh fungsi Mengizinkan kumpulan
memanggil fungsi itu sendiri instruksi dieksekusi
berulang kali
Format Dalam fungsi rekursif, hanya Iterasi termasuk
kondisi terminasi (base case) yang inisialisasi, kondisi,
ditentukan eksekusi pernyataan
dalam loop dan pebaruan
(kenaikan dan
penurunan) variabel
kontrol
Penghentian Pernyataan bersyarat disertakan Pernyataan iterasi
dalam tubuh fungsi untuk berulang kali dieksekusi
memaksa fungsi kembali tanpa sampai kondisi tertentu
panggilan rekursi dieksekusi tercapai
Kondisi Jika fungsi tidak konvergen ke Jika kondisi kontrol
beberapa kondisi yang disebut dalam pernyataan iterasi
(kasus dasar), itu menyebabkan tidak pernah menjadi
rekursi tak terbatas salah, itu mengarah ke
iterasi tak terbatas
Pengulangan Rekursi tak terbatas dapat Infinite loop
tanpa batas merusak sistem menggunakan siklus
CPU berulang kali
Terapan Rekursi selalu diterapkan pada Iterasi diterapkan pada
fungsi pernyataan iterasi atau
loop
Tumpukan Stack digunakan untuk Tidak menggunakan
menyimpan set variabel lokal tumpukan
baru dan parameter setiap kali
fungsi dipanggil
Atas Rekursi memiliki overhead Tidak dapat overhead
panggilan fungsi yang berulang panggilan fungsi
berulang
Kecepatan Lambat dalam eksekusi Eksekusi cepat
Ukuran Kode Rekursi mengurangi ukuran kode Iterasi membuat kode
lebih lama

This study source was downloaded by 100000840053190 from CourseHero.com on 12-02-2022 08:49:42 GMT -06:00

https://www.coursehero.com/file/129348367/TUGAS-9-PengCoding-Rahmi-mailiayas-wati-20133073docx/
4. Apabila sebuah program yang memuat fungsi rekursif dieksekusi, jelaskan
bagimana
kompiler menangani variabel-variabel lokal yang terdapat dalam fungsi pada setiap
pemanggilan.
Semua variabel otomatis yang terdapat di dalam fungsi rekursif akan memiliki
lokasi 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 didalam memori tidak duplikat walaupun fungsi tersenut dipanggil beberapa
kali.

Latihan Pemrograman
1. Dengan menggunakan fungsi-fungsi I/O standar getchar( ) dan putchar( ),
buatlah sebuah program rekursif untuk meminta dituliskan sembalang kalimat hingga
ditekannya tombol dan menuliskan kembali kalimat tersebut secara terbalik. Sebagai
contoh, jika dituliskan: Selamat malam nak Maka program akan menuliskan kembali
kalimat ini seperti berikut: kan malam tamaleS

This study source was downloaded by 100000840053190 from CourseHero.com on 12-02-2022 08:49:42 GMT -06:00

https://www.coursehero.com/file/129348367/TUGAS-9-PengCoding-Rahmi-mailiayas-wati-20133073docx/
2. Perkalian dua buah bilangan bulat positif dapat dilakukan dengan metode
penjumlahan sebagai berikut: 12 x 6 = 12 + 12 + 12 + 12 +12 +12 Buatlah sebuah
program menggunakan fungsi rekursif untuk menghitung hasil perkalian dengan
metode penjumlahan seperti contoh di atas.

This study source was downloaded by 100000840053190 from CourseHero.com on 12-02-2022 08:49:42 GMT -06:00

https://www.coursehero.com/file/129348367/TUGAS-9-PengCoding-Rahmi-mailiayas-wati-20133073docx/
This study source was downloaded by 100000840053190 from CourseHero.com on 12-02-2022 08:49:42 GMT -06:00

https://www.coursehero.com/file/129348367/TUGAS-9-PengCoding-Rahmi-mailiayas-wati-20133073docx/
Powered by TCPDF (www.tcpdf.org)

Anda mungkin juga menyukai