SlideShare a Scribd company logo
3
Most read
4
Most read
13
Most read
REKURSIF
ALGORITMA PEMROGRAMAN II
ALGORITMA REKURSIF
DEFINISI FUNGSI DEKLARASI
Pendahuluan
•Rekursi adalah sebuah teknik pengulangan yang
melibatkan dirinya sendiri.
•Dalam materi ini, rekursif digunakan dalam sebuah
fungsi.
•Umumnya proses rekursif ini berguna dalam permodelan
matematika pada sebuah program
Fungsi Rekursif
•Banyak fungsi matematis yang bisa didefinisikan sebagai
rekursif. Contoh:
1. faktorial
2. fibonacci
3. fourier
4. dll
Fungsi Rekursif
•Pada pendahuluan dijelaskan bahwa fungsi rekursif akan
melibatkan dirinya sendiri.
•Maksudnya: Pada pemrograman, fungsi akan
mengembalikan sebuah nilai. Dalam rekursif, hasil
kembalian fungsi dapat berupa nilai atau operasi
berikutnya dari fungsi itu sendiri sampai mencapai
kondisi tertentu.
Fungsi Rekursif
• Fungsi rekursif: Di dalamnya terdapat pernyataan yang memanggil
dirinya sendiri.
• Berguna untuk memecahkan masalah yang dapat didefinisikan secara
rekursif pula.
• n faktorial atau n! = n * n-1 * n-2 * …. * 3 * 2 * 1, dan didefiniskan bahwa
0! = 1
• Contoh:
 3! = 3 * 2 * 1
 4! = 4 * 3 * 2 * 1
 4! = 4 * 3!
 n! = n * (n-1)!
