Media Belajar Bahasa Pemrograman | by APPKEY

SwiftTutorial Swift 41 : Mengenal Swift Recursion dan Contohnya

Tutorial Swift 41 : Mengenal Swift Recursion dan Contohnya

-

Last Updated on April 29, 2023 by

Swift Recursion adalah teknik pemrograman yang melibatkan fungsi yang memanggil dirinya sendiri, baik secara langsung maupun tidak langsung. Dalam seri belajar Swift kali ini, kita akan membahas konsep rekursi dalam bahasa pemrograman Swift secara mendalam, mulai dari pengertian, cara kerja, contoh aplikasi, hingga dampak penggunaannya dalam pemrograman. Selain itu, kita juga telah mengeksplorasi teknik optimasi rekursi untuk meningkatkan performa aplikasi yang menggunakan rekursi. Yuk langsung simak ulasan dan contohnya dibawah ini!

Swift Recursion

swift recursion, belajar swift

Swift Recursion adalah teknik pemrograman pada Swift di mana fungsi memanggil dirinya sendiri secara langsung atau tidak langsung. Fungsi yang menerapkan teknik ini disebut fungsi rekursif. Rekursi banyak digunakan dalam berbagai jenis permasalahan dalam pemrograman, terutama yang melibatkan struktur data dan algoritma.

Cara Kerja Swift Recursion

Swift Recursion memiliki struktur yang mirip dengan fungsi lain pada umumnya. Namun, pada fungsi rekursif terdapat pemanggilan fungsi itu sendiri di dalam blok kode. Berikut adalah contoh sederhana cara kerja dari fungsi rekursi dalam Swift.

func rekursif() {
    // kode sebelum pemanggilan rekursif
    rekursif()
    // kode setelah pemanggilan rekursif
}

rekursif()

Dalam contoh di atas, fungsi rekursif() memanggil dirinya sendiri berulang kali. Namun, fungsi seperti ini akan berjalan tanpa henti dan menyebabkan kegagalan program atau error. Oleh karena itu, kita perlu menentukan kondisi berhenti dari fungsi rekursi.

Kondisi Berhenti Swift Recursion 

Kondisi berhenti rekursi (base case) adalah syarat yang menghentikan pemanggilan fungsi rekursif. Jika kondisi berhenti tersebut tidak diterapkan, fungsi akan terus memanggil dirinya sendiri hingga program mengalami kegagalan atau error.

Artikel Terkait  Tutorial Swift 24 : Memahami Control Flow dalam Swift Statement

Untuk menentukan kondisi berhenti dari sebuah fungsi rekursi biasanya menggunakan pernyataan if…else atau pendekatan serupa lainnya. Berikut adalah contoh struktur fungsi rekursif dengan kondisi berhenti.

func rekursif() {
    if kondisiBerhenti {
      // hentikan panggilan rekursif
    } else {
      // panggilan rekursif
      rekursif()
    }
}

rekursif()

Contoh Aplikasi Swift Recursion

Aplikasi yang umum menggunakan rekursi dalam bahasa pemrograman Swift meliputi permasalahan yang melibatkan struktur data dan algoritma lanjutan. Berikut contoh aplikasi sederhana yang menggunakan fungsi Swift Recursion yang bisa Anda coba

Swift Recursion Untuk Menghitung Mundur

Salah satu contoh aplikasi sederhana dari Swift Recursion adalah menghitung mundur dari suatu angka hingga mencapai 0. Berikut adalah sintaks kode aplikasi hitung mundur menggunakan fungsi rekursi Swift:

func hitungMundur(angka: Int) {
    // tampilkan angka
    print(angka)

    // kondisi menghentikan rekursi
    if angka == 0 {
      print("Hitung Mundur Berhenti")
    } else {
      // panggilan rekursif
      hitungMundur(angka: angka - 1)
    }
}

print("Hitung Mundur:")
hitungMundur(angka: 3)

Keluaran dari contoh sintaks kode diatas:

Hitung Mundur:
3
2
1
0
Hitung Mundur Berhenti

Pada contoh diatas, fungsi `hitungMundur()` memanggil dirinya sendiri secara rekursif dengan mengurangi nilai `angka` hingga mencapai 0. Saat `angka` sama dengan 0, kondisi `if` akan langsung menghentikan pemanggilan fungsi rekursif. 

Swift Recursion Untuk Menghitung Faktorial 

Faktorial adalah contoh lain dari penggunaan Swift Recursion sederhana. Berikut adalah sintaks kode untuk menghitung faktorial dari suatu angka dengan fungsi rekursi: 

func faktorial(num: Int) -> Int {
    // kondisi untuk menghentikan rekursi
    if num == 0 {
      return 1
    } else {
      // panggilan rekursif
      return num * faktorial(num: num - 1)
    }
}

var angka = 3

// pemanggilan fungsi
var hasil = faktorial(num: angka)
print("Faktorial dari 3 adalah", hasil)

Keluaran dari contoh sintaks kode diatas:

Faktorial dari 3 adalah 6

Pada contoh sederhana diatas, fungsi rekursif digunakan pada fungsi faktorial() yang memanggil dirinya sendiri dengan mengurangi nilai num. Proses ini berlanjut hingga nilai num menjadi 0, di mana kondisi if akan menghentikan fungsi rekursi.

Artikel Terkait  Tutorial Swift 30 : Belajar Melakukan Swift Initialization untuk Pemula

Dampak Penggunaan Swift Recursion

swift recursion, belajar swift

Fungsi rekursi rekursi sendiri memiliki beberapa kelebihan dan kekurangan dalam pemrograman Swift. Berikut ini beberapa kelebihan dan kekurangan dari kegunaan fungsi rekursi pada Swift yang wajib diketahui.

