Modul 8 ModularFungsi Rekursif 07 Dikonversi [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Pemrograman Modular-Fungsi Oleh : Tim Penyusun MKU Pengantar Coding. Lisensi Dokumen: Copyright © 2020 Universitas Negeri Padang Seluruh dokumen di e-Learning Universitas Negeri Padang, hanya digunakan untuk kalangan Internal Universitas, untuk kebutuhan Perkuliahan Online. Penggunaan dokumen ini di luar UNP tidak diizinka dan tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari Penulis dan Universitas Negeri Padang.



A. Capaian Pembelajaran Setelah mempelajari materi ini diharap mahasiswa mampu membuat, menentukan parameter dan nilai balik fungsi dalam menyelesaikan suatu masalah nyata (P3, KU5, KK1)



B. Indikator Pencapaian Kompetensi Untuk mencapai kompetensi yang diharapkan, ditetapkan indikator sebagai berikut, Mahasiswa mampu/dapat/membuat/memilih/mementuykan/membedakan : ● fungsi untuk tujuan tertentu, dan menentukan fungsi tanpa parameter passing, ● passing parameter by value dan passing parameter by reference pada fungsi, ●fungsi tanpa nilai balik, dan tipe data nilai balik pada suatu fungsi, dan ●fungsi yang memiliki nilai balik dan yang tidak memiliki nilai balik. C. Pokok – Pokok Materi 1. Konsep pemrograman modular bentuk fungsi. 2. Konsep dan kategori fungsi, prototipe fungsi, 3. Bentuk implementasi fungsi, pengembalian nilai fungsi dan pengiriman argumen, dan fungsi berargumen fungsi. 4. Macam kelas penyimpanan yang terdiri dari, kelas penyimpanan register, kelas penyimpanan eksternal, dan kelas penyimpanan statik. 5. Fungsi Rekursif, syarat-syarat rekursif, proses rekursif, dan jenis-jenis fungsi rekursif. D. Uraian Materi 1. Pemrograman Modular Paradigma pemrograman modular pertama kali diperkenalkan oleh Information & Systems Institute, Inc. pada the National Symposium on Modular Programming pada 1968.



Salah satu tokoh modular programming adalah Larry Constantine. Teknik pemrograman modular adalah membagi-bagi program yang besar menjadi beberapa bagian program yang lebih kecil. Keuntungan pemrograman modular adalah: 



Program lebih pendek, lebih mudah dibaca dan dimengerti, mudah didokumentasi







Mengurangi kesalahan, mudah mencari kesalahan, dan kesalahan bersifat “lokal”. Persoalan kompleks sebuah program sering perlu dipecah menjadi beberapa bagian



yang lebih kecil agar lebih mudah diselesaikan. Dalam membuat subprogram (fungsi), pemrogram dapat menyimpannya dalam salah satu dari dua lokasi berikut; 



dalam file yang sama dengan program utama, dapat dilakukan jika subprogram sedikit dan berukuran kecil sehingga relatif mudah dikelola dalam sebuah file







dalam file yang terpisah, biasanya dilakukan jika subprogram sudah terlalu banyak sehingga sulit dikelola, atau jika programmer menginginkan supaya subprogram dapat digunakan di beberapa program utama sekaligus.



2. Fungsi Fungsi adalah subprogram atau modul program yang memberikan/mengembalikan (return) sebuah nilai dari tipe tertentu (tipe data dasar ataupun tipe bentukan). Modul fungsi dapat menerima data masukan (input), melakukan beberapa proses perhitungan terhadap data tersebut, kemudian mengembalikan keluaran (output) berupa sebuah data baru. Sebuah fungsi memetakan sebuah nilai (dalam domain) menjadi nilai lain (dalam range) dengan operasi/proses tertentu. Pendeklarasian fungsi merupakan salah satu cara memecah persoalan ke dalam beberapa sub persoalan yang lebih mudah diselesaikan. Dalam pembuatan sebuah fungsi, programmer harus mendefinisikan: (1) nama fungsi, (2) Tipe data yang dibuat/dihasilkan oleh fungsi, (3) Daftar parameter yang menyatakan data yang diperlukan oleh fungsi, (4) Satu atau lebih instruksi yang melakukan perhitungan. Fungsi yang sudah didefinisikan dapat digunakan dalam program utama maupun dalam fungsi lainnya dengan cara memanggil nama fungsi dan memberikan parameter yang diperlukan oleh fungsi tersebut. Fungsi bekerja menurut mekanisme pemanggilanpengembalian (call-return mechanism). Tahapan dalam mekanisme tersebut adalah: 



Fungsi dipanggil dari program utama maupun fungsi lainnya







Sekumpulan operasi dalam fungsi dieksekusi







Hasil eksekusi dikembalikan ke program utama atau fungsi lain yang memanggilnya.



Keuntungan Fungsi 



Dapat melakukan pendekatan top-down dan divide-and-conquer: Top-down: penelusuran program mudah Divide-and-conquer: program besar dapat dipecah menjadi bagian yang lebih kecil.







Kode program menjadi lebih pendek, mudah dibaca, dan mudah dipahami.







Program dapat dikerjakan beberapa orang sehingga cepat selesai, koordinasi mudah.







Mudah dalam mencari kesalahan karena alur logika jelas dan menjadi lebih sederhana.







Kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.







Modifikasi dapat dilakukan pada modul tertentu saja tanpa mengganggu keseluruhan.







Fungsi-fungsi menjadikan program mempunyai struktur yang jelas. Dengan memisahkan langkah-langkah detail ke satu atau lebih fungsi-fungsi, maka fungsi utama (main) akan menjadi lebih pendek, jelas dan mudah dimengerti.







Fungsi-fungsi digunakan untuk menghindari penulisan bagian program yang kegunaan atau bentuknya sama ditulis secara berulang. Langkah tersebut dapat ditulis sekali saja secara terpisah dalam bentuk fungsi. Selanjutnya bagian program yang membutuhkan langkah tersebut tidak perlu selalu menuliskan lagi, cukup memanggil fungsi tersebut.







Mempermudah dokumentasi.







Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lainnya dalam program yang sama maupun program yang berbeda (jika berbentuk file fungsi).



Perancangan Fungsi Dalam membuat fungsi, perlu diperhatikan: 



Jenis data yang diperlukan sebagai masukan (input).







Jenis data dari nilai yang dikembalikan oleh fungsi. Informasi apa yang harus diberikan oleh fungsi yang dibuat ke pemanggilnya (proses)







Algoritma apa yang harus digunakan untuk mengolah data menjadi informasi (proses).







Output fungsi yang bersifat opsional yang berasal dari proses perhitungan.







Nama fungsi yang harus diawali oleh huruf atau garis bawah, dapat diikuti oleh kombinasi antara huruf, angka dan garis bawah.







Daftar argumen yang ditulis dalam tanda kurung biasa setelah nama fungsi.







Badan fungsi yang memuat deklarasi variabel, deklarasi prototype fungsi, dan instruksiinstruksi yang akan dilaksanakan harus diawali dengan kurung kurawal buka dan



diakhiri kurung kurawal tutup. Sepasang kurung kurawal ini menunjukan satu blok pernyataan (modular) yang terdiri dari satu atau lebih pernyataan. 3. Kategori Fungsi Program dalam bahasa C tersusun dari fungsi-fungsi, sebagian diantaranya tewlah disediakan oleh compiler bahasa C, sedangkan sebagian yang lain adalah fungsi-fungsi yang dibuat sendiri oleh pemrogram. Jadi, menurut cara pembuatannya fungsi-fungsi tersebut dapat dikelompokkan atas dua kategori : (1) Fungsi standar, yaitu fungsi-fungsi yang telah disediakan oleh compiler bahasa C untuk melakukan tugas-tugas tertentu, dan (2) Fungsi buatan, fungsi yang dibuat oleh pemrogram untuk melaksanakan tugas tertentu. Setiap fungsi standar memiliki prototype yang termuat dalam berkas judul berektensi .h (header .h). Berkas (file) judul (header) harus disertakan apabila fungsi tersebut digunakan. Penyertaan dilakukan dengan menggunakan pengarah pengolahan #include. Bila hal ini diabaikan, besar kemungkinan fungsi tidak dapat berjalan dengan baik, bahkan mungkin komp[iler akan memberi pesan kesalahan (error). Fungsi buatan pemrogram adalah fungsi yang dibuat oleh seorang pemrogram untuk melakukan tugas tertentu. Diantara fungsi-fungsi ini terdapat satu buah fungsi yang memegang peran paling penting dalam program yaitu fungsi main( ). Fungsi ini merupa fungsi yang pertama sekali dicari oleh kompiler (complier) pada saat program dieksekusi. Jika tidak ada, maka kompiler akan memberi pesan kesalahan bahwa program tidak memiliki main(). Fungsi main( ) merupakan kata kunci yang memiliki arti khusus, tidak boleh diubah dengan nama lain, dan harus ditulis dengan huruf kecil. 4. Tiga Bentuk Implementasi Fungsi Dalam sebuah program fungsi dapat diimplementasikan dalam tiga bentuk: (1) pendeklarasian Fungsi sebagai sebuah Prototipe, (2) pendefinisian fungsi, dan (3) pemanggilan fungsi dari bagian program lain. Ketiga bentuk implementasi masing-masing memiliki cara penulisan dan kegunaan yang berbeda antara satu dengan yang lainnya.



Pendeklarasian Prototipe Fungsi Pendeklarasian fungsi sebagai sebuah prototipe bertujuan agar computer dapat mengenal ciri ciri fungsi yang diberikan. Pendeklarasian prototipe fungsi meliputi : (1) jenis data dari nilai yang dikembalikan,



(2) nama fungsi, (3) daftar argument/parameter yang diperlukan, (4) Jenis data masing-masing argumen yang dibutuhkan, dan (5) Diakhiri dengan titik koma ( Bentuk umum deklarasi prototipe fungsi adalah : Jenis_data namafungsi (jenis_data, jenis_data, …) Jenis data di depan nama fungsi menentukan nilai yang akan dikembalikan, diantaranya int, float dan char. Nama fungsi adalah nama yang diberikan oleh pemrogram untuk fungsi yang dibuatnya. Panjang nama fungsi mengikuti aturan maksimum 31 karakter seperti aturan pemberian nama berkas (file). Jenis data yyang terdapat di dalam tanda kurung disebut argument-argumen formal. Dalam penulisan nama berkas terdapat kesepakatan umum untuk menggunakan huruf-huruf kecil. Jika nama fungsi terdiri dari dua kata (atau lebih), maka nama fungsi tersebut di pisahkan oleh garis bawah atau digabungkan dengan kata kedua dimulai huruf besar. Contoh pemberian nama fungsi, float pangkat_dua (float, float); char inputKar(char);



Pendefinisian fungsi Pendefinisian fungsi dimaksudkan menyusun perintah-perintah



yang akan



dilakukan fungsi sesuai tugasnya. Bentuk umum definisi fungsi adalah: [jenis_data] nama_fungsi ([jenis_data arg1], [jenis_data arg2], …) { [deklarasi variabel] [kode program] [pernyataan return] }



Pemanggilan fungsi Fungsi fungsi yang telah didefinisikan dapat dipanggil dari bagian fungsi yang lain. Pada saat serbuah fungsi dipanggil, maka alur eksekusi program akan berpindah ke fungunsi yang dipanggil tersebut. Setelah selesai mengeksekusi fungsi, kendali program akan dikembalikan kepada fungsi yang memanggil, dan alur eksekusi program akan dilanjutkan



pada pernyataan yang terletak setelah pemanggilan fungsi tersebut. Bentuk umum pemangilan fungsi dapat dinyatakan sebagai berikut: namafungsi([arg_akt1], [arg_akt2], …, [arg_aktn]); arg_akt1, arg_akt2, …, [arg_aktn adalah argument-argumen yang dikirim ke fungsi berupa argument-argumen actual. Apabila fungsi yang dipanggil tidak memiliki argumen, pemanggilan fungsi dilakukan hanya dengan memberikan sepasang tanda kurung, tanpa argument aktual. Bentuk pemanggilan fungsi tersebut dituliskan sebagai berikut: namafungsi( ); Contoh program berikut untuk menentukan kelipatan persekutuan terkecil (KPK) dan pembagi persekutuan terbesar (PPB) dari sebuah bilangan bulat. Program akan menggunakan sebuah variabel global berjenis integer, sebagai berikut listing programnya:



Contoh hasil eksekusinya adalah :



5. Mengembalikan Nilai dari Fungsi Jenis data yang dikembaluikan dari sebuah fungsi, tergantunbg dari jenis data yang dinyatakan pada judul atau prototipe fungsi. Jika jenis data pada judul tidak disebutkan, maka secara default jenis data adalah integer. Jika tidak dinginkan adanya nilai yang dikembalikan dari sebuah fungsi, maka jenis data fungsi hendaklah dinyatakansebagi void.



Dari prototipe-prototipe fungsi berikut ini: float pangkatBilangan(float, float); int cetakBilangan(int); char cariHuruf(void); void tampilkanHasil(char, int); Jenis data yang dikembali dari fungsi-1 pangkatBilangan adalah float (bilangan foatingpoint), dari fungsi-2 cetakBilangan adalah int (bilangan integer), dari fungsi-3 cariHuruf adalah char (karakter), dan dari fungsi-4 tampilkanHasil tidak mengembalikan nilai. Dalam pemrograman bahasa C, letak fungsi menentukan keterlihatannya dari fungsi-fungsi lain. Letak fungsi main( ) misalnya boleh pada bagian pertama program, sebelum fungsi-fungsi lain, atau boleh juga pada bagian akhir program, setelah fungsifungsi yang lain. Letak fungsi ini secara umum juga berkaitan dengan pendeklarasian prototipenya. Prototipe suatu fungsi harus di deklarasikan pada fungsi yang memanggilnya, apabila fungsi yang dipanggil tersebut berada setelah fungsi yang memanggil. Selanjutnya jika fungsi yang memanggil berada setelah fungsi yang dipanggil, maka prototipe fungsi tersebut boleh diberikan boleh juga tidak, karena fungsi yang memanggil telah mengetahui kekeradaannya. Jika kita tinjau dari kegunaan prototipe, maka bentuk penulisan fungsi dengan prototipe adalah lebih baik untuk digunakan. Program proto1.c berikut fungsi main( ) terletak sebelum sebelum fungsi f1( ), karena itu protipe fungsi harus dideklarasikan, secara lokal dalam badan fungsi main( ).



Hasil Eksekusi program proto1.c



Program proto2.c menampilkan main( ) di akhir program, sehingga fungsi f2( ) dapat langsung dipanggil dari main( ) tanpa terlebih dahulu mendeklarasikannya. Tetapi cara ini tidak dianjurkan, karena ciri-ciri f2( ) tidak diberitahu secara eksplisit kepada kompiler.



Hasil eksekusi program proto2.c adalah sbb:



 Contoh program factorial-1.c menggunakan sebuah fungsi untuk menghitung faktorial bilangan bulat. Fungsi fakt( ) menerima sebuah argumen bilangan bulat dan mengembalikan nilai long-integer sebagai hasil perhitungan faktorial.



Hasil eksekusi program faktorial.c adalah sbb:



6. Variabel Lokal dan Variabel Global Variabel Lokal Saat mendeklarasikan sebuah fungsi, dapat dideklarasikan pula variabel-variabel yang akan digunakan dalam fungsi tersebut. Variabel semacam ini disebut variabel lokal atau variabel internal. Variabel ini hanya dikenali secara lokal dalam fungsi tersebut saja. Variabel lokal tidak dapat dipanggil, diakses dan diubah oleh prosedur atau fungsi yang lain, bahkan oleh



fungsi program utama atau fungsi main( ) sekalipun. Penerapan variabel lokal, bila variabel hanya dipakai di suatu fungsi (tidak dimaksud untuk dipakai oleh fungsi lain). Pada contoh berikut, antara variabel i dalam fungsi main() dan dalam fungsi fung_1( ) tidak ada kaitannya, sebab masing-masing merupakan variabel local di masing-masing fungsi. Contoh program lokal.c:



Output:



Variabel Global Variabel yang didefinisikan dalam fungsi program utama, dapat digunakan di program utama maupun sub-sub program lainnya disebut variabel global. Nilai variabel ini dapat dipanggil, diakses dan diubah oleh prosedur atau fungsi apapun yang terdapat dalam program tersebut. Variabel global adalah variabel yang dideklarasikan di luar fungsi, dengan sifat:  dapat diakses oleh semua fungsi  kalau tak diberi nilai, secara otomatis diinisialisasi dengan nilai sama dengan nol. Contoh variabel global pada program global1.c, berupa variabel i. Pada pendeklarasian int i = 273;



menyatakan bahwa i merupakan variabel eksternal dan diberi nilai awal sama dengan 273. Nilai dari variabel i selanjutnya dapat diubah oleh fungsi tambah() maupun main(). Setiap fungsi tambah( ) dipanggil maka nilai i akan bertambah satu. Pada program contoh global1.c, terlihat bahwa i hanya dideklarasikan di bagian atas program, dan tak dideklarasikan lagi dalam fungsi main( ) maupun dalam fungsi tambah( ). Oleh karena i merupakan variabel global maka dapat digunakan oleh kedua fungsi tersebut. Namun ada satu hal yang perlu diketahui, variabel global haruslah dideklarasikan sebelum definisi fungsi yang akan menggunakannya. Listing program sbb:



Output:



7. Pengiriman Argumen atau Passing Parameter Komunikasi antara satu fungsi dengan fungsi lain dilakukan dengan cara saling bertukar data. Jika sebuah fungsi memanggil fungsi lain untuk melakukan tugas tertentu, maka fungsi yang dipanggil dapat diberikan semua data yang dibutuhkan untuk melaksanakan tugasnya. Setelah pelaksanaan tugas tersebut, fungsi yang dipanggil dapat mengembalikan sebagian data hasil operasinya kepada fungsi pemanggil. Pengiriman data dari satu fungsi ke fungsi lainnya dapat dilakukan dengan dua cara yakni (1) mengirimkan salinan data, disebut juga dengan pengiriman dengan nilai (passing parameter by value), dan (2) mengirimkan alamat tempat data berada, disebut juga pengiriman dengan alamat (passing parameter by reference atau passing by address).



Komunikasi Melalui Nilai (Passing Parameter by Value) Pengiriman dengan nilai dilakukan dengan cara mengirimkan salinan nilai variabel melalui argument (parameter) aktual pada fungsi pemanggil ke fungsi yang dipanggil. Fungsi yang dipanggil kemudian menampung data ini ke dalam variabel-variabel yang terdapat pada daftar argument (parameter) formalnya. Cara pemanggilan seperti ini dapat memberikan banyak keuntungan, diantaranya data yang terdapat pada fungsi pemanggil tidak akan



terganggu oleh adanya perubahan-perubahan yang dilakukan pada fungsi yang dipanggil. Semua perubahan yang terjadi pada fungsi yang dipanggil hanya bersifat lokal di dalam fungsi tersebut. Melalui sifat lokal ini hanya berpengaruh lokal dan masing-masing fungsi adalah independen terhadap fungsi yang lain. Contoh program berikut mengilustrasikan pengiriman argument dalam program melalui pengembalian nilai (passing by value).



Hasil eksekusi adalah sbb:



Komunikasi Melalui Alamat (Passing Parameter by Reference/Address) Pemanggilan dengan alamat dialakukan dengan cara mengirimkan alamat-alamat variabel melalui argument formalnya ke fungsi yang dipanggil. Fungsi yang dipanggil selanjutnya menampung alamat-alamat ini pada variabel-variabel pointer yang terdapat dalam argument formal. Melalui cara pemanggilan ini, jika terjadi perubahan terhadap data yang dikirimkan, perubahan yang terjadi tidak hanya berlaku secara lokal. Semua perubahan data yang dilakukan pada fungsi yang dipanggil akan otomatis juga merubah data pada fungsi pemanggil. Hal ini terjadi karena informasi yang dikirimkan kepada fungsi yang dipanggil adalah alamat dari data tersebut, sehingga perubahan terhadap data dilakukan langsung di tempat data tersebut disimpan (referensi ke alamat data). Contoh program kirim2.c berikut mengilustrasikan pengiriman argumen dalam program melalui pengiriman alamat atau pengiriman referensi tempat (passing parameter by address/reference).



Hasil eksekusi adalah sebagai berikut :



Perhatikan Nilai variabel x yang ditampilkan adalah alamat dari tempat keberadaan variabel x bukan nilai yang berada pada variabel x tersebut, untuk memperbaikinya maka statemen menampilkan nilai x yang ada dalam fungsi1 untuk nilai x berikut : printf("Dalam fungsi1: x = %d, y= %d\n", x, y);/*tampilkan nilai x dan nilai y */ maka harus dirubah menjadi sebagai berikut : printf("Dalam fungsi : x = %d, y= %d\n", *x, y);/*tampilkan nilai pada alamat x dan y*/ Maka hasil eksekusi adalah sebagai berikut :



8. Fungsi main() Berargumen Penggunaan fungsi main( ) seringkali tidak disertai jenis fungsi, sehingga nilai yang dikembalikan oleh fungsi ini adalah nilai integer sebagai nilai default. Demikian juga nilai formalnya sering dibiarkan kosong, padahal argument formal yang terdapat pada fungsi main( ) ini merupakan salah satu keunggulan program bahasa C yang jarang dimiliki bahasa pemrograman lainnya. Melalui argumen ini, program dapat dijalankan dengan memberikan



nilai dari luar program tersebut. Argumen (parameter) dari luar program ini disebut dengan command-line parameter atau command-line argument. Bentuk umum pemanggilannya dari command-line atau command-interpreter adalah: C:\nama_file [arg1], [arg2], … Sebagai contoh program echo.c berikut menampilkan kembali kalimat yang dituliskan dilayar monitor. Program menggunakan sebuah statemen goto untuk memberikan pesan tentang cara menjalankan program dan menghentikan eksekusi program, apabilka pemakai tidak memberikan argument pada waktu menjalankan program.



Hasil kompilasi program echo1.c (setelah menutup perintah exit(0)) karena perintah tidak dikenal compiler, lalu dieksekusi dari command prompt, sebagai berikut:



9. Fungsi Rekursif Fungsi rekursif adalah fungsi untuk melaksanakan suatu tugas tertentu, dia kembali memanggil dirinya sendiri. Dalam kondisi tertentu bentuk rekursif lebih disenangi pemrogram dari pada bentuk interaktif yang menggunakan struktur perulangan, karena fungsi rekursif menggunakan variabel yang lebih sedikit dan lebih sederhana dibandingkan bentuk fungsi iteratif. Fungsi-fungsi rekursif menangani variabel dan argumennya (parameter) melalui mekanisme kerja tumpukan (stack). Mekanisme kerja tumpukan (stack) membutuhkan alokasi memori kerja komputer (RAM) yang lebih besar dan waktu yang lebih lama dari mekanisme iterative biasa. Karena itu, dalam hal efisiensi penggunaan waktu kerja dan memori, maka umumnya pemrogram lebih memilih menggunakan fungsi-fungsi iterative,



tetapi dari kesederhanaan algoritma maka alternatif pemilihan rekursif menjadi pilihan yang relative lebih sederhana.



Syarat-syarat Rekursif Agar sebuah fungsi rekursif tidak melakukan pengulangan pemanggilan secara terus-menerus, maka harus diberikan beberapa syarat yang menentukan kapan pemanggilan rekursif itu dihentikan: (1) harus ada disediakan kasus penghentian (termination case), (2) tiap-tiap struktur pemanggilan harus lebih sederhana daripada struktur pemanggilan sebelumnya, dan (3) selain kedua syarat sebelumnya, maka harus ada pula sebuah “pemicu” yang memulai pemanggilan rekursif. Contoh bentuk sederhana fungsi rekursif seperti terlihat pada program rsuka1.c berikut:



Output program rsuka1.cpp (rsuka1.c) adalah sebagai berikut:



Proses Rekursif Untuk memahami bagaimana proses rekursi dilaksanakan oleh kompiler pada saat mengeksekusi fungsi rekursif, berikut ini diuraikan beberapa hal dasar yang perlu menjadi perhatian pembaca: (1) 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.



(2) Pernyataan-pernyataan yang terdapat sebelum pemanggilan rekursif akan dieksekusi (dijalankan) dengan urutan yang sama. (3) Pernyataan-pernyataan yang terdapat setelah pemanggilan rekursif akan dieksekusi dengan urutan yang terbalik terhadap pemanggilan. (4) Kode program untuk fungsi rekursif di dalam memori tidak duplikat, walaupun fungsi tersebut dipanggil beberapa kali. Untuk mengilustrasikan uraian proses ini, perhatikan kembali contoh program rsuka1.cpp. Variabel n akan terbentuk sebanyak 5 (lima) kali sesuai dengan banyaknya pemanggilan ( statemen if (n