pengertian rekursif dan contoh program rekursif

Mvapdg - Assalamualaikum wr. wb.

Jumpa lagi nih teman – teman.. pada kesempatan kali ini saya akan mencoba untuk menjelaskan mengenai mengenai rekursif ini.. apa kalian sudah pada tau mengenai rekursif ini ? nah mungkin bagi kalian yang belum terbiasa atau belum mengenal dunia pemrograman, mungkin akan merasa asing dengan kata tersebut... namun bagi kalian yang sudah terbiasa dan sudah belajar tentang pemrograman, mungkin kata rekursif sudah tidak asing lagi... nah bagi kalian yang belum mengetahui mengenai rekursif ini, tidak ada salahnya jika kalian membaca postingan saya yang satu ini.. yuk tanpa lama – lama lagi  langsung saja kita bahas mengenai rekursif ini..


Apakah rekursif itu ?

Rekursif ini sebenarnya merupakan sebuah perulangan di dalam sebuah program... namun, perulangan yang satu ini sangat berbeda dengan perulangan pada umumnya.. seperti while dan for. Walaupun fungsinya sama yaitu perulangan atau looping. Letak perbedaannya adalah dari cara kerjanya... jika for dan while merupakan sebuah perulangan yang menggunakan sebuah kondisi atau boolean, maka pada rekursif ini terjadi pada sebuah fungsi atau metode yang memanggil dirinya sendiri. Nah dari penjelasan tersebut dapat kita katakan sebagai perulangan yang memanggil dirinya sendiri untuk melakukan sebuah perulangan. Nah untuk lebih memahami apa yang saya katakan diatas, kalian bisa melihat program di bawah ini ya teman – teman ...


def rekursif(angka):
    if angka > 0 :
        print (angka)
        angka = angka - 1
        rekursif(angka)
    else :
        print(angka)
masukan = int(input("masukkan angka : "))
rekursif(masukan)


nah sudah lihat programnya ?  nah berikut ini akan saya kasi hasil screenshoot ketika program ini di jalan kan...  langsung saja lihat pada gambar di bawah ini ya..



jadi, program ini merupakan program untuk mencetak angka yang kalian masukkan.. dan akan kurangi 1 sampai angka nya bernilai 0. sudah paham belum ? jika belum, izin kan saya untuk menjelaskan program diatas ya teman – teman.. yuk langsung saja saya jelaskan di bawah ini...


def rekursif(angka): //nah ini merupakan metode atau fungsi yang akan saya jadikan untuk melakukan rekursif nantinya. Saya memberi nama fungsi ini dengan nama ‘rekursif’
    if angka > 0 : //ini saya gunakan untuk menyeleksi apakah nilai angka lebih besar atau tidak.
        print (angka) //nah ini saya gunakan untuk mencetak nilai yang ada di dalam variabel angka.
        angka = angka – 1 //kemudian, nilai yang ada di dalam variabel angka saya kurangi sebesar 1.
        rekursif(angka) //nah disinilah saya memanggil fungsi ‘rekursif’ dengan keadaan nilai dalam variabel ‘angka’ yang sudah saya kurangi.
    else :  //ini akan aktif jika nilai “angka” sudah ada pada nilai 0. Atau bisa kita katakan ketika penyeleksian if diatas sudah tidak memenuhi kriteria lagi. Atau “angka > 0” sudah bernilai false.
        print(angka) //ini saya gunakan untuk mencetak nilai ‘angka’ yang terakhir. Dan tentunya sudah bernilai 0.
masukan = int(input("masukkan angka : "))  //perintah ini saya gunakan untuk meminta kalian memasukkan angka yang akan di masukkan ke dalam fungsi saat program di jalankan.

rekursif(masukan) //ini merupakan pemanggilan fungsi atau metode “rekursif” yang sudah saya buat di atas dengan parameter yang sudah di masukkan saat program ini di jalankan.

Nah itu dia penjelasan dari contoh program diatas.. semoga bisa di bisa kalian pahami ya... jika belum paham, kalian bisa membacanya berulang – ulang dan lebih teliti lagi ya...


Contoh program yang menggunakan perulangan rekursif.

Nah setelah saya menjelaskan mengenai perulangan rekursif ini, maka selanjutnya saya akan mencoba untuk memberikan contoh – contoh program yang menggunakan perulangan secara rekursif. Hal ini agar dapat menambah pemahaman serta memberikan pengetahuan, untuk seperti apa penggunaan dari perulangan ini. dan akan sangat lucu kan.. kalau kalian belajar sesuatu, tapi kalian tidak tau fungsinya... nah maka dari itu, yuk simak contoh – contoh program yang akan saya berikan di bawah ini..

Nah contoh yang akan saya berikan berikut ini merupakan contoh untuk mengkonversi angka dari bilangan decimal menjadi biner, okta dan hexa. Nah bagaimana program nya ? yuk langsung saja kita lihat di bawah ini...


