REKURSIF Learning Outcomes Pada akhir pertemuan ini mahasiswa
- Slides: 21
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) 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 * factorial(1) Step 3: executes factorial(1) Step 6: return 1 * factorial(0) Step 5: return 1 Step 4: executes factorial(0) 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: Index 0 1 2 3 4 5 6 7 8 9 10 11 Seri 0 1 1 2 3 5 8 13 21 34 55 89 • 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
Penggunaan Rekursif
Penggunaan Rekursif
Penggunaan Rekursif • Palindrom: kata, frasa, bilangan, atau kalimat yang dibaca sama dari 2 arah pembacaan • Contoh: –CIVIC –LEVEL –ROTATOR – Was it a rat I sa. W – 58285 – 20 -02 -2002
Penggunaan Rekursif
Penggunaan Rekursif
Penggunaan Rekursif • Method is. Palindrome pertama mengecek apakah string tersebut palindrom • Method is. Palindrome 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 Stack. Overflow. Error • 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. 7 ed. Liang. 2009. ch 20 • Java Software Solutions. 5 ed. 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/Tow ers_of_Hanoi. jpg – http: //www. codeproject. com/KB/graphics/Towers_of_Hanoi. aspx – http: //www. java 2 s. com/Tutorial/Java/0100__Class. Definition/The. Towersof. Hanoi. htm – http: //pirate. shu. edu/~wachsmut/Java/Hanoi/index. html
- Pada pertemuan kali ini kita
- Tester
- Mahasiswa takut dosen dosen takut rektor
- Learning outcomes example
- Learning outcomes of water cycle
- Notice lesson plan
- Swot analza
- Nursery rhymes importance
- Planning goals and learning outcomes
- Photosynthesis takes place in
- Photosynthesis learning objectives
- Ncbts
- Learning objectives of linear equations in one variable
- Learning outcome generator
- Objectives of direct and indirect speech
- Purpose of learning outcomes
- Objectives of input and output devices
- Ib psychology learning outcomes
- Essay writing learning outcomes
- Learning outcomes of holy week
- Holy week learning outcomes
- Head start early learning outcomes framework