IMPLEMENTASI ALGORITMA ITERATIVE DEEPENING SEARCH (IDS) PADA GAME EDUCATION PUZZLE KATA MENGGUNAKAN MOBILE TECHNOLOGY

(1)

IMPLEMENTASI ALGORITMA ITERATIVE DEEPENING

SEARCH (IDS) PADA GAME EDUCATION PUZZLE KATA

MENGGUNAKAN MOBILE TECHNOLOGY

TUGAS AKHIR

Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang

Oleh :

CHANDRA BAYU KRISTANTO 06560235

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG

2012


(2)

LEMBAR PENGESAHAN

IMPLEMENTASI ALGORITMA ITERATIVE DEEPENING

SEARCH (IDS) PADA GAME EDUCATION PUZZLE KATA

MENGGUNAKAN MOBILE TECHNOLOGY

TUGAS AKHIR

Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang

Disusun Oleh :

CHANDRA BAYU KRISTANTO NIM. 06560235

Tugas Akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji pada tanggal 25 Juli 2012

Menyetujui,

Penguji I Penguji II

Wahyu Andhyka Kusuma, S.Kom NIDN: 0720068701

Lailatul Husniah, S.ST NIDN : 0730108401

Mengetahui,

Ketua Jurusan Teknik Informatika

Eko Budi Cahyono, S.Kom, M.T NIP : 10895040330


(3)

KATA PENGANTAR

Dengan memanjatkan puji syukur kehadirat Allah SWT. Atas limpahan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir berjudul.

IMPLEMENTASI ALGORITMA ITERATIVE DEEPENING SEARCH (IDS) PADA GAME EDUCATION PUZZLE KATA MENGGUNAKAN

MOBILE TECHNOLOGY”

Di dalam tulisan ini disajikan pokok-pokok bahasan yang meliputi perancangan aplikasi game edukasi dengan menggunakan mobile technology. Dalam tulisan ini Anda akan diajak untuk mengenal, memahami, dan mengimplementasikan Algoritma Iterative Deepening Search (IDS) Pada Game Education Puzzle Kata Menggunakan Mobile Technology.

Penulis menyadari sepenuhnya bahwa dalam penulisan tugas akhir ini masih banyak kekurangan dan keterbatasan. Oleh karena itu penulis mengharapkan saran yang membangun agar tulisan ini bermanfaat bagi perkembangan ilmu pengetahuan kedepan.

Malang, 19 Januari 2013


(4)

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

LEMBAR PERSEMBAHAN ... iii

KATA PENGANTAR ... iv

DAFTAR ISI ... v

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Rumusan Masalah ... 2

1.3. Batasan Masalah ... 4

1.4. Tujuan Penelitian ... 4

1.5. Metodologi ... 4

1.6. Sistematika Penulisan ... 6

BAB II LANDASAN TEORI ... 8

2.1. Artificial Intelligence (AI) ... 8

2.2. Algoritma Pencarian ... 10

2.2.1. Contoh Pencarian ... 11

2.2.2. Algoritma Breadth First Search (BFS) ... 12

2.2.3. Algoritma Depth First Search (DFS) ... 15

2.2.4. Algoritma Iterative Deepening Search (IDS) ... 16

2.3. Mobile Technology ... 18

2.4. Pengertian Game ... 20

2.4.1. Game Sliding Puzzle Kata ... 21

2.4.2. Android SDK (Software Development Kit) ... 23

2.4.3. Kelebihan Android Dibandingkan Platform Lain... 24

2.5. Finite State Machine ... 25

BAB III PERANCANGAN SISTEM ... 26


(5)

3.1.1. Bahasa Pemrograman Yang Digunakan ... 26

3.1.2. Mobile Technology Yang Digunakan ... 26

3.1.3. Use Case Diagram ... 27

3.1.4. Activity Diagrams ... 29

3.1.5. Sequence Diagrams ... 33

3.1.6. Class Diagram... 35

3.1.7. Finite State Machine Game Puzzle Kata ... 36

3.1.8. Desain Interface ... 37

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 40

4.1. Implementasi Sistem ... 40

4.1.1. Tampilan Awal (Splash Screen) Game Puzzle Kata ... 41

4.1.2. Tampilan Menu Utama ... 42

4.1.3. Tampilan Play Game ... 43

4.1.4. Tampilan Menu Setting ... 46

4.1.5. Tampilan Permainan Selesai... 47

4.1.6. Tampilan Score ... 48

4.2. Pengujian pada Handphone ... 48

4.3. Pengujian Algoritma Iterative Deepening Search (IDS)... 52

4.3.1. Pengujian Tingkat Kesulitan Easy ... 52

4.3.2. Pengujian Tingkat Kesulitan Normal ... 53

4.3.3. Pengujian Tingkat Kesulitan Hard ... 54

BAB V PENUTUP ... 57

5.1. Kesimpulan ... 57

5.2. Saran ... 57


(6)

DAFTAR GAMBAR

Gambar 1.1 : Puzzle 2 x 2 ... 3

Gambar 1.2 : Puzzle 3 x 3 ... 3

Gambar 1.3 : Puzzle 4 x 4 ... 3

Gambar 2.1 : Bidang-bidang tugas dari AI ... 10

Gambar 2.2 : Contoh permainan yang menerapkan pencarian ... 11

Gambar 2.3 : Ruang keadaan ... 12

Gambar 2.4 : Algoritma pencarian Breadth First Search ... 13

Gambar 2.5 : Algoritma Pencarian Depth First Search ... 15

Gambar 2.6 : Algoritma Pencarian IDS ... 17

Gambar 2.7 : Contoh Sliding Puzzle n-puzzle ... 22

Gambar 2.8 : Contoh Sliding Puzzle Kata ... 22

Gambar 3.1 : Use Case Diagram ... 27

Gambar 3.2 : Activity Diagrams Memilih Menu ... 30

Gambar 3.3 : Activity Diagrams Memulai Game ... 30

Gambar 3.4 : Activity Diagrams Setting ... 31

Gambar 3.5 : Activity Diagrams Menentukan Tingkat kesulitan ... 32

Gambar 3.6 : Activity Diagrams Mengatur Suara ... 32

Gambar 3.7 : Activity Diagrams Melihat Score ... 32

Gambar 3.8 : Sequence Diagrams Play Game ... 33

Gambar 3.9 : Sequence Diagrams Setting ... 33

Gambar 3.10 : Sequence Diagrams Tingkat kesulitan... 34

Gambar 3.11 : Sequence Diagrams Pengaturan Suara ... 34

Gambar 3.12 : Sequence Diagrams Score ... 34

Gambar 3.13 : Class Diagram Game Puzzle Kata ... 35

Gambar 3.14 : Finite State Machine Game Puzzle Kata ... 36

Gambar 3.15 : Tampilan Awal/Splashscreen ... 37

Gambar 3.16 : Tampilan Menu ... 37

