Langkah minimal yang dibutuhkan untuk menyelesaikan kasus Menara Hanoi dengan 10 lempengan adalah

Game Logika Menara Hanoi dengan Bahasa Pemrograman Visual Basic.Net Weiskhy Steven Dharmawan 1,2 Program Studi Magister Ilmu Komputer, STMIK Nusa Mandiri Jakarta Jl. Salemba Raya No 5 Jakarta Pusat, Indonesia ABSTRACT Child is synonymous with the game, or "game". Not apart also that in reality people - adults or even older people also love something called game. As we know, one of the classic issues contained in algorithm design is the problem of the Tower of Hanoi or also known as the Tower of Hanoi or Hanoi Tower. Which is also a "Problem Solving Game" or "Games solve the problem". In order to obtain a settlement approach to the problem and implement it in a game that can cultivate the speed of thinking skills in making decisions. The authors tried to implement in the programming language Visual Basic.Net. It is known, that the Tower of Hanoi puzzle was invented by the French mathematician Edouard Lucas in the year 1883. Starting from a story or legend about a priest Brahma who adhered to the ancient prophecy that the forecast is talking about how he moved the 64 discs in one pole to pole others by following certain rules. The number of poles there are only 3, where the problem arises when the disk may only be moved one time and a large disk should not be on a large disk. According to the legend believed by Brahma that if the task is successful then the world would end. Keywords: hanoi tower, Visual Basic.Net, games. I. PENDAHULUAN Ditengah pesatnya kemajuan informasi, dalam jurnal ini penulis mencoba mengangkat sesuatu yang bisa menumbuh kembangkan kemampuan berfikir dalam mengambil keputusan khususnya untuk anak - anak yang berumur 3 sampai dengan 7 tahun. Sehingga bisa membantu mereka untuk berpikir kritis dan cepat. Game logika Menara Hanoi selanjutnya akan disebut Hanoi Tower. Telah diketahui, bahwa puzzle Hanoi Tower ini ditemukan oleh ahli matematika dari prancis Edouard Lucas ditahun 1883. Bermula dari cerita atau legenda mengenai seseorang pendeta Brahma yang berpegang pada ramalan kuno dimana ramalan tersebut berbicara tentang bagaimana ia memindahkan 64 disk dalam salah satu tiang ke tiang yang lainnya dengan mengikuti peraturan tertentu. Jumlah tiang yang ada hanya 3, dimana permasalahannya timbul ketika disk tersebut hanya boleh digerakan 1 kali dan disk yang besar tidak boleh berada diatas disk yang kecil. Menurut legenda yang dipercayai oleh Brahma tersebut berhasil dilakukan maka dunia akan kiamat. 1.1. Intisari Permasalahan Ditengah maraknya jenis permainan di dunia ini. Penulis memilih menara hanoi yang merupakan game pemecahan masalah dan juga dikarenakan masih relevan dengan dunia pendidikan. Dimana game itu berhubungan dengan banyak bidang seperti matematika, psikologi, komputer dan banyak bidang lainnya. Dimana bidang-bidang tersebut banyak membutuhkan logika, sehingga game ini dapat berguna untuk mengasah logika. Permasalahan yang timbul adalah biasanya permainan menara hanoi dilakukan secara manual dengan menyusun tiang dan lempeng yang ada sihingga akan dapat menyusahkan sekali dalam mempraktekannya. Sehingga penulis mencoba membuat suatu aplikasi permainan menara hanoi, sehingga tercapai tujuan dan manfaat yang ingin dicapai. 1.2 Maksud dan Tujuan Maksud dari pembuatan Game Hanoi Tower dalam pemrograman Visual Basic.Net, membantu menumbuh kembangkan kemampuan berpikir dalam mengambil keputusan khususnya bagi anakanak yang membutuhkan suatu permainan dalam pertumbuhan pemikiran mereka. Sehingga bisa membantu mereka untuk berpikir kritis dan cepat. Tujuan yang didapat adalah untuk memudahkan pengertian dan pemahaman mengenai Hanoi Tower secara teori dan praktek sehingga diharapkan nantinya anak-anak yang berhasil memecahkan persoalan ini dapat memiliki kemampuan mengambil keputusan dengan cepat. 1.3 Batasan Masalah Untuk menunjang pembuatan Hanoi Tower dan implementasinya dalam Visual Basic.Net, maka perlu dibuat batasan-batasan permasalahan agar pembahasan lebih mengarah dan tujuannya tercapai. 1

