Anda di halaman 1dari 3

Muhammad Ilham Mahardhika / JTD 4D Laporan Hasil Praktikum

Program Menara Hanoi

Tu juan
 Untuk mempermudah menyelesaikan permainan teka teki menara hanoi
 D apat mengaplikas ikan Repres entasi ruang keadaan untuk menyeles aikan
permainan menara hanoi.

Dasar Teori
M enara H anoi adalah sebuah permainan matematis atau teka-teki. Teka-teki ini
ditemukan Eduard Lucas, ahli matematika P erancis di tahun 1883. Permainan ini terdiri
dari tiga tiang dan sejumlah cakram dengan ukuran berbeda- beda yang bis a dimasukkan
ke tiang mana saja. Permainan M enara Hanoi dimulai dengan cakramcakram yang
tertumpuk rapi dari cakram paling bes ar sampai ke cakram paling terkecil dalam s alah
s atu tiang, s ehingga membentuk kerucut.
Objektif dari permainan M enara H anoi adalah memindahkan tumpukan n buah
cakram berlubang dari tiang as al ke tiang tujuan dengan memanfaatkan sebuah tiang
perantara. Piringan berukuran tidak sama. Jumlah pemindahan dalam n buah cakram
adalah sebanyak 2n -1 kali. Permainan Menara Hanoi memiliki beberapa aturan yang
harus dipatuhi untuk menyeles aikan teka- teki. Dalam melakukan pemindahan cakram
harus mengikuti aturan berikut:
 H anya s atu cakram yang boleh dipindahkan dalam s etiap kal perpindahan.
 S etiap perpindahan berupa pengambilan cakram teratas dari s atu tiang dan
memas ukkannya ke tiang lain, di atas cakram lain yang mungkin s udah ada di
tiang tersebut.
 Tidak boleh meletakkan cakram di atas cakram lain yang lebih kecil.
Agar mempermudah dalam menyelesaikan permainannya maka dibuat program
untuk menemukan solusi penyeles aiannya menggunakan s oftw are dev C++
D ev-C+ + merupakan  s ebuah IDE (Integrated Development Environment) C / C++
yang sudah dilengkapi dengan TD M-GCC Compiler (bagian dari GNU Compiler
C ollection / GCC). Dev-C++ merupakan ID E gratis dan full featur yang didistribusikan
dibaw ah lis ensi GNU General Public Licens e untuk pemrograman C dan C ++. seperti
yang sudah disebutkan diatas  IDE merupakan Lembar kerja terpadu untuk
pengembangan program.
Muhammad Ilham Mahardhika / JTD 4D Laporan Hasil Praktikum
Program Menara Hanoi

Flow ch art

Implemen tasi (S crip t Program)


#include<iostream>

using namespace std;

void MenaraHanoi(int N, char asal, char bantu, char tujuan);

int main()

int piringan;

cout<< "\nPROGRAM MENARA HANOI\n";

cout<< "--------------------\n\n";

cout<< "Banyaknya piringan: ";


cin >> piringan;

cout<< endl;

MenaraHanoi(piringan,'A','B','C'); // A adalah tiang awal , B adalah tiang bantu , dan C tujuan

return 0;

void MenaraHanoi(int N, char asal, char bantu, char tujuan)

if(N == 1)

cout<<"Piringan 1 dari "<<asal<< " ke " << tujuan <<endl;


Muhammad Ilham Mahardhika / JTD 4D Laporan Hasil Praktikum
Program Menara Hanoi
else

MenaraHanoi(N-1,asal,tujuan, bantu);
Fungsi Rekursif

cout<<"Piringan " << N <<" dari " << asal << " ke " << tujuan<<endl;

MenaraHanoi(N-1, bantu, asal, tujuan);

Hasil d an Pemb ah as an

 S creens hoot hasil program

 P embahasan

Ide utama dari penyelesaian permainan Menara H anoi ini adalah


memindahkan cakram terbes ar dari tiang aw al ke tiang tujuan. Cakram utama
dipindahkan dari tiang a ke tiang b. Hal ini berarti (n-1) cakram sudah di
pindahkan satu per satu dari tiang a ke tiang c. Setelah cakram terbesar
dipindahkan ke tiang b, maka perlu dipindahkan (n-1) cakram dari tiang c ke tiang
b s ecara s atu per s atu. Untuk mendapatkan s olus i optimal dalam permas alahan
utama, maka perlu dicari solus i optimal untuk perpindahan (n-1) cakram dari
tiang c ke tiang b. M aka, digunakan fungsi rekursif yang menentukan langkah
untuk mendapatkan jumlah perpindahan minimum yang merupakan solus i optimal
dari penyelesaian M enara H anoi ini.

Kes impu lan

D ari praktikum yang telah dilakukan dapat dis impulkan bahwa :


 P ermainan M enara H anoi dapat dis eles aikan lebih cepat dengan bantuan software
B ahas a pemrograman dev c++ .
 Untuk menentukan solusi tercepat dalam suatu mas alah , terutama dalam permaian
M enara H anoi ini , dapat menggunakan representas i ruang keadaan.

Anda mungkin juga menyukai