Macam - macam Metode Rekursi

Ada 3 macam rekursi yang lazim digunakan, yaitu :

  1. rekursi menurun (going down recursion), artinya nilai dari parameter berkurang mengarah ke kasus basis.
  2. rekursi menaik (going up recursion), artinya nilai dari parameter bertambah mengarah ke kasus basis.
  3. rekursi dibagi separoh (two half recursion), artinya range atau jangkauan dari parameternya dibagi menjadi dua bagian, setengah bagian pertama pada pemanggilan pertama sedangkan setengah sisanya pada pemanggilan kedua.

Dua kali pemanggilan rekursi : Bilangan Fibonaci

Pada kasus-kasus sebelumnya, kita belajar tentang rekursif dengan satu dan dua parameter. Kasus berikut ini melibatkan dua kali pemanggilan rekursif setiap kali proses rekursif dilakukan.

Fungsi Rekursif dua parameter : Perkalian Dua Buah Integer

Definisi iteratif untuk kasus perkalian dua buah integer adalah sebagai berikut :

Definisi : (iteratif)
a x b =

  • a + a + ... + a (b kali), untuk b > 0
  • (-a) + (-a) + ... + (-a) (b kali), untuk b < 0

Fungsi Rekursif

Fungsi rekursif adalah function yang memanggil dirinya sendiri secara langsung maupun tidak langsung melalui function yang lain. Setiap function rekursif mengandung 2 hal :

  1. Kasus yang paling sederhana atau kasus basis. Di dalamnya akan mengembalikan suatu nilai.
  2. Langkah rekursi (recursive call), di mana masalah yang kompleks dipecah menjadi masalah yang lebih sederhana. Langkah rekursif ini harus melangkah ke kasus basis.

INTRODUKSI LIST LINIER

PERSOALAN

Dipunya sebuah tabel yang setiap elemennya terdiri beberapa item data, dan tabelnya berukuran relatif cukup besar.
Misalnya sebuah tabel yang diberikan dalam kamus umum sebagai berikut :
klik disini

Penjelasan Array Satu Dimensi

Dalam suatu kasus, kadang diperlukan bekerja dengan array satu atau dua dimensi yang tidak diketahui berapa banyak ukurannya pada saat dikompilasi. Untuk itu diperlikan alokasi memori secara dinamis.

Untuk membuat array satu dimensi bertipe float x pada saat program dieksekusi, kita harus mendeklarasikan x sebagai pointer ke float, kemudian mengalokasikan sejumlah memori untuk array tersebut. Sebagai contoh, array floating point dengan ukuran n dibuat sebagai berikut :

Reference Parameter

Dengan menggunakan parameter nilai akan meningkatkan waktu jalannya program (run-time cost). Ketika a, b, dan c adalah parameter nilai, copy construktor untuk tipe T menyalin harga berkaitan dengan parameter aktual ke dalam parameter formal. Pada waktu keluar dari fungsi, destruktor untuk tipe T dijalankan dan parameter formal a, b, dan c dihapus.

Fungsi Template

Misalkan kita menginginkan fungsi lain menghitung ekspresi yang sama, namu semua parameternya bertipe float, maka program 1.2 berikut ini adalah fungsi tersebut klik disini

Fungsi dan Parameter

Untuk mempelajari struktur data dan metode perancangan algoritma, diperlukan pemahaman mendasar tentang bahasa pemrograman C++ dalam hal ini.
Perhatikan program berikut, klik disini

Coding Segitiga Ajaib

click here

Contoh Coding Binary Search Tree

Binart Tree yaitu kumpulan node yang paling banyak (bisa kosong atau satu) menmpunyai 2 sub pohon yaitu subpohon kiri (left subtree/cabang kiri) dan subpohon kanan (right subtree/cabang kanan).
Complete Binary Tree bertingkat N adalah suatu pohon biner yang semua daunnya terdapat pada tingkat N, dan semua node internal mempunyai 2 cabang>
Berikut contoh coding Binary Search Tree, silahkan klik disini

Coding Stack dengan Array

Stack adalah struktur yang sifatnya LIFO (Last In First Out), yaitu yang masuk paling belakang akan keluar duluan. Dalam kehidupan sehari-hari dapat kita jumpai contoh stack seperti : tumpukan buku, buku telepon, tumpukan koin (uang logam).
Ada 2 operasi yang digunakan pada stack, yaitu push (memasukkan elemen ke stack) dan pop (mengeluarkan elemen dari stack).
Disini contoh coding stack dengan array silahkan klik disini
Dan ini contoh coding Stack dengan Linked List, silahkan klik disini