Batasan-batasan tersebut nantinya akan digunakan sistem level pada permainan game Hanoi Tower ini untuk mengetahui setiap tingkatan yang akan dimainkan, berikut penjelasannya: 1. Level dasar 1 : dengan 3 disk/lempeng. 2. Level dasar 2 : dengan 4 disk/lempeng. 3. Level dasar 3 : dengan 5 disk/lempeng. 4. Level tingkat lanjut : dengan 6 disk/lempeng. 5. Level menengah lanjut : dengan 7 disk/lempeng. 6. Level mahir : dengan 8 disk/lempeng. Adapun alasan menggunakan 3, 4 sampai 8disk/lempeng akan ditunjukan dalam tabel berikut: Tabel 1.1 Solusi Hanoi Tower per disk. Penulis mengasumsikan skenario terbaik untuk anak umur 3 sampai 7 tahun dalam menyelesaikan permasalahan adalah dengan 3 disk, bukannya 1 disk atau 2 disk. Karena, salah satu syarat minimal untuk menjalankan tower hanoi membutuhkan minimal 3 disk. II. LANDASAN TEORI Menara Hanoi yang disebut dalam bahasa Inggris Towers of Hanoi adalah permainan matematika atau puzzle. Puzzle ini dimulai dengan disk yang tertata rapi dimana disk yang paling besar berada dibawah dan disk paling kecil berada di atas. Obyektifitas dari game ini adalah memindah seluruh disk dari satu menara ke menara yang lain dengan peraturan sebagai berikut: 1. Dalam sekali waktu hanya satu disk yang hanya berjalan. 2. Setiap disk diangkat satu persatu dari satumenara kemenara yang lain secara bergantian. 3. Disk yang besar tidak boleh berada dia atasdisk yang kecil. 2.1 Fakta Mengenai Tower Hanoi Xu, dkk (2001, p.2) mengemukakan bahwa Puzzle Hanoi Tower ini ditemukan oleh ahli matematika dari Perancis Édouard Lucas ditahun 1883. Bermula dari cerita atau legenda mengenai seorang pendeta Brahma yang berpegang pada ramalan kuno dimana ramalan tersebut berbicara tentang bagaimana ia memindahkan 64 disk dalam salah satu tiang ke tiang yang lainnya dengan mengikuti peraturan tertentu. Menurut legenda yang dipercayai oleh Brahma tersebut jika tugas tersebut berhasil dilakukan maka dunia akan kiamat. Jika legenda itu benar dan pendeta tersebut mampu memindahkan disk tersebut dengan kecepatan 1 per detik, menggunakan gerakan terringkas atau tercepat, maka akan diperlukan (dari 2 n -1) waktu 2 64-1 detik atau 18.446.744.073.709.551.615 langkah tercepat yang bisa diambil untuk meyelesaikan persoalan dengan 64 disk dan jika dikerjakan siang dan malam non stop dengan satu langkah per detik butuh waktu sekitar 582.442.000 juta tahun. Banyak legenda yang berbeda mengenai hal ini, beberapa orang mengatakan temple atau kuil yang disebut adalah tempat ibadah dan pendeta tersebut sebagai kepala didalam ibadah tersebut. Di berbagai negara mungkin banyak persepsi yang berbeda pula. Bahkan ada pula versi cerita yang mengatakan bahwa elemen-elemen (64 disk) ini diciptakan saat dunia pertama kali dijadikan dimana pendeta atau pemimpin ruang ibadah tersebut hanya boleh memindahkan satu disk per hari. 2.2 Sejarah Algoritma Suarga (2006:1) mengemukakan dalam bukunya bahwa Abu Ja far Muhammad Ibnu Musa Al-Kwarizmi ahli matematika dan astronomi persia, penulis buku Aljabar wal muqabala beberapa abad yang lalu (diperkirakan wafat pada tahun 850), dianggap sebagai pencetus pertama algoritma karena di 2

