You are on page 1of 6

MAKALAH TUGAS AKHIR PERIODE JULI 2010

GENERATOR ANGKA ACAK DALAM GAME SUDOKU DENGAN METODE BACKTRACKING PADA ANDROID OS MOBILE
Gavin Fauzy Irwanto1, Imam Kuswardayan2 Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Email : g4v1n_f1@cs.its.ac.id1

Abstrak - Pada saat ini, perkembangan Teknologi Informasi dan Komunikasi berkembang dengan pesat, tidak hanya pada perkembangan teknologi internet tetapi juga perkembangan teknologi mobile. Teknologi mobile memberikan berbagai kemudahan dimana saja dan kapan saja bagi pengguna dalam kehidupan sehari-hari. Hal ini melatarbelakangi ide untuk membangun aplikasi permainan yang didalamnya juga terdapat unsur pembelajaran pada perangkat mobile. Aplikasi ini menyajikan permainan logic Sudoku yang memiliki unsur pembelajaran pada perangkat mobile. Aplikasi yang dapat dimainkan oleh semua orang ini dibangun dengan menggunakan platform Android dan database yang ringan dengan menggunakan SQLite pada perangkat mobile. Aplikasi ini juga menggunakan file XML untuk tampilan antarmuka agar lebih menarik. Aplikasi yang dimainkan secara single player ini menggunakan metode Backtracking dalam menggenerate puzzle dan solver dari permainan. Uji coba pada aplikasi mobile game ini dilakukan melalui beberapa skenario. Pada uji coba tersebut berhasil menjalankan sebuah implementasi aplikasi mobile game yang dinamis dan interaktif pada perangkat mobile dengan sistem operasi Android. Kata kunci : Mobile Game, Android, SQLite, XML, Backtracking.

1. Pendahuluan
Perkembangan Teknologi Informasi dan Komunikasi pada saat ini berkembang dengan sangat pesat. Disamping perkembangan teknologi dan komunikasi tentang internet, juga terdapat perkembangan teknologi dan komunikasi tentang mobile (handphone) yang juga berkembang dengan pesat. Teknologi mobile yang saat ini tidak hanya digunakan sebagai alat komunikasi saja, tetapi juga sebagai alat untuk memudahkan pengguna dalam kehidupan sehari-hari. Hal tersebut dapat terjadi karena pada teknologi mobile terdapat adanya banyak fasilitas, antara lain: pengaksesan

internet, e-mail, organizer, musik, game dan sebagainya yang dapat digunakan dimana saja, kapan saja secara lebih cepat dan mudah. Berbicara telah banyaknya fasilitas yang terdapat pada teknologi mobile, fasilitas tentang game dapat dikatakan memiliki banyak peminat, tidak hanya peminat dalam memainkan game tersebut akan tetapi peminat dalam membuat aplikasi game pada teknologi mobile. Pada pembuatan suatu game dapat dikaitkan juga dengan media pembelajaran atau media dalam mengasah logika, sehingga dalam metode pembelajaran tidak harus menghafal dan menyelesaikan soal-soal pada buku pelajaran. Akan tetapi dengan adanya game, kita dapat melakukan permainan sekaligus dapat menunjang pembelajaran dan dapat mengasah logika berpikir. Oleh karena itu, penulis mengusulkan sebuah aplikasi mobile game tentang permainan Sudoku yang dapat menunjang pembelajaran dalam mengasah logika berpikir. Untuk membuat game ini lebih menarik sekaligus ingin mengeksplorasi teknologi baru Android OS Mobile yang saat ini semakin berkembang pesat, penulis berusaha untuk membuat aplikasi game mobile Sudoku pada Android OS Mobile. Adanya desain level yang dinamis dan pemecahan permasalahan (solver) pada aplikasi tersebut dapat membantu sebagai media pembelajaran dalam mengasah logika yang dapat dimainkan dalam teknologi mobile. 1.1. Rumusan Permasalahan Berangkat dari hal tersebut, penulis kemudian merumuskan beberapa permasalahan yang akan diangkat sebagai berikut : 1. Bagaimana membuat sebuah aplikasi game Sudoku berbasis mobile pada Android OS Mobile, 2. Bagaimana merancang desain level dinamis dan pemecahan permasalahan (solver) pada aplikasi mobile game Sudoku dengan metode Backtracking.