Gambar 3.17 : Tampilan Permainan ... 38


(7)

Gambar 3.19 : Tampilan Akhir Permainan ... 39

Gambar 3.20 : Tampilan Setting ... 39

Gambar 4.1 : Splash Screen pada emulator ... 41

Gambar 4.2 : Potongan Program Splash Screen ... 42

Gambar 4.3 : Menu Utama... 42

Gambar 4.4 : Potongan Program Menu Utama ... 43

Gambar 4.5 : Play Game Tingkat Kesulitan Easy ... 43

Gambar 4.6 : Play Game Tingkat Kesulitan Normal ... 43

Gambar 4.7 : Play Game Tingkat Kesulitan Hard ... 44

Gambar 4.8 : Potongan Program Play Game ... 45

Gambar 4.9 : Potongan Program Algoritma ... 46

Gambar 4.10 : Menu Setting ... 46

Gambar 4.11 : Potongan Program Menu Setting ... 46

Gambar 4.12 : Tampilan Permainan Selesai ... 47

Gambar 4.13 : Potongan Program Permainan Selesai ... 47

Gambar 4.14 : Tampilan Score ... 48

Gambar 4.15 : Potongan Program Tampilan Score ... 48

Gambar 4.16 : Splash Screen pada Handphone ... 49

Gambar 4.17 : Menu Utama pada Handphone ... 49

Gambar 4.18 : Tampilan Play Game pada Handphone ... 50

Gambar 4.19 : Tampilan Permainan Selesai pada Handphone ... 50

Gambar 4.20: Tampilan Menu Score pada Handphone ... 51

Gambar 4.21 : Tampilan Menu Setting pada Handphone ... 51

Gambar 4.22 : Contoh Soal Puzzle Easy ... 52

Gambar 4.23 : Contoh Soal Puzzle Normal ... 53


(8)

DAFTAR TABEL

Tabel 3.1 : Spesifikasi Use Case Memainkan Game ... 27

Tabel 3.2 : Spesifikasi Use Case Menentukan Tipe Puzzle ... 28

Tabel 3.3 : Spesifikasi Use Case Menentukan Soal ... 28

Tabel 3.4 : Spesifikasi Use Case Mencari Solusi ... 29

Tabel 3.5 : Spesifikasi Use Case Menyimpan Score... 29

Tabel 4.1 : Pengujian Fungsionalitas Aplikasi Game Puzzle Kata ... 51

Tabel 4.2 : Pengujian algoritma Iterative Deepening Search pada tingkat kesulitan Easy ... 53

Tabel 4.3 : Pengujian algoritma Iterative Deepening Search pada tingkat kesulitan Normal... 53

Tabel 4.4 : Pengujian algoritma Iterative Deepening Search pada tingkat kesulitan Hard ... 55


(9)

DAFTAR PUSTAKA

[ 1] Achmad, Rezan. 2009. Pener apan Pohon dan Algor it ma Heur ist ic dalam

Menyelesaikan Sliding Puzzle.

http:/ / infor matika.stei.itb.ac.id/ ~ r inaldi.munir / Matdis/

2009-2010/ Makalah0910/ MakalahStr ukdis0910-055.pdf, diakses: Mar et 2012.

[2] Hendratno, Angga Tri . 2011. Pembuatan Aplikasi Student Access Sistem Absensi Mahasiswa Dan Informasi Daftar Nilai Mahasiswa Pada Sistem

Operasi Android.

http://papers.gunadarma.ac.id/index.php/industry/article/viewFile/697/663, diakses: Juli 2011.

[3] Korf, Richard E. 1996, Artificial Intelligence Search Algorithms. http://lvk.cs.msu.su/~bruzz/articles/IR/korf96artificial.pdf, diakses: Juni, 2012.

[4] Qian, Ting. 2007. Using Genetic Algorithm to Solve Sliding Tile Puzzles. http://www.cs.oswego.edu/~qian/csc466/Ting%20-%20GA.pdf, diakses: Maret 2012.

[5] Rokhman, Moh. Miftakhur. 2011. Finite State Machines (FSM) Sebagai Agen Cerdas Animasi Wajah Dalam Game Assyuhada. http://lib.uin-malang.ac.id/thesis/chapter_ii/07650025-moh-miftakhur-rokhman.ps, diakses: Maret 2012.

[6] Rohman, Arif. 2011. Rancang Bangun Game Petualangan Berbasis Game Artificial Intelligence Untuk Pembelajaran Bahasa Arab. http://lib.uin-malang.ac.id/thesis/introduction/05550126-rohman-arif.pdf, diakses: Juni 2012.

[7] Roslianti, Rini. 2011. Education Game Puzzle Kata Multiplayer Pada Handphone Menggunakan Mobile Technology. Universitas Muhammadiyah Malang: Malang.

[8] Sabdifha, Noswa. 2010. Perancangan Dan Pembuatan Aplikasi Word


(10)

http://digilib.its.ac.id/public/ITS-Undergraduate-13390-Paper.pdf, diakses: Maret 2012.

[9] Safaat H., Nazruddin. 2011. ANDROID: Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika: Bandung. [10] Sunaryo, Anthony Rahmat. 2007. Algoritma Pencarian Simpul Solusi

Dalam Graf. http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2007-2008/Makalah/MakalahIF2153-0708-042.pdf, diakses: Oktober 2011. [11] Sutrisno, Rano Tri. 2011. Puzzle Slider Game Development Using Python

Version 2.4.1.

http://papers.gunadarma.ac.id/index.php/industry/article/viewFile/11430/1 0933, diakses: Maret 2012.

[12] Yoga S., Budi. 2007. Perancangan Aplikasi Permainan Teka-Teki Silang.


(11)

1

BAB I

PENDAHULUAN

1.1.Latar Belakang

Game education adalah sebuah game yang bertujuan untuk sebuah pembelajaran. Biasanya game education sering dimainkan oleh anak-anak, tapi para remaja juga suka memainkan game ini. Manfaat game education diantaranya adalah jenis video games yang menuntut strategi penyelesaian masalah dapat meningkatkan kemampuan kognitif anak. Kognitif adalah Tingkah laku adaptif dari individu yang umumnya didasari oleh beberapa elemen pemecahan masalah dan diarahkan oleh proses kognitif dan pengoperasiannya. Laki-laki dan perempuan yang dilatih bermain video game selama 1 (satu) bulan menunjukkan peningkatan pada tes ingatan, dan kemampuan melakukan berbagai tugas (multi-task).

Wyatt Slooper (1999) mengemukakan bahwa dalam proses belajar, pelajar belajar: 10% dari apa yang dibaca, 20% dari apa yang didengar, 30% dari apa yang dilihat, 50% dari apa yang dilihat dan didengar, 70% dari apa yang dikatakan, 90% dari apa yang dikatakan dan dilakukan. Sehingga banyak upaya yang dilakukan agar anak-anak senang belajar melalui inovasi-inovasi baru dalam pendidikan khususnya dalam inovasi pembelajaran di luar sekolah.

