Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker

dokumen-dokumen yang mirip
Penerapan Algoritma Greedy untuk Permainan Halma

Aplikasi Algoritma Greedy untuk Menyelesaikan Permainan Magic Wingdom

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Aplikasi Algoritma Greedy dalam Penjurusan Mahasiswa Tingkat Pertama Institut Teknologi Bandung

Penerapan Algoritma Greedy pada Permainan Tower Defense

Penerapan Algoritma Greedy dalam Permainan Connect 4

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

Penerapan Algoritma Greedy untuk Permainan Flood It

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

Penerapan Algoritma Greedy pada Intelegensia Buatan untuk Transfer Pemain dalam Permainan Simulasi Sepakbola

Algorima Greedy Pada Self Serve Gas Station

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

IF3051 Strategi Algoritma Penerapan Algoritma Greedy untuk Peletakan Tanaman dalam Game Harvest Moon: Back to Nature

Penggunaan Algoritma Greedy Dalam Perancangan Papan Teka Teki Silang

Penerapan Algoritma Greedy pada Permainan Bubble Breaker

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

Implementasi Algoritma Greedy pada Permainan Ludo

Penerapan Algoritma Greedy dalam Permainan Othello

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

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

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

Penerapan Algoritma Greedy dalam Pembuatan Klasemen Kompetisi

Penggunaan Algoritma Greedy dalam Optimasi Masalah Perkebunan

ALGORITMA GREEDY DALAM PERMAINAN DOTS AND BOXES

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN CONGKLAK

Penerapan Algoritma Greedy pada Permainan Kartu 100

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

Penerapan Algoritma Greedy pada Artificial Inteligence dalam Permainan Defence of the Ancient

Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

APLIKASI ALGORITMA GREEDY DALAM PERMAINAN JAWBREAKER

Penerapan Algoritma Greedy dalam Permainan Tradisional Congklak

Analisis Penerapan Algoritma Kruskal dalam Pembuatan Jaringan Distribusi Listrik

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

Algoritma Greedy untuk Membangun Korpus Pengenalan Suara Al-Quran

Algoritma Greedy pada Penjadwalan Real-Time untuk Earliest Deadline First Scheduling dan Rate Monotonic Scheduling serta Perbandingannya

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Penerapan Algoritma Greedy untuk Menempatkan Pelanggan dalam Permainan Video Diner Dash

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Penerapan Algoritma Greedy dalam Permainan Bantumi

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

Pendahuluan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Penerapan Algoritma Greedy dalam Pembuatan Artificial Intelligence Permainan Reversi

APLIKASI ALGORITMA GREEDY DALAM PENENTUAN SPESIFIKASI KOMPUTER RAKITAN

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

Algoritma Greedy pada Board Game Saboteur

Aplikasi Algoritma Greedy Pada Permainan Big Two

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Aplikasi Algoritma Greedy dalam Permainan Kartu Truf

Optimisasi Penjadwalan Proses Pada Central Processing Unit Dengan Menggunakan Algoritma Greedy

Aplikasi Algoritma Greedy untuk Optimasi Sistem Booking Hotel Online

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Penggunaan Algoritma Greedy Untuk Menyelesaikan Permainan Cluedo

Strategi Konstruksi Pizza Hut Salad Tower Dengan Pendekatan Algoritma Greedy

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Penerapan Algoritma Greedy Pada Permainan Kartu Truf

Penerapan Algoritma Greedy dalam Permainan Tetris

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Penentuan Lokasi Pemasaran Produk dengan Media Periklanan Menggunakan Algoritma Greedy

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

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

Aplikasi Algoritma Greedy pada Permainan Zuma

Penerapan Algoritma Greedy dalam Permainan MarketGlory

Penerapan Algoritma Greedy pada Permainan Fire Emblem

Strategi Permainan Bridge menggunakan Algoritma Greedy