MAKALAH TUGAS AKHIR PERIODE JULI 2010 OS, Adobe's Flash Lite, DoCoMo's DoJa, Java ME, Qualcomm's BREW, WIPI, OS iPhone dan Google Android platform. Platform lain juga tersedia, tetapi tidak umum. Secara umum, Mobile Game dimainkan oleh seorang pemain tunggal bersamaan dengan artificial intelligent sebagai lawannya. Sedangkan untuk Mobile Game yang dimainkan secara multiplayer, dapat dimainkan baik disuatu tempat yang sama maupun tempat yang berbeda dengan adanya konektivitas yang saling berhubungan. 2.2. Platform Android 1.3. Tujuan dan Manfaat Tujuan dari aplikasi ini dapat dituliskan sebagai berikut : 1. Membuat aplikasi game Sudoku berbasis mobile pada Android OS Mobile, dimana juga dapat dijadikan sebagai media pembelajaran dalam mengasah logika. 2. Merancang desain level dinamis dan pemecahan permasalahan (solver) pada aplikasi mobile game Sudoku dengan metode Backtracking. Adapun manfaat yang diharapkan dengan adanya perancangan aplikasi ini adalah dapat membangun aplikasi yang menerapkan teknologi baru yang saat ini marak untuk di eksplorasi, yaitu menggunakan Android OS Mobile. Selain itu, aplikasi ini diharapkan nantinya dapat diimplementasikan sebagai game yang dapat mengasah logika atau game pembelajaran karena terdapat desain level dinamis dan pemecahan permasalahan (solver), dimana dapat dimainkan secara mobile dan interaktif oleh semua orang. Android merupakan sebuah sistem operasi terbuka pada perangkat mobile yang berjalan di kernel Linux. Android telah diakuisisi oleh Google pada Juli 2005 dan pada tanggal 5 November 2007 barulah Android secara resmi dirilis oleh Google. Platform Android telah mengalami banyak pembaharuan sejak dirilis atau peluncuran awalnya. Adapun perkembangan platform Android, diantaranya adalah[1] : Cupcake (Android 1.5) Doughnut (Android 1.6) clair (Android 2.1) Google mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Berikut ini susunan dari arsitektur atau lapisan dari komponen utama platform Android.

1.2. Batasan Permasalahan Permasalahan yang dibahas dalam Tugas Akhir ini memiliki beberapa batasan, diantaranya sebagai berikut : 1. Aplikasi permainan bersifat mobile based. 2. Permainan ini dimainkan single player. 3. Dimensi kotak game Sudoku adalah n x n, dimana n adalah bilangan bernilai 9. 4. Menggunakan metode Backtracking dalam pemecahan masalah. 5. Implementasi Tugas Akhir ini pada Android OS Mobile.

2. Dasar Teori 2.1. Mobile Game


Mobile Game adalah permainan yang dimainkan di ponsel, smartphone, PDA, komputer genggam atau media player portabel. Hal ini tidak termasuk permainan-permainan yang dapat dimainkan di sistem video game seperti PlayStation Portable atau Nintendo DS. Mobile game sendiri biasanya dapat didownload melalui jaringan operator mobile, namun dalam beberapa kasus juga dimuat langsung ke dalam ponsel saat dibeli, melalui koneksi infrared, bluetooth, atau memory card. Mobile Game yang dikembangkan saat ini dapat menggunakan platform dan teknologi seperti Windows Mobile, Palm OS, Symbian

Gambar 1 Arsitektur Platform Android

