SlideShare a Scribd company logo
REKURSIF
Sesi 7
2
Fungsi Rekursif
• Fungsi yang berisi definisi dirinya
sendiri
• Fungsi yang memanggil dirinya sendiri
• Prosesnya terjadi secara berulang-
ulang
• Yang perlu diperhatikan adalah
“stopping role”
3
Plus – Minus Fungsi Rekursif
• Karena program lebih singkat dan ada beberapa
kasus yang lebih mudah menggunakan fungsi
yang rekursif
• Memakan memori yang lebih besar, karena setiap
kali bagian dirinya dipanggil, dibutuhkan
sejumlah ruang memori tambahan.
• Mengorbankan efisiensi dan kecepatan
• Problem: rekursi seringkali tidak bisa “berhenti”
sehingga memori akan terpakai habis dan program
bisa hang.
• Saran: jika memang bisa diselesaikan dengan
iteratif, gunakanlah iteratif!
4
Bentuk Umum Fungsi Rekursif
return tipeData namaFungsi (daftarParameter)
{
...
namaFungsi(...);
...
}
5
Persoalan
• Faktorial
5! = 5 x 4 x 3 x 2 x 1
4! = 4 x 3 x 2 x 1
Berarti 5! = 5 x 4!
• Metode Iteratif
Salah satu cara untuk menghitung adalah dengan
menggunakan loop, yang mengalikan masing-masing
bilangan dengan hasil sebelumnya. Penyelesaian dengan
cara ini dinamakan iteratif, yang mana secara umum dapat
didefinisikan sebagai berikut:
• n! = (n)(n-1)(n-2) … (1)
6
Program Iteratif
#include <stdio.h>
int fact_it (int n)
{
int i,fak;
/******************************************************
* Menghitung sebuah faktorial dengan proses looping *
******************************************************/
temp = 1;
for (i=1; i<=n; i++)
fak = fak * i;
return (fak);
}
void main()
{
int fac;
printf("Masukkan berapa faktorial : ");
scanf("%d",&fac);
printf("Hasil faktorial dari adalah : %dn", fact_it(fac));
}
7
Faktorial Rekursif
• Metode Rekursif
• Cara lain untuk menyelesaikan permasalahan di
atas adalah dengan cara rekursi, dimana n! adalah
hasil kali dari n dengan (n-1)!.
• Untuk menyelesaikan (n-1)! adalah sama dengan
n!, sehingga (n-1)! adalah n-1 dikalikan dengan (n-
2)!, dan (n-2)! adalah n-2 dikalikan dengan (n-3)!
dan seterusnya sampai dengan n = 1, kita
menghentikan penghitungan n!
8
Faktorial Rekursif
n! = 1 if n=0 anchor
n! = n*(n-1)! if n>0 inductive step
0! = 1
1! = 1*(1-1)!
= 1*0!
= 1*1
= 1
2!= 2*(2-1)!
= 2*1!
= 2*1
= 2
3!= 3*(3-1)!
= 3*2!
= 3*2
= 6
9
Program Rekursif
#include <stdio.h>
int fact_rec(int n)
{
/**********************************************************
Menghitung sebuah faktorial secara rekursif
***********************************************************/
if (n < 0)
return 0;
else if (n == 0)
return 1;
else if (n == 1)
return 1;
else
return n * fact_rec(n-1);
}
void main()
{
int fac;
printf("Masukkan berapa faktorial : ");
scanf("%d",&fac);
printf("Hasil faktorial dari adalah : %dn", fact_rec(fac));
}
10
Fibonacci
• Sepasang kelinci yang baru lahir (jantan
dan betina) ditempatkan pada suatu
pembiakan. Setelah dua bulan pasangn
kelinci tersebut melahirkan sepasang kelinci
kembar (jantan dan betina). Setiap
pasangan kelinci yang lahir juga akan
melahirkan sepasang kelinci juga setiap 2
bulan. Berapa pasangan kelinci yang ada
pada akhir bulan ke-12?
11
Ilustrasi Fibonanci
• Deret Fibonacci adalah suatu deret matematika
yang berasal dari penjumlahan dua bilangan
sebelumnya.
• 1, 1, 2, 3, 5, 7, 12, 19, …
12
Fibo Iteratif
• Secara iteratif
int fibonacci(int n){
int f1=1, f2=1, fibo;
if(n==1 || n==2)
fibo=1;
else{
for(int i=2;i<n;i++){
fibo = f1 + f2;
f2 = f1;
f1 = fibo;
}
}
return fibo;
}
13
Fungsi Fibonanci Rekursif
int fibo_r (int n){
if(n==1)
return 1;
else if(n==2)
return 1;
else
return fibo_r(n-1) + fibo_r(n-2);
}
14
FPB (Faktor Persekutuan terBesar)
• Misal FPB 228 dan 90:
– 228/90 = 2 sisa 48
– 90/48 = 1 sisa 42
– 48/42 = 1 sisa 6
– 42/6 = 7 sisa 0
FPB adalah hasil terakhir sebelum sisa = 0 adalah 6
15
Iterasi Faktor Persekutuan
Terbesar (2)
Iteratif: FPB, m=228 dan n = 90
do{
r = m % n;
if (r!=0){
m = n;
n = r;
}
} while(r==0);
Tampilkan n
16
Fungsi Rekursif FPB
• Rekursif:
int FPB(int m,int n){
if(m==0)
return n;
else if(m<n)
return FPB(n,m);
else
return FPB(m%n,n);
}
17
Legenda Menara Hanoi
(oleh Edouard Lucas abad 19)
• Seorang biarawan memiliki 3 menara.
• Diharuskan memindahkan 64 piringan emas.
• Diameter piringan tersebut tersusun dari ukuran kecil ke besar.
• Biarawan berusaha memindahkan semua piringan dari menara
pertama ke menara ketiga tetapi harus melalui menara kedua
sebagai menara tampungan.
• Kondisi:
 Piringan tersebut hanya bisa dipindahkan satu-satu.
 Piringan yang besar tidak bisa diletakkan di atas piringan
