Rekursif - Algoritma dan Pemograman

Algoritma dan Pemograman

Rekursif adalah proses memanggil/menjalankan dirinya sendiri yang dilakukan oleh fungsi atau prosedur. Perlu diketahui bahwa cara kerja rekursif mirip seperti perulangan tanpa henti (infinite loop), oleh karena itu untuk menghentikan/mengakhiri rekursif diperlukan suatu kondisi agar rekursif dapat berhenti.

Rekursif merupakan algoritma lanjutan yang dibuat dengan menggabungkan beberapa algoritma. Dalam membuat rekursif setidaknya diperlukan dua algoritma sebagai komponen utamanya, yaitu fungsi atau prosedur dan pengkondisian (if) sebagai penghenti rekursif.

Berikut adalah contoh Rekursif beserta penulisannya dalam bahasa algoritmik dan beberapa bahasa pemograman :

1. Bahasa Algoritmik

{ Blok fungsi untuk rekursif }
function faktorial(angka : integer) -> integer

{ Kondisi berhenti }
if ((angka = 0) or (angka = 1)) then
    { Mengembalikan nilai faktorial }
    -> 1
else
    { Rekursif }
    -> angka * faktorial(angka-1)

{ Blok utama }

{ Deklarasi variabel blok utama }
angka : integer

{ Memberi masukan ke dalam variabel angka }
input(angka)

{ Menampilkan hasil rekursif }
output(faktorial(angka))

2. Bahasa Pascal

program faktorialAngka;

{ Blok fungsi untuk rekursif }
function faktorial(angka : integer) : integer;
begin
    { Kondisi berhenti }
    if ((angka = 0) or (angka = 1)) then
    begin
        { Mengembalikan nilai faktorial }
        faktorial := 1;
    end
    else
    begin
        { Rekursif }
        faktorial := angka * faktorial(angka-1);
    end;
end;

{ Blok Utama }

{ Deklarasi variabel blok utama }
var
    angka : integer;

begin
    writeln('Faktorial Angka');

    { Memberi masukan ke dalam variabel angka }
    write('Input nilai angka = ');
    readln(angka);

    { Menampilkan hasil rekursif }
    write('Faktorial dari angka ', angka, ' = ');
    writeln(faktorial(angka));
end.

3. Bahasa C++

#include <iostream>
using namespace std;

// Blok fungsi untuk rekursif
int faktorial(int angka)
{
    // Kondisi berhenti
    if ((angka == 0) || (angka == 1))
    {
        // Mengembalikan nilai faktorial
        return 1;
    } else
        {
            // Rekursif
            return (angka * faktorial(angka-1));
        }
}

// Blok utama
int main()
{
    cout << "Faktorial Angka\n";

    // Deklarasi variabel blok utama
    int angka;

    // Memberi masukan ke dalam variabel angka
    cout << "Input nilai angka = ";
    cin >> angka;

    // Menampilkan hasil rekursif
    cout << "Faktorial dari angka " << angka << " = ";
    cout << faktorial(angka) << endl;

    // Mengembalikan nilai
    return 0;
}

4. Bahasa Java

import java.util.Scanner;

public class Main
{
    // Blok method pengganti fungsi untuk rekursif
    public static int faktorial(int angka)
    {
        // Kondisi berhenti
        if ((angka == 0) || (angka == 1))
        {
            // Mengembalikan nilai faktorial
            return 1;
        } else
            {
                // Rekursif
                return (angka * faktorial(angka-1));
            }
    }

    // Blok utama
    public static void main(String[]args)
    {
        System.out.println("Faktorial Angka");

        // Deklarasi variabel blok utama
        int angka;

        Scanner masukan = new Scanner(System.in);
        try
        {
            // Memberi masukan ke dalam variabel angka;
            System.out.print("Input nilai angka = ");
            angka = masukan.nextInt();

            // Menampilkan hasil rekursif
            System.out.print("Faktorial dari angka " + angka + " = ");
            System.out.println(faktorial(angka));
        } catch(Exception e)
            {
                System.out.println("Harap masukan nilai berupa angka!");
            }
    }
}
4or Education

4or Education hadir sebagai blog edukasi yang menemanimu menjelajahi samudra ilmu pengetahuan dan teknologi. Di sini, kamu akan menemukan berbagai artikel menarik dan informatif seputar : Pengetahuan, Pendidikan, Teknologi, dan Lain-lain.

Posting Komentar

Lebih baru Lebih lama