• Tidak ada hasil yang ditemukan

GENERATOR ANGKA ACAK DALAM GAME SUDOKU DENGAN METODE BACKTRACKING PADA ANDROID OS MOBILE

N/A
N/A
Protected

Academic year: 2021

Membagikan "GENERATOR ANGKA ACAK DALAM GAME SUDOKU DENGAN METODE BACKTRACKING PADA ANDROID OS MOBILE"

Copied!
6
0
0

Teks penuh

(1)

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 : [email protected]

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.

(2)

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.

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.

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

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

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.

(3)

1. Linux Kernel, berperan sebagai abstraction/pemisah layer antara hardware dan keseluruhan software.

2. Android Runtime, berisi Core Libraries dan Dalvik Virtual Machine.

3. Libraries, menyertakan satu set library-library dalam bahasa C/C++ yang dapat digunakan oleh berbagai komponen yang ada pada sistem Android.

4. Application Framework, berperan dalam mencakup program dan mengatur fungsi-fungsi dasar smartphone.

5. Applications, pada lapisan ini terdapat aplikasi itu sendiri juga dapat menemukan fungsi-fungsi dasar smartphone seperti menelpon, mengirim pesan dan lainnya. 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 dari-waktu ke dari-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

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 :

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

(4)

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 terus-menerus secara rekursif hingga ditemukan suatu solusi atau tidak ditemukan suatu solusi.

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

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

(5)

pada semua pemain yang telah memainkan permainan ini.

3.2. Perancangan Aplikasi

Dalam perancangannya, sistem Sudoku ABeCeDe(TM) memiliki topologi pengembangan aplikasi, sebagaimana dijelaskan oleh gambar berikut. Player Database Mobile Android SQLite System Deployment Topology

Gambar 3 Topologi Pengembangan Aplikasi

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

START END Continue Game New Game Solver Options About Last Game

Generate Puzzle Input Value

Input Solver Generate Solver

View Hints View Music View Help View Creator View HighScore Else Else Else Else Else If If If If If SQLite Aliran Kerja Aplikasi (WorkFlow)

Gambar 4 Aliran Kerja Aplikasi

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

a. Play Continue Game b. Play New Game c. Play Solver d. View Highscore e. Choose Options f. Generate Puzzle g. Generate Solver h. 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

Fungsi yang Diuji

Hasil

Proses Play Continue Game Berhasil Proses Play New Game Berhasil

Proses Solver Game Berhasil

Proses View Highscore Berhasil Proses Choose Options Berhasil Proses Generate Puzzle Berhasil Proses Generate Solver Berhasil Proses Manage Highscore Berhasil 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

(6)

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.

b. Generator Puzzle dengan menggunakan Metode Backtracking memiliki waktu yang relatif singkat dalam menghasilkan

puzzle yang dinamis.

c. Generator Solver dengan menggunakan Metode Backtracking juga memiliki waktu yang relatif singkat dalam menemukan hasil penyelesaian puzzle permainan.

d. Pada hasil pengujian performansi memperlihatkan hasil yang positif, dimana running time generator untuk level yang berbeda tidak terpaut waktu yang jauh.

e. 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.

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

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 Android. Appress.

Referensi

Dokumen terkait

Kebijakan puritanisme oleh sultan Aurangzeb dan pengislaman orang-orang Hindu secara paksa demi menjadikan tanah India sebagai negara Islam, dengan menyerang berbagai praktek

Yanti (2002), membuktikan bahwa komposisi udara terbaik untuk melon terolah minimal dengan atmosfer termodifikasi yaitu sebesar 3-5% O 2 dan 10-15% CO 2 dengan suhu penyimpanan 5

Dalam penelitian ini dilakukan dengan cara menganalisis data yang telah terkumpul melalui literatur atau referensi yang berhubungan denag masalah yang diteliti

Simpulan yang di dapat dari penelitian ini, yaitu dengan adanya sistem basis data knierja sistem semakin meningkat karena database sudah saling berhubungan

Puji syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat, taufik serta hidayahNya, sehingga penyusunan skripsi yang berjudul "Upaya

Hal ini berkaitan dengan hal – hal yang seharusnya dapat dikendalikan oleh manajemen, seperti: pendapatan per lembar saham, besaran deviden yang dibagi,

Hipotesis variabel sosial yang diangkat dalam penelitian ini diambil dari sebuah penelitian dari Natalia (2009).Dalam penelitian tersebut menyatakkan bahwa

Penyelesaian Sistem Persamaan Linear Tiga Variabel dengan menggunakan metode subsitusi dilakukan dengan cara menggantikan salah satu variabel dari dua persamaan lain