Puzzle sudah dikenal sejak dari dulu kala. Puzzle dikenal sebagai permainan edukatif untuk mengasah otak. Dalam permainan puzzle, pemain diharapkan merekayasa puzzle secara lojik dengan harapan dapat membentuk bentuk, gambar, atau solusi yang diinginkan. Biasanya pemain yang memainkannya akan senang apabila berhasil menyelesaikan puzzle-nya. Puzzle terdiri dari berbagai jenis. Ada yang menggunakan kartu, angka, huruf, kata, maupun gambar. Suatu game puzzle dapat diselesaikan dengan menggunakan algoritma. Algoritma yang digunakan disini adalah Iterative Deepening Search (IDS). Pada dasarnya algoritma Iterative Deepening


(12)

2 Search merupakan penggabungan dari algoritma Breadth First Search dan Depth First Search.

Dalam penelitian sebelumnya, aplikasi game puzzle masih memiliki beberapa kekurangan yaitu soal yang ada tidak dapat di update dan tidak dilengkapi pencarian solusi apabila puzzle tidak dapat diselesaikan. Dengan menggunakan algoritma Iterative Deepening Search, penulis mencoba untuk membuat game puzzle yang dapat mencari solusi dari puzzle yang tidak dapat diselesaikan oleh user sehingga game menjadi lebih menarik untuk dimainkan.

Penulis mencoba untuk membuat aplikasi game ini berbasis mobile technology. Seperti yang kita ketahui kemajuan teknologi saat ini berkembang sangat pesat, salah satu teknologi yang berkembang yaitu perangkat mobile atau mobile device seperti handphone, smartphone, dan lain-lain. Perangkat mobile tidak hanya dapat digunakan untuk komunikasi saja, melainkan dapat juga digunakan untuk menjalankan aplikasi-aplikasi yang dibutuhkan. Salah satu sistem operasi yang dapat diterapkan di dalam perangkat mobile adalah sistem operasi Android. Android merupakan subset perangkat lunak untuk perangkat mobile yang meliputi sistem operasi, middleware, dan aplikasi inti.

Kemajuan teknologi perangkat mobile atau mobile device yang menggunakan sistem operasi Android tersebut dapat diterapkan dalam pembuatan game education. Berbagai manfaat dalam pemanfaatan kemajuan teknologi khususnya teknologi perangkat mobile untuk game education yaitu game dapat dimainkan dimana saja dan kapan saja sehingga dapat mempermudah proses pembelajaran.

1.2.Rumusan Masalah

Dalam penelitian ini game puzzle yang digunakan adalah slide puzzle 2 dimensi yang mempunyai ukuran 2 x 2, 3 x 3, dan 4 x 4. Gambar berikut merupakan contoh ilustrasi dari puzzle yang akan dibuat.


(13)

3 Gambar 1.1 Puzzle 2 x 2

Gambar 1.2 Puzzle 3 x 3

Gambar 1.3 Puzzle 4 x 4

Dari ketiga puzzle yang ada pada gambar diatas, akan dimasukkan sebuah kata. Jumlah huruf dari kata yang akan menempati masing-masing slot puzzle yang di arsir dan harus sesuai dengan ukuran puzzle. Masing-masing puzzle diharuskan menyisakan satu slot kosong yang akan digunakan untuk pergeseran huruf.

Fokus permasalahan pada penelitian ini adalah implementasi algoritma Iterative Deepening Search.

1) Bagaimana mengimplementasikan algoritma Iterative Deepening Search (IDS) kedalam game education Puzzle Kata untuk mencari solusi puzzle?

2) Bagaimana merancang sistem game education puzzle kata sehingga dapat berjalan dengan baik ketika dimainkan oleh player?


(14)

4 1.3.Batasan Masalah

Pada penelitian ini perlu beberapa batasan masalah untuk lebih memfokuskan penelitian. Batasan – batasan masalah tersebut adalah sebagai berikut.

1) Aplikasi dibangun dengan bahasa pemrograman Java yang hanya dapat dijalankan pada mobile device yang menggunakan sistem operasi Android.

2) Aplikasi dibuat berdasarkan game puzzle kata yang sudah ada dan aplikasi ini merupakan modifikasi dari game puzzle kata tersebut. 3) Soal puzzle kata yang digunakan pada game ini merupakan kosa kata

Bahasa Inggris tingkat SD - SMP.

4) Kata yang digunakan pada game maksimal 1 kata.

1.4.Tujuan Penelitian

Tujuan yang ingin dicapai dari penelitian ini adalah :

Mengetahui bagaimana cara algoritma Iterative Deepening Search (IDS) mencari solusi puzzle pada Game Education Puzzle Kata.

1.5.Metodologi

Pendekatan yang digunakan dalam penelitian ini adalah pendekatan eksperimental yang dapat dikelompokkan sebagai berikut :

1. Studi pustaka dan pengumpulan data

Mengumpulkan literatur baik dari internet berupa artikel dan jurnal ilmiah tentang Android programming dan algoritma Iterative Deepening Search (IDS) serta implementasinya dalam game.

2. Analisa dan perancangan sistem

Tahapan ini merupakan tahapan untuk melakukan analisa data yang berupa pemilihan bahasa pemrograman, integrasi sistem dengan sistem lain, mobile technology yang digunakan.


(15)

5 3. Implementasi aplikasi

Tahap implementasi aplikasi adalah tahap pembuatan aplikasi pada perangkat yang telah tersedia dengan berbasis Android programming.

Program-program yang digunakan : a. Java SE

Android merupakan aplikasi yang dikembangkan dengan berbasis Java. Oleh karena itu, aplikasi android yang dibuat dapat dikompilasi pada Komputer/PC yang telah terinstal Java SE.

b. Android SDK (Software Development Kit)

Android SDK adalah tool API (Application Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java.

c. Eclipse

Eclipse adalah IDE (Integrated Development Environment) untuk pengembangan Java/Android yang digunakan dalam coding aplikasi Android.

d. ADT (Android Development Tools)/Plugins Eclipse

ADT adalah singkatan dari Android Development Tools yang menjadi penghubung antara IDE Eclipse dengan Android SDK. Android Development Tools berupa plugins yang harus di-install didalam Eclipse agar aplikasi dapat dijalankan dengan baik.

4. Uji Coba dan Implementasi

Tahap uji coba dan evaluasi adalah tahap untuk memeriksa apakah hasil implementasi yang dibuat sesuai dengan analisa dan rancangan dan dilakukan evaluasi untuk mengetahui bug yang disempurnakan kemudian. Metode evaluasi yang digunakan adalah metode black box. Metode black box adalah metode pengujian yang menguji suatu sistem tanpa harus mengetahui proses internal yang berada pada sistem tersebut.


(16)

6 5. Penyusunan laporan tugas akhir

Pada tahap ini akan disusun buku untuk melakukan dokumentasi dari pengerjaan tugas akhir. Dokumentasi tersebut agar memudahkan pengembangan aplikasi dikemudian hari.

1.6.Sistematika Penulisan a) BAB I PENDAHULUAN