Kelebihan dari penggunaan Swift Recursion:

  1. Kode lebih pendek dan rapi.
  2. Solusi alami untuk permasalahan yang melibatkan struktur data dan algoritma lanjutan, seperti traversal graf dan pohon.

Kekurangan dari penggunaan Swift Recursion:

  1. Memerlukan ruang tumpukan (stack) yang lebih besar dibandingkan dengan program iteratif.
  2. Menggunakan lebih banyak waktu pemrosesan karena overhead pemanggilan fungsi.
  3. Kesulitan debugging dan melacak jalannya program karena struktur rekursif yang kompleks.

Teknik Optimasi Rekursi

Untuk mengatasi kekurangan rekursi, teknik optimasi dari fungsi rekursi dapat digunakan sebagai solusi untuk hal tersebut. Berikut beberapa teknik untuk melakukan optimasi terhadap fungsi rekursi untuk meningkatkan efisiensi dalam pemrograman Swift

Tail Recursion

Tail Recursion adalah bentuk rekursi di mana pemanggilan rekursif berada pada posisi terakhir dalam fungsi. Dengan melakukan optimasi tail recursion, kompiler dapat mengurangi overhead pemanggilan fungsi, sehingga mengurangi penggunaan stack space.

Berikut contoh fungsi faktorial dengan menggunakan teknik tail recursion:

func faktorialTailRecursion(num: Int, akumulator: Int = 1) -> Int {
  if num == 0 {
    return akumulator
  } else {
    return faktorialTailRecursion(num: num - 1, akumulator: akumulator * num)
  }
}

var angka = 3

// pemanggilan fungsi
var hasil = faktorialTailRecursion(num: angka)
print("Faktorial dari 3 adalah", hasil)

Pada contoh diatas, parameter tambahan akumulator digunakan untuk mengakumulasi hasil perkalian. Pemanggilan rekursif berada pada posisi terakhir dalam fungsi, sehingga memungkinkan kompiler untuk mengoptimalkannya.

Artikel Terkait  Tutorial Swift 46: Mengenal Swift Typealias dan Contohnya

Memoization

Memoization adalah teknik untuk menyimpan hasil komputasi fungsi dalam cache, sehingga tidak perlu dihitung ulang saat fungsi dipanggil lagi dengan argumen yang sama. Teknik ini sangat berguna untuk mengurangi overhead waktu pemrosesan dalam rekursi, terutama pada permasalahan yang memiliki banyak perhitungan yang sama.

Contoh penggunaan memoization dalam menghitung bilangan Fibonacci:

func fibonacci(_ n: Int, _ memo: inout [Int: Int]) -> Int {
  if let hasil = memo[n] {
    return hasil
  } else if n <= 1 {
    memo[n] = n
  } else {
    memo[n] = fibonacci(n - 1, &memo) + fibonacci(n - 2, &memo)
  }
  return memo[n]!
}

var angka = 10
var memo: [Int: Int] = [:]

// pemanggilan fungsi
var hasil = fibonacci(angka, &memo)
print("Bilangan Fibonacci ke-10 adalah", hasil)

Pada contoh diatas,  dictionary memo digunakan untuk menyimpan hasil perhitungan fibonacci. Saat menghitung fibonacci untuk suatu angka, fungsi akan mencari terlebih dahulu dalam cache. Jika hasil belum ada, baru fungsi akan menghitungnya secara rekursif.

Kesimpulan

Dalam pemrograman Swift, Swift Recursion adalah teknik yang sangat berguna untuk menyelesaikan berbagai permasalahan yang melibatkan struktur data dan algoritma lanjutan. Namun, rekursi juga memiliki kekurangan, seperti penggunaan stack space yang lebih besar dan waktu pemrosesan yang lebih lama. Untuk mengatasi kekurangan ini, kita dapat menerapkan teknik optimasi seperti Tail Recursion dan Memoization agar pemrograman lebih efisien. Selamat mencoba dan semoga seri belajar Swift kali ini bermanfaat!

Temukan lebih banyak artikel seri belajar Swift maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis dan tak ketinggalan tutorial pemrograman menarik lainnya. Sampai bertemu lagi!


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial PHP 22 : Cara Membuat Redirect PHP dengan Cepat dan Mudah

Jika Anda melakukan browsing di browser kesayangan Anda, mungkin Anda pernah melihat link yang berisikan “php redirect” atau yang...

Tutorial PHP 23 : Cara Membuat Messages Alert PHP

Alert box atau alert messages digunakan di situs web untuk menampilkan pesan peringatan kepada pengguna bahwa mereka telah memasukkan...

Tutorial PHP 2 : Cara Install PHP, Langkah Awal Belajar PHP

PHP adalah bahasa pemrograman gratis dan open source. Secara teknis tidak perlu menginstal PHP: sebagian besar host web dan...

Tutorial Python 9 : Cara Membuat Looping Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial HTML/CSS 23 : Cara Membuat Form Sederhana dengan HTML

Form memiliki peran yang sangat krusial bagi website atau aplikasi untuk menjaga sistem keamanannya. Form HTML digunakan untuk mengumpulkan...

Tutorial SQL 8 : Constraint SQL, Bagaimana Fungsi dan Penggunaannya?

Pada artikel sebelumnya Anda telah mempelajari tentang wildcard SQL, pada artikel kali ini kami akan menjelaskan tentang constraint SQL. Jika...

Tutorial Javascript 8 : Array Javascript, Panduan Lengkap Cara Membuatnya

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial SQL 20 : Mari Pelajari Cara Menggunakan Fungsi GROUP by SQL

Pada pembahasan seri Tutorial SQL ke- 20 ini, Codekey akan membahas tentang GROUP BY yang merupakan statement di dalam...

Tutorial Python 7 : Python String Format dan Cara Mudahnya

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya