Tulisan ini saya buat setelah membaca dan menjawab pertanyaan yang muncul di Grup Facebook BELAJAR PROGRAM (coding).

Di sana muncul pertanyaan untuk membuat program dalam bahasa Python untuk membuat deret bilangan dengan menggunakan fungsi rekursif.

Adapun deret bilangan yang harus diselesaikan adalah sbb:

  • 1, 2, 3, 4, 5, 6, 7, 8, 9, … dst.
  • 1, 2, 4, 8, 16, 32, 64, 128, …dst.
  • 1, 4, 2, 8, 4, 16, 8, 32, 16, 64, 32, …dst.

Sebelum masuk ke bagian program, kita perlu tahu dulu apa yang dimaksud dengan fungsi rekursif.

Fungsi Rekursif adalah fungsi yang memanggil dirinya sendiri. Gampangnya seperti itu.

Karena fungsi tersebut memanggil dirinya sendiri, maka diperlukan pengkondisi yang bertugas untuk menghentikan pemanggilan. Tanpa pengkondisi tersebut, maka fungsi tersebut akan terus-menerus memanggil dirinya sendiri sampai stack overflow.

Setiap kali fungsi dipanggil, maka akan dialokasikan memori (stack memory) untuk menyimpan parameter dan variabel lokal. Jika fungsi memanggil dirinya sendiri tanpa batas, maka akan dialokasikan memori setiap kali fungsi tersebut dipanggil hingga akhirnya stack memory melampaui batas (overflow).

Perhatikan contoh fungsi berikut ini. Fungsi akan terus-menerus memanggil dirinya sendiri tanpa batas. Jika dieksekusi, maka pasti akan menghasilkan kesalahan.

int fungsi()
{
  return fungsi();
}

Nah, langsung saja ya, kita akan selesaikan dulu deret-deret di atas menggunakan bahasa C.

Program Rekursi 1 – Bahasa C

#include <stdio.h>

/*******************************************
   Fungsi Rekursif untuk f(n) = f(n-1) + 1
********************************************/
unsigned int deret1(int n)
{
  if (n == 1)
    return 1;
  else
    return (deret1(n-1) + 1);
}

int main()
{
  int x;

  for (x=1; x<=10; x++)
    printf("%4d", deret1(x));

  return 0;
}

Hasil eksekusi program diatas adalah sebagai berikut:

Fungsi Rekursif 1 dalam bahasa C dan hasil eksekusinya

Program Rekursi 2 – Bahasa C

#include <stdio.h>

/*******************************************
   Fungsi Rekursif untuk f(n) = f(n-1) * 2
********************************************/
unsigned int deret2(int n)
{
  if (n == 1)
    return 1;
  else
    return (deret2(n-1) * 2);
}

int main()
{
  int x;

  for (x=1; x<=10; x++)
    printf("%5d", deret2(x));

  return 0;
}

Hasil eksekusi program Rekursi 2 adalah sebagai berikut.

Fungsi Rekursif 2 dalam bahasa C dan hasil eksekusinya

Fungsi Rekursif 3 – Bahasa C

#include <stdio.h>

/*******************************************
   Fungsi Rekursif untuk f(n) = f(n-2) * 2
********************************************/
unsigned int deret3(int n)
{
  if (n == 1)
    return 1;
  if (n == 2)
    return 4;
  return (deret3(n-2) * 2);
}

int main()
{
  int x;

  for (x=1; x<=15; x++)
    printf("%5d", deret3(x));

  return 0;
}

Hasil eksekusi program Rekursi 3 adalah sebagai berikut.

FYI, untuk menguji ketiga program C diatas, saya menggunakan TCC (Tiny C Compiler). TCC bisa menjalankan kode program C tanpa melalui proses kompilasi. Jadi cukup menyenangkan untuk digunakan sebagai teman coding C untuk menguji program secara cepat.

Nah, sekarang kita akan membuat program rekursi untuk versi bahasa Python.

Program Rekursi 1 – Bahasa Python

def fungsi_rekursi1(n):
    if n == 1:
        return 1
    return fungsi_rekursi1(n-1) + 1

for i in range(1,11):
    print ("%3d" % fungsi_rekursi1(i), end='')
    
print ("\nSelesai.")

Hasil eksekusi dari kode program Rekursi 1 versi bahasa Python adalah sebagai berikut.

Tampilan program Rekursi 1 versi Python

Program Rekursi 2 – Bahasa Python

def fungsi_rekursi2(n):
    if n == 1:
        return 1
    return fungsi_rekursi2(n-1) * 2

for i in range(1,11):
    print ("%5d" % fungsi_rekursi2(i), end='')
    
print ("\nSelesai.")

Hasil eksekusi dari program Rekursi 2 versi Python adalah sebagai berikut.

Tampilan program Rekursi 2 versi Python

Program Rekursi 3 – Bahasa Python

def fungsi_rekursi3(n):
    if n == 1:
        return 1
    if n == 2:
        return 4
    return fungsi_rekursi3(n-2) * 2

for i in range(1, 15):
    print ("%4d" % fungsi_rekursi3(i), end="")
    
print ("\nSelesai.")

Hasil eksekusi program Rekursi 3 versi Python adalah sebagai berikut.

Program Rekursi 3 versi Python

Untuk pemrograman Python, saya menggunakan Thonny, IDE Python yang sederhana dan sangat cocok untuk Pemula.

Pelatihan dan Bimbingan Pemrograman

Jika Anda membutuhkan bantuan dalam mempelajari atau menyelesaikan masalah pemrograman, silakan menghubungi melalui Whatsapp 0882-3560-7047.

Baca juga tulisan-tulisan yang lain tentang pemrograman melalui link berikut ini:

https://telinks.wordpress.com/category/softwareprogramming/

Semoga bermanfaat. Selamat belajar. Selamat berkarya.