-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

Jumat, 02 September 2022

Algoritma dan Struktur Data Bab IX (Rekursif)

 

  

Rekursif

printf("Hallo Para Programmer!!"); 

printf("Disini Saya Akan Membahas Mengenai Rekursif Dalam Bahasa C/C++"); 

printf("Terus Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");

printf("Selamat Belajar!!");


    Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir. 

    Contoh paling sederhana dari proses rekursif ini adalah proses menghitung nilai faktorial dari suatu bilangan bulat positif dan mencari deret Fibbonacci dari suatu bilangan bulat. 

1. Nilai faktorial secara rekursif dapat ditulis sebagai

0 ! = 1 

N ! = N x (N-1) ! 

yang secara pemrograman dapat ditulis sebagai 

Faktorial(0) = 1                                                                                                                                       (1) 

Faktorial(N) = N*Faktorial(N-1)                                                                                                            (2)

    Persamaan (2) di atas adalah contoh hubungan rekurens (recurrence relation), yang berarti bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil. Persamaan (1) tidak bersifat rekursif, disebut nilai awal atau basis. Setiap fungsi rekursif paling sedikit mempunyai satu nilai awal, jika tidak fungsi tersebut tidak bisa dihitung secara eksplisit. 

2. Bilangan Fibbonacci didefinisikan sebagai berikut 

1 1 2 3 5 8 13 21 34 55 89 … 

dari barisan tersebut dapat dilihat bahwa bilangan ke-N (N>2) dalam barisan dapat dicari dari dua bilangan sebelumnya yang terdekat dengan bilangan N, yaitu bilangan ke-(N-1) dan bilangan ke-(N-2), sehingga dapat dirumuskan sebagai 

Fibbonacci(1) = 1                                                                                                                                    (1) 

Fibbonacci(2) = 1                                                                                                                                    (2) 

Fibbonacci(N) = Fibbonacci(N-1) + Fibbonacci(N-2)                                                                            (3) 

Dengan persamaan (1) dan (2) adalah basis dan persamaan (3) adalah rekurensnya 

    Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai keuntungan dan kekurangan yang bisa saling diperbandingkan. Adalah cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling mudah disbanding yang lain. Boleh dikatakan pemilihan cara iterative maupun rekursif merupakan kesenangan seorang programmer dan tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang bersangkutan. 

Prosedur Dan Fungsi Rekursif 

Prosedur dan fungsi merupakan sub program yang sangat bermanfaat dalam pemrograman, terutama untuk program atau proyek yang besar. Manfaat penggunaan sub program antara lain adalah : 

    1. meningkatkan readibility, 

        yaitu mempermudah pembacaan program 

    2. meningkatkan modularity, 

        yaitu memecah sesuatu yang besar menjadi modul[1]modul atau bagian-bagian yang lebih kecil            sesuai dengan fungsinya, sehingga mempermudah pengecekan, testing dan lokalisasi kesalahan.

    3. meningkatkan reusability, 

        yaitu suatu sub program dapat dipakai berulang kali dengan hanya memanggil sub program                    tersebut tanpa menuliskan perintah[1]perintah yang semestinya diulang-ulang. 

            Sub Program Rekursif adalah sub program yang memanggil dirinya sendiri selama kondisi                pemanggilan dipenuhi. Dengan melihat sifat sub program rekursif di atas maka sub program                    rekursif harus memiliki : 

        1. kondisi yang menyebabkan pemanggilan dirinya berhenti (disebut kondisi khusus atau special                condition) 

        2. pemanggilan diri sub program (yaitu bila kondisi khusus tidak dipenuhi) 

            Secara umum bentuk dari sub program rekursif memiliki statemen kondisional : if kondisi                khusustak dipenuhi then panggil diri-sendiri dengan parameter yang sesuai else lakukan instruksi            yang akan dieksekusi bila kondisi khusus dipenuhi Sub program rekursif umumnya dipakai untuk         permasalahan yang memiliki langkah penyelesaian yang terpola atau langkah-langkah yang teratur.         Bila kita memiliki suatu permasalahan dan kita mengetahui algoritma penyelesaiannya, kadang-           kadang sub program rekursif menjadi pilihan kita bila memang memungkinkan untuk                            dipergunakan. 

            Secara algoritmis (dari segi algoritma, yaitu bila kita mempertimbangkan penggunaan memori,           waktu eksekusi sub program) sub program rekursif sering bersifat tidak efisien. Dengan demikian         sub program rekursif umumnya memiliki efisiensi dalam penulisan perintah, tetapi kadang tidak            efisien secara algoritmis. Meskipun demikian banyak pula permasalahan-permasalahan yang lebih         sesuai diselesaikan dengan cara rekursif (misalnya dalam algoritma pengurutan dan pencarian).


~~TERIMA KASIH~~


Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

0 comments:

Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia