Latihan 2

Latihan: Pangkat & Jumlah Digit

Implementasikan dua fungsi rekursif: menghitung pangkat bilangan dan menjumlahkan semua digit suatu angka.

Studi Kasus

Kamu diminta membuat dua fungsi rekursif yang sering muncul dalam soal-soal pemrograman:

  1. Pangkat — menghitung basis dipangkatkan eksponen tanpa menggunakan pow() dari library.
  2. Jumlah Digit — menjumlahkan semua digit penyusun sebuah angka bulat.

Keduanya memiliki pola rekursif yang berbeda, sehingga baik untuk melatih fleksibilitas berpikir rekursif.

Pola Rekursif

Pangkat:

pangkat(2, 4)
= 2 × pangkat(2, 3)
= 2 × 2 × pangkat(2, 2)
= 2 × 2 × 2 × pangkat(2, 1)
= 2 × 2 × 2 × 2 × pangkat(2, 0)
= 2 × 2 × 2 × 2 × 1  // base case!
= 16

Jumlah Digit:

jumlahDigit(1234)
= (1234 % 10) + jumlahDigit(1234 / 10)
= 4 + jumlahDigit(123)
= 4 + 3 + jumlahDigit(12)
= 4 + 3 + 2 + jumlahDigit(1)
= 4 + 3 + 2 + 1 + jumlahDigit(0)
= 4 + 3 + 2 + 1 + 0  // base case!
= 10

Yang Harus Dilakukan

  1. pangkat — implementasikan fungsi rekursif: base case eksponen == 0 kembalikan 1, rekursif kembalikan basis * pangkat(basis, eksponen - 1).
  2. jumlahDigit — implementasikan fungsi rekursif: base case n == 0 kembalikan 0, rekursif kembalikan (n % 10) + jumlahDigit(n / 10).
  3. main sudah ditulis lengkap — jalankan dan pastikan output sesuai contoh.

Contoh Output yang Diharapkan

=== Tabel Pangkat 2 ===
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256

=== Jumlah Digit ===
jumlahDigit(12) = 3
jumlahDigit(345) = 12
jumlahDigit(1024) = 7
jumlahDigit(99999) = 45