Penjelasan Rekursif pada Tower of Hanoi
Apa itu Rekursif ?
Singkatnya, rekursif adalah sebutan suatu proses dimana suatu fungsi memanggil dirinya sendiri. Rekursif biasanya digunakan untuk memecah masalah menjadi masalah yang lebih simpel. Untuk penjelasan lebih lengkap mengenai fungsi rekursif dapat dilihat pada link berikut.
Penjelasan Fungsi Rekursif : https://anggitoanju.blogspot.com/2021/06/penjelasan-rekursif.html
Implementasi Rekursif pada Tower of Hanoi
Untuk penyelesaian masalah secara rekursif, dapat dipecah menjadi tiga langkah, yaitu :
- Pastikan f(1) dapat diselesaikan, dengan f(1) merupakan kasus dasar (Base Case)
- Pastikan bahwa f(n-1) dapat diselesaikan
- Buat hubungan f(n) dengan f(1) menggunakan fungsi f(n-1)
1. Memastikan f(1) dapat diselesaikan
Contohnya pada Tower of Hanoi, kasus f(1) merupakan kasus dimana tower 1 hanya memiliki 1 disk. Kasus ini dapat diselesaikan dengan memindahkan disk pada tower 1 ke tower 3.
2. Pastikan f(n-1) dapat diselesaikan
Kita dapat anggap bahwa penyelesaian kasus n-1 dari banyak disk n, dapat diselesaikan dengan memindahkan sebanyak n-1 disk dari tower 1 menuju tower 3, dan berlaku seterusnya.
3. Buat hubungan f(n) dengan f(1) dengan menggunakan fungsi f(n-1)
Jika kita lihat dari langkah kedua, jika sebanyak n-1 disk dipindah terus menerus dari tower 1 ke 3, akan terjadi dimana tower 1 hanya memiliki 1 disk dan kita tau bahwa kasus ini merupakan kasus dasar.
Setelah menelaah ketiga langkah rekursif diatas, kita mendapatkan penyelesaian pada masalah Tower of Hanoi, seperti pada source code di bawah.
Dengan method ini penyelesaian pada masalah Tower of Hanoi dapat ditemukan. Agar lebih jelas dalam memahaminya, terdapat source code di bawah sebagai GUI agar mendapatkan gambarannya.
Di bawah ini merupakan video hasil keluaran setelah program di run
Semua source code di atas dapat diakses pada link github di bawah ini
Tower of Hanoi GUI : https://github.com/Anggito02/Tower-of-Hanoi_GUI
Referensi :
Penjelasan Rekursif : https://www.youtube.com/watch?v=rf6uf3jNjbo
Penjelasan GUI : https://www.youtube.com/watch?v=39ZbYEV8fU8
Komentar
Posting Komentar