+ All Categories
Home > Documents > Pertemuan 1

Pertemuan 1

Date post: 19-Jan-2016
Category:
Upload: kelda
View: 51 times
Download: 2 times
Share this document with a friend
Description:
Pertemuan 1. Rekursi. Fungsi Rekursif. Definisi fungsi rekursif . Contoh 1 : Triangle Contoh 2 : Faktorial Contoh 3 : Perkalian Contoh 4 : Fibonacci Contoh 5 : Tower of Hanoi. Fibonacci. 0,1,1,2,3,5,8,13,21,34,55,89,144,.. - PowerPoint PPT Presentation
15
Rekursi Pertemuan 1
Transcript
Page 1: Pertemuan 1

Rekursi

Pertemuan 1

Page 2: Pertemuan 1

Definisi fungsi rekursif.Contoh 1 : TriangleContoh 2 : FaktorialContoh 3 : PerkalianContoh 4 : FibonacciContoh 5 : Tower of Hanoi

Fungsi Rekursif

Page 3: Pertemuan 1

Fibonacci0,1,1,2,3,5,8,13,21,34,55,89,144,.. The Fibonacci series fn≥0 is a famous series

defined by: f0 :≡ 0, f1 :≡ 1, fn≥2 :≡ fn−1 + fn−2

f2 = f0 + f1 = 0 + 1 = 1

f3 = f1 + f2 = 1 + 1 = 2

f4 = f2 + f3 = 1 + 2 = 3

f5 = f3 + f4 = 2 + 3 = 5

…. Leonardo Fibonacci

1170-1250

Page 4: Pertemuan 1
Page 5: Pertemuan 1

FibonacciALGORITMA

fibo( n ) = n if n == 0 or n == 1fibo( n ) = fibo( n – 2 ) + fibo( n – 1 ) if n

>= 2

fibo( 4 ) = fibo( 2 ) + fibo( 3 ) = fibo( 0 ) + fibo ( 1 ) + fibo( 3 ) = 0 + 1 + fibo( 1 ) + fibo( 2 ) = 0 + 1 + 1 + fibo( 0 ) + fibo( 1 ) = 0 + 1 + 1 + 0 + 1 = 3

SOURCE CODE

int fibo ( int n ){ int x, y; if ( n <= 1 ) { return ( n ); }else{ x = fibo( n - 1 ); y = fibo( n - 2 ); return ( x + y ); }}

Page 6: Pertemuan 1

Tracing Fibonaccifibo (4) = ?

F(4)

F(2) F(3)

F(0) F(1) F(1) F(2)

F(0) F(1)

Page 7: Pertemuan 1
Page 8: Pertemuan 1

Sebuah game /puzzle matematika kuno dimana ada ada tiga buah tiang, dimana salah satu tiang terdapat beberapa piringan

Piringan akan dipindahkan ke tiang yang lain dengan salah satu tiang menjadi tiang bantu

Untuk memindahkan ada beberap syaratHanya ada satu piringan yang berpindah dalam satu

langkahTidak boleh ada piringan yang berada di atas piringan

yang lebih kecilTotal langkah yang dibutuhkan untuk menyelesaikan

puzzle secara matematika adalah 2n -1 dengan n adalah banyaknya piringan

Towers of Hanoi

Page 9: Pertemuan 1
Page 10: Pertemuan 1
Page 11: Pertemuan 1

ALGORITMA1. If n == 1, move the single disk from A to C and stop.2. Move the top n – 1 disks from A to B, using C as auxiliary.3. Move the remaining disk from A to C.4. Move the n – 1 disks from B to C, using A as auxiliary.

SOURCE CODEvoid towers( int n, char from, char to, char aux){ if ( n == 1 ) { printf(“\nmove disk 1 from %c to %c”, from, to); return; }else{ towers( n – 1, from, aux, to ); printf(“\nmove disk %d from %c to %c”, n, from, to); towers( n – 1, aux, to, from ); }}

Page 12: Pertemuan 1

Tracing Towers of Hanoitowers(3, A, C, B) = ?

Page 13: Pertemuan 1

Kelebihan :Program menjadi lebih singkat/sederhanaDalam beberapa kasus kasus memang

dibutuhkan penggunaan rekursiKekurangan :

Kurang efektif dalam hal kecepatanMembutuhkah memori lebih, karena ketika

satu fungsi / method memanggil dirinya , dibutuhkan tambahan alokasi memori. Sehingga alokasi memori total menjadi lebih besar

resume

Page 14: Pertemuan 1

Tugas Rumah : TRACING1. NPM genap : towers (4, A, C, B) = ? NPM ganjil : towers (4, C, A, B ) = ?2. fibo(6) = ?

Page 15: Pertemuan 1

http://coding-n-inspiring.blogspot.comwikipedia


Recommended