Buatlah program python untuk menampilkan deret faktorial dengan memanfaatkan fungsi

Berikut ini adalah pertanyaan dari typeyups pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Buatlah program python untuk menampilkan deret faktorial dengan memanfaatkan fungsi rekursif!​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Kode Program: faktorial.py

def faktorial(n) -> int:
   if n <= 1:
       return 1
   return n * faktorial(n-1)
### Test
for n in range (0, 11):
   print(f'{n:2d}! = {faktorial(n)}')
______________

Output Hasil Eksekusi

\begin{aligned}&\texttt{ 0!\ = 1}\\&\texttt{ 1!\ = 1}\\&\texttt{ 2!\ = 2}\\&\texttt{ 3!\ = 6}\\&\texttt{ 4!\ = 24}\\&\texttt{ 5!\ = 120}\\&\texttt{ 6!\ = 720}\\&\texttt{ 7!\ = 5040}\\&\texttt{ 8!\ = 40320}\\&\texttt{ 9!\ = 362880}\\&\texttt{10!\ = 3628800}\end{aligned}
______________

Pembahasan

Dengan memperhatikan kasus khusus 0! = 1, definisi n! secara rekursif adalah:

\begin{aligned}n!=\begin{cases}1\,,&{\rm jika\ }0 \le n \le 1\\n\cdot(n-1)!\,,\!\!\!&{\rm jika\ }n > 1\end{cases}\end{aligned}

Maka, translasi dari notasi matematis tersebut menjadi fungsi rekursif pada Python adalah:
def faktorial(n) -> int:
   if n <= 1:
       return 1
   return n * faktorial(n-1)

Kita tidak perlu khawatir bahwa fungsi akan melakukan rekurens tak hingga, karena dengan nilai parameter n lebih dari 1, fungsi \tt faktorial(n)akan berhenti pada base casen = 1.

Misalkan n = 5, penelusuran eksekusi faktorial(5) adalah:
faktorial(5)
 ⇒ 5 * faktorial(4)
 ⇒ 5 * (4 * faktorial(3))
 ⇒ 5 * (4 * (3 * faktorial(2)))
 ⇒ 5 * (4 * (3 * (2 * faktorial(1))))
 ⇒ 5 * (4 * (3 * (2 * 1)))
 ⇒ 5 * (4 * (3 * 2))
 ⇒ 5 * (4 * 6)
 ⇒ 5 * 24
 ⇒ 120

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Mon, 20 Jun 22