yang lebih kecil.
• Ternyata : mungkin akan memakan waktu sangat lama
(sampai dunia kiamat).
• Secara teori, diperlukan 264
-1 perpindahan. Jika kita salah
memindahkan, maka jumlah perpindahan akan lebih banyak
lagi.
• Jika satu perpindahan butuh 1 detik, maka total waktu yang
dibutuhkan lebih dari 500 juta tahun !!.
18
Tower of Hanoi
19
Tower of Hanoi
• Algorithm:
– Jika n==1, pindahkan pringan dari A ke C
– Jika tidak:
• Pindahkan n-1 piringan dari A ke B menggunakan C
sebagai tampungan
• Pindahkan n-1 piringan dari B ke C menggunakan A
sebagai tampungan
20
Ilustrasi
Tower
Hanoi
21
Proses Kerja
22
Program
#include <stdio.h>
void towers(int n, char awal, char akhir, char
antara)
{
if(n==1)
printf("Pindahkan piringan 1 dari %c ke %cn",
awal,akhir);
else{
towers(n-1, awal, antara, akhir);
printf("Pindahkan piringan %d dari %c ke %cn",
n, awal, akhir);
towers(n-1, antara, akhir, awal);
}
}
void main()
{
int n;
printf("Berapa piringan ? ");scanf("%d", &n);
towers(n, 'A', 'C', 'B');
}

More Related Content

What's hot

Metode dan Strategi Pembuktian
Metode dan Strategi PembuktianMetode dan Strategi Pembuktian
Metode dan Strategi Pembuktian
Heni Widayani
 
ALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTER
Mella Imelda
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
zachrison htg
 
Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04
KuliahKita
 
Relasi Rekurensi
Relasi RekurensiRelasi Rekurensi
Relasi Rekurensi
Heni Widayani
 
ANALISIS REAL
ANALISIS REALANALISIS REAL
ANALISIS REAL
Sigit Rimba Atmojo
 
Metode interpolasi linier
Metode  interpolasi linierMetode  interpolasi linier
Metode interpolasi linier
okti agung
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019
Sukma Puspitorini
 
Matematika Diskrit part 2
Matematika Diskrit part 2Matematika Diskrit part 2
Matematika Diskrit part 2
radar radius
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
Huzairi Zairi
 
Interpolasi Newton
Interpolasi  NewtonInterpolasi  Newton
Interpolasi Newton
Ratih Vihafsari
 
Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )
Kelinci Coklat
 
Materi 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabelMateri 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabel
radar radius
 