Fungsi Rekursif
• Faktorial (n) atau n! didefinisikan sebagai berikut :
jika n = 0, n! = 1
jika n > 0, n! = n * (n-1)!
4! = 4 * 3!
3! = 3 * 2!
2! = 2 * 1!
1! = 1* 0!
0! = 1
Jadi: 4! = 4*3*2*1= 24
Fungsi Rekursif
• Contoh perhitungan 5 faktorial
• 5!
• (5 * 4!)
• (5 * (4 *3!))
• (5 * (4 * (3 * 2!)))
• (5 * (4 * (3 * (2 * 1!))))
• (5 * (4 * (3 * (2 * (1 * 0!)))))
• (5 * (4 * (3 * (2 * (1 * 1)))))
• (5 * (4 * (3 * (2 * 1))))
• (5 * (4 * (3 * 2)))
• (5 * (4 * 6 ))
• (5 * 24)
• 120
Fungsi Rekursif
• Fungsi rekursif mempunyai dua komponen yaitu:
– Base case:
Mengembalikan nilai tanpa melakukan pemanggilan
rekursi berikutnya. Rekursi berakhir jika base case
dijumpai/dipenuhi
– Recursion call / Reduction step:
Memanggil fungsi rekursif di dalam fungsi rekursif di atas
Menghubungkan sebuah fungsi rekursif dengan fungsi
rekursif di dalamnya Biasanya memiliki keyword return
untuk mengembalikan nilai ke fungsi yang memanggilnya
Fungsi Iteratif
• 4! = 4*3! = 4*3*2! = 4*3*2*1! = 4*3*2*1 = 24
// iteratif dekremental
long faktorialIteratifDec(long n)
mulai
long i, faktorial = 1;
for(i=n; i>=1; i--)
faktorial *= i;
return faktorial;
selesai
tutup
4! = 1*2*3*4 = 24
// iteratif inkremental
long faktorialIteratifInc(long n){
mulai
long i, faktorial = 1;
for(i=1; i<=n; i++)
faktorial *= i;
return faktorial;
selesai tutup
RekursifVs Iteratif
Contoh:
• Faktorial - Rekursif
long faktorial(long n)
mulai
if(n==0)
return (1);
else
return(n*faktorial(n-1));
selesai
tutup
RekursifVs Iteratif
Contoh:
• Faktorial - Iteratif
//decremental
long faktorial(long n)
mulai
long i, faktorial = 1;
for(i=n; i>=1; i--)
faktorial *= i;
return faktorial;
selesai
tutup
RekursifVs Iteratif
Rekursif
Pengulangan dengan struktur seleksi (ifelse) dan pemanggilan
fungsi (dirinya sendiri) -> rekursi
Pengulangan berhenti saat base case dijumpai/dipenuhi
(konvergen terhadap base case)
Pengulangan tanpa henti jika base case tidak pernah
dijumpai/dipenuhi (tidak konvergen terhadap base case)
Biaya proses lebih tinggi dengan pemanggilan banyak fungsi
(butuh memori lebih besar & kerja prosesor lebih tinggi)
Terbaca lebih jelas, model lebih dekat dengan masalah (contoh:
faktorial, fibonacci)
RekursifVs Iteratif
Iteratif
Pengulangan dengan struktur repetisi (for/while)
Pengulangan berhenti saat kondisi pengulangan bernilai salah
(false)
Pengulangan tanpa henti jika kondisi pengulangan selalu benar
Biaya proses lebih rendah (kebutuhan memori lebih kecil & kerja
prosesor lebih rendah) karena proses pengulangan berada
dalam satu fungsi
Terbaca kurang jelas, model kurang dekat dengan masalah
(contoh: faktorial, fibonacci)
Kekurangan Rekursif
Meskipun penulisan program dengan cara rekursif bisa
lebih jelas dan pendek, namun fungsi rekursif
memerlukan :
– Memori yang lebih banyak untuk mengaktifkan stack
(memori yang digunakan untuk pemanggilan fungsi).
– Waktu lebih lama untuk menjejaki setiap rekursi melalui
stack.
Bilangan Fibonacci
•Urutan bilangan 0, 1, 1, 2, 3, 5, 8, 13 … disebut bilangan
Fibonacci.
•Hubungan antara satu angka dengan angka berikutnya
didefinisikan secara rekursif sebagai berikut :
– Fib(n) = n, jika n = 0 atau 1
– Fib(n) = Fib(n-2) + Fib(n-1) , jika n >= 2
Bilangan Fibonacci
• Misalkan jika ditanya berapa suku ke-4 dari barisan fibonachi?
n = 4
fibo(4) =
= fibo(3) + fibo(2)
= (fibo(2) + fibo(1)) + (fibo(1) + fibo(0))
= ((fibo(1) + fibo(0)) + 1) + (1 + 0)
= ((1 + 0) + 1) + 1
= (1 + 1) + 1
= 2 + 1
= 3
Bilangan Fibonacci
int Fib(int n)
mulai
int f;
if(n==0)
f = 0;
else if(n==1)
f = 1;
else
f = Fib(n-2) + Fib(n-1);
return f;
selesai
tutup
Latihan!
•Implementasikan algoritma rekursi untuk fungsi
fibonaci dan rekursif!
Terima Kasih

More Related Content

PPTX
Infeksi Nosokomial
PPTX
Kelas X - Teknologi Informasi dan Komunikasi.pptx
PPT
Perangkat input dan output.ppt 2
PPT
Gerbang Logika
PDF
Berpikir Komputasional Kelas 10
PPTX
Pertemuan 1 - Pengenalan Informatika Kelas XI
PPT
Understanding IT Governance and Risk Management
PDF
Analisis Algoritma - Notasi Asimptotik
Infeksi Nosokomial
Kelas X - Teknologi Informasi dan Komunikasi.pptx
Perangkat input dan output.ppt 2
Gerbang Logika
Berpikir Komputasional Kelas 10
Pertemuan 1 - Pengenalan Informatika Kelas XI
Understanding IT Governance and Risk Management
Analisis Algoritma - Notasi Asimptotik

What's hot (20)

PDF
Matematika Diskrit - 11 kompleksitas algoritma - 03
PPTX
Turunan numerik
PDF
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
PPTX
Jenis dan proses interupsi
PDF
Algoritma dan Struktur Data - Rekursif
PPT
Bilangan kompleks lengkap
PPTX
Metode numerik pada persamaan diferensial (new)
PPTX
Pertemuan 3 turunan dan aturan rantai
PDF
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
PPTX
Matematika Diskrit Relasi Rekursif
PPTX
Perbandingan algoritma brute force , divide and conquer
PPTX
Sorting ppt
PPTX
Bab 5 penyederhanaan fungsi boolean
PDF
Basic Counting
PPTX
PPTX
Pertemuan 9 pengalamatan
DOCX
Matriks elementer
PPTX
Tabel Kebenaran pernyataan, Tautologi, kontradiksi, dan kontingen
PPTX
Contoh soal dan penyelesaian metode biseksi
Matematika Diskrit - 11 kompleksitas algoritma - 03
Turunan numerik
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Jenis dan proses interupsi
Algoritma dan Struktur Data - Rekursif
Bilangan kompleks lengkap
Metode numerik pada persamaan diferensial (new)
Pertemuan 3 turunan dan aturan rantai
Algoritma dan Pemrograman C++ (Pseudocode & Flowchart)
Matematika Diskrit Relasi Rekursif
Perbandingan algoritma brute force , divide and conquer
Sorting ppt
Bab 5 penyederhanaan fungsi boolean
Basic Counting
Pertemuan 9 pengalamatan
Matriks elementer
Tabel Kebenaran pernyataan, Tautologi, kontradiksi, dan kontingen
Contoh soal dan penyelesaian metode biseksi
Ad

Similar to Algoritma rekursif (20)

PPTX
09 pd fungsi rekursif
PPTX
Materi Rekrusif dengan Python PPTX (materi kuliah)
PDF
Algoritma dan Strukutr Data - rekursi
PPTX
8 Rekursif
PPTX
PPT-UEU-Bahasa-Pemrograman-Pertemuan-11.pptx
PPTX
Presentation
PPT
Bab 8 rekursif
PPTX
13_Rekursif.pptx
DOC
Dasar Pemrograman materi kuliah
PPTX
explanation of the concept of function in algorithms
PPT
Javascript function
PPT
Tistrukdat9
PPTX
Python 101: Recursion
PDF
Materi Algortma dan Pemrograman - Rekursif.pdf
PPTX
TUGAS PPT- PEMROG DELPHI-YAN KURNIAWAN.pptx
PPTX
19175016 - Sekar Setyaningtyas.pptx - Fungi (def) Python
PPTX
Function dalam PHP
PPTX
Pertemuan 9 (rekursife)
DOCX
program pascal kereta
PDF
Function pada PHP
09 pd fungsi rekursif
Materi Rekrusif dengan Python PPTX (materi kuliah)
Algoritma dan Strukutr Data - rekursi
8 Rekursif
PPT-UEU-Bahasa-Pemrograman-Pertemuan-11.pptx
Presentation
Bab 8 rekursif
13_Rekursif.pptx
Dasar Pemrograman materi kuliah
explanation of the concept of function in algorithms
Javascript function
Tistrukdat9
Python 101: Recursion
Materi Algortma dan Pemrograman - Rekursif.pdf
TUGAS PPT- PEMROG DELPHI-YAN KURNIAWAN.pptx
19175016 - Sekar Setyaningtyas.pptx - Fungi (def) Python
Function dalam PHP
Pertemuan 9 (rekursife)
program pascal kereta
Function pada PHP
Ad

More from Universitas Teknokrat Indonesia (20)

PPTX
Network Hardware.pptx Administrasi Jaringan Komputer
PPTX
ARP Table.pptx Administrasi Jaringan Komputer
PPTX
ETHERNET AND SWITCH CONCEPT. Aadministrasi Jaringan Komputer
PPTX
23 - Ethics and Law in Information Security.pptx
PPTX
22 - Security Incident Management.pptx -
PPTX
06. Konfigurasi Routing.pptx Administrasi Jaringan
PPTX
21 - Digital Forensic Analysis.pptx Keamanan Informasi
PPTX
20 - Modern Cyber Attacks.pptx Keamanan Infrmasi
PPTX
19 - Physical Security in Information Security.pptx
PPTX
18 - Hardware Security.pptx - keamanan infrmasi
PPTX
04. JARINGAN NIRKABEL - administrasi jaringan komputer.pptx
PPTX
Chapter 2 - Autentikasi, Autorisasi, Accoaunting.pptx
PPTX
14 - Mobile dan IoT Security - keamnan informasi.pptx
PDF
Chapter 4 - Firewall.pptx.pdf...........
PPTX
Chapter 5 - Enkripsi dan Kriptograpi.pptx
PPTX
Chapter 3 - Network Thread and Attack Najib Muhammad
PPTX
Chapter 1 - Network Security.pptx
PPTX
6 - Wireless and Cloud Computing Security (english).pptx
PPTX
MANAGEMEN RESIKO KEAMANAN INFORMASI (english).pptx
PPTX
MANAGEMEN RESIKO KEAMANAN INFORMASI.pptx
Network Hardware.pptx Administrasi Jaringan Komputer
ARP Table.pptx Administrasi Jaringan Komputer
ETHERNET AND SWITCH CONCEPT. Aadministrasi Jaringan Komputer
23 - Ethics and Law in Information Security.pptx
22 - Security Incident Management.pptx -
06. Konfigurasi Routing.pptx Administrasi Jaringan
21 - Digital Forensic Analysis.pptx Keamanan Informasi
20 - Modern Cyber Attacks.pptx Keamanan Infrmasi
19 - Physical Security in Information Security.pptx
18 - Hardware Security.pptx - keamanan infrmasi
04. JARINGAN NIRKABEL - administrasi jaringan komputer.pptx
Chapter 2 - Autentikasi, Autorisasi, Accoaunting.pptx
14 - Mobile dan IoT Security - keamnan informasi.pptx
Chapter 4 - Firewall.pptx.pdf...........
Chapter 5 - Enkripsi dan Kriptograpi.pptx
Chapter 3 - Network Thread and Attack Najib Muhammad
Chapter 1 - Network Security.pptx
6 - Wireless and Cloud Computing Security (english).pptx
MANAGEMEN RESIKO KEAMANAN INFORMASI (english).pptx
MANAGEMEN RESIKO KEAMANAN INFORMASI.pptx

Recently uploaded (8)

PPTX
Implementasi Microservices pada Manufaktur
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PPTX
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPTX
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
Implementasi Microservices pada Manufaktur
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
pengantar-sistem-informasi manajemen.ppt
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL

Algoritma rekursif

  • 3. Pendahuluan •Rekursi adalah sebuah teknik pengulangan yang melibatkan dirinya sendiri. •Dalam materi ini, rekursif digunakan dalam sebuah fungsi. •Umumnya proses rekursif ini berguna dalam permodelan matematika pada sebuah program
  • 4. Fungsi Rekursif •Banyak fungsi matematis yang bisa didefinisikan sebagai rekursif. Contoh: 1. faktorial 2. fibonacci 3. fourier 4. dll
  • 5. Fungsi Rekursif •Pada pendahuluan dijelaskan bahwa fungsi rekursif akan melibatkan dirinya sendiri. •Maksudnya: Pada pemrograman, fungsi akan mengembalikan sebuah nilai. Dalam rekursif, hasil kembalian fungsi dapat berupa nilai atau operasi berikutnya dari fungsi itu sendiri sampai mencapai kondisi tertentu.
  • 6. Fungsi Rekursif • Fungsi rekursif: Di dalamnya terdapat pernyataan yang memanggil dirinya sendiri. • Berguna untuk memecahkan masalah yang dapat didefinisikan secara rekursif pula. • n faktorial atau n! = n * n-1 * n-2 * …. * 3 * 2 * 1, dan didefiniskan bahwa 0! = 1 • Contoh:  3! = 3 * 2 * 1  4! = 4 * 3 * 2 * 1  4! = 4 * 3!  n! = n * (n-1)!
  • 7. Fungsi Rekursif • Faktorial (n) atau n! didefinisikan sebagai berikut : jika n = 0, n! = 1 jika n > 0, n! = n * (n-1)! 4! = 4 * 3! 3! = 3 * 2! 2! = 2 * 1! 1! = 1* 0! 0! = 1 Jadi: 4! = 4*3*2*1= 24
  • 8. Fungsi Rekursif • Contoh perhitungan 5 faktorial • 5! • (5 * 4!) • (5 * (4 *3!)) • (5 * (4 * (3 * 2!))) • (5 * (4 * (3 * (2 * 1!)))) • (5 * (4 * (3 * (2 * (1 * 0!))))) • (5 * (4 * (3 * (2 * (1 * 1))))) • (5 * (4 * (3 * (2 * 1)))) • (5 * (4 * (3 * 2))) • (5 * (4 * 6 )) • (5 * 24) • 120
  • 9. Fungsi Rekursif • Fungsi rekursif mempunyai dua komponen yaitu: – Base case: Mengembalikan nilai tanpa melakukan pemanggilan rekursi berikutnya. Rekursi berakhir jika base case dijumpai/dipenuhi – Recursion call / Reduction step: Memanggil fungsi rekursif di dalam fungsi rekursif di atas Menghubungkan sebuah fungsi rekursif dengan fungsi rekursif di dalamnya Biasanya memiliki keyword return untuk mengembalikan nilai ke fungsi yang memanggilnya
  • 10. Fungsi Iteratif • 4! = 4*3! = 4*3*2! = 4*3*2*1! = 4*3*2*1 = 24 // iteratif dekremental long faktorialIteratifDec(long n) mulai long i, faktorial = 1; for(i=n; i>=1; i--) faktorial *= i; return faktorial; selesai tutup 4! = 1*2*3*4 = 24 // iteratif inkremental long faktorialIteratifInc(long n){ mulai long i, faktorial = 1; for(i=1; i<=n; i++) faktorial *= i; return faktorial; selesai tutup
  • 11. RekursifVs Iteratif Contoh: • Faktorial - Rekursif long faktorial(long n) mulai if(n==0) return (1); else return(n*faktorial(n-1)); selesai tutup
  • 12. RekursifVs Iteratif Contoh: • Faktorial - Iteratif //decremental long faktorial(long n) mulai long i, faktorial = 1; for(i=n; i>=1; i--) faktorial *= i; return faktorial; selesai tutup
  • 13. RekursifVs Iteratif Rekursif Pengulangan dengan struktur seleksi (ifelse) dan pemanggilan fungsi (dirinya sendiri) -> rekursi Pengulangan berhenti saat base case dijumpai/dipenuhi (konvergen terhadap base case) Pengulangan tanpa henti jika base case tidak pernah dijumpai/dipenuhi (tidak konvergen terhadap base case) Biaya proses lebih tinggi dengan pemanggilan banyak fungsi (butuh memori lebih besar & kerja prosesor lebih tinggi) Terbaca lebih jelas, model lebih dekat dengan masalah (contoh: faktorial, fibonacci)
  • 14. RekursifVs Iteratif Iteratif Pengulangan dengan struktur repetisi (for/while) Pengulangan berhenti saat kondisi pengulangan bernilai salah (false) Pengulangan tanpa henti jika kondisi pengulangan selalu benar Biaya proses lebih rendah (kebutuhan memori lebih kecil & kerja prosesor lebih rendah) karena proses pengulangan berada dalam satu fungsi Terbaca kurang jelas, model kurang dekat dengan masalah (contoh: faktorial, fibonacci)
  • 15. Kekurangan Rekursif Meskipun penulisan program dengan cara rekursif bisa lebih jelas dan pendek, namun fungsi rekursif memerlukan : – Memori yang lebih banyak untuk mengaktifkan stack (memori yang digunakan untuk pemanggilan fungsi). – Waktu lebih lama untuk menjejaki setiap rekursi melalui stack.
  • 16. Bilangan Fibonacci •Urutan bilangan 0, 1, 1, 2, 3, 5, 8, 13 … disebut bilangan Fibonacci. •Hubungan antara satu angka dengan angka berikutnya didefinisikan secara rekursif sebagai berikut : – Fib(n) = n, jika n = 0 atau 1 – Fib(n) = Fib(n-2) + Fib(n-1) , jika n >= 2
  • 17. Bilangan Fibonacci • Misalkan jika ditanya berapa suku ke-4 dari barisan fibonachi? n = 4 fibo(4) = = fibo(3) + fibo(2) = (fibo(2) + fibo(1)) + (fibo(1) + fibo(0)) = ((fibo(1) + fibo(0)) + 1) + (1 + 0) = ((1 + 0) + 1) + 1 = (1 + 1) + 1 = 2 + 1 = 3
  • 18. Bilangan Fibonacci int Fib(int n) mulai int f; if(n==0) f = 0; else if(n==1) f = 1; else f = Fib(n-2) + Fib(n-1); return f; selesai tutup
  • 19. Latihan! •Implementasikan algoritma rekursi untuk fungsi fibonaci dan rekursif!