Penerapan Greedy pada Jalan Jalan Di Bandung Yuk! V1.71

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Aplikasi Algoritma Greedy untuk Menyelesaikan Permainan Hedgewars

Algoritma Backtracking Pada Permainan Peg Solitaire

Penggunaan Algoritma Greedy untuk Menyelesaikan Permainan UNO Kartu (Klasik)

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Penentuan Rute Belanja dengan TSP dan Algoritma Greedy

Algoritma Greedy untuk AI dalam Permainan DotA

Aplikasi Algoritma Greedy pada Permainan Pixelated

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Strategi Perancangan Bot Player pada Permainan Tradisional Congklak dengan Algoritma Greedy

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

Strategi Algoritma Penyelesaian Puzzle Hanjie

Penerapan Algoritma Greedy dalam Algoritma Penjadwalan Prosesor Tunggal Shortest Job First

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Penggunaan Algoritma Greedy Dalam Penentuan Rute Wisata

Penentuan Langkah Sederhana dalam Permainan Kartu Hearthstone dengan Algoritma Greedy

Penerapan Algoritma Greedy pada Bot AI Permainan Bang!

Algoritma Greedy dalam Artificial Intelligence Permainan Tic Tac Toe

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Perancangan Algoritma Greedy pada AI Permainan Turn Based Strategy

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Implementasi Greedy Dalam Menemukan Rangkaian Logika Minimal Menggunakan Karnaugh Map

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

Transkripsi:

Penggunaan Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker Nanda Ekaputra Panjiarga 13509031 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 13509031@std.stei.itb.ac.id ABSTRAK Brick Breaker adalah suatu permainan dimana pemainnya harus mengeliminasi kumpulan kotak-kotak sebanyak mungkin. Kumpulan kotak yang harus dieliminasi harus memiliki jumlah anggota di atas angka tertentu. Makalah ini akan membahas tentang pengaplikasian algoritma Greedy untuk mencari solusi paling optimal dalam permainan Brick Breaker ini, serta menganalisa optimalitas dari solusi yang dihasilkan. Index Terms Brick Breaker, Greedy I. PENDAHULUAN 1.1. Pengenalan Brick Breaker Brick Breaker adalah salah satu permainan yang bertipe puzzle. Konsep dari permainan ini sangatlah sederhana dan sudah sering diadaptasi ke berbagai macam nama game, diantaranya 5Connect, Cube Buster, Crashdown, dan lain-lain. Permainan-permainan ini dapat kita temui di situs-situs penyedia permainan gratis seperti Armorgames, Miniclip, HTML5games.net, dan masih banyak lagi. Biasanya permainan ini disajikan dalam format flash game, Java applet, atau HTML5. 1.1.1. Konsep dasar Brick Breaker Konsep dasar dari permainan ini sangat sederhana. Dalam Brick Breaker, terdapat sebuah tumpukan kotakkotak dengan warna yang berbeda-beda. Masing-masing kotak berukuran sama, yakni sebuah persegi. Kotak-kotak tersebut tersusun dalam sebuah tumpukkan yang merepresentasikan matriks dengan ukuran tertentu. Tiap kotak tersebut memiliki kotak tetangga, yaitu kotak yang tepat bersentuhan langsung di samping kanan, samping kiri, atas, atau bawah. Apabila sebuah kotak memiliki kotak tetangga yang berwarna sama dengannya, maka mereka akan dianggap sebagai satu kesatuan. Gambar 1: Screenshot permainan saat mulai Contohnya dapat dilihat dalam screenshot permainan 5Connect di atas. Pada bagian yang ditandai dengan garis biru, kotak-kotak kuning tersebut tersusun saling bertetangga satu sama lain sehingga dapat dianggap sebagai sebuah kesatuan. Gambar 2: Screenshot permainan setelah satu langkah Pada tiap langkahnya pemain diharuskan mencari susunan kotak seperti ini kemudian menyeleksi bagian tersebut. Susunan kotak yang terdiri dari n atau lebih kotak akan bisa diseleksi. Nilai n ini bergantung kepada aturan permainan yang ditentukan penciptanya, biasanya bernilai 3 atau lebih. Ketika diseleksi, maka bagian tersebut akan hilang (gambar 2). Hal ini akan

