Menu Close

Perbedaan antara Rekursi dan Iterasi

Perbedaan utama: Dalam pemrograman, rekursi dapat dijelaskan dengan mempertimbangkan fungsi rekursif. Fungsi rekursif adalah fungsi yang memanggil dirinya lagi untuk mengulang kode. Di sisi lain, iterasi dicapai dengan fungsi berulang yang berulang untuk mengulangi beberapa bagian dari kode.

Dalam pemrograman, rekursi dan iterasi keduanya digunakan untuk mencapai pengulangan. Mereka merujuk pada proses yang diulang berkali-kali. Rekursi didasarkan pada pendekatan di mana sesuatu merujuk pada dirinya sendiri sampai suatu kondisi terpenuhi. Suatu metode dikatakan rekursif jika ia dapat memanggil dirinya secara langsung atau tidak langsung seperti –

   

nama kosong ()

{

… nama () …

}

atau

nama kosong ()

{

… permainan () …

}

void game () {

… nama () …

}

Untuk rekursi yang berhasil, kita harus ingat bahwa setiap panggilan yang dibuat dalam proses rekursi harus menyederhanakan perhitungan. Rekursi dicapai dengan mendefinisikan kasus dasar.

int factorial (int N)

{

jika (N == 0) mengembalikan 1;

lain kembali (N * faktorial (N-1));

}

Dalam contoh ini, rekursi dapat dengan mudah dilihat dalam pernyataan (N * faktorial (N-1)), di mana ia memanggil fungsi faktorial lagi. Rekursi sangat membantu karena membantu dalam pemendekan kode. Namun, rekursi ini agak lambat dalam kinerja.

   

Iterasi didasarkan pada loop. Loop ini merujuk pada proses iterasi eksplisit. Untuk memenuhi persyaratan loop, harus memiliki beberapa jenis kriteria yang menghentikan iterasi lebih lanjut. Namun, jika tes kondisi loop tidak pernah menjadi salah, maka dalam kondisi itu, terjadinya loop tak terbatas tidak terhindarkan. Dalam contoh ini, faktorial ditentukan dengan menggunakan proses iterasi –

function factorial (n)

{

var loop, hasil;

hasil = 1;

untuk (loop = 1; loop <= n; loop ++)

{

hasil = hasil * lingkaran;

}

hasil pengembalian;

}

Dalam contoh ini, perulangan dicapai dengan menggunakan bilangan bulat dari 1 ke n, dan pernyataan loop <= n digunakan sebagai kriteria untuk menghentikan perulangan lebih lanjut. Dengan demikian, kita dapat menyimpulkan bahwa hasil yang sama dapat dicapai dengan menggunakan rekursi dan iterasi. Namun, keduanya didasarkan pada pendekatan yang sedikit berbeda. Algoritma rekursif apa pun juga dapat ditulis menggunakan iterasi (loop).

   

Perbandingan antara Rekursi dan Iterasi:

Rekursi

Perulangan

Definisi

Rekursi mengacu pada fungsi rekursif di mana ia memanggil dirinya lagi untuk mengulang kode.

Iterasi dicapai oleh fungsi berulang yang berulang untuk mengulangi beberapa bagian dari kode.

Poin penting

Kasus dasar perlu ditentukan

Kondisi pemutusan hubungan kerja perlu ditentukan

Performa

Relatif lambat

Relatif cepat

Penggunaan Memori

Secara relatif lebih banyak

Relatif lebih sedikit

Kode

Lebih kecil

Lebih lama

Pengulangan tanpa batas

Rekursi tak terbatas mampu menabrak sistem

Infinite looping mengkonsumsi siklus CPU berulang kali

Struktur

Pilihan

Pengulangan

Variabel lokal

Tidak dibutuhkan

Wajib