Top Ad unit 728 × 90

Terupdate

recent

Modul Algoritma Rekursif

Modul
FUNGSI REKURSIF
  

11.1   Pengertian Rekursi

Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri. Fungsi yang seperti ini disebut fungsi rekursif (recursive function). Dalam sebuah fungsi rekursif pemanggilan dapat terjadi berulang kali. Karena ada proses yang berulang-ulang maka harus ada suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah berhenti sampai memori yang digunakan tidak dapat menampung lagi.
Pemecahan masalah dengan pendekatan rekursif dapat dilakukan jika masalah tersebut dapat didefinisikan secara rekursif, yaitu masalah dapat diuraikan menjadi masalah sejenis yang lebih sederhana.


Listing Program 11.1 Contoh Fungsi Rekursi

 procedure rekursi(n: integer);
 begin
    if n > 0 then
    begin                    
      writeln('rekursi ',n);
      rekursi(n-1);
    end;
 end;

 var p: integer;

 begin
  p:=3;
  rekursi(p);
 end. 
 



Hasil Running:
 Rekursi 3
 Rekursi 2
 Rekursi 1

 
 
Dalam membuat fungsi rekursi harus ditentukan kondisi perhentian. Pada contoh listing program 11.1 di atas kondisi perhentiannya adalah jika nilai n sudah lebih kecil atau sama dengan 0. Setiap kali fungsi memanggil dirinya sendiri, nilai dari n dikurangi dengan nilai 1, sehingga nilai n akhirnya akan menjadi nol dan proses rekursi akan diakhiri, sehingga fungsi ini akan memanggil dirinya sendiri sebanyak n kali.
Contoh untuk menggambarkan fungsi rekursif yang sering digunakan adalah fungsi untuk mendapatkan nilai faktorial dari suatu bilangan bulat.


Listing Program 11.2 Program Faktorial
 Function faktorial(x: integer): longint;
 Begin
   If x<= 1 then
      Faktorial := 1
   Else
      Faktorial := x * faktorial(x-1);
 End;

 Var n:integer;

 Begin
  Writeln(‘Menghitung N Faktorial (N!)’);   
  Write(‘Masukkan N : ’);  readln(n);
  Writeln(n,’ ! = ‘, faktorial(n));
 End.


 
 
Hasil Running:
 Menghitung N Faktorial (N!)
 Masukkan N : 5
 5 ! = 120
 
 
Program 11.2 di atas dapat dijelaskan sebagai berikut:
1.    Fungsi utama memanggil fungsi faktorial() dengan mengirimkan nilai n = 5 untuk parameter formal x, yang maksudnya akan dilakukan perhitungan sebanyak 5 faktorial.
2.    Jika nilai dari x  pertama kali yang diberikan oleh fungsi utama bernilai kurang dari atau sama dengan satu, maka hasil faktorial yang akan diberikan adalah bernilai 1.
3.    Jika nilai x pertama kali yang diberikan oleh fungsi utama lebih besar dari 1, maka proses rekursi akan dilakukan misalnya nilai x = 5 , maka proses rekursi yang pertama adalah:
Faktorial=  5 * faktorial(4);

Proses ini akan memanggil kembali fungsi dirinya sendiri dengan mengirimkan nilai 4 sebagai nilai x yang baru. Karena nilai x masih lebih besar dari 1 maka proses rekursi kedua akan dilakukan dengan hasilnya adalah 4 * faktorial(3). Untuk x adalah 3, hasil yang diperoleh oleh rekursi adalah 3 * faktorial(2) dan seterusnya sampai nilai x adalah 1. Untuk nilai x sama dengan 1 ini, perintah faktorial:=1 akan mengembalikan proses ke bagian yang memanggilnya.
Hasil akhir dari nilai yang akan dikembalikan oleh fungsi faktorial dari penjelasan di atas untuk 5 faktorial dapat dituliskan sebagai berikut:

   
 faktorial:= 5 * faktorial(4);

     
           faktorial:= 4 * faktorial(3);


                       faktorial:= 3 * faktorial(2);


                                  faktorial:=  2 * faktorial(1);


                                           faktorial:= ( 5 * 4 * 3 * 2 * 1);




Sekian Modul rekursif dari saya.. apabila anda merasa kurang jelas atau ingin memperdalam tetentang pelajaran algoritma rekursif, ente bisa langsung download file fdf nya yang lengkap di link di bawah ini ...

Sekian Dari saya kurang lebihnya mohon di maklumi..
Semoga bermanfaat..
selamat belajar
Wasalammualaikum wr.wb.


Modul Algoritma Rekursif Reviewed by Unknown on 11.52.00 Rating: 5

Tidak ada komentar:

All Rights Reserved by solvingdroid © 2014 - 2015
Designed by Bthemes4u

Formulir Kontak

Nama

Email *

Pesan *

Diberdayakan oleh Blogger.