Kongruensi kuadratis
Kongruensi kuadratisKongruensi kuadratis
Kongruensi kuadratis
Fara Silfia
 
Modul 4 kongruensi linier
Modul 4   kongruensi linierModul 4   kongruensi linier
Modul 4 kongruensi linier
Acika Karunila
 
Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )
Kelinci Coklat
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
Fahrul Usman
 

What's hot (20)

Metode dan Strategi Pembuktian
Metode dan Strategi PembuktianMetode dan Strategi Pembuktian
Metode dan Strategi Pembuktian
 
ALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTER
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04
 
Relasi Rekurensi
Relasi RekurensiRelasi Rekurensi
Relasi Rekurensi
 
Bab 4 aljabar boolean
Bab 4 aljabar booleanBab 4 aljabar boolean
Bab 4 aljabar boolean
 
ANALISIS REAL
ANALISIS REALANALISIS REAL
ANALISIS REAL
 
Metode interpolasi linier
Metode  interpolasi linierMetode  interpolasi linier
Metode interpolasi linier
 
Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019Bab 2 logika predikat ta 2019
Bab 2 logika predikat ta 2019
 
Matematika Diskrit part 2
Matematika Diskrit part 2Matematika Diskrit part 2
Matematika Diskrit part 2
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
 
Interpolasi Newton
Interpolasi  NewtonInterpolasi  Newton
Interpolasi Newton
 
Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )
 
Operasi biner
Operasi binerOperasi biner
Operasi biner
 
Materi 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabelMateri 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabel
 
Kongruensi kuadratis
Kongruensi kuadratisKongruensi kuadratis
Kongruensi kuadratis
 
Modul 4 kongruensi linier
Modul 4   kongruensi linierModul 4   kongruensi linier
Modul 4 kongruensi linier
 
Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )Barisan dan Deret ( Kalkulus 2 )
Barisan dan Deret ( Kalkulus 2 )
 
Logika dan Pembuktian
Logika dan PembuktianLogika dan Pembuktian
Logika dan Pembuktian
 

Similar to Bab 8 rekursif

13_Rekursif.pptx
13_Rekursif.pptx13_Rekursif.pptx
13_Rekursif.pptx
SapaFilut
 
Bab 8 struktur rekursif
Bab 8 struktur rekursifBab 8 struktur rekursif
Bab 8 struktur rekursifrisal07
 
8 Rekursif
8 Rekursif8 Rekursif
8 Rekursif
ahmad haidaroh
 
Pertemuan 6 Rekursif
Pertemuan 6 RekursifPertemuan 6 Rekursif
Pertemuan 6 Rekursif
Endang Retnoningsih
 
09 pd fungsi rekursif
09 pd fungsi rekursif09 pd fungsi rekursif
09 pd fungsi rekursifSofi Orient
 
6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdf
NestyoRizky
 
Rekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptx
Rekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptxRekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptx
Rekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptx
rulimustiyawan37
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
Icha Dicaprio
 
Presentation
PresentationPresentation
Presentation
Ainy Sara
 
Rekursi dan relasi rekurens
Rekursi dan relasi rekurensRekursi dan relasi rekurens
Rekursi dan relasi rekurens
Leonardo024
 
Algoritma rekursif
Algoritma rekursifAlgoritma rekursif
sns op sys_process
sns op sys_processsns op sys_process
sns op sys_process
staffpengajar
 
MAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docxMAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docx
Dikicandra6
 
Operational Research
Operational ResearchOperational Research
Operational ResearchDavid Loekito
 
rekursi dan relasi rekurens
rekursi dan relasi rekurensrekursi dan relasi rekurens
rekursi dan relasi rekurens
tedi_apendi
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
KuliahKita
 
Konsep Process dalam Sistem Komputer
Konsep Process dalam Sistem KomputerKonsep Process dalam Sistem Komputer
Konsep Process dalam Sistem Komputer
S N M P Simamora
 

Similar to Bab 8 rekursif (20)

Tistrukdat9
Tistrukdat9Tistrukdat9
Tistrukdat9
 
13_Rekursif.pptx
13_Rekursif.pptx13_Rekursif.pptx
13_Rekursif.pptx
 
Bab 8 struktur rekursif
Bab 8 struktur rekursifBab 8 struktur rekursif
Bab 8 struktur rekursif
 
8 Rekursif
8 Rekursif8 Rekursif
8 Rekursif
 