dalam buku tersebut Abu Ja far menjelaskan langkah-langkah dalam menyelesaikan berbagai persoalan aritmatika (aljabar). Kemungkinan besar algoritma diambil dari kata Al-kwarizim yangmkemudian berubah menjadi algorism, selanjutnya menjadi algorithm. 2.3 Ciri Algoritma Menurut suarga dalam Knuth (2006:2) menyatakan bahwa ada beberapa ciri algoritma, yaitu: 1. Algoritma mempunyai awal dan akhir, suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas. 2. Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda, tidak membingungkan (not ambiguous). 3. Memiliki masukan (input) atau kondisi awal. 4. Memiliki keluaran (output) atau kondisi akhir. 5. Algoritma harus efektif, bila diikuti benarbenar maka akan menyelesaikan persoalan. Algoritma bisa ditemukan dalam kehidupan sehari-hari, misalnya: Tabel II.1 Contoh Algoritma dalam kehidupan sehari-hari Proses Algoritma Contoh langkah Membuat kue Resep kue Campuran 200 gram gula, 400 gram trigu dan 5 butir telur, kemudian diaduk hingga menjadi adonan. Menggunakan pesawat televisi Buku petunjuk Pastikan kabel power sudah disambungk an ke sumber listrik, kemudian tekan tombol Praktikum kimia Petunjuk pratikum power hingga lampu indikator merah menyala. Campurkan 15 ml asam nitrat ke dalam 15 ml natrium hidroksida. Ketika suatu pekerjaan akan dilakukan maka tanpa sadar otak kita sudah merencanakan bagaimana pekerjaan tersebut akan dilaksanakan, misalkan ketika anda berpikir akan makanan siang disuatu kedai saiap saji. Di dalam benak anda mulai timbul rencana, yang mungkin antara lain adalah sebagai berikut: anda akan makan di kedai siap saji terdekat, memilih menu yang sesuai selera, dan setelah makan akan menuju ke tempat lain. 2.4 Sifat Algoritma Berdasarkan ciri algoritma yang dipaparkan Donald Knuth dan difinisi algoritma, dapat disimpulkan bahwa sifat utama suatu algoritma adalah sebagai berikut: 1. Input : suatu algoritma memiliki input atau kondisi awal sebelum dilaksanakan, bisa berupa nilai-nilai peubah yang diambil dari himpunan khusus. 2. Output : suatu algoritma akan menghasilkan output setelah dilaksanakan, atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diperoses melalui algoritma. 3. Definiteness : langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma. 4. Finiteness : suatu algoritma harus memberi kondisi akhir atau output setelah sejumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan. 5. Effectiveness : setiap langkah dalam algorittma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan solusi sesuai yang diharapkan. 6. Generality : langkah-langkah algoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan tertentu. 2.5 Visual Basic.Net 3

