Rekursif |
Apakah yang dimaksud dengan Rekusif pada C or C++ ?
Rekursif dalam algoritma C atau C++, Rekursi merupakan sebuah fungsi yang terdapat pada bahasa pemrograman yang mempunyai ciri khas dapat memanggil dirinya sendiri.
Proses pemanggilan pada rekursi dilakukan dengan berulang-ulang.
karena proses dalam rekursif di panggil secara berulang - ulang maka harus ada suatu kondisi yang membatasi (termination Condition) pengulangan tersebut agar perulangan dapat berhenti. apabila tidak ada suatu pembatas (termination Condition), Maka proses pengulangan akan terus berulang dan tidak akan pernah berhenti, kecuali memori yang digunakan untuk menampung tidak dapat menampung data lagi atau penuh.
karena proses dalam rekursif di panggil secara berulang - ulang maka harus ada suatu kondisi yang membatasi (termination Condition) pengulangan tersebut agar perulangan dapat berhenti. apabila tidak ada suatu pembatas (termination Condition), Maka proses pengulangan akan terus berulang dan tidak akan pernah berhenti, kecuali memori yang digunakan untuk menampung tidak dapat menampung data lagi atau penuh.
Apa Perbedaan Fungsi dengan Rekursif ?
Perbedaan antara Fungsi dan Rekursif adalah Rekursif dapat memanggil dirinya sendiri sedangkan Fungsi atau Prosedur tidak dapat memanggil dirinya sendiri, melainkan harus dipanggil melalui pemanggil prosedur atau fungsi.
Contoh Sederhana Penggunaan Rekursif
Contoh yang paling sederhana dalam proses rekursi ialah dalam menghitung nilai faktorial bilangan bulat.
Deklarasi Faktorial Dalam Algoritma Pemrograman C++ |
Dalam Rekursi , Setiap fungsi paling sedikit mempunyai Satu nilai awal, apabila tidak fungsi tersebut tidak akan bisa di hitung secara eksplisit.
Kapan Proses dalam Rekursi akan
Selesai ?
Dalam Rekursi, Proses akan selesai apabila pernyataan If dalam rekursi tersebut berubah menjadi false. Artinya, Proses rekursi akan berhenti apabila pernyataan dalam If bernilai Salah.
Prinsip Kerja dalam Proses Rekursi
Dalam Rekursi, Pronsip Kerja Proses dapat didefinisikan sebagai berikut:
- Memiliki Kasus yang Sederhana.
- Kasus Awal di arahkan menuju kasus sederhana.
- Mendefinisikan proses rekursi.
Demonstrasi Rekursi (recursion) dengan program Faktorial
untuk mendemonstrasikan sebuah rekursi, mari kita membuat program untuk menghitung nilai faktorial dari suatu bilangan bulat (integer).
Faktorial dar suatu bilangan biasanya dilambangkan sebagai n!, yang mana n merupakan bilangan tersebut.
Faktorial dar suatu bilangan biasanya dilambangkan sebagai n!, yang mana n merupakan bilangan tersebut.
contoh :
5! = 5*4*3*2*1 = 120
Membuat Program Faktorial dengan Rekursi
Definisikan Fungsi Sebagai berikut:
int factorial (int n){
if(n==1){
return 1;
} else {
return n*factorial(n-1);
}
}
Statement If mendefinisikan tipe keluaran dari program.
dalam code di atas, arti dari statement if di atas adalah:
- Apabila nilai yang di inputkan bernilai sama dengan 1, maka akan dikembalikan dengan nilai 1 atau
return 1;
(karena nilai factorial dari bilangan 1 adalah 1). - Dan apabila nilai yang di inputkan bukan bernilai sama dengan 1 maka, akan terjadi proses rekursi yang terjadi pada
return n*factorial(n-1);
Prosses dari rekursi di atas dapat dilihat seperti dibawah ini :
Misal nilai yang di inputkan bernilai 5 (5!), maka prosses rekursi akan seperti : [n*faktorial (n-1)]
- 5*factorial (4)
- 5*4*factorial (3)
- 5*4*3*factorial (2)
- 5*4*3*2*factorial (1) Dan akan Tercipta Barisan seperti Dibawah ini
- 5*4*3*2*1
Kemudian Rangkai Fungsi Sebagai berikut:
int factorial (int n){ if(n==1){ return 1; } else { return n*factorial(n-1); } } int main(){ cout<<factorial(5) return 0; }Pada code di atas terlihat sebuah pemanggilan fungsi, yang di warnai dengan warna hijau, yang disebut juga dengan istilah exit condition, atau sering juga di sebut denganThe base Chase.
The base Chase sangat penting dan diperlukan dalam Rekursi, Tanpa The base Chase.proses rekursi akan terus berjalan dan tidak akan berhenti.Dibawah adalah Full Code dari program faktorial dengan menggunakan teknik rekursi yang dapat, di pelajari dan dicoba, code dibawah menggunakan standart input jadi user dapat mengisikan bilangan yang ingin di faktorkan dengan bebas.klik tombol yang bertuliskan Run Apabila ingin mencoba code tersebut secara langsung, dan klik tombol Download apabila ingin mengunduh file dari Code tersebut.
keren gan lanjutkan
ReplyDeletewih lengkap gan disini.besok2 share pemroggraman android studio gan.
ReplyDeletewuiiihhh mantap gan !!!!
ReplyDeletegan kalo error null pointer kenapa ya?
ReplyDeleteerror nya gimana dulu ga :D
Deletepesan error nya gimana ? :D
info bagus gan :D
ReplyDeletekebetulan di smk lagi belajar pemrograman