MAKALAH TUGAS AKHIR PERIODE JULI 2010 Linux Kernel, berperan sebagai abstraction/pemisah layer antara hardware dan keseluruhan software. Android Runtime, berisi Core Libraries dan Dalvik Virtual Machine. Libraries, menyertakan satu set librarylibrary dalam bahasa C/C++ yang dapat digunakan oleh berbagai komponen yang ada pada sistem Android. Application Framework, berperan dalam mencakup program dan mengatur fungsifungsi dasar smartphone. Applications, pada lapisan ini terdapat aplikasi itu sendiri juga dapat menemukan fungsi-fungsi dasar smartphone seperti menelpon, mengirim pesan dan lainnya. pertimbangan dalam menentukan pilihan solusi seperti pada permainan catur (dan sebagian besar board games lainnya) karena jumlah seluruh solusi sangat banyak sehingga program tidak akan berjalan dengan efisien lagi jika seluruh kemungkinan ditelusuri. Sehingga membutuhkan adanya algoritma yang tidak menggunakan brute-force untuk mencari solusi, oleh karena itu, penulis mencoba menggunakan metode Backtracking yang digunakan dalam mencari solusi secara efektif dan efisien. 2.4. Metode Backtracking Algoritma backtracking (runut balik) pada dasarnya mencari segala kemungkinan solusi seperti halnya bruteforce dan exhaustive search. Yang membedakannya adalah pada backtracking semua kemungkinan solusi dibuat dalam bentuk pohon terlebih dahulu baru kemudian pohon tersebut dijelajahi (explore) secara DFS (Depth First Search). Secara umum algoritma ini berfungsi dengan baik untuk memecahkan masalah-masalah yang berkembang secara dinamik (dynamic problem solving) sehingga menjadi dasar algoritma untuk Artificial Intelligence[2]. Agar lebih jelas bisa dilihat pada pohon solusi berikut :

1.

2. 3.

4.

5.

Untuk beberapa keunggulan yang dimiliki oleh Android, yaitu : 1. Keterbukaan, dimana Android dapat menyediakan akses hingga ke fungsi dasar perangkat mobile menggunakan standar panggilan berupa API. 2. Penghancuran Perbatasan, dimana dapat menggabungkan informasi dari Internet ke dalam telepon, seperti informasi kontak, atau data pada lokasi geografis. 3. Kesamaan Aplikasi, dimana pada Android tidak ada perbedaan antara telepon utama aplikasi dan perangkat lunak lain, bahkan dapat mengubah program untuk memeutar nomor atau screen saver. 4. Cepat dan Mudah Dikembangkan, dimana pada SDK Android memiliki semua kebutuhan untuk mengembangkan termasuk emulator dan alat debugging. 2.3. Dynamic Problem Solving Dynamic problem solving pada dasarnya adalah memecahkan masalah dimana pada keadaan awal (state) akan selalu berubah dariwaktu ke waktu. Perubahan ini bisa mengikuti suatu pola tertentu yang dapat didefinisikan sebagai suatu fungsi terhadap waktu, atau juga tidak berpola seperti pada board games yang langkah selanjutnya sangat tergantung pada langkah yang dijalankan oleh lawan[2]. Prinsip dasarnya adalah menganalisa segala jalan menuju suatu solusi yang ada, kemudian memilih salah satu jalan yang akan mengarah ke solusi terbaik. Akan tetapi, pada kebanyakan kasus, program tidak hanya akan melihat beberapa langkah ke depan sebagai 3

Gambar 2 Pohon Solusi dari Suatu Permasalahan

Misalkan pohon diatas menggambarkan solusi dari suatu permasalahan. Untuk mecapai solusi (5), maka jalan yang ditempuh adalah (1,2,5), demikian juga dengan solusi-solusi yang lain. Algoritma backtrack akan memeriksa mulai dari solusi yang pertama yaitu solusi (5). Jika ternyata solusi (5) bukan solusi yang layak maka algoritma akan melanjutkan ke solusi (6). Jalan yang ditempuh ke solusi (5) adalah (1,2,5) dan jalan untuk ke solusi (6) adalah (1,2,6). Penggunaan terbesar backtrack adalah untuk membuat AI pada board games. Dengan algoritma ini program dapat menghasilkan pohon sampai dengan kedalaman tertentu dari current status dan memilih solusi yang akan membuat

