This page needs JavaScript activated to work correctly !

This page will be redirect in 3 second !

Konsep Rekursif & Fibonacci - Programming | IDRaya.com

Konsep Rekursif & Fibonacci

Triawan PROGRAMMING 12/10/2020 0 Discuss 73 Views

Pada pemrograman, rekursif adalah sebuah fungsi dengan konsep memanggil dirinya sendiri, biasanya digunakan untuk algoritma pengurutan/sorting, pemrograman dinamis, dan lainnya. Berikut contoh implementasi sederhana rekursif tak menentu yang dapat mengakibatkan terjadinya infinite-loop yang menyebabkan penggunaan resource secara terus menerus. Meskipun demikian kejadian ini dapat memicu terjadinya interrupt/trap/exception dengan memberikan pesan seperti Maximum call stack size exceeded, yang berarti tumpukan pemanggilan fungsi tersebut telah mencapai batas maksimal yang dijalankan padaengine PHP. Tentunya penggunaan exception ini sangat diperlukan untuk melindungi penggunaan resource komputasi secara berlebihan, sehingga tidak menganggu program/aplikasi lainnya.

Diagram Rekursif Gambar Analogika Diagram Recursif. (Sumber: https://study.cs50.net/recursion, 2018)

Contoh implementasi diagram rekursif yang dapat menyebabkan infinite-looping kedalam bahasa pemrograman PHP.


	function countDown($number) {
		echo $number . '<br/>';
	  	countDown($number - 1);
	}
	countDown(5);

Program Rekursif Infinite Loop.

Berikut potongan output dari rekursif infinite-looping pada program diatas yang dijalankan pada Web Browser Chrome.


	5
	4
	3
	2
	1
	0
	-1
	-2
	-3
	-4
	-5
	-6
	.
	.
	.
	RangeError: Maximum call stack size exceeded (Chrome)

Output Rekursif Infinite Loop.

Contoh penggunaan rekursi yang paling terkenal adalah perhitungan angka fibonacci. Secara sederhana angka fibonacci adalah deret bilangan yang susunan angkanya merupakan penjumlahan dari dua angka sebelumnya, misal dua deret angka awalannya adalah 0 dan 1, maka deret angka selanjutya adalah 1, 2, 3, 4, 5, 6, dan seterusnya.

Rekursif Fibonacci Gambar Rekursif Fibonacci. (Sumber: https://levelup.gitconnected.com/a-second-thought-on-recursion-6575efeb2934)

Pembahasan lebih lanjut mengenai deret fibonacci sangatlah menarik, karena tidak terlepas dari membandingkan angka satu dengan angka lainnya, sehingga terciptanya suatu hubungan, dan dalam hal ini disebut dengan golden rasio, namun tidak pembahasan mengenai hal ini kita lewatkan terlebih dahulu.

Persamaan Fibonacci Gambar Persamaan Fibonacci. (Sumber: https://levelup.gitconnected.com/a-second-thought-on-recursion-6575efeb2934)

Berikut ini implementasi dari persamaan fibonacci gambar diatas kedalam kode program menggunakan PHP.


	function Fibonacci($number) { 
	      
	    // if dan else if berikut digunakan untuk membuat dua angka pertama 
	    if($number == 0) return 0;     
	    else if($number == 1) return 1;     
	      
	    // Fungsi rekursif dipanggil untuk menghitung angka selanjutnya
	    return (Fibonacci($number-1) +  Fibonacci($number-2)); 
	} 
	  
	$number = 10; // variabel pengendali
	for ($counter = 0; $counter < $number; $counter++) {
	    echo Fibonacci($counter) . ' ';
	     
	}

Program Rekursif Fibonacci.

Berikut ini output dari program rekursif fibonacci diatas yang dijalankan pada Web Browser Chrome.


	0 1 1 2 3 5 8 13 21 34

Output Rekursif Fibonacci.

Kesimpulan

Rekursif adalah sebuah cara elegan untuk menyelesaikan beberapa masalah dalam pemrograman. Rekursi juga merupakan salah satu kemampuan fundamental yang diharapkan sudah dikuasai oleh teman-teman yang ingin terjun ke dunia pemrograman. Maka tak heran jika beberapa pertanyaan terkait rekursi akan muncul ketika kita melakukan coding interview di perusahaan teknologi.

Agus Triawan/Triawan

 matriawan@gmail.com

Triawan is just an ordinary person, founder idraya[dot]com who just a little bit knows also likes try and error about devices, networks and programming/applications to solve challenges related to information technology.

If there is question, please discuss below. Very welcome and expected to provide corrections, criticisms, and suggestions.


We'll not share/display your email.
Example: Say <b>Hello</b> &lt;?php echo 'World'; ?&gt;
Output: Say Hello <?php echo 'World'; ?>
Words can come true for you, so be wise in speaking.

Be the first :D