A Fibonacci sequence is a sequence of integers which first two terms are 0 and 1 and all other terms of the sequence are obtained by adding their preceding two numbers. Show For example: 0, 1, 1, 2, 3, 5, 8, 13 and so on... See this example: Output: Pada part kedua ini, kita akan melanjutkan proses pemecahan masalah fibonacci pada part pertama yang lalu. Sekedar mengingatkan, pada pertemuan yang lalu kita telah memecahkan kasus deret fibonacci dengan 2 buah solusi non-rekursif; solusi pertama adalah menggunakan list, dan solusi yang kedua adalah menggunakan variabel bantuan. Pada kesempatan kali ini, kita akan mencoba untuk memecahkan deret bilangan fibonacci menggunakan fungsi rekursif. Apa itu Fibonacci?Buat kalian yang belum tahu, fibonacci adalah suatu deret bilangan yang mana tiap angkanya adalah hasil penjumlahan dari dua angka sebelumnya. Dan dua anggota pertama dari deret fibonacci selalu 0 dan 1. Contoh:
PersiapanSalah satu tujuan dari pembahasan ini adalah untuk memperdalam pemahaman kita terhadap fungsi rekursif. Maka sebelum mulai, pastikan bahwa kalian telah mengetahui dasar-dasar python, terlebih 2 pembahasan berikut:
Karena jika tidak, kalian akan menemukan kesulitan dalam mengikuti tutorial ini. 1. Buat FileKita langsung mulai saja proses ngoding-nya. Silakan buat file baru berekstensi 7 menggunakan IDE / Teks Editor favorit kalian. Bebas saja, kalau saya pribadi sih menggunakan vscode karena lebih universal.2. Buat Simulasi RekursifSeperti biasa, kita mulai proses ngoding kita step-by-step. Langkah demi langkah. Tidak langsung keseluruhan kode program. Kenapa? Karena jika seperti itu, kita tidak akan tahu bagaimana proses berpikir dalam memecahkan sebuah permasalahan pemrograman. Pada langkah-langkah awal, tujuan kita adalah:
Maka kita simulasikan dulu, setiap iterasi pemanggilan fungsi harus mengembalikan setidaknya satu list dengan satu anggota. Tulis kode program berikut:
Panggil dan 8 secara berurutan:
Output yang kita dapat:
Sedangkan output yang kita inginkan adalah:
Kita bisa menjadi satu dengan operator 9.Sehingga kode program kita akan terlihat seperti ini:
Output:
Penjelasan Secara singkat, fungsi rekursif di atas akan mengembalikan list sebelum n ditambah dengan list yang berisi 0 itu sendiri.Kalau dibongkar, ia melakukan penjumlahan list sebanyak 1:
Kita menginputkan 0 dengan nilai 5, dan yang kita dapatkan adalah 6 item (karena perulangannya kita buat dari 0).2. Persiapan VariabelKita berhasil membuat fungsi rekursif yang mengembalikan sebuah list. Ini adalah pondasi alur kita. Langkah berikutnya agar alur program menjadi lebih mudah untuk dipahami, mari kita buat beberapa variabel.
Kalau kita perhatikan, kita telah mengubah proses 3 dari fungsi 4 dari yang awalnya gini:
Menjadi: 0Hal ini membuat kita bisa “ngapa-ngapain” dulu dengan list sebelum n. Misal 0 sekarang sama dengan 5, berarti kita bisa melakukan hal-hal tertentu dengan list 1-4 terlebih dahulu.Dan di dalam kasus di atas, yang kita lakukan adalah mengambil dua buah angka dari list sebelumnya lalu menyimpannya dalam variabel 6 dan 7.Kalau kita perhatikan, kita juga melakukan sebuah : 1Jika dijalankan, program di atas akan menghasilkan output: 23. Proses Inti FibonacciSampai sini, sebenarnya kita telah melakukan progress lebih dari 80%. Kita telah mengetahui:
Yang perlu kita lanjutkan untuk menggenapkan proses fibonacci hanya satu saja! Yaitu:
Sehingga, kita hanya perlu mengubah satu baris aja yaitu bagian 3 yang ini: 3Menjadi: 4Jalankan kembali aplikasi, maka kita akan mendapatkan output sebagai berikut: 5Sampai sini kita telah berhasil memecahkan proses fibonacci dengan cara rekursif 😁 Nggak nyangka kan? FinishingLangkah berikutnya adalah finishing. Tidak perlu aneh-aneh, kita hanya perlu menghapus beberapa 8 dan membuat perintah 0 agar panjang deret fibonacci bisa ditentukan oleh user.Berikut ini hasil akhirnya: 6KesimpulanDari pertemuan kali ini kita bisa menyimpulkan beberapa poin:
Kode Program LengkapSebenarnya kode program lengkapnya sudah tertuang di sini. Akan tetapi, jika ingin yang lebih step-by-step, kalian bisa mengaksesnya pada link ini. Pertemuan SelanjutnyaInsyaallah pada pertemuan selanjutnya dari seri Latihan Logika Python, kita akan mempelajari bagaimana cara mencetak dan memeriksa bilangan prima dengan python. Stay tune! Jika ada pertanyaan atau sesuatu yang ingin didiskusikan, atau bahkan request tutorial, jangan sungkan-sungkan untuk berkomentar, ya! 😁 |