MAKALAH TUGAS AKHIR PERIODE JULI 2010 langkah-langkah yang dapat dilakukan oleh user akan menghasilkan pohon solusi baru dengan jumlah pilihan langkah terbanyak. Cara ini dipakai sebagai AI yang digunakan untuk dynamic problem solving. Pada penelitian yang serupa menjelaskan, bahwa penerapan metode Backtracking untuk penyelesaian permainan Sudoku adalah sebagai berikut[3] : 1. Algoritma dimulai pada elemen kosong pertama pada matriks. 2. Periksa seluruh kemungkinan angka yaitu n (dengan n {1, 2, 3, 4, 5, 6, 7, 8, 9}) yang dapat diisi oleh elemen kosong tersebut dengan memeriksa batasan (dengan fungsi pembatas). 3. Jika nilai n tersebut memenuhi fungsi pembatas (valid), maka elemen kosong tersebut diisi dengan nilai n, dan lanjutkan pemeriksaan ke elemen kosong berikutnya. 4. Jika nilai n tersebut tidak memenuhi fungsi pembatas, maka uji dengan nilai n lain. 5. Jika seluruh nilai n telah diuji dan tidak ada nilai n yang memenuhi fungsi pembatas, maka lakukan backtracking ke elemen sebelumnya. 6. Elemen ini akan diuji lagi dengan nilai n baru berdasarkan fungsi pembatas. 7. Lakukan cara yang sama dengan poin nomor 3. 8. Proses diatas akan dilakukan terusmenerus secara rekursif hingga ditemukan suatu solusi atau tidak ditemukan suatu solusi. hanya dapat memasukkan sekali untuk angka 1 s.d 9 pada tiap kotaknya. Oleh karena itu, tidak ada angka yang sama untuk setiap baris, setiap kolom dan setiap sel 3x3 kotak didalamnya. Pada permainan ini, dirancang juga agar terdapat adanya desain level yang dinamis. Dalam satu level permainan dapat memiliki banyak soal-soal yang berbeda untuk diselesaikan. Selain adanya desain level yang dinamis, juga terdapat adanya pemecahan permasalahan (solver) dengan menggunakan metode Backtracking. Sebagaimana dijelaskan sebelumnya, aplikasi mobile game yang dapat dimainkan pada Android OS Mobile ini memiliki 3 bagian mendasar, antara lain : 1. Generator Level Dinamis untuk Puzzle Aplikasi ini dibangun dengan adanya generator level dinamis untuk menggenerate puzzle dengan metode Backtracking. Hal ini dirancang agar player tidak merasa bosan untuk menyelesaikan permainan pada tiap levelnya. Adanya generator level dinamis untuk menggenerate puzzle, maka satu level permainan dapat memiliki banyak soal-soal yang berbeda untuk diselesaikan, dengan kata lain pemain yang tidak dapat menyelesaikan suatu level permainan dapat menyelesaikan level yang sama dengan soal yang berbeda. 2. Generate Solver Aplikasi ini juga dibangun dengan adanya generator solver untuk dapat menyelesaikan puzzle-puzzle yang ingin diselesaikan. Hal ini dirancang, agar fitur solver dapat digunakan oleh player yang telah menyerah untuk menyelesaikan permainan sehingga dapat menggenerate hasil untuk menyelesaikan puzzle-nya. Fitur solver juga dapat digunakan untuk pengecekan dengan cara menginputkan nilai-nilai pada puzzle yang dibuat oleh player, kemudian dengan adanya fitur tersebut dapat menggenerate hasil untuk menyelesaikan puzzle yang telah dibuat oleh player sebelumnya. Untuk generate solver ini juga menggunakan Metode Backtracking. 3. Manajemen HighScore dengan SQLite Aplikasi ini juga dibangun dengan adanya manajemen highscore dengan bantuan SQLite. Adanya SQLite yang disediakan oleh framework Android sebagai database pada aplikasi mobile sangat membantu dalam melakukan manajemen highscore

3. Metodologi 3.1. Deskripsi Umum Aplikasi


Pada makalah ini akan didesain sebuah aplikasi mobile game yang dapat menunjang pembelajaran serta dalam mengasah logika berpikir. Sekaligus mengeksplorasi lebih banyak tentang teknologi Android OS Mobile. Pada aplikasi mobile game yang diberi nama Sudoku ABeCeDe(TM) ini, pemain (single player) akan berusaha menyelesaikan soal-soal yang diberikan dengan aturan-aturan standard dari permainan Sudoku. Dimana permainan Sudoku, terdapat 9x9 kotak yang merepresentasikan baris dan kolom serta terdapat sel 3x3 kotak yang berjumlah 9 dalam papan permainannya. Untuk setiap baris, kolom dan sel yang terdapat 3x3 kotak didalamnya, pemain

MAKALAH TUGAS AKHIR PERIODE JULI 2010 pada semua pemain memainkan permainan ini. 3.2. Perancangan Aplikasi Dalam perancangannya, sistem Sudoku ABeCeDe(TM) memiliki topologi pengembangan aplikasi, sebagaimana dijelaskan oleh gambar berikut.
Deployment Topology

yang

telah

a. b. c. d. e. f. g. h.

Play Continue Game Play New Game Play Solver View Highscore Choose Options Generate Puzzle Generate Solver Manage Highscore

