Rekursi dalam Pemrograman Fungsional

Konsep Paradigma Pemrograman

Eleanor Thomas

Senior Data Analytics Engineer

Apa itu rekursi?

  • Fungsi rekursif: fungsi yang memanggil dirinya sendiri
  • Harus punya kondisi terminasi (base case)
  • Juga berisi pemanggilan rekursif dengan input yang dimodifikasi
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
Konsep Paradigma Pemrograman

Mengapa pakai rekursi?

  • Beberapa masalah lebih mudah didefinisikan secara rekursif
  • Bilangan Fibonacci:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Konsep Paradigma Pemrograman

Contoh lain rekursi

Sistem berkas

  • Menelusuri sistem berkas
Konsep Paradigma Pemrograman

Contoh lain rekursi

Sistem berkas; metode pengurutan

  • Menelusuri sistem berkas
  • Algoritma pengurutan tertentu, seperti Merge Sort
Konsep Paradigma Pemrograman

Contoh lain rekursi

Sistem berkas; metode pengurutan; struktur data

  • Menelusuri sistem berkas
  • Algoritma pengurutan tertentu, seperti Merge Sort
  • Berbagai struktur data didefinisikan secara rekursif
Konsep Paradigma Pemrograman

Rekursi vs iterasi

  • Setiap fungsi rekursif bisa ditulis secara iteratif
  • Fungsi iteratif memakai loop, bukan pemanggilan rekursif
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Konsep Paradigma Pemrograman

Ayo berlatih!

Konsep Paradigma Pemrograman

Preparing Video For Download...