Penerapan Algoritma Brute Force pada permainan Countdown Number

dokumen-dokumen yang mirip
Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Strategi Algoritma Penyelesaian Puzzle Hanjie

Penerapan Algoritma Brute Force di Permainan Nonogram

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Algoritma Brute Force pada Fluid Particle Engine

Implementasi Algoritma Greedy pada Permainan Ludo

Algoritma Brute Force

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Pembuktian Benford s Law dengan Algoritma Brute Force terhadap Suatu Barisan Geometri Sembarang

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Penerapan Algoritma Brute Force pada Password Recovery

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Menebak Password RAR Menggunakan RAR Password Recovery Magic dengan Algoritma Brute Force

Algoritma Exhaustive Search Dalam Permainan Congklak

Algoritma Backtracking Pada Logic Game : Family Crisis (Game Penyebrangan)

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Algoritma Brute Force (lanjutan)

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Penerapan Algoritma Greedy dalam Permainan Tradisional Congklak

Pendekatan Dynamic Programming untuk Menyelesaikan Sequence Alignment

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Algoritma Brute Force (lanjutan)

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Algoritma Greedy pada Board Game Saboteur

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

Mencari Banyak Posisi yang dapat Dijangkau sebuah Lingkaran dengan Dynamic Programming

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Aplikasi Algoritma MiniMax pada Beberapa Permainan Papan

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Strategi Optimized Brute Force Pada Tent Puzzle Solver

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Penggunaan Algoritma Pencocokkan Pola pada Aplikasi How-Old.net

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

Penentuan Langkah Sederhana dalam Permainan Kartu Hearthstone dengan Algoritma Greedy

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

Pemecahan Masalah Longest Increasing Subsequence Memanfaatkan Program Dinamis dan Binary Search

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

Implementasi Algoritma Greedy pada Permainan Hangman Versi Bahasa Indonesia dengan Memanfaatkan Frekuensi Huruf

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Penerapan Algoritma Greedy Pada Permainan Kartu Truf

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penerapan Algoritma Backtracking pada Knight s Tour Problem

Penerapan Algoritma Backtrack pada Knight s Tour

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Pembuatan Musik Tanpa Pola Dengan Menggunakan Algoritma Runut Balik

Pemilihan Monster yang Akan Digunakan dalam Permainan Yu-Gi-Oh! Capsule Monster Coliseum

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Aplikasi Algoritma Runut-balik pada Penyelesaian Teka Teki Mengisi Angka

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

Pencarian Solusi Optimal dalam Permainan Congklak dengan Program Dinamis

Penerapan Strategi Algoritma Menyelesaikan Kompleksitas Pixel Maze secara Otomatis pada Virupizxel

Aplikasi Algoritma Greedy dalam Penjurusan Mahasiswa Tingkat Pertama Institut Teknologi Bandung

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penentuan Menu Makan dengan Pemrograman Dinamis

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

Penerapan Algoritma Pencocokan String Boyer-Moore untuk Keamanan Komputer

Aplikasi Algoritma Pencocokan String pada Mesin Pencari Berita

Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

Algorima Greedy Pada Self Serve Gas Station

Penerapan Algoritma Greedy Best First Search untuk Menyelesaikan Permainan Chroma Test : Brain Challenge

TECHNICAL REPORT PENGGUNAAN ALGORITMA PENCOCOKAN STRING BOYER-MOORE DALAM MENDETEKSI PENGAKSESAN SITUS INTERNET TERLARANG

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

MENENTUKAN PRIMALITAS SEMUA BILANGAN YANG TERDAPAT PADA SELANG TERTENTU SECARA BRUTE FORCE

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Solusi Terbaik Permainan Rocket Mania Deluxe dengan Pendekatan Algoritma BFS dan Algoritma Greedy

Transkripsi:

