Menu
CoddyTech

Fungsi Rekursif

Pelajaran 8 dari 17 dalam kursus Fungsi dalam C di Coddy.

Fungsi rekursif adalah fungsi yang terus memanggil dirinya sendiri.

Contoh terkenal dari fungsi ini adalah saat kita perlu menghitung faktorial sebuah bilangan. 

Rumusnya adalah n!=1×2×…×n. 

Untuk mencari faktorial suatu bilangan, kita perlu mengalikan semua bilangan dari 1 hingga n. 

Contohnya:

4!=1×2×3×4=24

Kita bisa mendefinisikan fungsi rekursif seperti ini:

int fact(int n) {
   if (n == 1) {
       return 1;
   }
   return n * fact(n - 1);
}

Bayangkan kamu memiliki satu set tangga. Untuk mulai menaiki tangga, kamu mulai dari lantai dasar (anak tangga 0). Dalam fungsi rekursif, titik awal ini disebut kasus dasar. Di sinilah fungsi berhenti memanggil dirinya sendiri dan mengembalikan sebuah nilai.

Dalam contoh faktorial, kasus dasarnya adalah saat nnn (bilangan tersebut) bernilai 1. Faktorial dari 1 adalah 1, jadi fungsi mengembalikan 1 tanpa perhitungan lebih lanjut.

Pertama, dilakukan pemeriksaan untuk mengetahui apakah bilangannya sama dengan satu:

if (n == 1) {
   return 1;
}

Pemanggilan Rekursif:

 

Untuk bilangan apa pun yang lebih besar dari 1, fungsi mengandalkan versi dirinya yang lebih kecil. Fungsi memanggil dirinya sendiri dengan n−1 (satu anak tangga di bawah). Inilah pemanggilan rekursif:

return n * fact(n - 1);

Bayangkan seperti menaiki tangga. Untuk mencapai anak tangga 5, kamu harus mencapai anak tangga 4 terlebih dahulu, lalu anak tangga 3, dan seterusnya. Setiap pemanggilan rekursif seperti melangkah satu anak tangga.

challenge icon

Tantangan

Mudah

Tentukan Fungsi Rekursif:

  • Tulis fungsi bernama countdown yang menerima parameter integer n.
  • Di dalam fungsi ini, tampilkan nilai n saat ini.
  • Jika n lebih besar dari 0, panggil countdown secara rekursif dengan n - 1.
  • Jika n adalah 0 atau kurang, tampilkan "Blastoff!".

Contoh: Jika angkanya 3, output-nya akan seperti ini:

3
2
1
Blastoff!

 

Coba sendiri

#include <stdio.h>

// Definisikan fungsi countdown


int main() {
  int start = 5;
  // Panggil fungsi tersebut
  
 
  return 0;
}

Semua pelajaran di Fungsi dalam C

Latihan sendiri: Compiler C online