Pertemuan 6 Rekursif
Pertemuan 6 RekursifPertemuan 6 Rekursif
Pertemuan 6 Rekursif
 
207 p06
207 p06207 p06
207 p06
 
09 pd fungsi rekursif
09 pd fungsi rekursif09 pd fungsi rekursif
09 pd fungsi rekursif
 
6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdf
 
Rekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptx
Rekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptxRekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptx
Rekursi dan Relasi Rekurens Kelas 11 Sains Tek.pptx
 
Efisiensi algoritma
Efisiensi algoritmaEfisiensi algoritma
Efisiensi algoritma
 
Presentation
PresentationPresentation
Presentation
 
Rekursi dan relasi rekurens
Rekursi dan relasi rekurensRekursi dan relasi rekurens
Rekursi dan relasi rekurens
 
Algoritma rekursif
Algoritma rekursifAlgoritma rekursif
Algoritma rekursif
 
sns op sys_process
sns op sys_processsns op sys_process
sns op sys_process
 
MAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docxMAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docx
 
Operational Research
Operational ResearchOperational Research
Operational Research
 
rekursi dan relasi rekurens
rekursi dan relasi rekurensrekursi dan relasi rekurens
rekursi dan relasi rekurens
 
PPT Modul 5
PPT Modul 5PPT Modul 5
PPT Modul 5
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Konsep Process dalam Sistem Komputer
Konsep Process dalam Sistem KomputerKonsep Process dalam Sistem Komputer
Konsep Process dalam Sistem Komputer
 

More from arii_manroe

Bab 11 hash_table
Bab 11 hash_tableBab 11 hash_table
Bab 11 hash_table
arii_manroe
 
Bab 10 tree_lanjutan
Bab 10 tree_lanjutanBab 10 tree_lanjutan
Bab 10 tree_lanjutan
arii_manroe
 
Bab 7 double_linked_list
Bab 7 double_linked_listBab 7 double_linked_list
Bab 7 double_linked_list
arii_manroe
 
Bab 6 singly_linked_list
Bab 6 singly_linked_listBab 6 singly_linked_list
Bab 6 singly_linked_list
arii_manroe
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
arii_manroe
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
arii_manroe
 
Bab 3 searching_array
Bab 3 searching_arrayBab 3 searching_array
Bab 3 searching_array
arii_manroe
 
Bab 2 sorting_array
Bab 2 sorting_arrayBab 2 sorting_array
Bab 2 sorting_array
arii_manroe
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataBab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
arii_manroe
 
Bab 12 file_manipulation
Bab 12 file_manipulationBab 12 file_manipulation
Bab 12 file_manipulation
arii_manroe
 

More from arii_manroe (11)

Bab 11 hash_table
Bab 11 hash_tableBab 11 hash_table
Bab 11 hash_table
 
Bab 10 tree_lanjutan
Bab 10 tree_lanjutanBab 10 tree_lanjutan
Bab 10 tree_lanjutan
 
Bab 9 tree
Bab 9 treeBab 9 tree
Bab 9 tree
 
Bab 7 double_linked_list
Bab 7 double_linked_listBab 7 double_linked_list
Bab 7 double_linked_list
 
Bab 6 singly_linked_list
Bab 6 singly_linked_listBab 6 singly_linked_list
Bab 6 singly_linked_list
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
 
Bab 3 searching_array
Bab 3 searching_arrayBab 3 searching_array
Bab 3 searching_array
 
Bab 2 sorting_array
Bab 2 sorting_arrayBab 2 sorting_array
Bab 2 sorting_array
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataBab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
 
Bab 12 file_manipulation
Bab 12 file_manipulationBab 12 file_manipulation
Bab 12 file_manipulation
 

Recently uploaded

TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
indahrosantiTeknikSi
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
HADIANNAS
 
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
AnandhaAdkhaM1
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
rhamset
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
muhammadiswahyudi12
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
delphijean1
 
Matematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.pptMatematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.ppt
AzrilAld
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Tsabitpattipeilohy
 
Pembangkit Listrik Tenaga Surya PLTS.pptx
Pembangkit Listrik Tenaga Surya PLTS.pptxPembangkit Listrik Tenaga Surya PLTS.pptx
Pembangkit Listrik Tenaga Surya PLTS.pptx
muhhaekalsn
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
jayakartalumajang1
 