mengakibatkan susunan kotak-kotak diatasnya akan jatuh dan mengisi ruang kosong yang ditinggalkan oleh susunan kotak yang telah diseleksi. Dengan demikian, pada setiap langkahnya akan dihasilkan kondisi yang benar-benar baru. Muncul polapola baru yang terbentuk dari hasil penghilangan beberapa kotak yang terseleksi. Kegiatan mencari pola dan menyeleksinya ini akan terus dilakukan oleh pemain hingga mencapai tujuan tertentu. Tujuan atau goal akhir dari permainan ini bervariasi, tergantung dari judul permainan yang dimainkan. 1.1.2. Variasi Brick Breaker Konsep dasar Brick Breaker telah digunakan dan dikembangkan ke berbagai macam judul permainan. Yang membedakan masing-masing dari judul tersebut, selain tampilannya, adalah tujuan akhir dari permainan. Berikut akan dibahas dua contoh judul permainan dengan konsep Brick Breaker yang memiliki tujuan akhir berbeda. batas paling atas layar. Gambar 4: Permainan berakhir dengan baik 1.1.2.1. 5Connect Tujuan akhir dari permainan 5Connect adalah menghabiskan seluruh kombinasi kotak dengan anggota berjumlah di atas n buah. Pada 5Connect, n bernilai 2. Gambar 5: Permainan gagal Permainan berakhir bila batas atas telah dilampaui (gambar 5) atau waktu permainan telah selesai (gambar 4). Gambar 3: Akhir dari permainan 5Connect Setelah tidak dapat dihasilkan lagi kombinasi kotak tersebut, maka permainan akan berakhir. Pemain akan mendapatkan nilai yang semakin optimal apabila kotakkotak yang tersisa semakin sedikit (gambar 3). 1.1.2.2. CrashDown Konsep permainan CrashDown memiliki keseragaman dengan game Tetris. Pemain harus mempertahankan tumpukan blok yang ada agar tidak melampaui batas yang telah ditentukan. Pada selang waktu tertentu, akan muncul tambahan blok dengan pola acak di bagian bawah tumpukan blok. Pemain harus menghilangkan tumpukan blok yang ada dengan cepat agar tumpukan tersebut tidak melampaui 1.2. Greedy 1.2.1. Definisi Greedy Greedy merupakan salah satu metode yang paling populer untuk menyelesaikan persoalan optimasi. Yang dimaksud dengan persoalan optimasi adalah persoalan yang mencari solusi optimal, baik yang bersifat maksimal (maksimalisasi), atau minimal (minimalisasi). Dalam bahasa inggris, Greedy berarti rakus atau tamak. Hal ini mencerminkan prinsip dari algoritma ini, yaitu take what you can get now!. ini akan membentuk solusi langkah per langkah. Pada setiap langkah, algoritma ini akan mengeksplorasi segala kemungkinan pilihan yang ada. Dari seluruh kemungkinan pilihan tersebut, akan diambil pilihan yang paling baik untuk setiap langkahnya. Pilihan terbaik ini disebut solusi optimal lokal.

