REKURSIF Learning Outcomes Pada akhir pertemuan ini, mahasiswa mampu:

Slides:



Advertisements
Presentasi serupa
REKURSIF.
Advertisements

Pemrograman Berorientasi Objek (Project)
Algoritma dan Struktur Data
REKURSIF.
1 Ruli Manurung & Ade AzuratFasilkom UI - IKI /2008 – Ganjil – Minggu 4 Dasar-dasar Rekursif.
Rekursif Yuliana Setiowati.
Desain dan Analisis Algoritma
Modul 1- Review Java.
REKURSIF Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
Pemrograman Terstruktur
Fungsi Rekursif.
Fungsi Rekursif Dasar Pemrograman.
sebuah fungsi yang memanggil dirinya sendiri
PART 7 TEKNIK REKURSIF DOSEN : AHMAD APANDI, ST.
Sumber Kepustakaan : indryz.lecture.ub.ac.id/.../analisa-efisiensi- algoritm... 1  Fungsi yang memanggil dirinya sendiri  Sebuah fungsi f juga merupakan.
LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.
Method.
Pemrograman JAVA (TIB09)
STRUKTUR DATA recursive function.
PELATIHAN JAVA FUNDAMENTAL
Algoritma dan Struktur Data
Design and Analysis Algorithm
Algoritma dan Struktur Data
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
SORTING Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
OPERASI ARITMETIKA.
OPERASI JUMP DAN EXCEPTION HANDLING
PERNYATAAN PERULANGAN
Pertemuan 6 PEWARISAN AND POLYMORPHISM
METHODS Matakuliah: T0974 / Algoritma dan Metode Object Oriented Programming I Tahun: 2008 Versi: 1/0.
Polymorphism Pertemuan 9 Matakuliah: M0864/Programming I Tahun: 2009.
Rekursi (Recursion) Fungsi rekursi adalah fungsi yang didalam function body- nya ada statement yang memanggil dirinya sendiri. Fungsi rekursif, sangat.
PERNYATAAN SELEKSI Matakuliah : Algoritma dan Metode Object Oriented Programming I Tahun : 2009 Versi : 1/0.
STRUKTUR DATA (10) recursive function
Algoritma dan Struktur Data
Bina Nusantara Mata kuliah:K0144/ Matematika Diskrit Tahun:2008 FUNGSI REKURSIF Pertemuan 10:
1 Pertemuan Fungsi Matakuliah: T0616 / Algoritma dan Pemrograman Tahun: 2007 Versi: 1/0.
1 Pertemuan 4 KONTROL ALUR EKSEKUSI PROGRAM Matakuliah: M0074/PROGRAMMING II Tahun: 2005 Versi: 1/0.
Rekursif Rizki Muliono,M.Kom.
Pertemuan 1 Rekursi jual [Valdo] Lunatik Chubby Stylus.
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
DIG1G3 Implementasi Struktur Data
Pernyataan Pertemuan 3 Season 1
PERNYATAAN PERULANGAN
METHODS Mr. Yasri Object Oriented Program.
Objek-Oriented Programming (OOP)
PERNYATAAN SELEKSI Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
Inheritance Pertemuan 8
Mata kuliah :K0362/ Matematika Diskrit Tahun :2008
Pemrograman berorientasi Objek
Algoritma dan Struktur Data
Latihan & Studi Kasus Perulangan / Looping PEMROGRAMAN DASAR
Matakuliah : M0864/Programming I
Method (Metode).
~ PERTEMUAN 8 STRUKTUR REKURSIF ~
Recursive function.
STRUKTUR DATA (10) recursive function
PART 7 TEKNIK REKURSIF DOSEN : AHMAD APANDI, ST.
Algoritma Rekursif.
Array / Larik.
ARRAY UNRIYO.
Algoritma Rekursif Alpro-2.
Rekursif By Serdiwansyah N. A..
Analisa algoritma rekursif
Konsep Bahasa Pemrograman I Operator
Mengulang Kembali Type Data Input Output Struktur Kontrol
Dasar-Dasar Pemrograman
Rekursif Yuliana Setiowati. Rekursif Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.
Transcript presentasi:

REKURSIF Learning Outcomes Pada akhir pertemuan ini, mahasiswa mampu: Menjelaskan definisi rekursif Menerapkan rekursif dalam pembuatan program Membedakan rekursif dan iteratif

Outline Materi Definisi rekursif Deklarasi rekursif Penggunaan rekursif Analisa rekursif dan iterasi

