Rekursif Bahasa C

Hello ! kali ini saya ingin berbagi tentang REKURSIF  looh! Mari kita simak😀

Mungkin sebelumnya sudah tidak asing dengan perulangan menggunakan FOR atau WHILE , NAAAH ! selain kedua hal tersebut , masih ada cara lain loh untuk perulangan . YAP! Itu dia Rekursif , sebelumnya apa itu rekursif?

Dalam makna yang sederhana :

Rekursi adalah suatu proses di mana salah satu langkah dalam prosedur tersebut menjalankan prosedur itu sendiri. Prosedur yang melakukan rekursi disebut dengan ‘rekursif’

Sumber : http://id.wikipedia.org/wiki/Rekursi

Oke , dari pengertian diatas kita mendapat kata kunci “prosedur” sebelumnya saya sudah pernah berbagi tentang prosedur dalam bahasa C.Jadi , untuk bahasan rekursif ini kita lebih baik mempelajari terlebih dahulu tentang prosedur dan fungsi .

Dibawah ini adalah contoh perulangan transformasi dari perulangan menggunakan FOR ke perulangan dengan teknik rekursif .

Kasus : tampilkan hasil perulangan angka 5 menjadi 54321 !

Perulangan menggunakan FOR :

int main(){
	int i;
	int batas;
	batas = 5;
	for(i=batas;i>0;i--){
		printf("%d",i);
	}
return 0;
}

Perulangan menggunakan rekursif :

void ulangAngka(int batas){
	if(batas >0){
		printf("%d",batas);
		ulangAngka(batas - 1);
	}
}

int main(){
	ulangAngka(5);
return 0;
}

Terlihatkah bedanya? yap ! pada prosuder ulangAngka di dalamnya memanggil prosedur itu sendiri , pemanggilan prosedur tersebut akan terus dilakukan sampai nilai batas = 0. Penggunaan IF diatas disebut basis (batas berhenti rekursif).

Dibawah ini akan kita coba pelemparan nilai dari sebua fungsi menggunakan rekursif :

Kasus : tampilkan hasil dari faktorial 5!

int faktorial(int angka){
	int hasil = 1;
		if(angka > 0){
			hasil =  angka * faktorial(angka - 1);
		}
	return hasil;
}

int main(){
	
	printf("%d",faktorial(5));

	return 0;
}

Maka dari kode diatas akan menghasilkan 120 .

YAP ! itu dia rekursif dasar , teknik rekursif ini sangat berguna untuk beberapa kasus diantaranya adalah pengurutan menggunakan Quick Sort (di dalamnya terdapat teknik rekursif) , penyelesaian kasus menggunakan Tree , dan algoritma yang mengacu pada Divide and Conquer .

Sekian untuk bahasan kali ini , semoga bermanfaat!😀
Let’s Share Our Knowledge .

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s