4. Uji Coba
Uji coba fungsionalitas dilakukan untuk melihat apakah fungsi-fungsi dasar aplikasi berjalan sesuai skenario. Uji coba fungsionalitas meliputi semua use case dapat dilihat pada tabel berikut.
Tabel 1 Hasil Uji Coba Fungsional
System

Database

SQLite

Mobile Android Player

Gambar 3 Topologi Pengembangan Aplikasi

Hasil Fungsi yang Diuji Proses Play Continue Game Proses Play New Game Proses Solver Game Proses View Highscore Proses Choose Options Proses Generate Puzzle Proses Generate Solver Proses Manage Highscore Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil

Topologi di atas dibangun guna memenuhi kebutuhan sistem yang tergambar pada aliran kerja (workflow) sebagai berikut.
Aliran Kerja Aplikasi (WorkFlow)

START

If

Continue Game

Last Game

Else

If

New Game

Generate Puzzle

Input Value

Else

If

Solver

Input Solver

Generate Solver

Else View Hints

If

Options

View Music Else

If

About

SQLite

View HighScore

View Help

Else

View Creator

END

Gambar 4 Aliran Kerja Aplikasi

Berdasarkan perancangan aplikasi tersebut, kemudian disusunlah beberapa use case sebagai berikut.

Adapun untuk uji coba non fungsionalitas, dapat dilihat pada uji coba performa dan uji coba ekstensiibilitas. Uji coba performa ini ditujukan untuk mengamati performa dari kecepatan system dalam menggenerate puzzle dan solver dalam permainan. Performa ini akan dapat diihat berdasarkan running time saat menjalankan generator puzzle dan generator solver. Dalam uji coba ini, running time pada Netbeans (emulator) relatif lebih cepat sekitar 10 kali lipat jika dibandingkan pada perangkat mobile. Akan tetapi, lamanya waktu tersebut bisa ditoleransi karena masih dalam satuan milliseconds. Sedangkan untuk uji coba ekstensibilitas, aplikasi ini dapat ditanam pada perangakat mobile dengan sistem operasi Android. Penulis telah melakukan uji coba dengan menggunakan perangkat mobile Samsung I5700 (Galaxy Spica), aplikasi pun dapat berjalan baik pada perangkat mobile tersebut.

MAKALAH TUGAS AKHIR PERIODE JULI 2010 1-2009-054.pdf. Diakses tanggal 28 April 2010. [4] Android Development Community. 2010. Anddev.org. http://www.anddev.org. Diakses tanggal 12 April 2010. [5] Murphy, Mark L. 2009. Beginning

5. Kesimpulan
Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba perangkat lunak yang dilakukan, penulis mengambil kesimpulan sebagai berikut: a. Permainan Sudoku sudah dapat diimplementasikan dan dijalankan pada emulator dan perangkat mobile Android sesuai skenario pada uji coba fungsionalitas aplikasi. Generator Puzzle dengan menggunakan Metode Backtracking memiliki waktu yang relatif singkat dalam menghasilkan puzzle yang dinamis. Generator Solver dengan menggunakan Metode Backtracking juga memiliki waktu yang relatif singkat dalam menemukan hasil penyelesaian puzzle permainan. Pada hasil pengujian performansi memperlihatkan hasil yang positif, dimana running time generator untuk level yang berbeda tidak terpaut waktu yang jauh. Pada hasil pengujian performansi, running time pada Netbeans (emulator) relatif lebih cepat sekitar 10 kali lipat jika dibandingkan pada perangkat mobile. Akan tetapi, lamanya waktu tersebut bisa ditoleransi karena masih dalam satuan milliseconds.

Android. Appress.

b.

c.

d.

e.

6. Daftar Pustaka
[1] Android Developers. 2010. Android

Developers. http://developer.android.com. Diakses tanggal 12 April 2010. [2] Putra, Dhamma Nibbana, dkk. 2009. Penerapan dan Implementasi Algoritma Backtracking.http://www.informatika.org/ ~rinaldi/Stmik/Makalah/MakalahStmik26. pdf. Diakses tanggal 28 April 2010. [3] Mujaddid, Sibghatullah. 2009. Penerapan Algoritma Runut-Balik (Backtracking) dalam Penyelesaian PermainanSudoku. http://www.informatika.org/~rinaldi/Stmi k/20092010/Makalah2009/MakalahIF305

You might also like