Rekursi

Apa itu rekursi?

Kata serapan dari bahasa inggris recursion yang definisinya tidak penting karena bisa di search di google atau wikipedia. Intinya rekursi adalah suatu definisi yang mendefinisikan ulang dirinya (rekuren) , namun tetap harus ada minimal satu kesimpulan akhir (basis).

Sebagai seorang yang pragmatis, saya lebih suka untuk menjelaskannya dengan contoh:

1. Seorang pemimpi

Seorang bermimpi (1), dalam mimpinya dia tidur dan bermimpi (2), lalu dalam mimpi dia tidur dan bermimpi (3), dalam mimpinya dia tidur dan bermimpi (4) , dia terbangun (4), dia terbangun (3), dia terbangun (2), dia terbangun (1)

Dalam hal ini rekuren adalah seseorang bermimpi, dan basis adalah terbangun. Apabila tidak ada basis, maka rekursi akan terus berjalan tanpa henti, harus ada basis yang dalam hal ini adalah terbangun, agar ada akhir dari rekursi.

2. Nyanyian Anak-Anak di Bandung dan Sekitarnya

Ada nyanyian anak-anak walaupun sebenarnya tidak pantas dinyanyikan anak-anak, hanya saja, saya harus akui saya menyanyikan ini ketika anak-anak dan tidak sadar bahwa artinya sangan memalukan. Ada dua lagu:

– Memang bulu ketek tidak sama dengan bulu me, mang bulu ketek tidak sama dengan bulu me, mang bulu ketek tidak sama dengan bulu

QUIZ: tentukan rekuren dan basis nya, hahaha

– E… ada gajah-gajah itu tulalean-e… ada abah abah itu keur, e… ada gajah-gajah itu tulalean-e… ada abah-abah itu keur,

Catatan: tulalean = berbelalai, keur = sedang, bhs. Sunda

QUIZ: pertanyaan sama, hahaha

Apa Beda Rekursi dan Iterasi

Iterasi adalah bentuk pengulangan secara lengkap. Contoh akan menjelaskan tanpa definisi yang panjang:

Seorang tertidur dan bermimpi lalu terbangun, esoknya kembali tertidur dan bermimpi lalu terbangun, esoknya kembali tertidur dan bermimpi lalu terbangun, esoknya kembali tertidur dan bermimpi lalu terbangun, esoknya kembali tertidur dan bermimpi lalu terbangun, dst.

Rekursi pada Jaman 1001

Seandainya Aladin mengetahui rekursi, dia bisa melakukan trik: permintaan pertama dia minta kekayaan, permintaan kedua dia minta istri yang cantik, permintaan ketiga dia minta tida permintaan lagi. Sayang Aladin tidak berpikir seperti itu, atau sang penulis tidak berpikir ke arah itu.

Rekursi dalam Kehidupan Nyata

Supaya tulisan ini agak berbobot dan ada gunanya, bukan sekedar bicara ngalor-ngidul saya memberikan contoh kasus dan aplikasi dari rekursi di dunia nyata.

Contoh yang paling umum adalah mengucapkan angka dalam kata-kata, atau dalam kwitansi atau tagihan biasa disebut terbilang.

Contoh:

1 = satu, 2 = dua,  3000 = tiga ribu, 31 = tiga puluh, satu 100 = seratus, 11 = sebelas, 101111 = satu juta seribu seratus sebelas

Ini adalah contoh rekursi, mengapa? contoh untuk menyebutkan 100111 di dalamnya kita menyebutkan kata satu, kata seribu, kata seratus dan kata sebelas. Basis dari rekursi di sini tidak tunggal, melainkan beberapa bentuk dasar dari pengucapan angka dalam Bahasa Indonesia, contohnya 1,2,3,10,11,100,1000, dst. Untuk bentuk tidak dasar seperti 2000 cukup mendefinisikan ulang (rekuren) dari bentuk dasar 2 dengan ditambah kata ‘ribu’ di belakang pengucapan bentuk dasar tadi.

Supaya tulisan ini bermanfaat saya lampirkan source code untuk fungsi pengucapan ini dalam PL/SQL.

Semoga bermanfaat.

SayIDR-plsql

Advertisements

Komentar, pertanyaan, sanggahan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s