Kebutuhan untuk mengulang kode tidak pernah bisa dianggap remeh dalam mencari solusi untuk beberapa masalah terbesar dunia. Yang perlu Anda ketahui adalah bahwa dalam pemrograman, pengulangan mengambil salah satu dari dua bentuk — iterasi atau rekursi.

Tujuannya di sini adalah untuk memperkenalkan Anda pada pengulangan dalam kode dan mendemonstrasikan bagaimana itu dapat digunakan untuk meningkatkan program Java Anda.

Program berulang dapat membantu Anda memecahkan beberapa masalah pemrograman yang paling sulit. Inilah yang perlu Anda ketahui untuk membuat program rekursif di Java.

Menggunakan Iterasi

Iterasi menggunakan struktur loop untuk mengulang kode. Tiga jenis struktur iteratif adalah pre-test loop (while), post-test loop (do-while), dan loop yang dikontrol balik (untuk).

Struktur berulang ini beroperasi dengan mengulang satu blok kode sementara kondisi tertentu tetap ada benar, tetapi segera setelah kondisi itu menjadi salah, perulangan berhenti dan program kembali ke normalnya mengalir.

instagram viewer

Misalnya, kita bisa menggunakan salah satu struktur iteratif untuk menyelesaikan soal jumlah semua bilangan bulat dari 1 sampai n. Bergantung pada struktur iteratif yang digunakan, solusi akan mengambil bentuk tertentu, tetapi salah satu ketiga struktur iteratif dapat memberikan solusi untuk masalah ini dengan menggunakan berikut ini pseudocode.

Contoh Kode Pseudo Iterasi


MULAILAH
MENYATAKAN jumlah, dihitung sebagai bilangan bulat
jumlah = 0
hitung = 1
ULANG
Jumlah = jumlah + hitungan
Hitung = hitung + 1
HINGGA hitung> n
AKHIR

Pseudocode di atas memiliki dua variabel, sum dan count, yang masing-masing diinisialisasi ke 0 dan 1. Variabel "count" diinisialisasi ke 1 karena masalah yang kita coba selesaikan menyatakan bahwa kita membutuhkan jumlah semua bilangan bulat dari 1 sampai n.

Variabel "n" akan diberi nomor acak dari pengguna dan variabel "hitung" akan bertambah satu masing-masing waktu loop dilakukan, tetapi segera setelah nilai variabel "count" melebihi nilai "n" maka loop akan berhenti.

Mengapa Menggunakan Rekursi?

Jika kita memeriksa fakta seputar iterasi dan rekursi, kita akan menemukan beberapa hal yang benar.

  • Kedua metode tersebut melibatkan pengulangan.
  • Kedua metode tersebut memerlukan kondisi pengujian, yang akan menunjukkan kapan harus berhenti.
  • Kedua metode secara teoritis dapat dijalankan selamanya jika kondisi keluar tidak diberikan atau dipenuhi.
  • Masalah apa pun yang dapat diselesaikan menggunakan iterasi juga dapat diselesaikan menggunakan rekursi dan sebaliknya.

Jadi mengapa kita ingin memilih satu metode di atas yang lain? Jawaban sederhananya adalah efisiensi. Dengan rekursi, seorang programmer dapat menggunakan lebih sedikit kode untuk mencapai hasil yang pada dasarnya sama. Lebih sedikit kode berarti ada penurunan yang signifikan dalam kemungkinan kesalahan yang tidak diketahui.

Rekursi menggunakan lebih banyak memori dan lebih lambat daripada iterasi, tetapi memiliki tumpukan bawaan (struktur data). Dengan iterasi Anda harus membangun struktur data (pada dasarnya menciptakan kembali roda), membiarkan program Anda terbuka untuk kemungkinan kesalahan yang lebih besar karena kode tambahan.

Terkait: Pengecualian Java: Apakah Anda Menanganinya dengan Benar?

Bagaimana Rekursi Bekerja

Rekursi adalah nama yang diberikan ke proses di mana suatu fungsi berulang kali memanggil dirinya sendiri hingga kondisi tertentu terpenuhi. Metode berulang ini memecahkan masalah dengan memecahnya menjadi versi yang lebih kecil dan lebih sederhana.