Recently uploaded (10)

TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptxTUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
TUGAS UJI KOMPETENSI-INDAH ROSANTI-AHLI UTAMA MANAJEMEN KONSTRUKSI.pptx
 
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
Power Point TEMA 7 SUB TEMA 3 Pembelajaran 2
 
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASASURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
SURVEY REKAYASA SURVEY REKAYASA SURVEY REKAYASA
 
436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt436102098-0-K3-Elevator-Dan-Eskalator.ppt
436102098-0-K3-Elevator-Dan-Eskalator.ppt
 
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptxRANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
RANGKAIAN LISTRIK MATERI 7 ANALISIS MESH.pptx
 
COOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong dCOOLING TOWER petrokimia gresik okdong d
COOLING TOWER petrokimia gresik okdong d
 
Matematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.pptMatematika diskrit: metode pohon/trees.ppt
Matematika diskrit: metode pohon/trees.ppt
 
Daftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdfDaftar Lembaga Penyedia Jasa Linkungan.pdf
Daftar Lembaga Penyedia Jasa Linkungan.pdf
 
Pembangkit Listrik Tenaga Surya PLTS.pptx
Pembangkit Listrik Tenaga Surya PLTS.pptxPembangkit Listrik Tenaga Surya PLTS.pptx
Pembangkit Listrik Tenaga Surya PLTS.pptx
 
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdfTUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
TUGAS pelaksana pekerjaan jalan jenjang empat 4 .pptx -.pdf
 