Definisi Rekursif Method yang memanggil dirinya sendiri Berguna untuk teknik pemrograman Lebih memudahkan pemecahan masalah tertentu Contoh: Faktorial 0! = 1; n! = n x (n – 1)!; n > 0 Memerlukan kondisi penghentian (stopping condition atau base case)

Deklarasi Rekursif Contoh deklarasi rekursif: public static long factorial(int n) { if( n == 0 )// stopping condition / base case return 1; else return n * factorial(n-1); // recursive call } Pemanggilan factorial (diri sendiri)  rekursif Dipanggil sampai mencapai kondisi n == 0 (stopping condition atau base case)

Penggunaan Rekursif

Penggunaan Rekursif factorial(4) return 4 * factorial(3) Step 0: executes factorial(4) Step 9: return 24 return 4 * factorial(3) Step 1: executes factorial(3) Step 8: return 6 return 3 * factorial(2) Step 2: executes factorial(2) Step 7: return 2 return 2 * factorial(1) Step 3: executes factorial(1) Step 6: return 1 return 1 * factorial(0) Step 4: executes factorial(0) Step 5: return 1 return 1

Penggunaan Rekursif ? Faktorial lebih baik menggunakan loop int hasil = 1; if(bil>1) { for(int i=2; i<=bil; i++) hasil *= i; } Faktorial baik dalam merepresentasikan rekursif

Penggunaan Rekursif Fibonacci: Dimulai dari 0 dan 1 Bilangan berikutnya penjumlahan dari 2 bilangan sebelumnya fib(0) = 0 fib(1) = 1 fib(index) = fib(index – 2) + fib(index – 1); index > =2 Index 1 2 3 4 5 6 7 8 9 10 11 Seri 13 21 34 55 89

Penggunaan Rekursif

Penggunaan Rekursif

Penggunaan Rekursif Palindrom: kata, frasa, bilangan, atau kalimat yang dibaca sama dari 2 arah pembacaan Contoh: C I V I C L E V E L R O T A T O R Was it a rat I saW 58285 20-02-2002

Penggunaan Rekursif

Penggunaan Rekursif

Penggunaan Rekursif Method isPalindrome pertama mengecek apakah string tersebut palindrom Method isPalindrome kedua mengecek apakah substring tersebut palindrom Teknik mendeklarasikan method bantuan untuk rekursif  recursive helper method Berguna untuk string dan array

Rekursif vs Iteratif Rekursif: Bentuk alternatif kontrol program Repetisi tanpa loop Memanggil methodnya sendiri Memerlukan pernyataan seleksi (if) untuk base case/stopping condition Memerlukan memori lebih banyak Waktu eksekusi lebih lambat Terkadang lebih jelas, sederhana dibandingkan iteratif Iteratif: Merupakan struktur kontrol (fundamental dari bahasa pemrograman) Spesifikasi loop body Dikontrol oleh loop-control-structure Memori lebih sedikit dan waktu proses lebih cepat Permasalahan yang dapat diselesaikan oleh rekursif pasti bisa diselesaikan oleh iteratif

Did You Know? Infinite recursion (rekursif tak terhingga) terjadi jika tidak ada stopping condition atau base case Contoh pada Faktorial public static long factorial(int n) { return n * factorial(n-1); // recursive call } Menyebabkan StackOverflowError Solusi if( n==0 ) // stopping condition / base case return 1;

Advanced Learning Tower of Hanoi: contoh rekursif klasik Mudah diselesaikan dengan rekursif Terdapat 3 menara (tower) dan beberapa cakram (disk) dengan ukuran berbeda Disk atas harus lebih besar daripada disk bawah Semua disk berawal dari tower pertama Hanya 1 disk yang boleh dipindahkan dalam sekali waktu Semua disk harus dipindahkan ke tower akhir

Advanced Learning

Advanced Learning

Advanced Learning

Referensi Introduction to Java Programming. 7ed. Liang. 2009. ch 20 Java Software Solutions. 5ed. Lewis & Loftus. 2007. ch 11 Fibonacci. http://en.literateprograms.org/Fibonacci_numbers_(Java) Palindrome. http://en.wikipedia.org/wiki/Palindrome Towers of Hanoi. http://www.codeproject.com/KB/graphics/Towers_of_Hanoi/Towers_of_Hanoi.jpg http://www.codeproject.com/KB/graphics/Towers_of_Hanoi.aspx http://www.java2s.com/Tutorial/Java/0100__Class-Definition/TheTowersofHanoi.htm http://pirate.shu.edu/~wachsmut/Java/Hanoi/index.html