Harapannya, dengan terus menerus mengambil pilihan optimal terbaik untuk tiap langkahnya, akan dihasilkan solusi global (solusi dari keseluruhan langkah) yang juga optimal. Kekurangan dari algoritma ini adalah tidak adanya perhatian terhadap konsekuensi dari tiap langkah yang diambil, sehingga bisa saja rangkaian langkah yang dihasilkan bukan merupakan solusi optimal global. 1.2.2. Penggunaan Greedy Dalam permainan Brick Breaker ini, tiap langkah akan menghasilkan kondisi yang benar-benar baru. Dengan demikian, tiap langkah akan memiliki solusi optimalnya masing-masing. Dengan algoritma Greedy, pendekatan untuk mencari solusi optimal global akan dilakukan dengan cara mencari solusi optimal lokal untuk tiap langkahnya. Definisi dari kondisi optimal yang dimaksud akan bervariasi, namun semuanya berdasarkan dari salah satu, atau kombinasi dari kedua variasi tujuan utama permainan dengan konsep Brick Breaker. II. LANDASAN TEORI 2.1. Teori Dasar Greedy Dalam Greedy terdapat elemen-elemen berikut: 1. Himpunan kandidat, C 2. Himpunan solusi, S 3. Fungsi seleksi, SELEKSI() 4. Fungsi kelayakan, LAYAK() 5. Fungsi obyektif, SOLUSI() Himpunan kandidat merupakan himpunan kandidat solusi yang merepresentasikan opsi yang ditawarkan setiap langkahnya. Himpunan solusi merepresentasikan langkah apa saja yang telah diambil hingga akhir algoritma. Fungsi seleksi menyeleksi kumpulan pilihan yang ada dan mengembalikan pilihan yang akan menghasilkan solusi optimal. Fungsi kelayakan bertindak sebagai pembatas, apakah pilihan yang dipilih layak sesuai ketentuan dari persoalan. Kombinasi dari kedua fungsi ini akan menghasilkan solusi optimum untuk setiap langkahnya. Solusi-solusi optimum lokal tersebut akan menjadi hasil dari sebuah fungsi objektif, yaitu persoalan utama yang ingin diselesaikan. Berikut adalah skema umum dari algoritma Greedy: function greedy(input C: himp_kandidat) himp_kandidat { Mengembalikan solusi dari persoalan optimasi dengan algoritma greedy. Masukan: himpunan kandidat C Keluaran: himp. Solusi yang bertipe himp_kandidat } x : kandidat S : himp_kandidat S { } {inisialisasi S dengan kosong} while (not SOLUSI(S)) and (C!={}) do x SELEKSI(C){pilih kandidat dari C} C C {x} {elemen C berkurang satu} if LAYAK(S U {x}) then S S U {x} endwhile {SOLUSI(S) atau C kosong} if SOLUSI(S) then return S else {tidak ditemukan solusi global} Pertama-tama, algoritma greedy akan mengiterasi semua elemen himpunan kandidat yang ada dan menyeleksi kandidat yang akan menghasilkan solusi optimal lokal. Kemudian dilakukan pengecekan dahulu terhadap kandidat tersebut dengan fungsi kelayakan, apakah sudah sesuai dengan ketentuan persoalan. Jika sudah cocok, maka kandidat dimasukkan ke dalam himpunan solusi. Hal ini terus dilakukan periterasi sampai elemen di himpunan kandidat habis, solusi telah ditemukan atau telah mencapai kondisi akhir yang diinginkan. III. METODE PEMECAHAN MASALAH Untuk menggunakan algoritma greedy, kita perlu mendefinisikan kondisi apa yang melambangkan situasi optimal. Dalam makalah ini kita akan membahas dua kondisi optimal, yaitu kondisi optimal berdasarkan jumlah kotak yang bertetanggaan, dan kondisi optimal berdasarkan posisi kotak. 3.1. Greedy by Jumlah Kotak Bagaimanapun bentuk dan variasinya, tujuan umum dari game dengan konsep Brick Breaker adalah menghilangkan sebanyak mungkin kotak dalam permainan. Karena itulah dapat diasumsikan semakin banyak kotak yang dihilangkan tiap giliran, akan semakin optimum solusi yang dihasilkan. greedy by jumlah kotak akan mencari daerah mana yang memiliki jumlah kotak bertetanggaan dan berwarna sama paling banyak pada setiap gilirannya. Misalkan area permainan direpresentasikan oleh matriks ixj yang masing-masing elemennya memuat informasi warna kotak pada koordinat ixj. ini

