Sabtu, 02 Juli 2022

Fungsi Rekursif Pada C++

 Pengertian Rekursif 

Rekursif adalah suatu proses dari sebuah fungsi yang dapat memanggil dirinya sendiri secara berulang-ulang. Berbeda dengan fungsi atau prosedur yang mana keduanya hanya bisa dilakukan pemanggilan dari fungsi atau prosedur lain, sementara rekursif dapat memanggil fungsinya sendiri. Jadi fungsi rekursif c++ ini akan berjalan dengan melakukan proses sampai sebuah kondisi yang ditetapkan pada fungsi tersebut terpenuhi.


Fungsi rekursif adalah salah satu teknik pemrograman yang cukup penting, dimana dalam beberapa kasus menggunakan fungsi rekursif akan jauh lebih mudah. Selain itu proses yang berjalan akan jauh lebih cepat dan efisien, hanya saja akan membutuhkan space memori yang cukup banyak karena proses iterasi dari bagian fungsi tersebut akan dipanggil secara terus menerus sehingga memerlukan ruang penyimpanan yang cukup besar jika dibandingkan dengan proses lainnya.

Bahasa pemrograman C++ mendukung penggunaan rekursif. Penerapan fungsi ini juga cukup banyak, yang paling sering misalnya untuk mencari nilai pangkat dan menghitung nilai faktorial. Kali ini saya akan membagikan kepada teman-teman bagaimana contoh penerapan fungsi rekrursif pada C++ melalui 2 contoh sederhana berikut:


Menghitung Nilai Faktorial Dengan Rekursif

#include <iostream>
using namespace std;

long int faktorial (int A);

int main(){
	
	int r,hasil;
	
	cout<<"MENGHITUNG NILAI FAKTORIAL DENGAN REKURSIF"<<endl;
	cout<<endl;
	cout<<"Masukan Nilai = ";
	cin>>r;
	
	hasil=faktorial(r);
	cout<<"Faktorial "<<r<<"!= "<<hasil<<endl;
}

long int faktorial (int A){
	if (A==1)
		return(A);
		else
		return (A*faktorial(A-1));
}

Pada contoh yang pertama kita akan mencari nilai faktorial dari nilai yang dimasukan oleh pengguna, Program diatas saya membuatnya lewat aplikasi Dev C++. Header yang saya gunakan hanya iostream terkait input/ouput ada program, Karena jenis program yang saya buat adalah program sekuensial maka saya perlu inisialisasi fungsi rekursifnya di awal sebelum fungsi main(). Pada fungsi main pengguna akan memasukan nilai dan disimpan pada variabel r nantinya akan dipanggil fungsi faktorial() dengan nilai parameter yang dibawah adalah nilai r tersebut, lalu kemudian disimpan pada variabel hasil.

Coba perhatikan pada fungsi rekursif-nya:

long int faktorial (int A){
  if (A==1)
	return(A);
	else
	return (A*faktorial(A-1));
}

Disini kita membuat fungsi rekursif dimana jika nilai yang dimasukan adalah 1 maka nilai balik (return value) adalah nilai itu sendiri. Sementara jika tidak maka akan dihitung menggunakan rumus faktorial yaitu (A*faktorial(A-1)).

Hasil Output:




Fungsi Rekursif Untuk Menghitung Pangkat

#include <iostream>
using namespace std;

long int pangkatrekursif(int x, int y);

int main(){
	
	int x,y;
	
	cout<<"FUNGSI REKURSIF UNTUK MENGHITUNG PANGKAT"<<endl;
	cout<<endl;
	cout<<"Masukan Nilai X = ";
	cin>>x;
	
	cout<<"Masukan Nilai Y = ";
	cin>>y;
	cout<<endl;
	cout<<x<<" Dipangkatkan "<<y<<" = "<<pangkatrekursif(x,y)<<endl;
}


long int pangkatrekursif(int x, int y){
	 if (y==0)
		 return 1 ;
		 else 
                 return x * pangkatrekursif(x,y-1);
} 

Pada contoh fungsi rekursif c++ yang kedua adalah untuk menghitung pangkat. Pengguna akan memasuka nilai x dan y lalu kemudian nilai x angkat dipangkatkan dengan nilai y.

Jika kita lihat pada fungsi rekursif-nya:

long int pangkatrekursif(int x, int y){
  if (y==0)
	return 1 ;
	else 
        return x * pangkatrekursif(x,y-1);
 } 

disini kita membuat fungsi dengan nama pangkatrekursif dengan menggunakan 2 parameter yaitu nilai x dan y, jika nilai y yang dimasukan adalah 0 maka akan di set nilai baliknya adalah 1, namun jika tidak maka fungsi tersebut di set nilai baliknya dimana nilai x akan dikalikan nilai y-1.

Hasil Output :



Kesimpulan Pada Materi Rekursif  :

Demikian pembahasan kali ini mengenai contoh fungsi rekursif di C++, Dari contoh yang sudah kita bahas diatas dapat saya simpulkan bahwa fungsi rekursif memungkinkan untuk dapat memanggil dirinya sendiri, Rekursif dapat menyelesaikan persoalan terkait iterasi namun diperlukan pendefinisian yang jelas untuk menentukan keadaan iterasi tersebut berhenti.


Tidak ada komentar:

Posting Komentar

Penjelasan Singkat Mengenai Pointer C++

  Pengertian Pointer pointer merupakan variabel dengan tipe tertentu yang berguna untuk mencatat alamat dari suatu variabel yang setipe den...