Bab ini berisi uraian tentang Latar Belakang Masalah yang mendasari pentingnya diadakan penelitian, Rumusan Masalah yang berisi masalah yang akan diteliti, Batasan Masalah, Tujuan Penelitian, Metodologi serta Sistematika Penulisan.

b) BAB II LANDASAN TEORI

Pada bab ini akan diterangkan teori-teori yang melandasi dari penelitian yang dilakukan oleh penulis yang diantaranya meliputi : Artificial Intelligence (AI), Algoritma Pencarian, Mobile Technology, Pengertian Game, Bahasa Pemrograman JAVA, dan Android OS (Operating System).

c) BAB III PERANCANGAN SISTEM

Pada bab ini dituliskan perancangan perangkat lunak yang akan dibuat, dengan menjabarkan :

1. Perancangan object oriented (UML Diagram). 2. Perancangan Data (Data Design).

3. Perancangan Arsitektural (Architectural Design). 4. Perancangan Antarmuka (Interface Design).

d) BAB IV IMPLEMENTASI DAN PENGUJIAN

Pada bab ini berisi implementasi dari desain Education Game Puzzle Kata di bab III dan implementasi hasil pengujian.


(17)

7 e) BAB V PENUTUP

Berisi uraian kesimpulan dan saran yang perlu disampaikan kepada pihak - pihak yang berkepentingan dengan hasil penelitian.


(18)

8

BAB II

LANDASAN TEORI

Pada bab ini akan diterangkan teori-teori yang melandasi dari penelitian yang dilakukan oleh penulis yang diantaranya meliputi : Artificial Intelligence (AI), Algoritma Pencarian, Mobile Technology, Pengertian Game, Bahasa Pemrograman JAVA, dan Android OS (Operating System).

2.1. Artificial Inteligence (AI)

Artificial Intelligence (AI) atau kecerdasan buatan merupakan cabang dari ilmu komputer yang berhubungan dengan pengautomatisasi tingkah laku cerdas. Pernyataan tersebut juga dapat dijadikan definisi dari AI. Definisi ini menunjukkan bahwa AI adalah bagian dari komputer sehingga harus didasarkan pada prinsip-prinsip aplikasi dari bidangnya. Prinsip-prinsip ini meliputi struktur data yang digunakan dalam representasi pengetahuan, algoritma yang diperlukan untuk mengaplikasikan pengetahuan tersebut, serta bahasa dan teknik pemrograman yang digunakan dalam mengimplementasikannya.

Dari beberapa perspektif, AI dapat dipandang sebagai [8]:

1) Dari perspektif kecerdasan, AI adalah bagaimana membuat mesin yang cerdas dan dapat melakukan hal-hal yang sebelumnya hanya dapat dilakukan manusia.

2) Dari perspektif bisnis, AI adalah sekelompok alat bantu (tools) yang berdaya guna dan metodologi yang menggunakan alat-alat bantu tersebut untuk menyelesaikan masalah-masalah bisnis.

3) Dari perspektif pemrograman, AI meliputi studi tentang pemrograman simbolik, pemecahan masalah, dan proses pencarian (search).

4) Dari perspektif penelitian:

a. Riset tentang AI dimulai pada awal tahun 1960-an, percobaan pertama adalah membuat program permainan catur, membuktikan teori, dan general problem solving.


(19)

9 b. Artificial intelligence adalah nama akar dari studi area.

Ada dua hal yang sangat mendasar mengenai penelitian-penelitian AI, yaitu knowledge representation (representasi pengetahuan) dan search (pelacakan). Para peneliti AI terus mengembangkan berbagai jenis teknik baru dalam menangani sejumlah permasalahan yang tergolong ke dalam AI seperti vision dan percakapan, pemrosesan bahasa alami, dan permasalahan khusus seperti diagnosa medis [6].

AI seperti bidang ilmu lainnya juga memiliki sejumlah sub-disiplin ilmu yang sering digunakan untuk pendekatan yang essensial bagi penyelesaian suatu masalah dan dengan aplikasi bidang AI yang berbeda.

Setiap permainan memiliki aturan main. Hal ini mempermudah upaya menghasilkan ruang pencarian dan memberikan kebebasan pada para peneliti dari bermacam-macam ambisi dan kompleksitas sifat serta kurangnya struktur permasalahan. Papan konfigurasi yang digunakan untuk memainkan permainan ini mudah direpresentasikan pada komputer dan tidak memerlukan bentuk yang kompleks.

Permainan dapat menghasilkan sejumlah besar pencarian ruang. Hal ini cukup besar dan kompleks sehingga membutuhkan suatu teknik yangtangguh untuk menentukan alternatif pengeksplorasian ruang permasalahan. Teknik ini dikenal dengan nama heuristik dan merupakan area utama dari penelitian tentang AI. Banyak hal yang biasanya dikenal sebagai kecerdasan tampaknya berada dalam heuristik yang digunakan oleh manusia untuk menyelesaikan permasalahannya.

Manusia cerdas (pandai) dalam menyelesaikan permasalahan karena manusia mempunyai pengetahuan dan pengalaman. Tanpa memiliki kemampuan untuk menalar dengan baik, manusia dengan segudang pengalaman dan pengetahuan tidak akan dapat menyelesaikan masalah dengan baik. Demikian pula, dengan kemampuan menalar yang sangat baik, namun tanpa bekal pengetahuan dan pengalaman yang memadai, manusia juga tidak akan bisa menyelesaikan masalah dengan baik [8].


(20)

10 Gambar 2.1 Bidang-bidang tugas dari AI

2.2. Algoritma Pencarian

Pencarian merupakan salah satu teknik untuk menyelesaikan masalah AI. Keberhasilan suatu sistem salah satunya ditentukan oleh kesuksesan dalam pencarian dan pencocokan. Algoritma pencarian memberikan suatu kunci bagi banyak sejarah penyelesaian yang penting dalam bidang AI. Ada beberapa aplikasi yang menggunakan algoritma pencarian, yaitu:

1) Papan game dan puzzle (tic-tac-toe, catur, menara hanoi).

2) Penjadwalan dan masalah routing (travelling salesman problem). 3) Parsing bahasa dan implementasinya (pencarian struktur dan arti). 4) Logika pemrograman (pencarian fakta dan implikasinya).

5) Computer vision dan pengenalan pola.

6) Sistem pakar berbasisi kaidah (rule based expert system).

Pencarian adalah proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space). Ruang keadaan merupakan suatu ruang yang berisi semua keadaan yang mungkin. Kondisi suatu pencarian meliputi:


(21)

11 2) Keadaan tujuan-solusi yang dijangkau dan perlu diperiksa apakan telah

mencapai sasaran.

