Latihan Kode Program Python: Fungsi Rekursif Menghitung Faktorial

Dalam latihan kode program bahasa Python kali ini kita akan membahas cara membuat fungsi rekursif untuk menghitung faktorial.


Soal Fungsi Rekursif untuk Menghitung Faktorial

Buatlah kode program dalam bahasa Python dalam bentuk fungsi rekursif untuk menghitung faktorial. Kode program menerima satu inputan angka dan menghasilkan jumlah faktorial.

Bonus: Buat juga versi dengan fungsi biasa (non-rekursif)

Berikut hasil yang di inginkan (1):

##  Program Python Menghitung Faktorial  ##
===========================================

Input angka: 7
7! = 5040

Berikut hasil yang di inginkan (2):

##  Program Python Menghitung Faktorial  ##
===========================================

Input angka: 10
10! = 3628800

Tips Membuat Fungsi Rekursif

Dalam programming, fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Untuk beberapa kasus, fungsi rekursif bisa lebih efisien, tapi penulisannya memang tidak mudah dan sering terjadi error / infinity loop.

Selain itu tidak semua masalah bisa dipecahkan dengan fungsi rekursif, menghitung faktorial menjadi contoh penerapan yang banyak dipakai untuk membuat fungsi rekursif.

Soal ini melatih pemahaman terkait logika matematika serta pembuatan function. Berikut tutorial pendahuluan yang bisa diikuti:

Dalam matematika, faktorial adalah hasil perkalian menaik dan ditulis dengan tanda seru " ! ". Sebagai contoh, 4 faktorial ditulis dengan 4!, dan nilainya adalah 1 * 2 * 3 * 4 = 24, atau 7 faktorial ditulis dengan 7! = 1 * 2 * 3 * 4 * 5 * 6 * 7 = 5040.


Kode Program Bahasa Python Fungsi Rekursif untuk Menghitung Faktorial

Berikut salah satu solusi kode program fungsi rekursif untuk menghitung faktorial dengan bahasa Python:

print('##  Program Python Menghitung Faktorial  ##')
print('===========================================')
print()

def hitungFaktorial(input): 
  if (input > 1):
    return input * hitungFaktorial(input-1)
  else:
    return 1;
  
angka = int(input('Input angka: '))

print(angka,'! = ',hitungFaktorial(angka),sep='')

Latihan Kode Program Python - Fungsi Rekursif Menghitung Faktorial

Untuk membaca kode program yang melibatkan function, sebaiknya mulai dari kode utama terlebih dahulu agar kita bisa melihat bagaimana fungsi tersebut dipanggil.

Di dalam kode utama, pada baris 11 program meminta inputan dari user berupa angka yang akan dihitung faktorialnya. Angka tersebut disimpan ke dalam variabel angka.

Kemudian di akhir baris 13 terdapat pemanggilan fungsi hitungFaktorial(angka). Disini angka dikirim sebagai argument ke fungsi hitungFaktorial().

Pendefinisian fungsi hitungFaktorial() ada di baris 5-9. Fungsi ini menerima nilai inputan ke dalam parameter input.

Di dalam fungsi hitungFaktorial(), terdapat kondisi if untuk memeriksa apakah parameter input bernilai lebih dari 1 atau tidak. Jika iya, jalankan perintah return input * hitungFaktorial(input-1). Inilah yang dimaksud dengan rekursif, dimana fungsi ini memanggil dirinya sendiri.

Jika ternyata kondisi if(input > 1) bernilai false, maka fungsi hitungFaktorial() akan mengembalikan angka 1.


Kode Program Python Menghitung Faktorial (dengan Fungsi Biasa)

Memahami cara kerja fungsi rekursif memang cukup sulit. Dalam prakteknya, saya pribadi juga sangat jarang menggunakan fungsi rekursif. Lebih baik tulis dalam fungsi biasa saja agar lebih mudah dipahami.

Sebagai alternatif, berikut kode program mencari faktorial menggunakan fungsi biasa (tanpa rekursif):

print('##  Program Python Menghitung Faktorial  ##')
print('===========================================')
print()

def hitungFaktorial(input):
  hasil = 1
  for i in range(1,angka+1):
    hasil = hasil * i
  return hasil

angka = int(input('Input angka: '))

print(angka,'! = ',hitungFaktorial(angka),sep='')

Di dalam fungsi hitungFaktorial(), kali ini cukup memakai perulangan for in untuk menghitung faktorial.

Perulangan for in di baris 7 akan mulai dari i = 1 hingga i = angka+1. Inilah maksud dari perintah range(1,angka+1). Dalam tiap perulangan, simpan hasil perkalian hasil * i ke dalam variabel hasil.

Terakhir, variabel hasil di-return agar nilainya sampai ke kode program utama.


Itulah kode program membuat fungsi rekursif (dan tanpa rekursif) untuk menghitung faktorial dalam bahasa Python. Semoga bisa bermanfaat.

Add Comment