Blogger news

Blog ini dibuat hanya untuk kepuasan dan hiburan semata selain itu untuk memberikan informasi yang berguna maupun tidak berguna yang penting masuk akal. semoga kalian semua terhibur

Kamis, 15 Maret 2012

Tower Of Hanoi (Menara Hanoi)

Alhamdulillah Dosen Struktur Data saya memberikan tugas tentang "Tower Of Hanoi", apa sih "Tower of Hanoi" itu ? atau yang bahasa indonesianya "Menara Hanoi", saya juga belum tau. Makdartu (maka dari itu) mari kita simak resume dari beberapa artikel yg saya dapat di bawah ini.


Jadi apa sih Menara Hanoi itu ? 
Menara Hanoi adalah sebuah permainan matematis atau teka-teki. Permainan ini terdiri dari tiga tiang (terdiri dari tiang asal, tiang bantu, dan tiang tujuan) dan sejumlah cakram dengan ukuran berbeda-beda yang bisa dimasukkan ke tiang mana saja. Permainan dimulai dengan cakram-cakram yang tertumpuk rapi berurutan berdasarkan ukurannya dalam tiang asal, cakram terkecil diletakkan teratas, sehingga membentuk kerucut.

Teka-teki ini ditemukan Édouard Lucasahli matematika Perancis di tahun 1883. Ada sebuah legenda tentang candi Indian yang berisi ruang besar dengan tiga tiang yang dikelilingi 64 cakram emas. Pendeta Brahma, melaksanakan tugas dari peramal di masa lalu, sesuai dengan aturan teka-teki ini. Menurut legenda ini, bila teka-teki ini diselesaikan, dunia akan kiamat. Tidak jelas benar apakah Lucas menemukan legenda ini atau terinspirasi olehnya.

Teka-teki ini cukup dikenal oleh para mahasiswa Ilmu Komputer karena sering muncul pada pengenalan struktur data dan algoritma.

Tujuan dari teka-teki ini adalah untuk memindahkan seluruh tumpukan ke tiang yang lain, mengikuti aturan berikut :
1. Hanya satu cakram yang boleh dipindahkan dalam satu waktu.
2. Setiap perpindahan berupa pengambilan cakram teratas dari satu tiang dan memasukkannya ke tiang lain, di atas cakram lain yang mungkin sudah ada di tiang tersebut.
3. Tidak boleh meletakkan cakram di atas cakram lain yang lebih kecil.

Alat peraga menara hanoi dapat dimanfaatkan dalam pembelajaran untuk: 
1. Melatih kemampuan siswa dalam memecahkan masalah (problem solving) 
2. Menemukan barisan bilangan dengan cara bermain 
3. Menemukan rumus pola bilangan


Ilustrasi Tower Of Hanoi :


Pahami yang ini juga ya ....

Permasalahan Menara Hanoi:
– Menara A sebagai sumber
– Menara C sebagai tujuan
– Menara B sebagai bantuan

Seperti biasa untuk memecahkan masalah kita daftarkan dulu langkah – langka yang diambil mulai n = 1. Dengan dfinisi piringan yang paling atas ialah piringan 1.

Untuk n = 1 :
- Pindahkan piringan 1 dari A ke C 

Untuk n = 2 :
- Pindahkan piringan 1 dari A ke B
- Pindahkan piringan 2 dari A ke C
- Pindahkan piringan 3 dari B ke C

Dari contoh diatas dapat diambil kesimpulan , untuk memindahkan N piringan dari tonggak asal (A) ke tonggak tujuan (C) maka piringan ke N harus berada di tonggak tujuan (C) , sedangkan piringan ke 1 sampai (N - 1) harus berada di tonggak bantu (B). Setelah piringan ke 1 sampai (N-1) berada pada tonggak bantu (B) , kemudian pindahkan piringan ke 1 sampai (n-1) tersebut dari tonggak bantu (B) ke tonggak tujuan (C) Nah bagaimana caranya membawa piringan ke 1 sampai (N-1) dari tonggak asal ke tonggak bantu (B) , caranya sama saja yaitu dengan memindahkan piringan ke (n-1) dari tonggak asal (A) ke tonggak tujuan yang pada saat ini berada pada tonggak (B) sedangkan piringan dari 1 sampai ke (N-2) dipindahkan ke tonggak bantu yang saat ini berada di tonggak (C) , Setelah piringan ke 1 sampai (N-2) berada pada tonggak bantu (C) , kemudian pindahkan piringan ke 1 sampai (N-2) ke tonggak tujuan (B) dan seterusnya.Metode penyelesaian permainan Hanoi diatas sering disebut sebagai metode back tracking , jadi solusi dicari dengan cara mundur ke belakang dahulu , baru kemudian solusi bisa di temukan .

Program :

#include <stdio.h> 

void towers (int n, char awal, char akhir, char antara) 

if(n==1) 
printf ("Pindahkan piringan 1 dari %c ke %c\n", awal,akhir); 

else{
towers(n-1, awal, antara, akhir); 
printf("Pindahkan piringan %d dari %c ke %c\n", n, awal, akhir); 
towers(n-1, antara, akhir, awal); 

void main() 
int n; 
printf("Berapa piringan ? ");scanf("%d", &n); 
towers(n, 'A', 'C', 'B'); 

Outputnya :


indahnya berbagi :)
semoga bermanfaat ...

syumber :
http://rusdyana.wordpress.com/2009/11/12/algoritma-menara-hahttp://triyatnoize.blogspot.com/2012/01/menara-hanoi.html
www.freewebs.com/tekomitn/Materi/Struktur/rekursif-bw.ppt
http://rasyid14.wordpress.com/2011/06/17/menara-hanoi/
http://richienarchy.blogspot.com/ noi/

0 komentar:

Posting Komentar

Follow Me