3) Biaya atau nilai yang diperoleh dari solusi.

Solusi merupakan suatu lintasan dari keadaan awal sampai keadaan tujuan. Secara umum, proses pencarian dapat dilakukan seperti berikut.

1) Memeriksa keadaan sekarang atau awal.

2) Mengeksekusi aksi yang dibolehkan untuk memindahkan ke keadaan berikutnya.

3) Memeriksa jika keadaan baru tersebut menjadi keadaan sekarang dan proses ini diulangi sampai solusi ditemukan atau ruang keadaan habis terpakai.

2.2.1. Contoh Pencarian

Misalkan ada tiga kotak 1, 2, 3 pada sebuah papan. Sebuah kotak dapat dipindahkan jika tidak ada kotak lain di atasnya dan hanya ada satu kotak yang boleh dipindahkan. Ada dua kemungkinan pemindahannya, yaitu:

1) Pindahkan sebuah kotak keatas papan.

2) Pindahkan sebuah kotak keatas kotak lainnya.

Masalah muncul jika diketahui keadaan awalnya (initial state atau current state) dan tujuan akhirnya (goal state atau final state) seperti pada gambar 2.2.

Gambar 2.2 Contoh permainan yang menerapkan pencarian

Pada gambar 2.3 dapat dilihat bahwa ruang keadaan tersebut memiliki 13 elemen atau node, dengan perpindahan sebagai berikut:

1) Perpindahan kotak 1 ke atas papan untuk lintasan d dan e. 2) Perpindahan kotak 3 ke atas papan untuk lintasan a.


(22)

12 3) Perpindahan kotak 1 ke atas kotak 2 untuk lintasan l.

4) Perpindahan kotak 1 ke atas kotak 3 untuk lintasan b dan m. 5) Perpindahan kotak 2 ke atas kotak 1 untuk lintasan c dan g. 6) Perpindahan kotak 2 ke atas kotak 3 untuk lintasan i dan j. 7) Perpindahan kotak 3 ke atas kotak 1 untuk lintasan h. 8) Perpindahan kotak 3 ke atas kotak 2 untuk lintasan f dan k.

Gambar 2.3 Ruang Keadaan

Penyelesaian untuk masalah permainan pada gambar 2.3 adalah anggota kumpulan semua lintasan dari keadaan awal hingga tujuan yang lintasannya ditandai dengan huruf a, d, j, dan l.

2.2.2. Algoritma Breadth First Search (BFS)

Algoritma Breadth First Search adalah salah satu algoritma pencarian simpul solusi dalam sebuah graf atau pohon. Ciri khas dari algoritma ini adalah pencarian dimulai dari akar lalu dilanjutkan dengan pencarian bertahap level demi level, memeriksa seluruh node pada kedalaman tertentu sebelum masuk ke level yang lebih dalam lagi hingga


(23)

13 ditemukan tujuan atau goal state-nya. Untuk lebih jelasnya, perhatikan ilustrasi algoritma Breadth First Search pada gambar 2.4.

Gambar 2.4 algoritma pencarian Breadth First Search

Berikut ini merupakan pseudocode dari algoritma Breadth First Search [10]:

Algoritma

for i _ 1 to n do

visited[i] = false endfor

CreateEmptyQueue(Q) if IsGoal(v) then

return true endif

visited(v) = true Add(Q,v)

While not IsQueueEmpty(Q) do Del(Q,v)

for w _ 1 to n do if A[v,w] = 1 and

not visited(w) then if IsGoal(v) then

return true keluar dari BFS else


(24)

14 visited(w) _ true

endif endif endfor

endwhile return false

Ada beberapa keuntungan menggunakan algoritma Breadth First Search ini, di antaranya adalah tidak akan menemui jalan buntu dan jika ada satu solusi maka Breadth First Search akan menemukannya, dan jika ada lebih dari satu solusi maka solusi minimum akan ditemukan.

Namun ada tiga persoalan utama berkenaan dengan Breadth First Search ini yaitu:

1) Membutuhkan memori yang lebih besar, karena menyimpan semua node dalam satu pohon.

2) Membutuhkan sejumlah besar pekerjaan, khususnya jika lintasan solusi terpendek cukup panjang, karena jumlah node yang perlu diperiksa bertambah secara eksponensial terhadap panjang lintasan.

3) Tidak relevannya operator akan menambah jumlah node yang harus diperiksa.

Oleh karena proses Breadth First Search mengamati node di setiap level graf sebelum bergerak menuju ruang yang lebih dalam maka mula-mula semua keadaan akan dicapai lewat lintasan yang terpendek dari keadaan awal. Oleh sebab itu, proses ini menjamin ditemukannya lintasan terpendek dari keadaan awal ke keadaan tujuan (akhir). Lebih jauh karena mula-mula semua keadaan ditemukan melalui lintasan terpendek sehingga setiap keadaan yang ditemui pada kali kedua didapati pada sepanjang sebuah lintasan yang sama atau lebih panjang. Kemudian, jika tidak ada kesempatan ditemukannya keadaan yang identik pada sepanjang lintasan yang lebih baik maka algoritma akan menghapusnya.


(25)

15 2.2.3. Algoritma Depth First Search (DFS)

Algoritma Depth First Search hampir sama seperti algoritma Breadth-First Search, namun berbeda dalam teknik pencarian simpul solusinya. Algoritma Depth First Search memiliki prioritas untuk mengunjungi simpul sampai level terdalam terlebih dahulu. Kemudian jika ditemukan jalan buntu (tidak ada lagi simpul yang bertetangga), algoritma akan memeriksa simpul sebelumnya yang sudah dikunjungi dan masih bertetangga dengan simpul lain yang belum dikunjungi dan menelusuri simpul tersebut. Dengan kata lain, simpul cabang atau anak yang terlebih dahulu dikunjungi. Sebagai ilustrasinya dapat dilihat gambar 2.5 [8].

Gambar 2.5 Algoritma pencarian Depth First Search

Depth First Search, seperti halnya Breadth First Search, juga memiliki kelebihan di antaranya adalah cepat mencapai kedalaman ruang pencarian. Jika diketahui bahwa lintasan solusi permasalahan akan panjang maka Depth First Search tidak akan memboroskan waktu untuk melakukan sejumlah besar keadaan dangkal dalam permasalahan graf. Depth First Search jauh lebih efisien untuk ruang pencarian dengan banyak cabang karena tidak perlu mengeksekusi semua simpul pada suatu level tertentu pada daftar open. Selain itu, Depth First Search memerlukan


(26)

16 memori yang relatif kecil karena banyak node pada lintasan yang aktif saja yang disimpan.

Selain kelebihan, Depth First Search juga memiliki kelemahan di antaranya adalah memungkinkan tidak ditemukannya tujuan yang diharapkan dan hanya akan mendapatkan satu solusi pada setiap pencarian. Berikut ini adalah algoritma Depth First Search dalam bentuk pseudocode [10]:

Algoritma