Penerapan Algoritma Brute Force pada permainan Countdown Number Farhan Amin (13515043) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 13515043@std.stei.itb.ac.id Abstract permainan Countdown Number adalah permainan dari British game show yang menggunakan angka sebagai puzzle. Dalam permainan ini diberikan pilihan angka (goal number) yang harus disusun dari 6 buah nomor yang dipilih. Pada makalah ini, akan dibahas strategi Algoritma yakni implementasi algoritma Bruteforce pada permainan Countdown Number Keywords permainan Countdown Number; Brute Force; puzzle A. Latar Belakang I. PENDAHULUAN Permainan Countdown Number adalah permainan yang berasal dari Gameshow di British. Permainan ini menggunakan angka sebagai puzzle. Permainan Countdown Number ini adalah permainan aritmatika dengan tujuan mencari cara untuk mengubah 6 buah angka yang dipilih secara acak menjadi goal number yang juga dipilih secara acak. Pada awal gameshow, peserta diberikan kesempatan untuk memilih 6 angka secara acak yang nantinya digunakan untuk membentuk goal number, yang ditentukan secara acak melalui computer, dengan menggunakan operator-operator matematika dasar seperti pertambahan, pengurangan, perkalian, dan pembagian. Gambar 1. Logo Gameshow Countdown B. Tujuan Tujuan penulis membuat makalah tentang topik ini adalah: - Menambah pemahaman tentang algoritma Brute Force - Berusaha mengimplementasikan algoritma Brute Force untuk permainan Countdown Number A. Algoritma Brute Force II. LANDASAN TEORI Algoritma Brute Force adalah algoritma yang memecahkan masalah dengan pendekatan yang lempang (straight-forward) atau memecahkan persoalan dengan cara yang sederhana, langsung, dan jelas atau disebut juga Just Do It! Atau Just Solve It!. Algoritma Brute Force biasanya didasarkan pada pernyataan pada persoalan (problem statement) atau berdasarkan definisi konsep yang dilibatkan. Ada beberapa contoh penerapan algoritma Brute Force berdasarkan pernyataan persoalan : 1. Pencarian elemen dengan nilai Ekstrim. pada kasus ini kita diharuskan untuk mencari nilai Ekstrim (minimum atau maksimum) dari sebuah senarai. Dengan algoritma Brute Force, permasalahan ini diselesaikan dengan cara yang sederhana yakni membandingkan setiap bilangan yang ada di senarai tersebut sampai didapatkan nilai Ekstrim (minimum atau maksimum) yang diinginkan 2. Pencarian beruntun (Sequential Search) Pada kasus ini kita diharuskan untuk mencari sebuah elemen, X, pada sebuah senarai. Dengan algoritma Brute Force, permasalahan ini diselesaikan dengan cara yang sederhana yakni setiap elemen pada senarai dibandingkan dengan X. Pencarian selesai jika X ditemukan atau elemen senarai sudah habis diperiksa.

3. Tes bilangan prima Pada kasus ini kita diharuskan untuk menguji sebuah bilangan bulat positif yang diberikan (n) adalah bilangan prima atau bukan. Dengan algoritma Brute Force, permasalahan ini diselesaikan dengan cara membagi n dengan 2 sampai n. lalu melakukan perulangan dari 2 sampai n, Jika semua angka di range itu tidak habis membagi n, maka n adalah bilangan prima. 4. Pattern Matching Pada kasus ini kita diharuskan melakukan pengecekan ada atau tidaknya suatu pola yang dicari pada sebuah kumpulan pola yang ada. Umumnya, pattern matching yang diselesaikan dengan brute force adalah string matching. Pada algoritma ini akan membandingkan pola (pattern) dan mencarinya di teks dari awal hingga akhir teks hingga akhirnya ditemukan bagian pada teks yang sesuai dengan pola atau tidak ditemukan. 5. Exhaustive Search Pada kasus ini kita diharuskan untuk menjabarkan semua solusi yang mungkin bisa dijadikan solusi untuk sebuah permasalahan dan kemudian setelah sudah dihasilkan solusi-solusi yang bisa dijadikan solusi pada permasalahan tersebut akan dipilih solusi yang terbaik. 6. Pengurutan bilangan Pada kasus ini, kita diharuskan untuk melakukan pengurutan bilangan yang terdapat pada senarai, pengurutan bisa dilakukan menaik atau menurun. Permasalahan ini diselesaikan dengan membandingkan setiap elemen dengan elemen lain sesuai dengan keinginan pengurutan (menaik atau menurun), proses perbandingan ini dilakukan untuk semua elemen pada senarai Algoritma Brute Force memiliki beberapa karakterisik, diantaranya: 1. Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena algoritma ini membutuhkan jumlah komputasi yang besar dan waktu yang lama dalam penyelesaiannya. Sehingga kadang algoritma brute force disebut sebagai algoritma naif. 2. Algoritma brute force lebih cocok untuk persoalan yang berukuran kecil, karena pertimbangannya yakni sederhana dan implementasinya mudah, alih-alih memikirkan cara yang efisien dan efektif untuk kasus yang kecil (yang bisa menghabiskan waktu untuk memikirkannya) lebih baik jika menggunakan brute force, karena kekuatan komputasi komputer saat ini sudah jauh lebih baik daripada puluhan tahun yang lalu. Biasanya algoritma brute force juga digunakan sebagai basis pembanding dengan algoritma lain yang lebih mangkus. 3. Meskipun bukan metode yang mangkus, hampir semua persoalan dapat diselesaikan dengan algoritma brute force. Kekuatan dari metode brute force: 1. Hampir semua masalah dapat dipecahkan dengan menggunakan metode brute force (wide applicability). 2. metode yang mudah untuk dimengerti karena berupa metode yang sederhana. 3. metode brute force menghasilkan algoritma standard untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen ekstrim (maksimum atau minimum) di dalam senarai / tabel / list. Kelemahan dari metode brute force: 1. metode brute force jarang menghasilkan algoritma yang mangkus. 2. untuk beberapa kasus metode brute force tidak feasible atau terlalu lambat sehingga tidak dapat diterima. 3. tidak memerlukan kreativitas yang tinggi untuk menemukan teknik untuk memecahkan masalah. B. Permainan Countdown Number Deskripsi singkat permainan Countdown Number Permainan Countdown Number merupakan sebuah gameshow dari british yang mengasah kemampuan para pesertanya dengan puzzle aritmatika. Pada awal gameshow, peserta diberikan kewajiban untuk memilih 6 buah angka yang terbagi menjadi dua tingkatan, angka besar / Large Number (100,75,50,25) lalu angka kecil / Small Number (1,2,3,4,5,6,7,8,9). Peserta bebas memilih kombinasi Large Number dan Small Number hingga terpilih 6 angka, proses pemilihan angka ini dilakukan dengan kondisi peserta tidak bisa melihat angka yang dipilihnya (posisi papan nomor terbalik), setelah peserta memilih 6 angka, host akan membuka angka-angka yang telah dipilih tadi (papan nomor terbuka), setelah 6 angka tadi sudah diketahui oleh peserta, maka computer akan membangkitkan 3 digit angka secara random (101-999) yang menjadi goal number, lalu goal number inilah yang akan dibuat sedekat mungkin jika tidak berhasil menemukan angka yang sama persis dari 6 angka yang sudah dipilih tadi, tapi pada eksperimen ini hanya dihasilkan kombinasi yang menghasilkan hasil yang sama yang ditampilkan.