akan mengiterasi seluruh isi matriks ixj tersebut untuk mencari area ketetanggaan yang paling besar. Untuk bisa diseleksi dan dihilangkan, diasumsikan bahwa area ketetanggaan tersebut harus beranggotakan minimal 3 kotak. Berikut skema dari algoritma Greedy by Jumlah Kotak untuk persoalan Brick Breaker: function LAYAK(input K: himp_solusi) boolean { mengembalikan true jika elemen K > 3} return (jumlah elemen K > 3) Untuk implementasi fungsi TETANGGA(), bisa digunakan algoritma BFS, DFS, atau backtracking yang diluar dari lingkup pembahasan makalah ini. Pada setiap iterasi per kotak, akan dicek jumlah elemen dari hasil fungsi TETANGGA(). ini akan mencari solusi yang memiliki jumlah elemen terbanyak. Setelah itu solusi tersebut diperiksa menggunakan fungsi LAYAK(). Fungsi ini berperan sebagai fungsi kelayakan. Dalam persoalan ini, solusi dianggap layak apabila terdiri dari tiga atau lebih anggota. Seperti pada contoh gambar di bawah ini, area dengan dua kotak akan dianggap tidak layak. function greedybyjumlah(input M: matriks persoalan) himp_solusi { Mengembalikan solusi lokal dari persoalan optimasi dengan algoritma greedy. Masukan: Matriks persoalan brick breaker Keluaran: himp. Solusi yang berisi elemen matriks, himpunan kosong bila tidak ada solusi optimum lokal Prekondisi: Matriks tidak kosong} S,K : himp_solusi K {} for (setiap elemen M) do S TETANGGA(elemen M) if (jumlah elemen S >= jumlah elemen K) and LAYAK(S) then K S endfor if LAYAK(K) then return K else return {}{tidak ditemukan area dengan kotak>3} Himpunan kandidat dari persoalan ini adalah elemenelemen matriks tersebut. Pada setiap elemen, akan diaplikasikan fungsi TETANGGA() yang berperan sebagai fungsi seleksi. Fungsi tersebut akan mencari seluruh tetangga dari elemen yang sedang diperiksa, kemudian mengembalikan himpunan yang berisi elemenelemen matrix yang saling berketetanggaan. Gambar 7: Penggunaan fungsi kelayakan Fungsi greedybyjumlah diatas akan digunakan setiap kali pemain melakukan turn, dan memerlukan prekondisi bahwa matriks persoalan tidak kosong. Apabila fungsi ini mengembalikan himpunan kosong, tandanya sudah tidak ada lagi area yang dapat diseleksi dan dihilangkan. 3.2. Greedy by Posisi Kotak Selain jumlah kotak yang akan dihilangkan, posisi dari kotak yang akan dihilangkan seharusnya juga mendapatkan pertimbangan. Sebagai contoh, pada permainan CrashDown, apabila pemain terus menerus menghilangkan kotak hanya pada kolom tertentu, maka kolom lain yang tidak tersentuh akan tetap meninggi dan akhirnya menggagalkan permainan. Karena itulah dibutuhkan fungsi seleksi yang memperhatikan ketinggian maksimum kolom dari kotakkotak yang akan dihilangkan. Asumsikan seluruh peraturan dan ketentuan persoalan sama dengan contoh pada bagian Greedy by Jumlah Kotak. Berikut skema dari algoritma Greedy by Posisi Kotak untuk persoalan Brick Breaker: Gambar 6: Penggunaan fungsi TETANGGA() sebagai fungsi seleksi