if IsGoal(v) then return true keluar dari DFS endif

visited[v]true for w l to n do

if A[v,w]=l and not visited[w] then

return DFS(w) endif

endfor

return false

Penentuan teknik pencarian yang sesuai atau yang tepat untuk sebuah kasus khusus penganalisaan suatu ruang permasalahan, menjadi sangat penting dan biasanya dengan melakukan konsultasi dengan para pakar di bidangnya untuk mendapatkan dan mengetahui tingkah laku ruang permasalahan tersebut.

2.2.4. Algoritma Iterative Deepening Search (IDS)

Iterative Deepening Search (IDS) atau Iterative Deepening Depth-First Search (IDDFS) merupakan metode yang berusaha menggabungkan keuntungan Breadth First Search (Complete dan Optimal) dengan keuntungan Depth First Search (Space Complexity yang rendah). Tetapi konsekuensinya adalah Time Complexity-nya menjadi tinggi.


(27)

17 Dibawah ini merupakan gambar bagaimana algoritma Iterative Deepening Search melakukan pencarian solusi.

Gambar 2.6 Algoritma Pencarian IDS

Pencarian dilakukan secara iterative menggunakan penelusuran DFS dimulai dari batasan level 1. Jika belum ditemukan solusi, maka dilakukan iterasi ke-2 dengan batasan level 2. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking, yaitu penelusuran balik untuk mendapatkan jalur yang diinginkan.

Berikut ini merupakan pseudocode dari algoritma Iterative Deepening Search [10]:

Algoritma

boolean dfsid(vertex v, level l, bound)

{

if(level > bound) return false; visited[v]=1;

performOperation();

for(unvisited vertices i adjacent to v)

dfsid(i,level+1,bound); }


(28)

18 Algoritma Iterative Deepening Search mungkin terlihat boros karena state yang diperiksa berkali-kali. Ternyata hal itu tidak menjadi masalah karena di dalam sebuah pohon pada pohon pencarian yang mempunyai factor percabangan yang sama atau hampir sama di setiap level, sebagian besar node berada pada tingkat bawah sehingga tidak terlalu bermasalah jika node yang berada pada tingkat atas diperiksa beberapa kali. Di dalam algoritma Iterative Deepening Search, node pada tingkat bawah (depth d) diperiksa sekali, node yang berada pada level sebelumnya diperiksa dua kali, dan seterusnya hingga ke akar yang telah diperiksa sebanyak d-kali. Jadi, banyak nya node yang diperiksa dapat dihitung menggunakan rumus berikut:

N(It erat iveDeepeningSearch)=(d)b + (d-1)b2 + ... + (1)b2

Dengan menggunakan rumus tersebut dapat disimpulkan bahwa kasus terburuk dalam menggunakan algoritma ini yaitu jika node tujuan berada pada level maksimum.

2.3. Mobile Technology

Salah satu ciri mobile technology adalah untuk mendapatkan informasi ataupun pengaksesannya harus menggunakan cara yang mudah dan tidak mengganggu aktifitas manusia.

Untuk perkembangan teknologi komputer dan jaringan saat ini telah mencapai masa teknologi wireless. Teknologi ini memungkinkan seseorang terkoneksi internet tanpa harus terhubung dengan kabel jaringan, dengan menggunakan komputer yang memiliki fasilitas wireless dan berapa pada area hotspot memungkinkan seseorang terkoneksi kedalam jaringan internet. Teknologi wireless semakin memudahkan komunikasi antar komputer.

Harga-harga perangkat mobile technology yang semakin terjangkau menyebabkan pemanfaatan perangkat mobile technology menjadi gaya hidup sekaligus kebutuhan bagi masyarakat indonesia. Saat ini dapat dilihat


(29)

19 bagimana masyarakat sangat tergantung pada telepon seluler (handphone) sebagai alat komunikasi.

Game menjadi salah satu aplikasi handphone yang paling sering digunakan anak-anak. Begitu populernya aplikasi ini sehingga hampir semua merk handphone akhirnya mengeluarkan seri khusus. Sensasi bermain game di handphone dewasa ini tak kalah menariknya dengan bermain game di PSP atau GBA. Didukung dengan desain yang memberikan kenyamanan bermain, layar yang cukup lebar, kualitas grafik yang semakin baik, serta kapasitas memori handphone yang besar, handphone saat ini menjadi alternatif bagi pencinta game untuk melanjutkan petualangannya. Bermain game di handphone sekarang memungkinkan pemain bermain dan berinteraksi bersama dengan gamer lain (bahkan dengan puluhan atau ribuan pemain lain). Caranya cukup dengan mengaktifkan internet untuk bermain dengan gamer lain dengan menggunakan jaringan internet.

Perangkat mobile memiliki banyak jenis dalam hal ukuran, desain dan layout, tetapi mereka memiliki kesamaan karakteristik yang sangat berbeda dari sistem desktop, yaitu :

 Ukuran yang kecil

Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.

 Memory yang terbatas

Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan secondary (disk). Pembatasan ini adalah salah satu faktor yang mempengaruhi penulisan program untuk berbagai jenis dari perangkat ini.

 Daya proses yang terbatas

Sistem mobile tidaklah setangguh rekan mereka yaitu desktop. Ukuran, teknologi dan biaya adalah beberapa faktor yang mempengaruhi status dari sumber daya ini. Seperti harddisk dan RAM,


(30)

20 anda dapat menemukan mereka dalam ukuran yang pas dengan sebuah kemasan kecil.

 Mengkonsumsi daya yang rendah

Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan dimana daya yang disediakan dibatasi oleh baterai-baterai.

 Kuat dan dapat diandalkan

Karena perangkat mobile selalu dibawa kemana saja, mereka harus cukup kuat untuk menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air.

 Konektivitas yang terbatas

Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. Kebanyakan dari mereka menggunakan koneksi wireless.

 Masa hidup yang pendek

Perangkat-perangkat konsumen ini menyala dalam hitungan detik kebanyakan dari mereka selalu menyala. Coba ambil kasus sebuah handphone, mereka booting dalam hitungan detik dan kebanyakan orang tidak mematikan handphone mereka bahkan ketika malam hari.

2.4. Pengertian Game

Game adalah suatu sistem yang memiliki aturan dengan suatu variable dan hasil yang dapat dihitung, dimana hasil yang berbeda ditugaskan dengan nilai-nilai yang berbeda, dimana pemain melakukan usaha dalam mempengaruhi hasil perhitungan tersebut. Dalam pengertian yang luas game berarti suatu hiburan yang dapat melatih kelincahan intelektual dan aksi dari pemainnya [11].


(31)

21 1) Arcade/Action Game, game yang memiliki interaksi dengan manusia yang tinggi dan menggunakan grafis yang beragam, seperti: game Counter Strike.

2) Puzzle, game yang didalamnya terdapat unsur logika, seperti: game Tetris.

3) Card, game seperti Poker dan Solitaire.

