1 / 7

Apakah Recursion itu ?

Apakah Recursion itu ?. Dr. Anto Satriyo Nugroho, M.Eng Email: asnugroho@gmail.com Web: http://asnugroho.net/lecture/dp.html. Apakah Recursion itu ?. Perulangan proses pada sebuah fungsi, yang di dalamnya memanggil fungsi itu sendiri. Keuntungan: menyederhanakan sebuah proses yang kompleks

adanna
Download Presentation

Apakah Recursion itu ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Apakah Recursion itu ? Dr. Anto Satriyo Nugroho, M.Eng Email: asnugroho@gmail.com Web: http://asnugroho.net/lecture/dp.html

  2. Apakah Recursion itu ? • Perulangan proses pada sebuah fungsi, yang di dalamnya memanggil fungsi itu sendiri. • Keuntungan: menyederhanakan sebuah proses yang kompleks • Kapan dipakai ?Recursion dipakai pada sebuah struktur data yang apabila diambil sebagian daripadanya, akan diperoleh struktur data yang sama • Bahasa pemrograman yang memiliki kemampuan implementasi recursion: C,C++ • Bahasa pemrograman yang tidak memiliki kemampuan tsb.: Fortran • Argumen fungsi, maupun variabel yang dideklarasikan pada fungsi tersebut tidak memiliki address yang fixed. Alokasi memory baru dilakukan saat fungsi itu dipanggil. • Contoh populer: • Perhitungan factorial • Greatest Common Divisor/GCD (=FPB Faktor Persekutuan Terbesar) • Deret Fibonacci

  3. ① Perhitungan factorial int factorial(int n) { if(n==0) return 1; else return(n*factorial(n-1)); }

  4. Perhitungan Factorial = n * factorial(n-1) factorial(n) = (n-1) * factorial(n-2) factorial(n-1) = (n-2) * factorial(n-3) factorial(n-2) … if(n==0) return 1; = 1 * factorial(0) factorial(1) 1 factorial(n) = n*(n-1)*(n-2)*(n-3)*…* 1

  5. ② GCD antara x dany int gcd(int x,int y) { if(y==0) return(x); else return gcd(y,x%y); } Cara ini disebut sebagai Euclidean Algorithmyang dikenal sebagai salah satu algoritma tertua 300 B.C.(7th book, Proposition 2) GCD : Greatest Common Divisor

  6. gcd(75,54) = gcd(54,21) = gcd(21,12) = gcd(12, 9) = gcd( 9, 3) = gcd( 3, 0) gcd(75,54)= 3 21=75%54 12=54%21 9=21%12 3=12%9 0=9%3

  7. Deret Fibonacci • 0,1,1,2,3,5,8,13,21,34,… • F(n)=F(n-1)+F(n-2) • F(1)=0 • F(2)=1 Tuliskan deret Fibonacci di atas memakai recursion !

More Related