Gambar 2. Contoh kombinasi angka Aturan bermain Proses kombinasi 6 angka yang sudah dipilih secara acak tadi untuk menjadi goal number pada eksperimen ini hanya dibatasi untuk operator-operator dasar matematika seperti pertambahan, pengurangan, perkalian, dan pembagian. 6 angka yang sudah dipilih tadi tidak harus digunakan semuanya. Gambar 3. Operator-operator yang bisa digunakan III. PENERAPAN ALGORITMA BRUTE FORCE Pada implementasi ini, program akan melakukan apa yang seharusnya dilakukan oleh peserta pada gameshow tersebut, yakni melakukan kombinasi yang menghasilkan goal number. Pada penerapan algoritma brute force untuk permainan countdown number ini, dilakukan pencarian dengan teknik Exhaustive Search seperti yang sudah pernah diajarkan di kuliah IF2211. Cara pencarian solusinya adalah sebagai berikut: - Misalkan 6 buah angka yang dimasukkan a,b,c,d,e,f. dan disimpan di sebuah senarai S - Kita membutuhkan paling banyak lima operator untuk menghasilkan kombinasinya a (operator) b (operator) c (operator) d (operator) e (operator) f - Karena tidak semua angka harus digunakan, maka dicari angka dimulai dari satu angka saja, jika sudah memenuhi goal number maka berhenti mencari, jika belum gunakan dua angka dengan kombinasi operatoroperatornya, begitu seterusnya hingga enam angka. if S1 = goal number then Stop. Else for (tiap kombinasi operator untuk tiap banyaknya angka yang digunakan) do getkombinasi If (pada getkombinasi ditemukan kombinasi yang tepat) then stop and output string kombinasi Else output pesan tidak ditemukan untuk 1 operator +;-;*;/ untuk 2 operator ++;+-;+*;+/ -+;--;-*;-/ *+;*-;**;*/ /+;/-;/*;// untuk 3 operator +++,++-,++*,++/,+-+,+--,+-*,+- /,+*+,+*-,+**,+*/,+/+,+/-,+/*,+// -++,-+-,-+*,-+/,--+,---,--*,--/,-*+,- *-,-**,-*/,-/+,-/-,-/*,-// *++,*+-,*+*,*+/,*-+,*--,*-*,*- /,**+,**-,***,**/,*/+,*/-,*/*,*// /++,/+-,/+*,/+/,/-+,/--,/-*,/-/,/*+,/*-,/**,/*/,//+,//-,//*,/// Untuk 4 operator akan dihasilkan 256 kemungkinan dan untuk 5 operator akan dihasilkan 1024 kemungkinan - Program berhenti jika sudah ditemukan kombinasi yang menghasilkan goal number atau tidak ada kombinasi yang memenuhi. IV. ANALISIS DAN PENGUJIAN PROGRAM A. Pengujian program Proses perhitungan tidak menggunakan kurung buka dan tutup (parentheses), dibaca dari kiri ke kanan, misal 10-5+9*2 maka 10-5 = 5; lalu 5 + 9 = 14; lalu 14 * 2 = 28 Berikut adalah beberapa contoh kasus pengujian program yang sudah dilakukan oleh penulis:

