Assalamualikum wr wb
allahmdulillah setelah ane nyari - nyari di internet tentang rekursif akhirnya ketemu juga dan materi ini mudah untuk di pahami trima kasih kepada :
Abdhi
habel Nd++
http://likeac0in.blogspot.com/2015/04/membuat-program-rekursif-dengan-c.html#.VVv4suGP-8g
berkat postingannya ane jadi bisa ngerjain tugas kuliah dan berikut ini isi dari postingannya :
Rekursif adalah Sebuah
teknik pengulangan yang melibatkan dirinya sendiri.
Pada umumnya proses rekursif
ini berguna dalam permodelan matematika pada sebuah program
Dalam kesempatan ini
Rekursif digunakan dalam sebuah fungsi.
Fungsi akan mengembalikan
sebuah nilai. Dalam rekursif, hasil kembalian fungsi dapat berupa nilai atau
operasi berikutnya dari fungsi itu sendiri sampai mencapai kondisi terentu.
Contoh Program Rekursif Faktorial
Membuat Program Rekursif Dengan C++
Rekursif
sederhananya yaitu fungsi yang memanggil dirinya sendiri. Bingung kan?
Hehe..mending langsung liat contohnya saja deh:
Silahkan
dirun kode memalukan ini.. semoga komputer anda tidak mati
void Cinta(){
cout<<"i will Always love you ";
Cinta();
}
int main(){
Cinta();
return 0;
}
Maksud kode diatas itu kita memanggil fungsi melalui fungsi itu sendiri.. jadi
programnya akan terus menampilkan “i will always love you ” sampe se-you2 nya.. yah
tapi itu cuma contoh sederhana.. tidak ada gunanya juga kita buat program
seperti itu.. cuma bikin sakit hati..
Oke.. jadi
masalah utamanya bukan pada Cintanya tapi sampai pada titik apa program rekursif akan berakhir (ending point)..
misalkan kalo ingin membuat billangan faktorial dari angka 4.. hasilnya
adalah 4x3x2x1 = 24.. intinya angka faktorial itu akan berakhir di angka
1.. nah dari sini kita bisa tentukan ending pointnya adalah 1.
int faktorial(int n){
if(n==1){
return
1;
}else {
return
n*faktorial(n-1);
}
}
kalo
komputer bisa ngomong kira2 eksekusinya begini :
Misal kita
input kan n=5 :
Sekarang n=4;
Apakah
n sama dengan 1 ? tidak.. jadi 4x3! ... 3! hasilnya berapa? Belum tau.. oke
cari lagi
Sekarang n =
3
Apakah
n sama dengan 1 ? tidak.. jadi 3x2! ...
2! hasilnya berapa? Belum tau.. oke cari lagi
Sekarang n =
2
Apakah
n sama dengan 1 ? tidak.. jadi 2x1! ..
1! hasilnya berapa? Belum tau.. oke cari lagi
Sekarang n =
1
Apakah
n sama dengan 1 ? yep.. okeee sudah
ketemu ternyata 1! Adalah 1.. sekarang
kita cek memori kita terus selesaikan secara jantan
Kita sudah
tau kalo 1! = 1 sekarang lanjut
2!...dimana
1! = 1 jadi 2x1 = 2
3!... dimana
2! =2 jadi 3x2 = 6
4!.. dimana
3! = 6 jadi 4x6 = 24
Jadi 4! Adalah 24
Jadi program
dieksekusii terus
menerus. Dan selama belum memiliki hasil akan di simpan dalam memori. Begitu ketemu ending pointnya,
nilai ending point tadi langsung diterapkan berdasarkan informasi yang sudah
ada dimemori secara mundur sampe ke awal lagi sehingga ketemu hasilnya..
Komentar
Posting Komentar