Bab 8 rekursif

  • 2. 2 Fungsi Rekursif • Fungsi yang berisi definisi dirinya sendiri • Fungsi yang memanggil dirinya sendiri • Prosesnya terjadi secara berulang- ulang • Yang perlu diperhatikan adalah “stopping role”
  • 3. 3 Plus – Minus Fungsi Rekursif • Karena program lebih singkat dan ada beberapa kasus yang lebih mudah menggunakan fungsi yang rekursif • Memakan memori yang lebih besar, karena setiap kali bagian dirinya dipanggil, dibutuhkan sejumlah ruang memori tambahan. • Mengorbankan efisiensi dan kecepatan • Problem: rekursi seringkali tidak bisa “berhenti” sehingga memori akan terpakai habis dan program bisa hang. • Saran: jika memang bisa diselesaikan dengan iteratif, gunakanlah iteratif!
  • 4. 4 Bentuk Umum Fungsi Rekursif return tipeData namaFungsi (daftarParameter) { ... namaFungsi(...); ... }
  • 5. 5 Persoalan • Faktorial 5! = 5 x 4 x 3 x 2 x 1 4! = 4 x 3 x 2 x 1 Berarti 5! = 5 x 4! • Metode Iteratif Salah satu cara untuk menghitung adalah dengan menggunakan loop, yang mengalikan masing-masing bilangan dengan hasil sebelumnya. Penyelesaian dengan cara ini dinamakan iteratif, yang mana secara umum dapat didefinisikan sebagai berikut: • n! = (n)(n-1)(n-2) … (1)
  • 6. 6 Program Iteratif #include <stdio.h> int fact_it (int n) { int i,fak; /****************************************************** * Menghitung sebuah faktorial dengan proses looping * ******************************************************/ temp = 1; for (i=1; i<=n; i++) fak = fak * i; return (fak); } void main() { int fac; printf("Masukkan berapa faktorial : "); scanf("%d",&fac); printf("Hasil faktorial dari adalah : %dn", fact_it(fac)); }
  • 7. 7 Faktorial Rekursif • Metode Rekursif • Cara lain untuk menyelesaikan permasalahan di atas adalah dengan cara rekursi, dimana n! adalah hasil kali dari n dengan (n-1)!. • Untuk menyelesaikan (n-1)! adalah sama dengan n!, sehingga (n-1)! adalah n-1 dikalikan dengan (n- 2)!, dan (n-2)! adalah n-2 dikalikan dengan (n-3)! dan seterusnya sampai dengan n = 1, kita menghentikan penghitungan n!
  • 8. 8 Faktorial Rekursif n! = 1 if n=0 anchor n! = n*(n-1)! if n>0 inductive step 0! = 1 1! = 1*(1-1)! = 1*0! = 1*1 = 1 2!= 2*(2-1)! = 2*1! = 2*1 = 2 3!= 3*(3-1)! = 3*2! = 3*2 = 6
  • 9. 9 Program Rekursif #include <stdio.h> int fact_rec(int n) { /********************************************************** Menghitung sebuah faktorial secara rekursif ***********************************************************/ if (n < 0) return 0; else if (n == 0) return 1; else if (n == 1) return 1; else return n * fact_rec(n-1); } void main() { int fac; printf("Masukkan berapa faktorial : "); scanf("%d",&fac); printf("Hasil faktorial dari adalah : %dn", fact_rec(fac)); }
  • 10. 10 Fibonacci • Sepasang kelinci yang baru lahir (jantan dan betina) ditempatkan pada suatu pembiakan. Setelah dua bulan pasangn kelinci tersebut melahirkan sepasang kelinci kembar (jantan dan betina). Setiap pasangan kelinci yang lahir juga akan melahirkan sepasang kelinci juga setiap 2 bulan. Berapa pasangan kelinci yang ada pada akhir bulan ke-12?
  • 11. 11 Ilustrasi Fibonanci • Deret Fibonacci adalah suatu deret matematika yang berasal dari penjumlahan dua bilangan sebelumnya. • 1, 1, 2, 3, 5, 7, 12, 19, …
  • 12. 12 Fibo Iteratif • Secara iteratif int fibonacci(int n){ int f1=1, f2=1, fibo; if(n==1 || n==2) fibo=1; else{ for(int i=2;i<n;i++){ fibo = f1 + f2; f2 = f1; f1 = fibo; } } return fibo; }
  • 13. 13 Fungsi Fibonanci Rekursif int fibo_r (int n){ if(n==1) return 1; else if(n==2) return 1; else return fibo_r(n-1) + fibo_r(n-2); }
  • 14. 14 FPB (Faktor Persekutuan terBesar) • Misal FPB 228 dan 90: – 228/90 = 2 sisa 48 – 90/48 = 1 sisa 42 – 48/42 = 1 sisa 6 – 42/6 = 7 sisa 0 FPB adalah hasil terakhir sebelum sisa = 0 adalah 6
  • 15. 15 Iterasi Faktor Persekutuan Terbesar (2) Iteratif: FPB, m=228 dan n = 90 do{ r = m % n; if (r!=0){ m = n; n = r; } } while(r==0); Tampilkan n
  • 16. 16 Fungsi Rekursif FPB • Rekursif: int FPB(int m,int n){ if(m==0) return n; else if(m<n) return FPB(n,m); else return FPB(m%n,n); }
  • 17. 17 Legenda Menara Hanoi (oleh Edouard Lucas abad 19) • Seorang biarawan memiliki 3 menara. • Diharuskan memindahkan 64 piringan emas. • Diameter piringan tersebut tersusun dari ukuran kecil ke besar. • Biarawan berusaha memindahkan semua piringan dari menara pertama ke menara ketiga tetapi harus melalui menara kedua sebagai menara tampungan. • Kondisi:  Piringan tersebut hanya bisa dipindahkan satu-satu.  Piringan yang besar tidak bisa diletakkan di atas piringan yang lebih kecil. • Ternyata : mungkin akan memakan waktu sangat lama (sampai dunia kiamat). • Secara teori, diperlukan 264 -1 perpindahan. Jika kita salah memindahkan, maka jumlah perpindahan akan lebih banyak lagi. • Jika satu perpindahan butuh 1 detik, maka total waktu yang dibutuhkan lebih dari 500 juta tahun !!.
  • 19. 19 Tower of Hanoi • Algorithm: – Jika n==1, pindahkan pringan dari A ke C – Jika tidak: • Pindahkan n-1 piringan dari A ke B menggunakan C sebagai tampungan • Pindahkan n-1 piringan dari B ke C menggunakan A sebagai tampungan
  • 22. 22 Program #include <stdio.h> void towers(int n, char awal, char akhir, char antara) { if(n==1) printf("Pindahkan piringan 1 dari %c ke %cn", awal,akhir); else{ towers(n-1, awal, antara, akhir); printf("Pindahkan piringan %d dari %c ke %cn", n, awal, akhir); towers(n-1, antara, akhir, awal); } } void main() { int n; printf("Berapa piringan ? ");scanf("%d", &n); towers(n, 'A', 'C', 'B'); }