def toStr(n,base):  
    convertString = "0123456789ABCDEF"  
    if n < base:      
        return convertString[n]  
    else:      
        return toStr(n//base,base) + convertString[n%base]
print("silahkan masukkan angka dan basis yang kalian inginkan.")
angka = int(input("silahkan masukkan : "))
basis = int(input("masukkan basis : "))
print(toStr(angka,basis))



seperti yang sudah saya katakan di atas, program tersebut dapat digunakan untuk mengkonversi bilangan desimal menjadi bilangan Biner, Oktal dan juga Hexa. Bagaimana kah caranya ? caranya adalah kita tinggal memasukkan angka yang akan kalian konversi, lalu di ikuti dengan basis bilangan yang kalian inginkan. Contohnya adalah :  toStr(432,2) untuk mengkonversi angka 432 menjadi bilangan biner atau angka dengan basi 2. Lalu toStr(432, 8) untuk mengkonversi bilangan 432 menjadi bilangan okta atau menjadi angka dengan basis 8. Dan yang terakhir adalah toStr(432,16) yang digunakan untuk mengkonversi angka 432 menjadi bilangan berbasi 16 atau heksa. untuk lebih jelasnya, kalian bisa lihat contoh screenshoot hasil ketika program ini dijalankan.. silahkan lihat pada gambar di bawah ini ya...




Penjelasan code program contoh rekursif.


Nah untuk lebih memperjelas lagi dari program diatas, berikut saya akan menjelaskan dengan cara menjabarkannya di bawah ini..

def toStr(n,base):  //ini merupakan class rekursif untuk mengkonversi angka.dan saya beri nama toStr     
    convertString = "0123456789ABCDEF" //ini bisa saya katakan sebagai database. Masudnya, adalah, semua data yang akan di tampilkan nantinya diambil dari karakter yang ada di di variabel ‘convertString’.
    if n < base:  //ini merupakan sebuah penyeleksian. Yang menanyakan apakah angka yang kita masukkan lebih kecil dari basis yang kita masukkan.     
        return convertString[n] //ini digunakan untuk mengembalikan sebuah karakter yang diambil dari variabel ‘convertString’ yang sudah saya katakan sebagai database tadi. Dia akan mengambil salah satu karakter saja sesuai nilai n nya. Contoh, jika nilai ‘n’ adalah 0 maka yang akan diambil adalah angka 0. Dan jika nilai ‘n’ nya adalah 16 maka akan mengambil karakter ‘f’.
    else: //ini merupakan bagian dari if. Apabila kondisi pada if tidak memenuhi, atau bernilai false, maka perintah yang ada di else ini lah yang akan di eksekusi.     
        return toStr(n//base,base) + convertString[n%base]  //ini digunakan untuk melakukan perulangan secara rekursif dengan cara memanggil fungsi yang sama yaitu ‘toStr’ dengan perlakuan angka dalam variabel n, dibagi dengan basisnya.
print("silahkan masukkan angka dan basis yang kalian inginkan.") //digunakan untuk mencetak kata – kata yang ada di dalam tand petik.
angka = int(input("silahkan masukkan : ")) //digunakan agar saat program dijalankan, maka program akan meminta user untuk memasukkan angka. yang akan di konversi nantinya.
basis = int(input("masukkan basis : ")) //code ini digunakan agar program meminta user untuk memasukkan basis angka yang menjadi tujuan konversi nantinya.

print("hasil konversi : " + toStr(angka,basis))//fungsi code yang satu ini adalah untuk memanggil sekaligun mencetak hasil dari fungsi toStr dengan angka yang sudah dimasukkan sebelumnya. Dan sudah ditampung ke dalam variabel angka dan basis.

Nah itu dia teman – teman .. postingan saya mengenai rekursif ini.. mulai dari pengertian dari rekursif itu sendiri sampai contoh penggunaan dari perulangan yang satu ini... jadi saya rasa lengkap sudah pembahasan saya pada postingan kali ini... semoga kalian bisa memahami semua yang sudah saya jelaskan tadi ya..  dan juga dapat memanfaatkannya pada program kalian... dan juga dapat menambah ilmu tentunya.. jagan lupa di bagikan ke teman – teman  kalia ya... baik lewat sosial media maupun yang lainnya...

Oya.. jika ada yang masih kurang jelas dengan penjelasan saya diatas, kalian dapat langsung menanyakannya di kolom komentar di bawah postingan ini ya teman – teman... kalau saya bisa, insya Allah saya akan menjawabnya secepat yang saya bisa.. sampai disini dulu ya pembahasannaya.. kurang lebihnya saya mohon maaf dan mohon di maklumi.. terimakasih sudah berkunjung dan membaca postingan saya..
Wassalamualaikum wr. wb.
Previous
Next Post »
Thanks for your comment