4) Strategy, game yang memiliki suatu teknik dan pemikiran serta manajemen didalamnya, seperti: game Command and Conquer dan Warcraft.

5) Sport, game seperti permainan olah raga yang sesungguhnya seperti game FIFA series dan Pro Evolution Soccer series.

Game merupakan permainan yang membutuhkan interaksi yang terkait dengan apa yang ingin disampaikan. Untuk membuat game terlebih dahulu pembuat game harus membuat deskripsi yang menceritakan game yang akan dibuat.

2.4.1. Game Sliding Puzzle Kata

Game sliding puzzle kata merupakan permainan menyusun potongan huruf menjadi sebuah kata dengan memakai aturan slide puzzle yaitu sebuah potongan hanya dapat dipindah dengan menggesernya ke ruang kosong (blank tile). Pada awalnya sliding puzzle ini dikenal dengan nama n-puzzle. Yaitu sebuah puzzle berisi n petak dari nomor 1 sampai N dan sebuah petak kosong di dalam sebuah kotak persegi. N-puzzle dikenal dengan berbagai bentuk, yang paling terkenal adalah 8-puzzle dan 15-puzzle. Puzzle ini dimulai dengan pengacakan petak-petak yang ada. seorang pemain dapat menggeser petak yang berdekatan ke posisi yang ditempati petak kosong. Tujuan dari permainan ini yaitu memindahkan petak untuk mencapai goal state dimana semua nomor yang ada tersusun dengan urutan yang terkecil sampai yang terbesar dari kiri ke kanan dan dari atas ke bawah [4]. Gambar 2.7 merupakan contoh n-puzzle.


(32)

22 Gambar 2.7 Contoh Sliding n-puzzle

Puzzle ini merupakan jenis puzzle yang memiliki tingkat kesulitan dalam menyelesaikan masalahnya sangat tinggi dibandingkan dengan jenis puzzle lain. Umumnya orang yang memainkan puzzle ini butuh waktu lama dalam menyelesaikan permainan nya. Hal ini disebabkan karena pada game puzzle ini tidak ada informasi tambahan yang dimiliki untuk membantu melakukan pencarian solusi.

Pada puzzle kata, soal yang berupa nomor dari angka 1 sampai N diganti dengan sebuah kata. Petak-petak puzzle mewakili satu huruf dari kata yang dijadikan soal. Pemain harus menyusun kata yang telah diacak menjadi sebuah kata yang benar sesuai dengan soal yang ada. Dengan demikian, aturan permainan antara puzzle kata dan n-puzzle sebagian besar sama hanya berbeda pada soal yang harus disusun. Gambar 2.8 merupakan contoh dari puzzle kata.

Gambar 2.8 Contoh Sliding Puzzle Kata

V E S F I

T

A L

F E S V I

T

A L


(33)

23 2.4.2. Android SDK (Software Development Kit)

Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android SDK (Software Development Kit) menyediakan Tools dan API yang diperlukan untuk Aplikasi Android nantinya tidak akan berjalan langsung di atas kernel sistem operasi namun berjalan di atas Dalvik, sebuah virtual machine yang khusus dirancang untuk digunakan pada sistem embedded [2].

Sebagai platform aplikasi netral, Android memberi kesempatan untuk membuat aplikasi yang dibutuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone.

Beberapa fitur-fitur Android yang paling penting adalah:

Framework aplikasi yang mendukung penggantian komponen dan reusable.

 Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile.

Integrated browser berdasarkan engine open source WebKit.

 Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi open gl ES 1,0 (Opsional akselerasi hardware).

 SQLite untuk penyimpanan data (database).

Media Support yang mendukung audio, video, dan gambar, GSM Telephony (tergantung hardware).

 Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).


(34)

24

 Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse.

2.4.3. Kelebihan Android Dibandingkan Platform Lain

Sistem operasi merupakan sistem operasi yang masih baru di dalam dunia Mobile. Sehingga muncul beberapa alasan mengapa sistem operasi Android dianggap lebih baik dibandingkan dengan platform-platform yang lain.

Kelebihan sistem operasi Android sebagai berikut: 1. Terbuka

Android dibangun untuk benar-benar terbuka sehingga sebuah aplikasi dapat memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim teks, menggunakan kamera, dan lain-lain. Android menggunakan sebuah mesin virtual yang dirancang khusus untuk mengoptimalkan sumber daya memori dan perangkat keras yang terdapat di dalam perangkat. Android merupakan open source, dapat secara bebas diperluas untuk memasukkan teknologi tersebut muncul. Platform ini akan terus berkembang untuk membangun aplikasi mobile yang inovatif. 2. Semua aplikasi dibuat sama

Android tidak memberikan perbedaan terhadap aplikasi utama dari telepon dan aplikasi pihak ketiga (third-party application). Semua aplikasi dapat dibangun untuk memiliki akses yang sama terhadap kemampuan sebuah telepon dalam menyediakan layanan dan aplikasi yang luas terhadap para pengguna.

3. Memecahkan hambatan pada aplikasi

Android memecah hambatan untuk membangun aplikasi yang baru dn inovatif. Misalkan, pengembang dapat menggabungkan informasi yang diperoleh dari web dengan data pada ponsel seseorang seperti kontak pengguna, kalender, atau lokasi geografis.


(35)

25 4. Pengembangan aplikasi yang cepat dan mudah

Android menyediakan akses yang sangat luas kepada pengguna untuk menggunkan library yang diperlukan dan tools yang dapat digunakan untuk membangun aplikasi yang semakin baik. Android memiliki sekumpulan tools yang dapat digunakan sehingga membantu para pengembang dalm meningkatkan produktivitas pada saat membangun aplikasi yang dibuat.

2.5. Finite State Machine

Finite State Machine adalah suatu perangkat atau model perangkat yang memiliki sejumlah state dan pada satu waktu dapat berada dalam salah satu state tersebut. Dia dapat memproses input dan menghasilkan transisi dari state satu ke state lain atau menghasilkan output berupa aksi. Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks.

Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keutungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state.


(1)

20 anda dapat menemukan mereka dalam ukuran yang pas dengan sebuah kemasan kecil.

 Mengkonsumsi daya yang rendah

Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin desktop. Perangkat ini harus menghemat daya karena mereka berjalan pada keadaan dimana daya yang disediakan dibatasi oleh baterai-baterai.

 Kuat dan dapat diandalkan

Karena perangkat mobile selalu dibawa kemana saja, mereka harus cukup kuat untuk menghadapi benturan-benturan, gerakan, dan sesekali tetesan-tetesan air.

 Konektivitas yang terbatas

Perangkat mobile memiliki bandwith rendah, beberapa dari mereka bahkan tidak tersambung. Kebanyakan dari mereka menggunakan koneksi wireless.

 Masa hidup yang pendek

Perangkat-perangkat konsumen ini menyala dalam hitungan detik kebanyakan dari mereka selalu menyala. Coba ambil kasus sebuah handphone, mereka booting dalam hitungan detik dan kebanyakan orang tidak mematikan handphone mereka bahkan ketika malam hari.