Menurut Ricyanto (2003:7) Visual Basic.Net adalah generasi penerus Visual Basic 6 dari Microsoft. Dengan Visual Basic.Net, dapat membangun aplikasi Windows, Web service dan aplikasi web dengan ASP.NET secara cepat dan mudah. Aplikasi yang dibuat dengan Visual Basic.Net dibangun diatas service common language runtime sehingga memiliki keunggulankeunggulan dari.net Framework. III. PEMBAHASAN 3.1 Sekilas Mengenai Menara hanoi Berikut akan dijelaskan solusi dalam menyelesaikan permasalahan menara hanoi. 3.1.1 Algoritma Rekursif Rekursif adalah suatu suatu algoritma proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaanya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggilan prosedur atau fungsinya. Rekursif merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman moderen mendukung keberadaan proses rekursif ini. Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berpeluang yang tidak bisa diketahui kapan akan berakhir. 3.1.2 Solusi dalam Algoritma Non Recursive Berikut solusi dalam algoritma Non Recursive. Gerakan alternatif yang bisa dilakukan: 1. Pindahkan disk terkecil kemenara yang bukan asalnya. 2. Pindahkan disk lainnya sesuai peraturan (dan kemudian hanya tinggal satu kemungkinan). Untuk memutuskan langkah pertama yang diambil, pindahkan disk terkecil ke menara tujuan terakhir, jika disana ada beberapa disk lainnya pindahkan ke menara lainnya yang belum terisi dan menuju kemenara laiinya yang bisa dimasuki. Jadi jika banyaknya disk sudah final maka solusinya akan dimulai sebagai berikut: 1. Pindahkan disk terkecil kemenara intermediate. 2. Pindahkan disk terkecil ke 2 menuju menara target. 3. Pindahkan disk terkecil menara target 4. Pindahkan disk terkecil ke 3 menuju menara intermediate. 5. Pindahkan disk terkecil menuju menara start. 6. Pindahkan disk terkecil ke 2 menuju menara intermediate 7. Pindahkan disk terkecil menuju menara intermediate 8. Pindahkan disk terkecil ke 4 menuju menara target 9. Dan seterusnya. Agar bentuk algoritma dan proses penyusunannya dapat mulai dpahami maka berikut ini akan diuraukan proses pembuatan algoritma mulai dari bentuk yang menggunakan bahasa sehari-hari, disusul penjelasan format algoritma yang dapat dijadikan acuan, dan bebera[a contoh pembuatan algoritma yang mengikuti suatu format tertentu. 3.1.3 Solusi Algoritma Recursive Berikut solusi dalam Solusi Dalam Algoritma Recursive: 1. Menara kita beri label Label A, B, C; label ini dapat bergerak dalam setiap langkah yang berbeda. 2. Total jumlah disk = n. 3. Nomor disk dimulai dari 1 (terkecil dan paling atas) sampai ke n (paling besar dan paling bawah). Untuk mengerakkan disk dari A ke B: 1. Pindahkan disk n 1 dari A menuju C. Ini meninggalkan sisa disk di menara A. 2. Pindahkan n dari A menuju B. 3. Pindahkan disk n 1 dari C menuju B. jadi disk tersbut dapat berada diatas disk n pada langkah no 2. Solusi diatas adalah solusi dalam algoritma recursive : Untuk melakukan langkah 1 dan 3, lakukan algoritma yang sama untuk n 1. Keseluruhan prosedur adalah jumlah langakah yang terbatas, sejak dari level paling bawah dalam rekusi, n dikurangi satu dan mulai saat itu algoritma akan memerlukan untuk n = 1. Algoritma yang didapat adalah sebagai berikut dalam bahasa pemrograman Visual Basic.Net: 4

Private void ProcessMovingDisk(PictureBox clikedrod) Berikut flowchart System Recursive Algoritma Hanoi Tower: { If(secondClickedDisks.Count == 0) MoveDisk(new Point(clikedRod.Location.X+DISTXFROMRODTODIS START private void ProcessMovingDisk(PictureBox clikedrod) K, FIRSTY)); else { PictureBoxfirstTopDisk=firstClikedDisks.Peek(); PictureBoxsecondTopDisk=secondClickedDisks.Pee k(); if (secondclickeddisks.count == 0) true MoveDisk(new Point(clikedRod.Location.X + DISTXFROMRODTODISK, FIRSTY)) if (int.parse(firsttopdisk.tag.tostring()) < int.parse(secondtopdisk.tag.tostring())) MoveDisk(new Point(secondTopDisk.Location.X, secondtopdisk.location.y - DISKHEIGHT)); else secondclickeddisks = null } Else PictureBox firsttopdisk = firstclikeddis ks.peek() true PictureBox secondtopdisk = secondclickeddisks. Peek() if (int.parse(firsttopdisk.tag. ToString()) < int.parse(secondtopdisk.tag. ToString())) False true MoveDisk(new Point(secondTopDisk.Locati on.x, secondtopdisk.location.y - DISKHEIGHT)) END 5

Adapun algoritma perpindahan disk yang didapat sebagai berikut dalam bahasa pemrograman Visual Basic.Net: Sedangkan penyelesaian masalah untuk menara hanoi dengan 3 disk bisa ditunjukan pada gambar berkut : private void MoveDisk(Point point) { PictureBox firsttopdisk=firstclikeddisks.pop(); firsttopdisk.location = point; secondclickeddisks.push(firsttopdisk); ++movecount; lblmovecount.text = string.format("perpindahan: {0} lang", movecount); firstclikeddisks = secondclickeddisks = null; picroda.borderstyle = picrodb.borderstyle = picrodc.borderstyle = BorderStyle.None; if (disksc.count == nudlevel.value) { btngivein.performclick(); MessageBox.Show("Anda Berhasil, Anda sangat Mahir ", "Selesai"); } } private void picdisk_click(object sender, EventArgs e) { PictureBox clickedisk = (PictureBox)sender; if (disksa.contains(clickedisk)) picrod_click(picroda, new EventArgs()); else if (disksb.contains(clickedisk)) picrod_click(picrodb, new EventArgs()); else picrod_click(picrodc, new EventArgs()); } Gambar III.1 Langkah tercepat penyelesaian masalah Hanoi Tower dengan 3 disk. 3.2 Deskripsi Aplikasi Aplikasi ini sendiri adalah sebuah Game atau pemainan logika yang menuntut kemampuan berpikir dan mengambil keputusan secara tepat dan cepat untuk mendapatkan penilaian sempurna atau sama dengan score yang didapat adalah Genius. 6

Game logika menara hanoi ini akan mengacu pada hal hal berikut : 1. Aplikasi game dengan level-level tertentu untuk dimainkan. 2. Aplikasi game dengan waktu dalam penyelesaian setiap level dalam permainan yang sudah dimulai. 3. Terdapat 4. Scoring atau penilaian setiap pemain berhasil menyelesaikan setiap level. Berikut penjelasan dari tampilan aplikasi yang akan ditampilkan : Gambar III.4 Tampilan message box ketika berhasil menyelesaikan level mahir. Sedangkan untuk level dasar 2, dasar 3, tingkat lanjut, menengah lanjut dan mahir akan ditunjukan pada gambar sebagai berikut : Gambar III.2 Tamilan untuk level 1. Saat aplikasi ini berhasil diselesaikan maka akan muncul message box sebagai berikut : Gambar III.5 Tampilan untuk level dasar 2. Gambar III.3 Tampilan message box jika permainan berhasil dimenangkan untuk level dasar 1 sampai menengah lanjut. Gambar III.6 Tampilan untuk level dasar 3. 7

Berikut Flowchart permainan game menara hanoi : START Level : Dasar 1 Gambar III.7 Tampilan level tingkat lanjut Level : Dasar 2 Level : Dasar 3 Gambar III.8 Tampilan level tingkat menengah lanjut Level : Tingkat Lanjut Level : Menengah Lanjut Level : Mahir END Gambar III.9 Tampilan level Mahir Gambar III.10 Flowchart permainan game menara hanoi 8

Adapun penilaian untuk setiap langkah yang telah dilakukan diambil berdasarkan langkah yang telah dilakukan. Berikut tabel yang akan menunjukkan penilaian berdasar pada langkah yang diambil : Level Tabel III.1 Penilaian tiap langkah Dasar 1 <= 7 = Genius Dasar 2 <= 15 = Genius Dasar 3 <= 31 = Genius Tingkat <= 63 = Lanjut Genius Menengah Lanjut <=127= Genius Mahir <=255= Genius Langkah 8-25 = Clever 16-35 = Clever 32-45 = Clever 64 77 = Clever 128 141 = Clever 256-269 = Clever > 25 = > 35 = > 45 = >77= >141= >270= IV. KESIMPULAN DAN SARAN 4.1. Kesimpulan Berdasarkan analisa program dan implementasi program diperoleh kesimpulan sebagai berikut : 1. Dengan dibuatnya aplikasi ini ternyata algoritma menara hanoi dapat diimplementasikan dalam game menggunakan bahasa pemrograman Visual Basic.Net Selain itu aplikasi ini dapat membantu pembelajaran mengenai menara hanoi. 2. Aplikasi ini Membantu juga untuk khususnya anak-anak dalam berpikir kritis. 3. Mempelajari menara hanoi dibutuhkan sebagai salah satu pembelajaran algoritma untuk mengambil keputusan tercepat dalam suatu permasalahan. Sedangkan efek secara tidak langsung kepada subyek manusia adalah: A. Anak-anak merasa kesulitan pada level dasar 2 dan dasar 3, dikarenakan masih labilnya emosi anak-anak yang ingin cepat menyelesaikan masalah. B. Sedangkan untuk orang dewasa game ini terasa memeras otak mereka pada level menengah lanjut dan mahir. 4.2. Saran Adapun saran yang penulis dapat sampaikan adalah software atau aplikasi ini bisa digunakan sebagai penunjang sarana belajar pemahaman mengenai permasalahan klasik menara hanoi. Diharapkan untuk pengembangan selanjutnya bisa dimainkan oleh dua pemain atau lebih (multiplayer). Di sisi efektifitas baik kiranya fasilitas reset ditambahkan sekiranya user ingin mengulang untuk level permainan yang sama dan untuk disk bisa dipakai obyek yang lainnya semisal binatang atau buah buahan yang bisa membuat anak anak lebih tertarik. Kiranya di masa ke depan software ini dapat dikembangkan lagi oleh generasi yang baru dengan ide yang lebih baik lagi. DAFTAR PUSTAKA Pressman, S Roger Ph.D.,2001, Software Engineering A Practitioner's Approach Fifth Edition, McGraw-Hill. Rebecca Bull 1, Kimberly Andrews Espy 2, and Theresa E. Senn 2. A comparison of performance on the Towers of London & Hanoi in young children, Journal of Child Psychology and Psychiatry 45:4 (2004), pp 743 754, 1 Department of Psychology, University of Aberdeen, Scotland; 2 Department of Family & Community Medicine, Southern Illinois University School of Medicine, USA. Ricyanto, isak. 2003. Membuat aplikasi windows Visual Basic.Net. Jakarta: PT. Elex Media Komputindo. Sismoro. 2005. Heri, Pengantar Logika Informatika, Algoritma, dan Pemrograman Komputer, Penerbit Andi. Suarga. 2006. Algoritma Pemrograman. Yogyakarta: Andi Rebecca Bull 1, Kimberly Andrews Espy 2, and Theresa E. Senn 2. A comparison of performance on the Towers of London & Hanoi in young children, Journal of Child Psychology and Psychiatry 45:4 (2004), pp 743 754, 1 Department of Psychology, University of Aberdeen, Scotland; 2 Department of Family & Community Medicine, Southern Illinois University School of Medicine, USA. Richard Cooper, Rikke Coster Waldau, Development of Problem Solving Strategies: Strategy Shift in the Tower of London Task, Department of Psychology, Birkbeck College, 9

University of London, Malet St., London, WC1E 7HX; Department of Psychology, Birkbeck College, University of London, Malet St., London, WC1E 7HX. Wikibooks contributors, 2004 2006,ALGORITHMS Versi 1.2; the opencontent textbooks collection. Wikibooks contributors, 2004 2006,COGNITIVE PSYCHOLOGY AND COGNITIVE NEUROSCIENCE ; the open- content textbooks collection. Yaoda xu and Suzzane Corkin. H.M. Revisits the Tower of Hanoi Puzzle. 2001. Massachusetts Institute Of Technology. MEDIA ELEKTRONIK : http://en.wikibooks.org/wiki/ Social_and_Cultural_Foundat ions_of_american_education /Second_Edition http://en.wikibooks.org/wiki/ Social_and_Cultural_Foundat ions_of_american_education /Edition_3 http://en.wikibooks.org/wiki/ Social_and_Cultural_Foundat ions_of_american_education /Edition_3 http://www.lawrencehallofsci ence.org http://www.lawrencehallofsci ence.org/gems/gem407.ht ml http://www.cut-theml knot.org/manifesto/index.sht http://mathworld.wolfram.com/ TowerofHanoi.html The Sage s Dictionary English Dictionary And Narotama Collection http://ejournal.narotama.ac.id 10 Thesaurus, http://www.sequencepublishing.com/thesage.html http://www.cs.gmu.edu/~ lifei/teaching/cs483_fall07/ ;CS483 Design and Analysis of Algorithms - Lecture 04, September 6, 2007. 10