Gambar 4. Test Case pertama Gambar 6. Test Case ketiga dimana Goal number tidak berada pada range yang telah disepakati yakni (101 sd 999), tetapi program tetap bisa menemukan kombinasinya Gambar 5. Test Case kedua dimana tidak semua angka digunakan untuk menemukan goal numberx

Gambar 7. Test Case keempat dimana goal number dan angka-angka yang digunakan sama hanya berbeda di letaknya saja, akan menghasilkan kombinasi yang berbeda hingga lima operator dan tidak menemukan kombinasi yang bisa dijadikan goal number. V. KESIMPULAN Pada kasus permainan countdown number penggunaan algoritma brute force bisa dibilang cukup bisa diandalkan, karena kasus ini tidak terlalu besar sehingga masih feasible untuk melakukan pencarian menggunakan teknik exhaustive search. Proses pencarian kombinasi sangat tergantung dari urutan angka-angka yang dimasukkan ke tabel karena proses perulangan dicari dari elemen yang paling awal sehingga jika berbeda tabel walaupun komposisi isi tabel sama akan menghasilkan jumlah perulangan yang berbeda juga. VI. UCAPAN TERIMAKASIH Gambar 8. Test Case kelima saat tidak ditemukan kombinasi yang bisa digunakan untuk mencapai goal number Pertama tama saya mengucapkan terima kasih kepada Tuhan Yang Maha Esa yang telah melimpahkan rahmat dan hidayah- Nya sehingga makalah Strategi Algoritma ini dapat diselesaikan tepat waktu. Saya juga mengucapkan terima kasih kepada kedua orang tua saya yang selalu memberi dukungan dan doa restu kepada saya sehingga dapat menempuh pendidikan sampai saat ini. Tak lupa saya juga mengucapkan terima kasih kepada Bapak Dr. Ir. Rinaldi Munir, MT., ibu Dr. Nur Ulfa Maulidevi, S.T., dan ibu Masayu Leylia Khodra, ST., MT. yang berperan sebagai dosen mata kuliah IF 2211 Strategi Algoritma sehingga dengan ilmu pengetahuan seputar Strategi Algoritma, saya dapat membuat dan menyelesaikan makalah ini. B. Analisis Pada Test Case pertama, semua angka digunakan untuk mendapatkan kombinasi goal number karena pengulangan yang dilakukan baru berhenti setelah pembangkitan kombinasi dengan lima operator. Pada Test Case kedua, tidak semua angka digunakan untuk mendapatkan kombinasi goal number karena pengulangan yang dilakukan sudah berhenti setelah pembangkitan kombinasi dengan dua operator yakni -+ Pada Test Case ketiga dan keempat semua angka yang diperbolehkan untuk digunakan sama, goal numbernya juga sama, tetapi hasil kombinasinya berbeda. Ini terjadi karena program melakukan perulangan menggunakan elemen array yang paling awal terlebih dahulu, sehingga pada test case ketiga perulangan baru berhenti pada lima operator, sedangkan pada test case keempat perulangan berhenti pada tiga operator, sehingga bisa disimpulkan bahwa proses memasukkan angkaangka bisa menentukan banyaknya perulangan yang dilakukan. Pada Test case kelima tidak ditemukan kombinasi yang dapat digunakan untuk membentuk goal number, yang berarti program sudah melakukan perulangan dari satu operator REFERENCES [1] Munir, Rinaldi. 2009. Diktat Kuliah Strategi Algoritmik IF2251 Strategi Algoritmik. Departemen Teknik Informatika ITB. [2] http://stackoverflow.com/questions/15293232/how-todesign-an-algorithm-to-calculate-countdown-style-mathsnumber-puzzle (diakses pada 18 Mei 2017 pukul 18.00) [3] Slide kuliah IF2211 Strategi Algoritma Algoritma Brute Force (2016).ppt [4] http://www.datagenetics.com/blog/august32014/index.html (diakses pada 18 Mei 2017 pukul 19.00) [5] http://happysoft.org.uk/countdown/numgame.php (diakses pada 18 Mei 2017 pukul 21.00)