function greedybyposisi (input M: matriks persoalan) himp_solusi { Mengembalikan solusi lokal dari persoalan optimasi dengan algoritma greedy. Masukan: Matriks persoalan brick breaker Keluaran: himp. Solusi yang berisi elemen matriks, himpunan kosong bila tidak ada solusi optimum lokal Prekondisi: Matriks tidak kosong} S,K : himp_solusi K {} for (setiap elemen M) do S TETANGGA(elemen M) if (TINGGI(S) >= TINGGI(K)) and LAYAK(S) then K S endfor if LAYAK(K) then return K else return {}{tidak ditemukan area dengan kotak>3} Sama seperti sebelumnya, himpunan kandidat dari persoalan ini adalah elemen-elemen matriks tersebut. Pada setiap elemen juga diaplikasikan fungsi TETANGGA() yang berperan mencari seluruh tetangga dari elemen yang sedang diperiksa, kemudian mengembalikan himpunan yang berisi elemen-elemen matrix. Namun, di sini terdapat fungsi seleksi TINGGI() yang akan mengembalikan tinggi maksimal dari kolom tempat elemen-elemen matriks berada. ini memastikan bahwa elemen dengan tinggi kolom lebih besar memiliki prioritas yang lebih tinggi untuk dihapus. (Gambar 8) Gambar 8: Elemen dengan tinggi kolom lebih besar memiliki prioritas yang lebih tinggi untuk dihapus. IV. ANALISIS Implementasi konsep algoritma greedy terhadap persoalan Brick Breaker ini memiliki sedikit perbedaan dengan skema algoritma greedy pada umumnya. Umumnya, algoritma greedy memiliki sebuah set kandidat tetap yang akan berkurang tahap demi tahap. Namun, pada persoalan ini himpunan kandidatnya berubah pada setiap langkah, sehingga diperlukan pendekatan baru (yang masih berupa implementasi algoritma greedy) untuk menyelesaikan persoalan tersebut. Dengan sedikit modifikasi dari konsep awal, algoritma ini akhirnya melakukan proses perbandingan di tiap langkah, dengan memasukkan kembali kondisi persoalan saat itu (dalam hal ini field dari permainan). greedy belum menjamin didapatnya solusi persoalan yang optimum secara global. ini hanya dapat memberikan aproksimasi tentang nilai optimal tersebut. Hal ini disebabkan oleh sifat dari setiap langkah yang contiguous, atau dengan kata lain saling berkesinambungan. Pada persoalan ini, dihapusnya beberapa blok kotak akan menghasilkan kondisi baru yang akan langsung dianalisa kembali oleh algoritma greedy. Dalam kenyataannya, permainan ini membutuhkan strategi yang lebih kompleks daripada sekedar mencari kotak terbanyak atau kotak dengan tinggi kolom tertinggi. Permainan ini juga membutuhkan perencanaan guna memastikan tidak ada kotak yang pada akhirnya tidak dapat dihapus. Strategi yang kompleks tersebut bisa dikembangkan dengan mengombinasikan algoritma Greedy dengan algoritma backtracking, DFS, BFS, atau Dynamic Programming. Dengan memanfaatkan algoritma lainnya, Greedy masih bisa terus memberikan solusi optimal lokal tiap turnnya, sementara algoritma lain bertugas untuk mencari kombinasi solusi yang benar-benar optimal secara global. V. KESIMPULAN Meskipun sudah dapat memberikan aproksimasi tentang kondisi paling optimal yang merupakan solusi dari permainan Brick Breaker ini, algoritma Greedy tidak menjamin untuk memberikan solusi yang benar-benar optimal secara global. Diperlukan kombinasi algoritma lainnya untuk mendapatkan solusi yang mutlak optimal dari permainan Brick Breaker.

REFERENSI [1] http://wwwc3.lanl.gov/mega-math/gloss/compute/greedy.html 05 Desember 2012 [2] http://www.informatika.org/~rinaldi/ 05 Desember 2012 [3] http://en.wikipedia.org/wiki/greedy_algorithm 05 Desember 2012 PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 9 Desember 2011 ttd Nanda Ekaputra Panjiarga