2.4. Pengertian Game

Game adalah suatu sistem yang memiliki aturan dengan suatu variable dan hasil yang dapat dihitung, dimana hasil yang berbeda ditugaskan dengan nilai-nilai yang berbeda, dimana pemain melakukan usaha dalam mempengaruhi hasil perhitungan tersebut. Dalam pengertian yang luas game berarti suatu hiburan yang dapat melatih kelincahan intelektual dan aksi dari pemainnya [11].


(2)

21 1) Arcade/Action Game, game yang memiliki interaksi dengan manusia yang tinggi dan menggunakan grafis yang beragam, seperti: game Counter Strike.

2) Puzzle, game yang didalamnya terdapat unsur logika, seperti: game Tetris.

3) Card, game seperti Poker dan Solitaire.

4) Strategy, game yang memiliki suatu teknik dan pemikiran serta manajemen didalamnya, seperti: game Command and Conquer dan Warcraft.

5) Sport, game seperti permainan olah raga yang sesungguhnya seperti game FIFA series dan Pro Evolution Soccer series.

Game merupakan permainan yang membutuhkan interaksi yang terkait dengan apa yang ingin disampaikan. Untuk membuat game terlebih dahulu pembuat game harus membuat deskripsi yang menceritakan game yang akan dibuat.

2.4.1. Game Sliding Puzzle Kata

Game sliding puzzle kata merupakan permainan menyusun potongan huruf menjadi sebuah kata dengan memakai aturan slide puzzle yaitu sebuah potongan hanya dapat dipindah dengan menggesernya ke ruang kosong (blank tile). Pada awalnya sliding puzzle ini dikenal dengan nama n-puzzle. Yaitu sebuah puzzle berisi n petak dari nomor 1 sampai N dan sebuah petak kosong di dalam sebuah kotak persegi. N-puzzle dikenal dengan berbagai bentuk, yang paling terkenal adalah 8-puzzle dan 15-puzzle. Puzzle ini dimulai dengan pengacakan petak-petak yang ada. seorang pemain dapat menggeser petak yang berdekatan ke posisi yang ditempati petak kosong. Tujuan dari permainan ini yaitu memindahkan petak untuk mencapai goal state dimana semua nomor yang ada tersusun dengan urutan yang terkecil sampai yang terbesar dari kiri ke kanan dan dari atas ke bawah [4]. Gambar 2.7 merupakan contoh n-puzzle.


(3)

22 Gambar 2.7 Contoh Sliding n-puzzle

Puzzle ini merupakan jenis puzzle yang memiliki tingkat kesulitan dalam menyelesaikan masalahnya sangat tinggi dibandingkan dengan jenis puzzle lain. Umumnya orang yang memainkan puzzle ini butuh waktu lama dalam menyelesaikan permainan nya. Hal ini disebabkan karena pada game puzzle ini tidak ada informasi tambahan yang dimiliki untuk membantu melakukan pencarian solusi.

Pada puzzle kata, soal yang berupa nomor dari angka 1 sampai N diganti dengan sebuah kata. Petak-petak puzzle mewakili satu huruf dari kata yang dijadikan soal. Pemain harus menyusun kata yang telah diacak menjadi sebuah kata yang benar sesuai dengan soal yang ada. Dengan demikian, aturan permainan antara puzzle kata dan n-puzzle sebagian besar sama hanya berbeda pada soal yang harus disusun. Gambar 2.8 merupakan contoh dari puzzle kata.

Gambar 2.8 Contoh Sliding Puzzle Kata

V E S

F I

T

A L

F E S

V I

T

A L


(4)

23 2.4.2. Android SDK (Software Development Kit)

Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android SDK (Software Development Kit) menyediakan Tools dan API yang diperlukan untuk Aplikasi Android nantinya tidak akan berjalan langsung di atas kernel sistem operasi namun berjalan di atas Dalvik, sebuah virtual machine yang khusus dirancang untuk digunakan pada sistem embedded [2].

Sebagai platform aplikasi netral, Android memberi kesempatan untuk membuat aplikasi yang dibutuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone.

Beberapa fitur-fitur Android yang paling penting adalah:

Framework aplikasi yang mendukung penggantian komponen dan reusable.

 Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile.  Integrated browser berdasarkan engine open source WebKit.

 Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi open gl ES 1,0 (Opsional akselerasi hardware).

 SQLite untuk penyimpanan data (database).

Media Support yang mendukung audio, video, dan gambar, GSM Telephony (tergantung hardware).

 Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).


(5)

24  Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse.

2.4.3. Kelebihan Android Dibandingkan Platform Lain

Sistem operasi merupakan sistem operasi yang masih baru di dalam dunia Mobile. Sehingga muncul beberapa alasan mengapa sistem operasi Android dianggap lebih baik dibandingkan dengan platform-platform yang lain.

Kelebihan sistem operasi Android sebagai berikut: 1. Terbuka

Android dibangun untuk benar-benar terbuka sehingga sebuah aplikasi dapat memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim teks, menggunakan kamera, dan lain-lain. Android menggunakan sebuah mesin virtual yang dirancang khusus untuk mengoptimalkan sumber daya memori dan perangkat keras yang terdapat di dalam perangkat. Android merupakan open source, dapat secara bebas diperluas untuk memasukkan teknologi tersebut muncul. Platform ini akan terus berkembang untuk membangun aplikasi mobile yang inovatif. 2. Semua aplikasi dibuat sama

Android tidak memberikan perbedaan terhadap aplikasi utama dari telepon dan aplikasi pihak ketiga (third-party application). Semua aplikasi dapat dibangun untuk memiliki akses yang sama terhadap kemampuan sebuah telepon dalam menyediakan layanan dan aplikasi yang luas terhadap para pengguna.

3. Memecahkan hambatan pada aplikasi

Android memecah hambatan untuk membangun aplikasi yang baru dn inovatif. Misalkan, pengembang dapat menggabungkan informasi yang diperoleh dari web dengan data pada ponsel seseorang seperti kontak pengguna, kalender, atau lokasi geografis.


(6)

25 4. Pengembangan aplikasi yang cepat dan mudah

Android menyediakan akses yang sangat luas kepada pengguna untuk menggunkan library yang diperlukan dan tools yang dapat digunakan untuk membangun aplikasi yang semakin baik. Android memiliki sekumpulan tools yang dapat digunakan sehingga membantu para pengembang dalm meningkatkan produktivitas pada saat membangun aplikasi yang dibuat.

2.5. Finite State Machine

Finite State Machineadalah suatu perangkat atau model perangkat yang memiliki sejumlah state dan pada satu waktu dapat berada dalam salah satu state tersebut. Dia dapat memproses input dan menghasilkan transisi dari state satu ke state lain atau menghasilkan output berupa aksi. Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks.

Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keutungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state.