Menu
CoddyTech

Dasar-Dasar Rekursi

Termasuk bagian Dasar-Dasar dalam perjalanan C di Coddy. Pelajaran 50 dari 63.

Rekursi adalah teknik ketika sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan masalah. Ini seperti menyelesaikan masalah besar dengan memecahnya menjadi masalah-masalah lebih kecil yang serupa.

Mari kita lihat fungsi rekursif sederhana yang menghitung faktorial:

int factorial(int n) {
    // Kasus dasar: faktorial dari 0 atau 1 adalah 1
    if (n <= 1) {
        return 1;
    }
    
    // Kasus rekursif: n! = n * (n-1)!
    return n * factorial(n - 1);
}

Setiap fungsi rekursif memerlukan:

  1. Kasus dasar untuk menghentikan rekursi
  2. Kasus rekursif yang bergerak menuju kasus dasar

Sebagai contoh, menghitung factorial(3):

  • factorial(3) memanggil factorial(2)
  • factorial(2) memanggil factorial(1)
  • factorial(1) mengembalikan 1 (kasus dasar)
  • factorial(2) menghasilkan 2 * 1 = 2
  • factorial(3) menghasilkan 3 * 2 = 6
challenge icon

Tantangan

Mudah

Buat fungsi bernama sumToN yang menggunakan rekursi untuk menghitung jumlah bilangan dari 1 hingga n.

Contoh:

  • sumToN(3) harus mengembalikan 6 (1 + 2 + 3)
  • sumToN(5) harus mengembalikan 15 (1 + 2 + 3 + 4 + 5)

Fungsimu harus:

  1. Menggunakan kasus dasar saat n adalah 1 (mengembalikan 1)
  2. Jika tidak, mengembalikan n ditambah jumlah bilangan dari 1 hingga (n-1)

Coba sendiri

#include <stdio.h>

// Tulis fungsi sumToN-mu di sini

// Jangan ubah fungsi main()
int main() {
    int n;
    scanf("%d", &n);
    
    printf("%d", sumToN(n));
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler C online