Top Banner
RECURSIF ALGORITHM
28

RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Feb 28, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

RECURSIFALGORITHM

Page 2: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 3: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 4: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 5: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 6: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 7: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 8: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 9: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 10: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Faktorial

■ Konsep Faktorial

n! = n(n-1)(n-2)…1

■ Dapat diselesaikan dengan

– Cara Biasa

– Rekursif

Page 11: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Algoritma iterasi tanpa rekursif

Function factorial (input n : integer) integer

{mengembalikan nilai n!}

Kamus

I : integer;

F: integer

Algoritma

F 1;

I 1;

While i<= n do

F <-- F*I

i i+1;

End while

Page 12: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 13: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 14: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Faktorial : Cara Biasa

■ Int Faktorial(int n)

■ {

■ if (n<0) return -1 ;

■ else if (n>1)

■ {

■ S = 1 ;

■ for(i=2 ;i<=n;i++) S = S * n ;

■ return S ;

■ }

■ else return 1 ;

■ }

Page 15: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Faktorial dengan Rekursif

■ Int Faktorial(int n)

■ {

if (n<0) return -1

else if (n>1) Return (n*Faktorial(n-1))

Else Return 1 ;

■ }

Page 16: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Deret Fibonacci

Leonardo Fibonacci berasal dari Italia 1170-1250

Deret Fibonacci f1, f2,… didefinisikan secara rekursif sebagai berikut :

f1 = 1

f2 = 2

fn = fn-1 + fn-2 for n > 3

Deret: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,…

Page 17: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Deret Fibonacci

■ procedure fab(n)

■ if n=1 then return 1

■ if n=2 thenreturn 2

■ return (fab(n-1) + fab(n-2))

■ end

Page 18: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 19: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 20: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Algoritma Rekrusif

■ Disebut sebuah algoritma rekursif jika memecahkan

masalah dengan mengurangi untuk kasus yang sama,masalah yang

sama dengan inputan lebih kecil

■ Fungsi rekursif harus mengandung setidaknya satu cabang non-rekursif.

■ Pemanggilan rekursif akhirnya harus mengarah pada cabang non-rekursif

Page 21: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Rekursif VS Iterasi

■ Untuk setiap algoritma rekursif, terdapat pengulangan/iterasi

yang dapat digunakan sebagai rekursive

■ Sebuah algoritma yang mengandung iterasi menggunakan bentuk

pengulangan

■ Sebuah algoritma recursive menggunakan algoritma rekursif bentuk

percabangan

Page 22: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Rekursif VS Iterasi

■ Solusi rekursive yang sering kurang efisien, baik dalam hal kecepatan/waktu dan

space, daripada solusi iterasi

■ Rekursi dapat menyederhanakan solusi masalah, mengakibatkan source

code yang mudah dipahami atau lebih pendek

Page 23: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Kapan saat tidak menggunakan recursive?

1. Saat Bahasa pemrograman tidak mendukung recursive, misal fortran

2. Saat menggunakan recursive malah membuat dua kali lipat resource nya missal

pada Fibonacci.

Page 24: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 25: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

latihan

■ Nyatakan fungsi a pangkat n dalam fungsi rekursif !

Dimana a pangkat n = a * a * a… *a (sebanyak n kali)

= a*a pangkat n - 1

Page 26: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card
Page 27: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

#include <stdio.h>

#include <conio.h>

#include "stdio.h"

int Fak(int N);

main() {

int N;

printf("N! : ");

scanf("%d",&N);

printf("\n%d! adalah %d", N, Fak(N));

}

int Fak(int N) {

if (N == 0)

return 1;

else

return N*Fak(N-1);

}

Page 28: RECURSIF ALGORITHMebook.repo.mercubuana-yogya.ac.id/FTI/materi_doc_20162/P... · 2018-08-01 · Soal e-learning kelas 22 1. Sebutkan judul tema tugas UAS anda ! 2. Buatlah flow card

Soal e-learning kelas 22

1. Sebutkan judul tema tugas UAS anda !

2. Buatlah flow card untuk bagian algoritma rekursif tema tugas anda !

3. Buatlah pseudocode bagian algoritma rekursif tema tugas anda!

4. Implementasikan dalam sebuah procedure/function bagian rekursif tema tugas !

Dalam Bahasa C simpan dalam file cpp

5. Screenshot hasil running nya !

Tugas diupload di fti.mercubuana-yogya.ac.id dikumpulkan paling lambat tgl 19 juni

2017, perhatikan tgl dan jam input !