Setiap fungsi rekursif terdiri dari dua bagian — kasus dasar dan kasus umum.

Struktur Dasar Contoh Fungsi Rekursif


Fungsi(){
// kasus dasar
// kasus umum
}

Kasus dasar adalah bagian dari fungsi rekursif yang menyelesaikan masalah. Jadi, setiap kali fungsi rekursif tiba di kasus dasar, program keluar dari fungsi rekursif dan melanjutkan aliran alaminya.

Kasus umum adalah bagian dari fungsi rekursif yang berulang. Di sinilah fungsi memanggil dirinya sendiri dan sebagian besar pekerjaan dilakukan.

Menggunakan Rekursi di Java

Beberapa bahasa pemrograman hanya mendukung iterasi, sementara yang lain hanya mendukung rekursi. Untungnya, Java adalah salah satu bahasa yang mendukung kedua metode berulang tersebut.

Di Java, rekursi digunakan dengan cara yang sama seperti digunakan dalam bahasa lain yang mendukungnya. Kuncinya adalah selalu memastikan bahwa fungsi rekursif Anda memiliki basis dan kasing umum, dalam urutan itu.

Mari kita kembali ke contoh penjumlahan awal kita, tujuannya adalah untuk menemukan jumlah semua bilangan bulat dari 1 sampai n, di mana n adalah bilangan bulat yang diberikan oleh pengguna.

Contoh Rekursi Java


// fungsi rekursif
int Sum (int n) {
// kasus dasar
jika (n <= 1) {
kembali 1;
}
// kasus umum
lain{
kembali n + Sum (n-1);
}
}

Fungsi rekursif di atas mengambil integer “n” dan hanya mengakhiri eksekusinya jika nilai n kurang dari atau sama dengan 1.

Jika kita meneruskan integer 5 ke program di atas, variabel "n" akan mengasumsikan nilai 5. Nilai "n" kemudian akan diperiksa dalam kasus dasar, tetapi mengingat 5 lebih besar dari 1 "n" sekarang akan diteruskan ke kasus umum.

Dalam contoh ini, kasus umum akan memanggil fungsi rekursif empat kali. Pada panggilan fungsi terakhir, nilai "n" akan menjadi 1, yang secara efektif memenuhi persyaratan kasus dasar yang mengakibatkan penghentian fungsi rekursif dan mengembalikan 15.

Jika kita mengubah nilai "n" menjadi 7, fungsi rekursif akan memanggil dirinya sendiri enam kali dan mengembalikan 28 sebelum menghentikan eksekusinya.

Ingin mencobanya sendiri? Anda dapat menjalankan program rekursif di atas dengan menggunakan baris kode berikut di fungsi utama program Java Anda.


System.out.println (Jumlah (7));

Apa yang Anda Pelajari

Jika Anda berhasil melewati seluruh artikel ini, Anda sekarang memiliki pemahaman dasar tentang dua metode berulang yang digunakan dalam pemrograman. Anda sekarang mengenali kesamaan antara iterasi dan rekursi dan mengapa pengembang akan memilih untuk menggunakan rekursi daripada iterasi, dan bagaimana menggunakan fungsi rekursif di Java.

Kredit Gambar: ThisIsEngineering /Pexels

Surel
Apa Itu Rekursi dan Bagaimana Anda Menggunakannya?

Pelajari dasar-dasar rekursi, alat yang penting namun sedikit membingungkan bagi pemrogram.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Pemrograman
  • Jawa
Tentang Penulis
Kadeisha Kean (7 Artikel Dipublikasikan)

Kadeisha Kean adalah Pengembang Perangkat Lunak Tumpukan Penuh dan Penulis Teknis / Teknologi. Dia memiliki kemampuan berbeda untuk menyederhanakan beberapa konsep teknologi yang paling kompleks; menghasilkan materi yang dapat dengan mudah dipahami oleh pemula teknologi apa pun. Dia bersemangat menulis, mengembangkan perangkat lunak yang menarik, dan berkeliling dunia (melalui film dokumenter).

Selebihnya Dari Kadeisha Kean

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.

.