Permainan Word Search Puzzle Pada Android Menggunakan Algoritma Backtracking

(1)

MENGGUNAKAN ALGORITMA BACKTRACKING

SKRIPSI

ISHRI IFDHILLAH MARBUN

081402002

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA


(2)

MENGGUNAKAN ALGORITMA BACKTRACKING

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Teknologi Informasi

ISHRI IFDHILLAH MARBUN 081402002

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA


(3)

PERSETUJUAN

Judul

: PERMAINAN

WORD SEARCH PUZZLE

PADA

ANDROID MENGGUNAKAN ALGORITMA

BACKTRACKING

Kategori :

SKRIPSI

Nama

: ISHRI IFDHILLAH MARBUN

Nomor Induk Mahasiswa

:

081402002

Program Studi

:

SARJANA (S1) TEKNOLOGI INFORMASI

Departemen :

TEKNOLOGI

INFORMASI

Fakultas :

ILMU

KOMPUTER

DAN TEKNOLOGI INFORMASI

(FASILKOM-TI) UNIVERSITAS SUMATERA

UTARA

Diluluskan

di

Medan, 18 Juli 2012

Komisi Pembimbing

:

Pembimbing 2

Pembimbing 1

Sarah Purnamawati, ST. M.Sc

Prof. DR. Opim S Sitompul, M.Sc

NIP 19830226 201012 2 003

NIP 19610817 198701 1 001

Diketahui/Disetujui oleh

Departemen Teknologi Informasi FASILKOM-TI USU

Ketua,

Prof. DR. Opim S Sitompul, M.Sc

NIP 19610817 198701 1 001


(4)

PERNYATAAN

PERMAINAN

WORD SEARCH PUZZLE

PADA ANDROID MENGGUNAKAN

ALGORITMA

BACKTRACKING

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan

dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2012

ISHRI IFDHILLAH MARBUN

081402002


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat

dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk

memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi

Departemen Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada kedua dosen pembimbing yaitu

Prof. DR. Opim S Sitompul, M.Sc dan Sarah Purnamawati, ST. M.Sc yang telah bersedia

meluangkan waktunya untuk memberikan panduan dan masukan kepada penulis dalam

menyelesaikan skripsi ini. Ucapan terima kasih juga penulis tujukan kepada dosen-dosen,

pegawai dan teman-teman di Departemen Teknologi Informasi Universitas Sumatera

Utara.

Skripsi ini penulis persembahkan kepada kedua orang tua penulis Ayah Ir. Ikhsar

Risyad Marbun, M.Si dan Bunda Hj. Fadilah Adam juga kepada adik-adik penulis, yaitu

Irsa Izriyani Marbun dan Muhammad Rizky Yasin Marbun yang senantiasa memberikan

dukungan, doa dan semangat kepada penulis. Kepada Isywalsyah Lani, Dinda Anwar,

Cahya Rizki, Mauza Saputri, Karina Ayesha, Syahfitri, Karina Andi, Ika Marlina, Nasya

Marisyka dan Viera Fadlitha penulis ucapkan banyak terima kasih atas doa dan dukungan

yang telah diberikan.

Penulis menyadari bahwa masih terdapat banyak kekurangan dalam penyusunan

skripsi ini. Karena itu penulis mengaharapkan saran-saran yang bersifat membangun dari

semua pihak untuk kesempurnaan skripsi ini. Akhir kata penulis mengharapkan semoga

skripsi ini dapat memberikan manfaat bagi semua pihak.


(6)

ABSTRAK

Word search puzzle

adalah permainan pencarian kata dalam kumpulan huruf yang

tersusun secara acak pada sebuah grid yang biasanya berbentuk persegi. Algoritma

pencarian

backtracking

dapat diterapkan kedalam sebuah aplikasi untuk dapat melakukan

pencarian kata. Algoritma

backtracking

adalah algoritma pencarian dengan cara

menelusuri pohon solusi secara DFS (Depth First Search) sampai ditemukan solusi yang

layak. Algoritma ini secara sistematis mencari solusi persoalan di antara semua

kemungkinan solusi yang ada. Aplikasi yang dibangun bertujuan untuk mengotomasi

pencarian kata dalam

word search puzzle

, sehingga pemain dapat segera mengetahui letak

kata-kata yang dicari. Hasil yang diperoleh dari aplikasi yang dibangun adalah bahwa

implementasi algoritma

backtracking

dapat memberikan penyelesaian

word search puzzle

secara memuaskan.


(7)

BACKTRACKING ALGORITHM ON WORD SEARCH PUZZLE

ABSTRACT

Word search puzzle is a game to search some words in a collection of random letters that

usually arranged in a rectangular grid. Backtracking algorithm can be implemented into

an application to search the words. The backtracking algorithm will explore the solution

tree in DFS (Depth First Search) to find a solution. The algorithm will search a solution

among all possible solutions. The application is built to automate a word search in the

word search puzzle in such way that the player can immediately know the location of the

searched words. Result obtain from the application built shows that the backtracking

algorithm can give a satisfactory solution for the game.


(8)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak

v

Abstract vi

Daftar Isi

vii

Daftar Tabel

ix

Daftar Gambar

x

Bab 1

Pendahuluan

1

1.1

Latar Belakang

1

1.2

Rumusan Masalah

2

1.3

Batasan Masalah

3

1.4

Tujuan Penelitian

4

1.5

Manfaat Penelitian

4

1.6

Metodologi Penelitian

4

1.7

Sistematika Penulisan

5

Bab 2

Landasan Teori

7

2.1

Kecerdasan Buatan

7

2.1.1

Bidang Terapan Kecerdasan Buatan

9

2.2

Permainan (

Games

) 11

2.3

Word Search Puzzle

12

2.4

Teknik Pencarian (

Searching

) 14

2.5

Algoritma

Depth-First Search

(DFS) 14

2.6

Algoritma

Backtracking

16

2.7

Android 18

2.7.1

Arsitektur Android

20

2.8

Penelitian Sebelumnya

23

Bab 3 Analisis dan Perancangan Aplikasi

25

3.1

Analisis Algoritma

Backtracking

pada

Word Search Puzzle

25

3.2

Perancangan Aplikasi

29

3.2.1

Perancangan Alur Aplikasi

30

3.2.2

Perancangan Alur Permainan

35

3.2.2.1 Mulai Baru

35

3.2.2.2 Bantuan

38

3.2.2.3 Selesaikan

41


(9)

Bab 4

Implementasi dan Pengujian Aplikasi

49

4.1

Implementasi 49

4.1.1

Spesifikasi Perangkat Lunak

49

4.1.2

Spesifikasi Perangkat Keras

50

4.2

Algoritma

Backtracking

dalam aplikasi Word Search

51

4.3

Tampilan Aplikasi

52

4.3.1

Tampilan Halaman Menu Utama

52

4.3.2

Tampilan Halaman Pilih Level

52

4.3.3

Tampilan Halaman Permainan

53

4.3.4

Tampilan Halaman Panduan

58

4.3.5

Tampilan Halaman Tentang

59

4.3.6

Tampilan Halaman Nilai Tertinggi

60

4.4

Pengujian 60

4.4.1

Pengujian Aplikasi

61

4.4.2

Penilaian Pengguna

61

Bab 5

Kesimpulan dan Saran

66

5.1

Kesimpulan 66

5.2

Saran 66

Daftar Pustaka

68

Lampiran A

Lampiran B


(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Versi-versi Android

20

Tabel 4.1 Hasil kuisioner aspek antarmuka

62


(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Beberapa definisi kecerdasan buatan

8

Gambar 2.2 Word search puzzle

12

Gambar 2.3 Contoh word search puzzle

15

Gambar 2.4 Pohon solusi

16

Gambar 2.5 Prinsip pencarian solusi dengan metode

backtracking

18

Gambar 2.6 Arsitektur Android

21

Gambar 3.1 Pohon yang merepresentasikan ruang kemungkinan

solusi permainan

word search puzzle

26

Gambar 3.2

Word search puzzle

5x5

28

Gambar 3.3 Posisi huruf pada grid

28

Gambar 3.4

Word search puzzle

5x5 dengan solusi

29

Gambar 3.5

Flowchart

pemilihan menu

30

Gambar 3.6

Flowchart

pemilihan level permainan

31

Gambar 3.7

Flowchart

permainan level 1

32

Gambar 3.8

Flowchart

permainan level 2

33

Gambar 3.9

Flowchart

permainan level 3

34

Gambar 3.10

Flowchart

Mulai Baru

36

Gambar 3.11

Flowchart

Bantuan 40

Gambar 3.12

Flowchart

Selesaikan 42

Gambar 3.13 Rancangan antarmuka halaman menu utama

43

Gambar 3.14 Rancangan antarmuka halaman pilih level

44

Gambar 3.15 Rancangan antarmuka halaman permainan

45

Gambar 3.16 Rancangan antarmuka halaman panduan bermain

46

Gambar 3.17 Rancangan antarmuka halaman tentang

47

Gambar 3.18 Rancangan antarmuka halaman nilai tertinggi

48

Gambar 4.1 Tampilan halaman Menu Utama

52

Gambar 4.2 Tampilan halaman Pilih Level

53

Gambar 4.3 Tampilan halaman permainan

55

Gambar 4.4 Tampilan permainan dalam keadaan

paused

55

Gambar 4.5 Tampilan kondisi saat permainan berlangsung

56

Gambar 4.6 Tampilan permainan ketika berhasil menyelesaikan salah satu permainan 57

Gambar 4.7 Tampilan permainan ketika tidak berhasil menyelesaikan

salah satu permainan

57

Gambar 4.8 Tampilan permainan ketika berhasil menyelesaikan

permainan dengan perolehan nilai tertinggi

58

Gambar 4.9 Tampilan halaman Panduan

59

Gambar 4.10 Tampilan halaman Tentang

59


(12)

(13)

ABSTRAK

Word search puzzle

adalah permainan pencarian kata dalam kumpulan huruf yang

tersusun secara acak pada sebuah grid yang biasanya berbentuk persegi. Algoritma

pencarian

backtracking

dapat diterapkan kedalam sebuah aplikasi untuk dapat melakukan

pencarian kata. Algoritma

backtracking

adalah algoritma pencarian dengan cara

menelusuri pohon solusi secara DFS (Depth First Search) sampai ditemukan solusi yang

layak. Algoritma ini secara sistematis mencari solusi persoalan di antara semua

kemungkinan solusi yang ada. Aplikasi yang dibangun bertujuan untuk mengotomasi

pencarian kata dalam

word search puzzle

, sehingga pemain dapat segera mengetahui letak

kata-kata yang dicari. Hasil yang diperoleh dari aplikasi yang dibangun adalah bahwa

implementasi algoritma

backtracking

dapat memberikan penyelesaian

word search puzzle

secara memuaskan.


(14)

BACKTRACKING ALGORITHM ON WORD SEARCH PUZZLE

ABSTRACT

Word search puzzle is a game to search some words in a collection of random letters that

usually arranged in a rectangular grid. Backtracking algorithm can be implemented into

an application to search the words. The backtracking algorithm will explore the solution

tree in DFS (Depth First Search) to find a solution. The algorithm will search a solution

among all possible solutions. The application is built to automate a word search in the

word search puzzle in such way that the player can immediately know the location of the

searched words. Result obtain from the application built shows that the backtracking

algorithm can give a satisfactory solution for the game.


(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Word search puzzle merupakan salah satu permainan teka-teki yang cukup populer di masyarakat. Word search puzzle adalah permainan pencarian kata dalam kumpulan huruf yang tersusun secara acak pada sebuah grid yang biasanya berbentuk persegi. Dalam permainan ini pemain harus menemukan semua kata yang tersembunyi di dalam persegi tersebut. Kata-kata yang tersembunyi dapat ditemukan secara horizontal, vertikal dan diagonal.

Strategi umum yang digunakan oleh pemain untuk menyelesaikan puzzle ini adalah dengan mencari huruf pertama dari kata yang dicari dalam kumpulan huruf kemudian mencari huruf kedua yang terletak disebelah kanan, kiri, atas, bawah atau diagonal yang cocok dan seterusnya sampai huruf-huruf yang ditemukan membentuk kata yang dicari. Permainan dapat diselesaikan dengan menerapkan strategi tersebut namun waktu penyelesaian tergantung pada kecepatan dan ketelitian masing-masing pemain karena adanya kesulitan dalam mencari kata-kata yang tersembunyi dalam kumpulan huruf.

Seiring berkembangnya pengetahuan dan teknologi, permainan word search puzzle dapat diselesaikan oleh komputer dengan mengimplementasikan algoritma. Algoritma pencarian backtracking dapat diterapkan kedalam aplikasi untuk dapat melakukan pencarian kata. Aplikasi yang dibangun diharapkan dapat mengotomasi pencarian kata dalam word search puzzle, sehingga pemain dapat segera mengetahui letak kata-kata yang dicari.


(16)

Dalam skripsi ini, aplikasi yang dibangun untuk pencarian kata dalam word search puzzle dilakukan dengan menerapkan algoritma backtracking. Algoritma backtracking adalah algoritma pencarian dengan cara menelusuri pohon solusi secara DFS (Depth First Search) sampai ditemukan solusi yang layak. Algoritma backtracking merupakan perbaikan dari algoritma bruteforce, secara sistematis mencari solusi persoalan di antara semua kemungkinan solusi yang ada. Algoritma backtracking banyak diterapkan untuk program-program game (permainan).

Beberapa penelitian yang pernah dilakukan untuk menyelesaikan board games dengan menggunakan backtracking antara lain untuk penyelesaian permainan anagram (Assat, 2007), masalah Knight Tour (Mumtaz, 2008), dan permainan congklak (Bakri, 2010). Dengan metode ini, kita tidak perlu memeriksa semua kemungkinan solusi yang ada. Hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan. Karena itu waktu pencarian solusi dapat lebih dihemat.

Perkembangan smart phone/tablet pc berbasis Android sangat pesat beberapa tahun terakhir. Perkembangan tersebut mengakibatkan meningkatnya aplikasi-aplikasi mobile berbasis Android. Untuk itu penulis akan membangun aplikasi yang dapat digunakan di smart phone/tablet pc berbasis Android. Dengan memanfaatkan perkembangan Android diharapkan aplikasi yang dibangun dapat lebih bermanfaat dan bernilai ekonomis.

1.2 Rumusan Masalah

Pencarian kata dalam permainan word search puzzle dapat dilakukan secara manual, namun terdapat kesulitan untuk mencari kata-kata dalam grid yang berisi sekumpulan huruf yang tersusun secara acak. Karena itu permasalahan yang akan diselesaikan dalam skripsi ini adalah bagaimana pencarian kata dalam permainan word search puzzle dapat diautomasi sehingga pemain dapat mengetahui letak kata-kata yang dicari dalam permainan tersebut.


(17)

1.3 Batasan Masalah

Pada skripsi ini dilakukan beberapa batasan masalah sebagai berikut :

1. Pada aplikasi yang dibangun permainan dimainkan oleh satu pemain ( single-player).

2. Kata-kata yang harus dicari oleh pemain di dalam kumpulan huruf disediakan oleh aplikasi. Jumlah kata yang harus dicari dalam satu pemainan adalah 4 kata untuk level 1, 6 kata untuk level 2 dan 8 kata untuk level 3.

3. Ukuran grid yang berisi kumpulan huruf dalam permainan berukuran 10 x 10 sehingga jumlah huruf dalam grid adalah 100 huruf.

4. Dalam aplikasi yang dibangun, kata-kata yang tersembunyi dalam puzzle dapat ditemukan dengan kemungkinan delapan jalur, yaitu :

a. Horizontal ke kanan b. Horizontal ke kiri c. Vertikal ke atas d. Vertikal ke bawah e. Diagonal ke kanan-atas f. Diagonal ke kanan-bawah g. Diagonal ke kiri-atas h. Diagonal ke kiri-bawah

5. Aplikasi yang dibangun menggunakan bahasa pemrograman C++. File-file program akan dikonversi menjadi library yang dapat digunakan pada pemrograman Java di Eclipse, sehingga program dapat di-compile sebagai Android application.

6. Aplikasi dapat dijalankan pada tablet pc dengan sistem operasi Android versi 2.2 (Froyo) dengan tampilan terbaik pada Samsung Galaxy Tab GT-P1000.


(18)

1.4 Tujuan Penelitian

Adapun tujuan dari penulisan skripsi ini adalah untuk membangun suatu aplikasi yang dapat menemukan solusi permainan word search puzzle dengan menerapkan algoritma backtracking.

1.5 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah menerapkan ilmu pengetahuan yang didapatkan penulis di masa kuliah serta menambah wawasan ilmu dan pemahaman kepada penulis dan pembaca tentang penggunaan algoritma backtracking dalam menyelesaikan permainan word search puzzle. Selain itu, dengan membangun aplikasi berbasis mobile yang dapat digunakan pada tablet pc berbasis android diharapkan aplikasi ini dapat digunakan masyarakat secara luas dan bernilai ekonomis.

1.6 Metodologi Penelitian

Metode penelitian yang akan digunakan adalah:

1. Studi Literatur

Pada tahap ini dilakukan dengan membaca dan mempelajari buku-buku referensi, jurnal atau sumber-sumber lain yang berkaitan dengan skripsi ini, baik berasal dari buku maupun dari internet.

2. Analisis dan Perancangan Desain Sistem

Pada tahap ini akan dilakukan analisis penerapan algoritma backtracking pada permainan word search puzzle serta perancangan aplikasi, antara lain: menggambar flowchart aplikasi dan perancangan antarmuka (interface).


(19)

3. Implementasi Sistem

Pada tahap ini akan dilakukan pengkodean dan menerapkan perancangan aplikasi tersebut ke dalam bahasa pemrograman. Pengkodean dilakukan dengan pemrogramana C++ yang kemudian dikonversi untuk digunakan pada perangkat lunak Eclipse, sehingga akan dihasilkan sebuah Android application.

4. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap aplikasi apakah telah memenuhi kriteria atau tidak.

5. Dokumentasi Sistem

Pada tahap ini akan dilakukan penulisan laporan mengenai aplikasi yang dibangun yang bertujuan untuk menunjukkan hasil penelitian ini.

1.7 Sistematika Penulisan

Adapun sistematika penulisan dalam skripsi ini terdiri dari beberapa bagian utama sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisi uraian latar belakang pemilihan judul skripsi “Permainan Word Search Puzzle Pada Android Menggunakan Algoritma Backtracking”, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Pada bab ini akan dibahas teori tentang kecerdasan buatan, permainan (games), word search puzzle, algoritma pencarian, algoritma backtracking dan teknologi Android.

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

Bab ini berisi analisis algoritma backtracking untuk pencarian kata dalam permainan word search puzzle dan perancangan aplikasi.


(20)

BAB 4 IMPLEMENTASI DAN PENGUJIAN APLIKASI

Bab ini menjelaskan implementasi dari hasil analisis dan perancangan aplikasi serta pengujian aplikasi.

BAB 5 KESIMPULAN DAN SARAN

Pada bab terakhir akan diuraikan kesimpulan dari seluruh bab-bab sebelumnya dan hasil penelitian yang diperoleh. Pada bab ini juga memuat saran yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.


(21)

(22)

BAB 2

LANDASAN TORI

2.1 Kecerdasan Buatan

Kecerdasan adalah kemampuan untuk belajar, memahami, menyelesaikan masalah dan menentukan keputusan. Kecerdasan buatan atau Artificial Intelligence merupakan ilmu pengetahuan yang bertujuan untuk membuat mesin dapat melakukan sesuatu pekerjaan yang membutuhkan kecerdasan.

Definisi kecerdasan buatan terbagi ke dalam dua dimensi dan empat kategori. Pada Gambar 2.1, bagian atas menunjukkan kecerdasan buatan merupakan sistem dengan proses berpikir dan reasoning menyerupai manusia, sedangkan bagian bawah menunjukkan bahwa kecerdasan buatan merupakan sistem dengan perilaku menyerupai manusia. Pada bagian kiri menunjukkan bahwa kecerdasan buatan merupakan ukuran kinerja manusia, sedangkan di bagian kanan mengukur performa ideal yang disebut rasionalitas (Russel dan Norvig, 2010).


(23)

PROSES BERFIKIR DAN REASONING

K

INERJA MANU

SIA

Sistem yang berfikir seperti manusia

“Upaya baru yang menarik untuk menjadikan komputer berfikir ... mesin dengan fikiran, dalam arti sebenarnya dan literal.” (Haugeland, 1985)

“[Pengotomasian dari] aktifitas-aktifitas yang dikaitkan dengan fikiran manusia, aktifitas-aktifitas seperti pengambilan keputusan, pembelajaran, ... “ (Bellman, 1978)

Sistem yang berfikir secara rasional

“Studi tentang kemampuan mental melalui penggunaan model-model komputasional “ (Chamiak dan McDermott, 1985)

“Studi tentang komputasi yang

memungkinkan pengenalan, alasan, dan tindakan” (Winston, 1992) RA

SI ON AL IT A S

Sistem yang bertindak seperti manusia

“Seni membuat mesin yang melakukan fungsi-fungsi yang memerlukan kecerdasan apabila dilaksanakan oleh manusia” (Kurzweil, 1990)

“Studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat itu manusia melakukan dengan lebih baik” (Rich dan Knight, 1991)

Sistem yang bertindak secara rasional

“Kecerdasan Komputasional adalah studi tentang perancangan agen-agen cerdas” (Poole et al., 1998)

“AI...berkaitan dengan perilaku cerdas dalam artifak(karya seni)” (Nilsson, 1998)

PERILAKU

Gambar 2.1 Beberapa definisi kecerdasan buatan, diorganisasikan atas empat kategori

(Sumber : Artificial Intelligence : A Modern Approach, 2010)

Kecerdasan buatan dapat memungkinkan komputer untuk ‘berpikir’. Dengan cara menyederhanakan program, kecerdasan buatan dapat menirukan proses belajar manusia sehingga informasi baru dapat diserap dan digunakan sebagai acuan di masa-masa yang akan datang. Manusia dapat menyerap informasi baru tanpa perlu mengubah atau mempengaruhi informasi lain yang telah tersimpan. Menggunakan program kecerdasan buatan membutuhkan cara yang jauh lebih sederhana dibandingkan dengan memakai program standar tanpa kecerdasan buatan di dalamnya.


(24)

Teknik yang digunakan dalam kecerdasan buatan memungkinkan dibuatnya sebuah program yang setiap bagiannya mengandung langkah-langkah independen dan dapat diidentifikasi dengan baik untuk dapat memecahkan sebuah atau sejumlah persoalan. Setiap potong bagian program adalah seperti sepotong informasi dalam pikiran manusia. Jika informasi tadi diabaikan, pikiran kita secara otomatis dapat mengatur cara kerjanya untuk menyesuaikan diri dengan fakta atau informasi yang baru. Kita tidak perlu selalu mengingat setiap potong informasi yang telah kita pelajari. Hanya yang relevan dengan persoalan yang kita hadapi yang kita gunakan. Demikian pula dalam kecerdasan buatan, setiap bagian program dapat dimodifikasi tanpa mempengaruhi struktur seluruh programnya. Hal ini memudahkan pemrogram untuk menghasilkan program yang semakin efisien dan mudah dipahami.

2.1.2 Bidang Terapan Kecerdasan Buatan

Pada awal perkembangannya, kecerdasan buatan menangani persoalan-persoalan pembuktian teorema dan permainan (games). Arthur Samuel (1901-1990), seorang periset kecerdasan buatan menuliskan program permainan catur yang tidak hanya sekedar dapat bermain catur, namun program tersebut juga dibuat agar dapat menggunakan pengalamannya untuk meningkatkan kemampuannya. Sementara itu, Allen Newell (1927-1992), seorang ahli teori logika berusaha membuktikan teorema-teorema matematika.

Seperti kebanyakan bidang sains lainnya, kecerdasan buatan dapat dipilah menjadi sejumlah sub-disiplin. Berikut sejumlah bidang terapan utama terhadap Kecerdasan Buatan :

1. Sistem Pakar (ExpertSystem)

Dalam suatu sistem pakar seorang pakar yang kompeten di dalam suatu bidang tertentu dapat menyediakan pengetahuan yang dibutuhkan tentang suatu persoalan yang dikuasainya. Sedangkan seorang ahli kecerdasan buatan bertanggungjawab untuk menerapkan pengetahuannya dalam pembuatan program yang efektif dan cerdas. Begitu program seperti ini selesai ditulis, kepakarannya perlu ditingkatkan melalui proses pemberian soal,


(25)

merundingkannya dengan pakar, dan membuat perubahan-perubahan yang perlu hingga dicapai tingkat kinerja (performence) yang diinginkan.

2. Perencanaan (Planning) dan Robotik

Perencanaan merupakan sebuah aspek penting dalam usaha merancang robot yang mampu melaksanakan tugasnya sampai suatu derajat keluwesan dan keresponsifan tertentu. Salah satu cara yang digunakan dalam perencanaan adalah dengan komposisi hirarki. Pendekatan tersebut akan membatasi lingkup permasalahan yang dirunut secara efektif dan juga dapat digunakan untuk pemakaian di masa yang akan datang.

3. Permainan (Game)

Kebanyakan permainan dilakukan dengan mengggunakan sekumpulan aturan. Dalam permainan digunakan apa yang disebut dengan pencarian ruang keadaan (state space search). Permainan dapat menghasilkan sejumlah besar pencarian ruang. Teknik yang menggeluti hal ini disebut heuristic. Permainan merupakan bidang yang menarik dalam studi heuristic.

4. Pemodelan Kinerja (Performance) Manusia

Pemodelan kinerja manusia telah terbukti merupakan alat yang sangat bermanfaat dalam merumuskan dan menguji teori-teori penerapan inderawi manusia.

5. Bahasa Alamiah (Natural Language), Pemodelan Semantik, dan Mesin yang Dapat Belajar (LearningMachine)

Salah satu tujuan jangka panjang Kecerdasan Buatan adalah pembuatan program yang memiliki kemampuan untuk memahami bahasa manusia. Tidak hanya kemampuan komputer dalam memahami bahsa alamiah saja yang tampaknya merupakan salah satu aspek dasar dari kecerdasan manusia, namun otomasi yang berhsail darinya juga memiliki pengaruh yang sangat besar pada kemampuan penggunaanya dan keefektifannya.


(26)

2.2 Permainan (Games)

Games merupakan salah satu bidang terapan dalam kecerdasan buatan. Ide games pertama kali dimunculkan oleh Claude Shannon yang menulis paper tentang mekanisme pembuatan program permainan catur pada tahun 1950. Beberapa tahun kemudian, Alan Turing mendeskripsikan program permainan catur namun ia sendiri belum pernah membuat rancangan program. Baru pada awal tahun 1960-an Arthur Samuel mencoba untuk membuat program catur tersebut.

Penyelesaian games dilakukan dengan cara menelusuri pohon permainan (game tree). Pohon permainan adalah sebuah graf yang memperlihatkan semua kemungkinan keadaan dalam permainan yang dilakukan oleh pemain. Pohon permainan melukiskan node dan jalan yang mengarah dari keadaan awal menuju tujuan atau keadaan saat game dimenangkan.

Ada beberapa alasan mengapa games merupakan domain yang baik untuk dieksplor dalam bidang kecerdasan buatan (Kusumadewi, 2003), yaitu :

1. Sangat mudah untuk menentukan ukuran kesuksesan dan kegagalannya (menang atau kalah).

2. Tidak membutuhkan terlalu banyak pengetahuan. Permainan dapat diselesaikan dengan melakukan pencarian dari arah start sampai posisi menang.

3. Ruang keadaannya mudah direpresentasikan.

4. Operator-operator yang digunakan tidak terlalu banyak. 5. Sebagian besar game dapat dimodelkan dengan mudah.

6. Sangat mungkin untuk dibandingkan dengan kemampuan manusia.

Alasan pertama memang masih bisa diterima sampai sekarang. Namun alasan kedua ternyata tidak cocok untuk games yang besar (komplex). Sebagai contoh pada permainan catur : Rata-rata setiap node bercabang sebanyak 35; Tiap-tiap pemain rata-rata bergerak 50 kali; Sehingga total dalam satu pohon, akan terdapat posisi sebanyak 35100.


(27)

2.3 Word Search Puzzle

Word search puzzle adalah permainan pencarian kata dalam kumpulan huruf pada sebuah grid yang biasanya berbentuk persegi. Tujuan permainan ini adalah menemukan semua kata yang tersembunyi di dalam persegi tersebut. Kata-kata yang tersembunyi dapat ditemukan secara horizontal, vertikal dan diagonal. Gambar 2.2 merupakan contoh suatu word search puzzle.

Gambar 2.2 Word search puzzle (Sumber : www.free-for-kids.com)

Dalam melakukan pencarian satu kata, pemain harus mencari melalui delapan jalur yang mungkin, yaitu :

1. Horizontal ke kanan 2. Horizontal ke kiri 3. Vertikal ke atas 4. Vertikal ke bawah 5. Diagonal ke kiri atas


(28)

6. Diagonal ke kiri bawah 7. Diagonal ke kanan atas 8. Diagonal ke kanan bawah

Untuk versi permainan Word search puzzle yang lebih sulit, aturan permainan memungkinkan pencarian kata lebih dari delapan jalur di atas.

Banyak strategi yang dapat digunakan untuk menyelesaikan permainan ini, misalnya dengan mencari huruf pertama dari kata yang dicari dalam kumpulan huruf kemudian mencari huruf kedua yang cocok dan seterusnya. Strategi lain adalah menemukan huruf-huruf yang muncul paling sedikit (misalnya X dan Q) untuk mencari kata-kata yang mengandung huruf-huruf tersebut.

Word search puzzle dikenal juga dengan nama WordSeek, WordFind, WordSleuth dsb. Permainan ini pertama kali didesain dan diterbitkan oleh Norman E. Gibat pada tanggal 1 Maret 1968 di Norman, Oklahoma. Sejak saat itu permainan ini menjadi populer di Norman.

Word search puzzle sering ditemukan di surat kabar, majalah, dan buku teka-teki. Beberapa buku pelajaran untuk anak juga menggunakan puzzle ini dalam pembelajaran. Selain sebagai permainan yang menarik, word search puzzle juga banyak digunakan untuk menyimpan pesan rahasia. Pesan rahasia dapat dibaca jika telah menemukan semua kata yang tersembunyi kemudian menyusunnya menjadi sebuah kalimat. Dalam versi lain, permainan ini memberikan sebuah pertanyaan trivia yang akan terjawab jika semua kata telah ditemukan dalam puzzle. Kata-kata yang berhasil ditemukan akan membentuk sebuah kalimat yang akan menjawab trivia tersebut.


(29)

2.4 Teknik Pencarian (Searching)

Masalah pencarian sering dijumpai oleh peneliti di bidang kecerdasan buatan. Permasalahan ini sangat penting dalam menentukan tingkat keberhasilan sistem cerdas tersebut. Teknik pencarian terbagi atas dua teknik, yaitu pencarian buta (blind search) dan pencarian heuristic (heuristic search).

Pencarian buta merupakan pencarian yang penelusurannya dimulai dengan tidak ada informasi awal yang digunakan dalam proses pencarian. Contohnya Breath-First Search (BFS) dan Depth-First Search (DFS). Sedangkan pencarian heuristik merupakan pencarian yang penelusurannya dimulai dengan adanya informasi awal yang digunakan dalam proses pencarian. Contohnya hill climbing, tabu search, algoritma genetika, algoritma semut dan simulated annealing.

2.5 Algoritma Depth-First Search(DFS)

Algoritma Depth-First Search (DFS) adalah algoritma pencarian dengan proses bermula dari node akar dan bergerak ke bawah (menurun) ke level dalam secara berurutan dengan mendahulukan cabang kiri pohon.

Algoritma :

1. Jika keadaan awal merupakan tujuan, keluar (sukses). 2. Jika tidak demikian, lakukan langkah-langkah berikut :

a. Bangkitkan succesor E dari keadaan awal. Jika tidak ada succesor, maka akan terjadi kegagalan.

b. Panggil depth-first search dengan E sebagai keadaan awal.

c. Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah ke-2.


(30)

Untuk lebih jelasnya bagaimana teknik pencarian DFS dapat dilihat pada pencarian kata ‘BUKU’ dalam contoh word search puzzle pada Gambar 2.3.

(a) (b)

Gambar 2.3 Contoh word search puzzle (a) Teknik pencarian

Depth-First Search(DFS) (b)

Penggunaan teknik pencarian DFS memiliki beberapa keuntungan dan kelemahan.

Keuntungan DFS :

1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.

2. Menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.

Kelemahan DFS :

1. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete). 2. Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang

berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).

1 2 3 54 6 7 8

13

11 12 14 15 16 17 18 19 20 21 22 23 24 25 9 10

mulai B K R W Q G X Z A U U J R B Z J T E U K U

T X A W W U A (4) (7) (9) (14) (19) (24) (5) (3) (2) (1) (8) (10) (12) (16)

(2) (12) (8) (17)

(22) (9) (10)

(6) (3) (1) (13) (19) (25)


(31)

2.6 Algoritma Backtracking

Algoritma Backtracking adalah algoritma umum yang digunakan untuk pencarian solusi pada beberapa permasalahan komputasi, yang secara bertahap membangun kandidat solusi dan mengabaikan setiap kandidat c (‘backtrack’) segera setelah mengetahui bahwa c tidak dapat diselesaikan untuk memperoleh solusi yang valid. Backtracking merupakan algoritma yang berbasis Depth-First Search (DFS).

Teknik backtracking merupakan salah satu teknik dalam penyelesaian masalah secara umum (General Problem Solving). Adapun dasar dari teknik ini adalah suatu teknik pencarian (searching). Teknik pencarian ini digunakan dalam rangka mendapatkan himpunan penyelesaian yang mungkin. Dari himpunan penyelesaian yang mungkin ini akan diperoleh solusi optimal atau memuaskan.

Saat ini backtracking banyak diterapkan untuk program games (seperti permainan tic-tac-toe, menemukan jalan keluar dalam sebuah labirin, catur, dll) dan masalah-masalah pada bidang kecerdasan buatan (artificial intelligence).

Nama backtrack didapatkan dari sifat algoritma ini yang memanfaat karakteristik himpunan solusinya yang sudah disusun menjadi suatu pohon solusi. Gambar 2.4 adalah contoh sebuah pohon solusi.

Gambar 2.4 Pohon solusi

Gambar 2.4 merepresentasikan solusi dari suatu permasalahan. Untuk mencapai solusi (5), maka jalan yang ditempuh adalah (1,2,5), demikian juga dengan


(32)

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). Kedua solusi ini memiliki jalan awal yang sama yaitu (1,2). Jadi daripada memeriksa ulang dari (1) kemudian (2) maka hasil (1,2) disimpan dan langsung memeriksa solusi (6).

Prinsip pencarian solusi dengan metode backtracking adalah sebagai berikut :

1. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan pembentukan yang dipakai adalah mengikuti aturan pencarian mendalam (DFS). Simpul-simpul yang sudah dilahirkan dinamakan simpul hidup (live node). Simpul hidup yang sedang diperluas dinamakan simpul-E (Expand-node).

2. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, maka simpul-E tersebut “dibunuh” sehingga menjadi simpul mati (dead node). Fungsi yang digunakan untuk membunuh simpul-E adalah dengan menerapkan fungsi pembatas (bounding function). Simpul yang sudah mati tidak akan pernah diperluas lagi.

3. Jika pembentukan lintasan berakhir dengan simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya. Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan backtracking ke simpul hidup terdekat (simpul orangtua). Selanjutnya simpul ini menjadi simpul-E yang baru.

4. Pencarian dihentikan bila kita telah menemukan solusi atau tidak ada lagi simpul hidup untuk backtracking.

Untuk lebih jelasnya, prinsip pencarian solusi dengan metode backtracking di atas dapat dilihat pada Gambar 2.5.


(33)

Gambar 2.5Prinsippencarian solusi dengan metode backtracking

2.7 Android

Android adalah suatu sistem operasi yang didesain sebagai platform open source untuk perangkat mobile. Android merupakan comprehensive platform, artinya Android adalah perangkat lunak dengan stack lengkap untuk perangkat mobile. Android mencakup sistem operasi, middleware dan aplikasi. Android menyediakan semua tools dan framework untuk mengembangkan aplikasi dengan mudah dan cepat. Dengan adanya Android SDK (Software Developement Kit) pengembang aplikasi dapat memulai pembuatan aplikasi pada platform Android menggunakan bahasa pemrograman Java.

Pada tahun 2005, Google membeli Android, Inc., yang merupakan pendatang baru yang mengembangkan software untuk smartphone. Pada saat itu dunia mengira bahwa Google akan memproduksi smartphone. Anggapan itu ternyata salah karena Google menyatakan bahwa ambisi Android bukan hanya untuk mengembangkan sebuah ponsel melainkan suatu platform yang dapat digunakan di banyak ponsel dan perangkat lainnya.

Kemudian untuk mengembangkan Android dibentuklah Open Handset Alliance, sebuah grup nonprofit yang terdiri dari beberapa perusahaan hardware,


(34)

software, telekomunikasi dan perusahaan lainnya termasuk Google, HTC, Intel Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android tanggal 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode Android di bawah lisensi Apache, sebuah lisensi software dan open platform perangkat seluler.

Sekitar September 2007 Google mengenalkan Nexus One, smartphone yang menggunakan sistem operasi Android versi 1.0. Ponsel ini diproduksi oleh HTC Corporation dan mulai dipasarkan pada 5 Januari 2008. Pada tahun 2009 perkembangan perangkat berbasis Android semakin pesat. Lebih dari 20 jenis perangkat mobile menggunakan sistem operasi Android. Versi Android yang dirilis pada tahun 2009 antara lain Cupcake(1.5), Donut(1.6), dan Eclair (2.0 dan 2.1).

Froyo(Android 2.2) dirilis pada tahun 2010. Pada tahun 2010 lebih dari 60 perangkat menggunakan Android sebagai sistem operasinya. Pada saat itu Android menjadi platform ponsel dengan penjualan terbaik kedua setelah Blackberry. Samsung Galaxy Tab GT-P1000 adalah salah satu smartphone/tabletp pc dengan sistem operasi Android versi 2.2.

Pada saat penulisan skripsi ini, versi android terakhir yang sudah dirilis dan dipasarkan adalah Android 4.1 atau dikenal dengan nickname Jelly Bean.

Daftar versi-versi Android yang telah dirilis hingga Juli 2012 dapat dilihat pada Tabel 2.1.


(35)

Tabel 2.1 Versi – versi Android

Versi Android API Level Nickname Android 1.0 Android 1.1 Android 1.5 Android 1.6 Android 2.0 Android 2.01 Android 2.1 Android 2.2 Android 2.3 Android 2.3.3 Android 3.0 Android 3.1 Android 3.2 Android 4.0 Android 4.0.3 Android 4.1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Cupcake Donut Eclair Eclair Eclair

Froyo (Frozen Yogurt) Gingerbread

Gingerbread Honeycomb Honeycomb Honeycomb

Ice Cream Sandwich Ice Cream Sandwich Jelly Bean

Dari Tabel 2.1 dapat dilihat pada setiap perubahan versi android terdapat perubahan API Level. API Level adalah nilai yang menunjukkan revisi framework pada platform Android. Nomor versi android yang terus berubah dikarenakan perubahan API Level. Setiap versi android mendukung tepat satu API Level, namun tetap mendukung API Level sebelumnya. API Level akan menentukan apakah suatu aplikasi bisa dijalankan pada suatu platform Android atau tidak.

2.7.1 Arsitektur Android

Secara garis besar arsitektur Android dapat dijelaskan dan digambarkan pada Gambar 2.6.


(36)

Gambar 2.6 Arsitektur Android (Sumber : Learning Android, 2011)

1. Linux Kernel

Linux Kernel adalah layer inti dari sistem operasi Android. Layer ini berisi file-file sistem yang mengatur sistem processing, memory, resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang digunakan android adalah linux kernel release 2.6.

2. Libraries

Libraries adalah layer tempat fitur-fitur Android berada. Biasanya para pembuat aplikasi mengakses libraries untuk menjalankan aplikasinya. Berjalan di atas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libc dan SSL, serta :

a. Libraries media untuk pemutaran media audio dan video b. Libraries untuk manajemen tampilan


(37)

c. Libraries Graphics mencakup SGL dan OpenSGL untuk grafis 2D dan 3D d. Libraries SQLite untuk dukungan database

e. Libraries SSL dan WebKit terintegrasi dengan web browser dan security f. Libraries LiveWebcore mencakup modern web browser dengan engine

embeded web view

g. Libraries 3D yang mencakup implementasi OpenGL ES 1.0 API’s

3. Android Runtime

Android Runtime adalah layer yang membuat aplikasi Android dapat dijalankan, dimana dalam prosesnya menggunakan implementasi Linux. android runtime terbagi menjadi dua bagian yaitu :

a. Core Libraries

Aplikasi Android dibangun dalam bahasa Java, sementara Dalvik sebagai virtual machine bukan virtual machine java, sehingga diperlukan sebuah library yang berfungsi untuk menerjemahkan bahasa Java/C yaitu Core Libraries.

b. Dalvic Virtual Machine

Virtual machine berbasis register yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisien, dimana merupakan pengembangan yang mampu membuat kernel linux untuk melakukan threading dan manajemen tingkat rendah.

4. Application Frameworks

Application Frameworks adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan pada sistem operasi Android, karena pada layer inilah aplikasi dapat dirancang dan dibuat.

Komponen-komponen yang termasuk di dalam Application Frameworks antara lain :


(38)

a. Views

b. Content Provider c. Resource Manager d. Notification Manager e. Activity Manager

5. Applications dan Widgets

Applications dan widgets merupakan layer dimana user berhubungan dengan aplikasi, termasuk proses download, instalasi hingga saat aplikasi dijalankan. Di layer ini terdapat aplikasi inti termasuk klien email, aplikasi SMS, kalender, peta, browser, kontak dan lain-lain.

2.8 Penelitian Sebelumnya

Algoritma backtracking telah banyak diterapkan dalam penelitian untuk program-program game (permainan). Beberapa penelitian yang pernah dilakukan untuk menyelesaikan board games dengan menggunakan algoritma backtracking antara lain untuk permainan anagram (Assat, 2007), masalah Knight Tour (Mumtaz, 2008), dan Congklak (Bakri, 2010).

Assat menggunakan algoritma bactracking untuk penyelesaian anagram. Anagram adalah salah satu permainan kata, dimana dari sebuah kata dapat dihasilkan kata baru yang memiliki arti. Pada penelitian ini algoritma backtracking dapat digunakan dalam pencarian anagram dan subanagram dari sebuah kata. Pemanfaatan Algoritma Backtracking dalam pencarian anagram dapat mempercepat proses pencarian dibandingkan menggunakan Algoritma Brute Force.

Mumtaz menggunakan algoritma bactracking pada penelitiannya tentang penyelesaian masalah Knight’s Tour. Knight’s Tour adalah salah satu masalah dari aplikasi teori graf pada permainan catur papan. Pada penelitian tersebut sistem dengan implementasi algoritma bactracking yang dibangun dapat menemukan solusi hingga papan berukuran 6x6.


(39)

Bakri menerapkan algoritma backtracking pada agen cerdas dalam sistem yang dibangun untuk permainan congklak. Congklak adalah permainan tradisional Indonesia yang dimainkan oleh dua pemain dengan menggunakan sebuah papan congklak dan biji congklak yang berjumlah 14 x 7 buah. Pada penelitian ini algoritma backtracking dapat menyelesaikan permainan tersebut dengan persentase kehandalan agen 75% jika pemain bermain terlebih dahulu dan 100% jika agen bermain terlebih dahulu.

Dari beberapa penelitian tersebut dapat disimpulkan bahwa algoritma bactracking dapat melakukan pencarian solusi suatu permainan dengan baik.


(40)

(41)

BAB 3

ANALISIS DAN PERANCANGAN APLIKASI

3.1 Analisis Algoritma Backtracking pada Word Search Puzzle

Pada bab sebelumnya telah dijelaskan bahwa aplikasi yang akan dibangun adalah suatu aplikasi yang dapat menemukan solusi permainan word search puzzle dengan menerapkan algoritma backtracking. Algoritma ini akan diterapkan pada menu ‘bantuan’ dan ‘selesaikan’ pada aplikasi. ‘bantuan’ adalah menu untuk mencari salah satu solusi dari permainan sedangkan ‘selesaikan’ adalah menu untuk menemukan seluruh solusi pada permainan.

Adapun langkah-langkah pencarian dengan algoritma backtracking pada Word search puzzle adalah sebagai berikut :

1. Simpul akar pada pohon yang merepresentasikan ruang kemungkinan

(probability space) merupakan inisialisasi dan menyatakan pencarian huruf awal dari kata yang ingin dicari di papan permainan. Pencarian posisi-posisi ini dilakukan dari bagian kiri atas hingga bagian kanan bawah papan permainan. Pencarian ini akan menghasilkan posisi-posisi pada papan permainan yang berisi huruf yang sama dengan huruf awal pada kata yang ingin dicari. Pohon yang merepresentasikan ruang kemungkinan solusi pada pencarian solusi permainan word search puzzle dapat dilihat pada Gambar 3.1.


(42)

Gambar 3.1Pohon yang merepresentasikan ruang kemungkinan solusi permainan word search puzzle

2. Jika pencarian pada langkah (1) tidak menemukan satupun posisi pada

papan permainan yang berisi huruf awal dari kata yang dicari, berarti kata tersebut tidak ada di papan permainan.

3. Jika pencarian pada langkah (1) menemukan posisi yang tepat, pencarian

huruf selanjutnya akan dimulai dari posisi tersebut.

4. Pembangkitan simpul-simpul dari posisi tersebut dilakukan dengan

mengikuti algoritma DFS. Simpul dibangkitkan dengan urutan jalur yang memungkinkan yaitu :

a. Vertikal ke atas

b. Vertikal ke bawah

c. Horizontal ke kanan

d. Horizontal ke kiri

e. Diagonal kanan atas

f. Diagonal kiri atas

g. Diagonal kanan bawah

h. Diagonal kiri bawah


(43)

5. Pembangkitan simpul selanjutnya dilakukan dengan berdasarkan ketentuan sebagai berikut :

a. Jika pembangkitan suatu simpul telah memilih suatu jalur,

pembangkitan simpul selanjutnya untuk lintasan tersebut dilakukan menurut jalur tersebut.

b. Jumlah huruf yang terdapat dalam kata yang ingin dicari. Dengan

kata lain, jika ingin memeriksa suatu jalur, terlebih dahulu dilakukan pengecekan apakah pada jalur tersebut dapat diperoleh jumlah huruf yang sama dengan jumlah huruf pada kata yang ingin dicari.

c. Kecocokan huruf pada suatu posisi pada grid permainan dengan

huruf pada kata yang ingin dicari.

6. Pencarian berhasil jika menemukan kata yang dicari pada pembangkitan

simpul-simpul pada proses pencarian melalui suatu jalur.

7. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, simpul tersebut

dipotong sehingga menjadi simpul mati (dead node) dan tidak akan di-perluas lagi.

8. Jika pembentukan lintasan berakhir dengan simpul mati, proses pencarian

solusi dilanjutkan dengan melakukan backtracking ke simpul orangtua. Dalam hal ini, backtracking dilakukan hingga kembali ke simpul pada langkah (4). Selanjutnya simpul ini menjadi simpul yang baru dan simpul anak berikutnya dibangkitkan sesuai urutan jalur yang telah disebutkan sebelumnya.

9. Jika simpul yang diperoleh dari langkah (8) tidak bisa diperluas lagi

(semua jalur telah diperiksa dan tidak ada yang memenuhi), pencarian solusi dilakukan dengan backtracking ke simpul akar. Dengan kata lain,


(44)

proses dimulai kembali dari langkah (1) dengan mencari posisi lain dari huruf awal kata yang ingin dicari di papan permainan.

Penerapan algoritma backtracking pada word search puzzle dapat dilihat dalam pencarian kata pada contoh word search puzzle berukuran 5x5 pada Gambar 3.2.

A Z X B G T B U K U A J W R I R T A W S N E O Q U

Gambar 3.2Word search puzzle 5x5

Misalkan kata yang ingin dicari pada word search puzzle Gambar 3.2 adalah ‘BUKU’. Penerapan langkah-langkah pencarian dengan algoritma backtracking untuk

menemukan solusi ‘BUKU’ pada word search puzzle Gambar 3.2 dapat dilihat pada

Gambar 3.3. Pada Gambar 3.3 (a) ditunjukkan indeks posisi dari setiap huruf dalam word search puzzle.

(a) (b)

Gambar 3.3 Posisi huruf pada grid (a) Pohon ruang solusi permainan

word search puzzle (b)

1 2 3 54

6 7 8 13

11 12 14 15

16 17 18 19 20

21 22 23 24 25

9 10

mulai B K R W Q G X Z A U U J R B Z J T E U K U

T X A W W U A (4) (7) (9) (14) (19) (24) (5) (3) (2) (1) (8) (10) (12) (16)

(2) (12) (8) (17)

(22) (9)

(10)

(6) (3) (1) (13) (19)

(25) (1)


(45)

Pada Gambar 3.3 (b) terlihat bahwa solusi ‘BUKU’ ditemukan pada saat menelusuri lintasan posisi huruf (7-8-9-10).

A Z X B G

T B U K U

A J W R I R T A W S N E O Q U

Gambar 3.4Word search puzzle 5x5 dengan solusi

3.2 Perancangan Aplikasi

Dalam skripsi ini penulis akan membuat aplikasi permainan Word Search, yang dapat dimainkan oleh seorang pemain. Aplikasi Word Search terdiri dari tiga tingkatan (level) permainan dengan tingkat kesulitan yang berbeda. Permainan dimulai ketika aplikasi memberikan sejumlah kata yang harus dicari oleh pemain pada grid yang berisi kumpulan huruf acak. Permainan akan selesai saat pemain dapat menemukan semua kata yang diberikan. Waktu penyelesaian permainan akan disimpan untuk menentukan nilai tertinggi dari beberapa pemain.

Aplikasi Word Search memiliki fungsi untuk menemukan solusi permainan

word search puzzle dengan menerapkan algoritma backtracking. Fungsi tersebut terdapat pada menu ‘bantuan’ dan ‘selesaikan’ pada aplikasi. Menu ‘pause’ digunakan untuk melakukan jeda pada permainan. Jika permainan berada pada keadaan pause, waktu permainan akan dihentikan sampai permainan kembali aktif (resume).Aplikasi Word Search juga menyediakan panduan bermain serta penjelasan tentang pengembang aplikasi.

Pada perancangan aplikasi ini, penulis akan menjelaskan perancangan alur aplikasi, alur permainan dan perancangan antarmuka aplikasi.


(46)

3.2.1 Perancangan Alur Aplikasi

Pada tahap perancangan alur aplikasi, penulis akan menggambarkan interaksi yang dapat dilakukan pengguna pada aplikasi Word Search. Aplikasi dimulai dengan tampilan Menu Utama yang berisi menu-menu Mulai, Panduan, Nilai Tertinggi, Tentang dan Keluar. Setiap pilihan menu akan menampilkan tampilan berikutnya. Aplikasi akan berhenti jika pengguna memilih menu Keluar.

Gambar 3.5 merupakan flowchart pemilihan menu pada aplikasi Word Search. Pengguna dapat memilih menu Mulai, Panduan, Nilai Tertinggi, Tentang dan Keluar. Menu Mulai akan menampilkan halaman Pilih level yang selanjutnya akan dijelaskan pada Gambar 3.6.


(47)

Gambar 3.6 merupakan flowchart pemilihan level permainan. Pengguna dapat memilih salah satu dari tiga level permainan atau memilih menu Home untuk kembali ke Menu Utama. Alur permainan di setiap level selanjutnya akan dijelaskan pada Gambar 3.7, Gambar 3.8 dan Gambar 3.9.

Gambar 3.6Flowchart pemilihan level permainan

Alur permainan level 1, 2 dan 3 Gambar 3.7, Gambar 3.8 dan Gambar 3.9 dimulai dengan halaman permainan dimana pengguna memulai dan menyelesaikan permainan. Pada halaman permainan terdapat menu Home, Pause, Baru, Bantuan dan Selesaikan. Menu Home digunakan untuk kembali ke menu utama. Saat pengguna memilih menu Home, aplikasi akan memeriksa apakah permainan telah selesai dengan nilai tertinggi yang termasuk kedalam 15 besar nilai tertinggi. Jika benar maka pengguna harus melakukan input nilai tertinggi terlebih dahulu. Saat pengguna memilih menu Pause maka waktu permainan akan terhenti sementara sampai pengguna memilih Resume. Saat pengguna memilih menu Baru maka aplikasi akan menjalankan proses Mulai Baru. Saat pengguna memilih menu Bantuan maka aplikasi akan menjalankan proses Bantuan. Saat pengguna memilih menu Selesaikan maka aplikasi akan menjalankan proses Selesaikan.


(48)

Jika permainan pada level 1 telah selesai maka aplikasi akan menghitung nilai yang berhasil diperoleh pemain di level 1 kemudian akan menjalankan permainan level 2.


(49)

Gambar 3.8 merupakan flowchart permainan level 2. Jika permainan pada level 2 telah selesai maka aplikasi akan menghitung nilai yang berhasil diperoleh pemain di level 2 kemudian akan menjalankan permainan level 3.


(50)

Gambar 3.9 merupakan flowchart permainan level 3. Jika permainan pada level 3 telah selesai maka aplikasi akan menhitung nilai dan memeriksa apakah permainan telah selesai dengan nilai tertinggi yang termasuk kedalam 15 besar nilai tertinggi. Jika benar maka pengguna melakukan input nilai tertinggi.

Gambar 3.9Flowchart permainan level 3

Perhitungan nilai pada permainan dilakukan dengan menghitung sisa waktu pemain saat menyelesaikan permainan. Sisa waktu dihitung dengan rumus :


(51)

Nilai pada setiap level akan diakumulasikan sehingga di akhir permainan akan diperoleh total nilai yang diperoleh pemain.

3.2.2 Perancangan Alur Permainan

Pada tahap perancangan alur permainan, penulis akan menggambarkan bagaimana jalannya fungsi-fungsi utama yang dijalankan dalam program selama permainan berlangsung. Fungsi-fungsi tersebut antara lain fungsi Mulai Baru, fungsi Bantuan dan fungsi Selesaikan.

3.2.2.1 Mulai Baru

Gambar 3.10 adalah flowchart Mulai Baru. Alur dimulai dengan memeriksa apakah permainan dalam keadaan paused atau apakah waktu permainan telah habis. Jika benar maka proses akan berakhir, jika tidak maka program akan melakukan. Setelah itu program melakukan pengacakan huruf untuk ditampilkan pada setiap posisi huruf acak pada grid. Kemudian program akan mengacak soal dan menentukan posisi masing-masing soal pada grid.


(52)

Gambar 3.10 Flowchart Mulai Baru

Adapun langkah-langkah dalam melakukan generate soal dalam fungsi Mulai Baru adalah sebagai berikut :

1. Lakukan random urutan soal agar untuk setiap permainan terdapat soal-soal

yang berbeda.

2. Untuk setiap soal lakukan pengacakan posisi soal dengan cara random 8 arah

yang memungkinkan.

3. Untuk setiap arah yang terpilih pilih salah satu index posisi huruf lalu periksa

apakah jumlah posisi yang terbentuk memungkinkan untuk dipakai sebagai posisi soal. Jika ya, maka cetak soal pada posisi tersebut. Jika tidak lakukan dengan arah lain yang memungkinkan.


(53)

4. Lakukan pengacakan huruf untuk mengisi sisa posisi yang tidak dipakai untuk meletakkan rangkaian huruf soal.

Untuk lebih jelasnya langkah-langkah generate soal dalam fungsi Mulai Baru dapat dilihat pada pseudocode berikut :

int idx ← Random(100) if word[idx]==””

for(int i=0; i<maxsoal; i++) int acak ← Random(8) switch(acak) case(0) :

if jumlah_kosong >= jumlah_huruf cetak ke arah atas break

case(1) :

if jumlah_kosong >= jumlah_huruf cetak ke arah bawah break

case(2) :

if jumlah_kosong >= jumlah_huruf cetak ke arah kanan break

case(3) :

if jumlah_kosong >= jumlah_huruf cetak ke arah kiri break

case(4) :

if jumlah_kosong >= jumlah_huruf cetak ke arah kanan atas break

case(5) :

if jumlah_kosong >= jumlah_huruf cetak ke arah kiri atas break

case(6) :

if jumlah_kosong >= jumlah_huruf cetak ke arah kanan bawah break

case(7) :

if jumlah_kosong >= jumlah_huruf cetak ke arah kiri bawah break

endswitch endfor

endif

for(idx=0; i<100; i++) if idx[word]==””

string char = “ABCDEFGHIJKLMNOPQRSTUVWXYZ” idx[word] = char.sustr(rndchar,1)

endif endfor


(54)

3.2.2.2 Bantuan

Gambar 3.11 adalah flowchart Bantuan. Alur dimulai dengan memeriksa apakah permainan dalam keadaan paused atau apakah waktu permainan telah habis. Jika benar maka proses akan berakhir, jika tidak maka program akan melakukan disable

tombol bantuan dan cnt_enable di-set 0. Tombol bantuan akan aktif (enable) jika

cnt_enable=15. Artinya tombol akan aktif setelah 15 detik. Setelah itu program akan memeriksa apakah jumlah jawaban yang terjawab lebih sedikit dari pada jumlah soal. Jika benar, program akan memeriksa soal-soal yang belum terjawab kemudian mengacak soal-soal tersebut, jika tidak maka proses akan berakhir. Setelah salah satu soal terpilih. Kemudian program akan memeriksa setiap index huruf pada grid mulai dari index ke-0 sampai index ke-99. Huruf pada index yang terpilih kemudian dicocokkan dengan huruf pertama pada soal yang dicari. Jika huruf telah cocok kemudian akan diperiksa huruf seterusnya sesuai arah pencarian yang telah ditentukan. Jika hasil pemeriksaan sama dengan soal maka soal telah ditemukan dan jumlah jawaban akan bertambah.


(55)

st art

Paused | | Wakt u habis

Disable t ombol Bant uan cnt _enable = 0

j lht erj awab < banyak_soal

Periksa soal yang belum t erj awab

Acak urut an soal yang belum t erj awab, ambil soal

pert ama

Soal yang dicari

i<banyak_idx i = 0

t xt act ive[ i] ! = 2 i++

end

A C

No

Yes

No

Yes

No

Yes

No


(56)

t xt == huruf pert ama soal

j lht erj awab += 1 creat elist

Cek list at as

hasil==soal

i = banyak_idx

Cek list bawah

hasil==soal

i = banyak_idx

Cek list kanan

hasil==soal

i = banyak_idx

Cek list kiri

hasil==soal

i = banyak_idx

A

Cek list kanan at as

hasil==soal

i = banyak_idx

Cek list kiri at as

hasil==soal

i = banyak_idx

Cek list kanan bawah

hasil==soal

i = banyak_idx

Cek list kiri bawah

hasil==soal

i = banyak_idx

B B No Yes No Yes No Yes No Yes No Yes C No Yes No Yes No Yes No Yes


(57)

Keterangan :

cnt_enable : Variabel untuk menghitung waktu untuk mengaktifkan

tombol bantuan.

banyak_idx : Jumlah index huruf acak pada grid yaitu 100 huruf.

txtactive : Variabel untuk menandakan keadaan huruf pada grid.

Nilai 0 jika huruf belum digunakan atau tidak sedang didrag. Nilai 1 jika huruf sedang didrag. Nilai 2 jika huruf telah menjadi solusi salah satu soal.

jlhterjawab : Jumlah kata yang telah ditemukan.

hasil : Kata yang dihasilkan dari proses pencarian.

soal : Kata yang akan dicari.

3.2.2.3 Selesaikan

Gambar 3.12 adalah flowchart Selesaikan. Alur dimulai dengan memeriksa apakah permainan dalam keadaan paused atau apakah waktu permainan telah habis. Jika benar maka proses akan berakhir, jika tidak maka program akan menjalankan proses Bantuan. Setelah program menjalankan proses Bantuan, program akan memeriksa apakah jumlah soal terjawab lebih kecil dari banyaknya soal. Jika benar maka proses Selesaikan akan dipanggil secara rekursif. Jika tidak maka proses akan berakhir.


(58)

St art

End Paused | | Wakt u Habis

No

Yes

Bant uan

Jlh t erj awab < Banyak soal

Selesaikan Yes No

Gambar 3.12 Flowchart Selesaikan

3.2.3 Perancangan Antarmuka Permainan

Pada tahap ini akan dirancang tampilan antarmuka dari aplikasi Word Search. Perancangan antarmuka pada aplikasi Word Search ini terdiri dari beberapa tampilan halaman, yaitu halaman menu utama, halaman permainan, halaman pilih level, halaman panduan bermain, halaman tentang yang berisi keterangan pengembang permainan, dan halaman nilai tertinggi. Berikut ini adalah rancangan antarmuka dari halaman-halaman tersebut.


(59)

a. Halaman Menu Utama

Gambar 3.13 Rancangan antarmuka halaman menu utama

Keterangan :

1. Judul aplikasi.

2. Mulai : Untuk memulai permainan.

3. Panduan : Menampilkan halaman panduan cara bermain.

4. Nilai Tertinggi : Menampilkan halaman nilai tertinggi.

5. Tentang : Menampilkan halaman yang berisi penjelasan tentang

pengembang aplikasi.

6. Keluar : Untuk keluar dari aplikasi.

7. Mute : Untuk mengaktifkan atau menonaktifkan audio.

Word Search

Puzzle

Mulai Panduan Nilai Tertinggi

Tentang

Keluar

1

2

3

4

5

6

Mute 7


(60)

b. Halaman Pilih Level

Gambar 3.14 Rancangan antarmuka halaman pilih level

Keterangan :

1. Menu : Untuk kembali ke halaman menu utama.

2. 1 : Untuk memulai permainan level 1.

3. 2 : Untuk memulai permainan level 2.

4. 3 : Untuk memulai permainan level 3.

Pilih Level

Menu

1

2

3

1

2

3


(61)

c. Halaman Permainan

Gambar 3.15 Rancangan antarmuka halaman permainan

Keterangan :

1. Menu : Untuk kembali ke halaman menu utama.

2. Untuk melakukan jeda pada permanian.

3. Menampilkan waktu sejak permainan dimulai sampai permainan

selesai.

4. Score : Menampilkan nilai yang diperoleh setelah menyelesaikan

permainan.

5. Baru : Untuk memulai permainan baru.

6. Bantuan : Untuk menampilkan solusi dari salah satu kata pada

permainan.

7. Selesaikan : Untuk menampilkan solusi dari seluruh kata pada

permainan.

Pause Menu

Baru Bantuan Selesaikan 1 2

88:8

3

5 6 7

8

9

10 Score :


(62)

d. Halaman Panduan Bermain

Gambar 3.16 Rancangan antarmuka halaman panduan bermain

Keterangan :

1. Menu : Untuk kembali ke halaman menu utama.

2. Berisi informasi tentang cara bermain.

Menu 1


(63)

e. Halaman Tentang

Gambar 3.17 Rancangan antarmuka halaman tentang

Keterangan :

1. Menu : Untuk kembali ke halaman menu utama.

2. Berisi informasi tentang pengembang aplikasi.

Menu 1


(64)

f. Halaman Nilai Tertinggi

Gambar 3.18 Rancangan antarmuka halaman nilai tertinggi

Keterangan :

1. Menu : Untuk kembali ke halaman menu utama.

2. Berisi informasi beberapa nilai tertinggi dengan menampilkan nama

pemain dan waktu tercepat dalam menyelesaikan permainan. Menu

1


(65)

(66)

BAB 4

IMPLEMENTASI DAN PENGUJIAN APLIKASI

4.1 Implementasi

Tahap implementasi merupakan tahap yang dilakukan setelah analisis dan perancangan aplikasi. Pada tahap ini hasil analisis dan perancangan diterjemahkan ke dalam bahasa pemrograman sehingga menghasilkan suatu aplikasi.

4.1.1 Spesifikasi Perangkat Lunak

Aplikasi Word Search dibangun pada sistem operasi Windows 7 32-bit. Implementasi aplikasi ini dilakukan menggunakan bahasa pemrograman C++. Perangkat lunak yang digunakan untuk membangun aplikasi ini adalah Microsoft Visual Studio 2008.

Pengkodean aplikasi menggunakan library Cocos2d-x untuk win32 application.

Cocos2d-x adalah sebuah framework untuk membangun aplikasi permainan 2D, demos dan aplikasi grafik/interaktif lainnya (www.cocos2d.org).

Aplikasi juga didukung dengan tampilan grafis dan audio. Pengolahan grafis dilakukan menggunakan perangkat lunak Adobe Photoshop CS 3. Pengolahan audio dilakukan dengan menggunakan perangkat lunak Audacity versi 2.0.0.

Setelah pengkodean dalam bahasa pemrograman C++ selesai, tahap selanjutnya adalah mengkonversi kode program dalam bahasa pemrograman C++ menjadi library untuk digunakan pada pemrograman di perangkat lunak Eclipse. Eclipse adalah perangkat lunak yang digunakan untuk membangun Android application. Kemudian program di compile dan menghasilkan aplikasi Word Search.


(67)

Selanjutnya aplikasi di-install pada perangkat keras yang akan digunakan untuk melakukan pengujian aplikasi.

Untuk lebih memperjelas proses konversi kode program C++ menjadi sebuah Android application dapat dilihat pada langkah-langkah berikut :

1. Buat sebuah project Android baru kemudian simpan.

2. Buat sebuah project C++ baru dengan menggunakan template ‘Cocos2d-win32

Application’.

3. Setelah seluruh kode program C++ selesai, jalankan Cygwin.bat dan lakukan

perintah berikut :

#cd/cygdrive/[path folder penyimpanan project Android yang telah dibuat pada langkah 1]

./build_native.sh

4. Setelah proses pada langkah 3 selesai, selanjutnya jalankan perangkat lunak

Eclipse lalu buka project Android yang telah disimpan sebelumnya. Kemudian run program sebagai Android application.

4.1.2 Spesifikasi Perangkat Keras

Spesifikasi perangkat keras yang digunakan dalam implementasi aplikasi Word Search adalah sebagai berikut :

1. Prosesor Intel Core 2 Duo T6600 (2.2 GHz, 800 MHz FSB, 2 MB L2 cache).

2. Memory (RAM) 1 GB.

3. Hard Disk 320 GB.


(68)

4.2 Algoritma Backtracking dalam aplikasi Word Search

Algoritma backtracking diterapkan pada menu ‘bantuan’ dan ‘selesaikan’ pada

aplikasi. ‘bantuan’ adalah menu untuk mencari salah satu solusi dari permainan sedangkan ‘selesaikan’ adalah menu untuk menemukan seluruh solusi pada permainan.

Adapun pseudocode penerapan algoritma backtracking pada word search puzzle adalah sebagai berikut :

string tmpidx ← "" string tmpchar ← "" string tmpc ← "" string idxhasil ← ""

for(int i=0; i<banyak_idx; i++) if(txtactive[i] != 2)

if(sftext[i]->getString() == char_soal) createList(i) tmpchar ← char_soal

tmpidx ← intTostr(i)

for(int k=0; k<(jlhchar-1); k++) if(list[k] != -1)

tmpchar = tmpchar + tmpc endif

endfor

if(soal[idxsoal] == tmpchar) idxhasil ← tmpidx

i ← banyak_idx break endif

endif endif

if(idxhasil != "")

int q = this->GetCountItem(idxhasil); for(int p=0; p<q; p++)

int j=atoi(GetItemPos(idxhasil,p+1).c_str()) txtactive[j] = 2

sftext[j]->setScale(0.5f) sftext[j]->setColor(ccTXT2) endfor

soaljawab[idxsoal] = 1

labelsoal[idxsoal]->setColor(ccTXT1) jlhterjawab += 1

endif endfor


(69)

4.3 Tampilan Aplikasi

Berikut ini adalah tampilan dari aplikasi Word Search.

4.3.1 Tampilan Halaman Menu Utama

Tampilan halaman menu utama pada aplikasi Word Search dapat dilihat pada Gambar 4.1. Pada halaman ini ditampilkan menu-menu yang dapat dipilih oleh pemain yaitu menu Mulai untuk memulai permainan, menu Panduan untuk melihat panduan bermain, menu Nilai Tertinngi, menu Tentang untuk melihat keterangan tentang pengembang aplikasi dan menu Keluar untuk keluar dari aplikasi. Selain itu

disediakan juga tombol mute yang terletak di sudut kanan atas untuk mengaktifkan

atau menonaktifkan audio pada aplikasi.

Gambar 4.1 Tampilan halaman Menu Utama

4.3.2 Tampilan Halaman Pilih Level

Tampilan halaman pilih level dapat dilihat pada Gambar 4.2. Halaman ini akan ditampilkan setelah pemain memilih menu Mulai pada Menu Utama. Pada halaman ini pemain dapat memilih salah satu dari tiga level yang disediakan. Jika pemain memilih


(70)

level 1 maka akan ditampilkan permainan level 1. Jika pemain berhasil menyelesaikan permainan level 1 maka aplikasi akan menampilkan permainan level 2 dan seterusnya. Jika pemain memilih level 2 maka akan ditampilkan permainan level 2. Jika pemain berhasil menyelesaikan permainan level 2 maka aplikasi akan menampilkan permainan level 3. Jika pemain memilih level 3 maka akan ditampilkan permainan level 3. Jika pemain berhasil menyelesaikan permainan level 3 dan jika permainan berhasil diselesaikan dengan nilai yang termasuk dalam 15 nilai tertinggi maka aplikasi akan menampilkan halaman nilai tertinggi dan pemain diminta untuk memasukkan namanya.

Pada halaman ini juga terdapat tombol home untuk kembali ke halaman Menu Utama.

Gambar 4.2 Tampilan halaman Pilih Level

4.3.3 Tampilan Halaman Permainan

Tampilan halaman permainan pada Gambar 4.3. Tampilan permainan level 1 dapat dilihat pada Gambar 4.3(a), level 2 pada Gambar 4.3(b) dan level 3 pada Gambar 4.3(c). Halaman ini akan ditampilkan setelah pemain memilih salah satu pilihan level pada halaman pilih level. Jumlah kata yang harus dicari dalam satu pemainan di level


(71)

1 adalah 4 kata. Pada level 2 pemain harus mencari 6 kata. Pada level 3 pemain harus mencari 8 kata.

Halaman permainan menampilkan sisa waktu pemain, score, tombol mute, tombol pause, tombol home, menu Baru, menu Bantuan, menu Selesaikan, grid berisi huruf-huruf acak dan daftar kata-kata yang harus dicari.

Sisa waktu pemain adalah waktu yang telah dihitung mundur sejak permainan dimulai. Sisa waktu di akhir permainan akan digunakan untuk perhitungan score.

Tombol pause digunakan untuk melakukan jeda pada permainan. Tombol home

digunakan untuk kembali ke menu utama. Menu Baru digunakan untuk memulai permainan baru. Menu Bantuan digunakan untuk menemukan letak salah satu kata yang dicari. Menu Selesaikan digunkan untuk menemukan letak seluruh kata yang dicari.


(72)

(c)

Gambar 4.3 Tampilan halaman permainan (a) Level 1 (b) Level 2 (c) Level 3

Gambar 4.4 merupakan tampilan permainan dalam keadaan paused. Dalam

keadaan paused, waktu permainan akan dihentikan sementara dan menonaktifkan

semua menu dan tombol dalam halaman permainan. Selain itu grid berisi huruf acak juga tidak dapat dilihat oleh pemain saat permainan dalam keadaan paused.


(73)

Tampilan saat permainan berlangsung dapat dilihat pada Gambar 4.5. Huruf-huruf yang sedang di-drag sesuai dengan salah satu arah dari 8 arah yang ditentukan dalam permainan ditandai dengan warna merah muda. Saat huruf-huruf di-drag, kata yang terbentuk ditampilkan di bagian atas grid. Jika huruf-huruf yang di-drag merupakan solusi dari salah satu soal maka huruf-huruf tersebut akan berubah menjadi warna biru muda. Kata-kata yang telah ditemukan ditandai dengan warna biru muda pada huruf-huruf dalam grid, dan berwarna abu-abu pada daftar soal.

Gambar 4.5 Tampilan kondisi saat permainan berlangsung

Jika pemain telah menyelesaikan permainan di level 1, aplikasi akan menampilkan pesan berhasil dan dapat melanjutkan ke level 2. Demikian juga dengan permainan level 2, jika pemain telah menyelesaikan permainan di level 2, aplikasi akan menampilkan tampilan berhasil dan dapat melanjutkan ke level 3. Tampilan ketika permainan berhasil diselesaikan dapat dilihat pada Gambar 4.6.


(74)

Gambar 4.6 Tampilan permainan ketika berhasil menyelesaikan salah satu permainan

Jika pemain tidak dapat menyelesaikan permainan dalam waktu yang telah disediakan, aplikasi akan menampilkan pesan gagal dan tidak dapat melanjutkan ke level selanjutnya. Tampilan ketika permainan tidak berhasil diselesaikan dapat dilihat pada Gambar 4.7.

Gambar 4.7 Tampilan permainan ketika tidak berhasil menyelesaikan salah satu permainan


(75)

Ketika pemain berhasil menyelesaikan permainan dengan perolehan nilai tertinggi maka aplikasi akan meminta pemain memasukkan nama untuk ditampilkan dalam halaman Nilai Tertinggi. Nilai tertinggi yang dapat ditampilkan adalah nilai-nilai yang termasuk dalam 15 besar nilai-nilai tertinggi. Tampilan halaman untuk pemain memasukkan namanya dapat dilihat pada Gambar 4.8.

Gambar 4.8 Tampilan permainan ketika berhasil menyelesaikan permainan dengan perolehan nilai tertinggi

4.3.4 Tampilan Halaman Panduan

Halaman panduan bermain berisi tata cara menyelesaikan permainan. Tampilan halaman panduan dapat dilihat pada Gambar 4.9.


(76)

Gambar 4.9 Tampilan halaman Panduan

4.3.5 Tampilan Halaman Tentang

Halaman tentang berisi informasi tentang pengembang aplikasi. Tampilan halaman tentang dapat dilihat pada Gambar 4.10.


(77)

4.3.6 Tampilan Halaman Nilai Tertinggi

Nilai tertinggi yang dapat ditampilkan pada halaman nilai tertinggi adalah nilai-nilai yang termasuk dalam 15 besar nilai tertinggi. Tampilan halaman nilai tertinggi dapat dilihat pada Gambar 4.11.

Gambar 4.11 Tampilan halaman Nilai Tertinggi

4.4 Pengujian

Pengujian aplikasi merupakan proses evaluasi aplikasi yang bertujuan untuk mengetahui apakah aplikasi yang dibangun telah memenuhi tujuan atau kebutuhan yang telah ditentukan. Pengujian yang dilakukan pada aplikasi Word Search adalah dengan membandingkan hasil eksekusi aplikasi dengan hasil yang diharapkan pada masing-masing sasaran pengujian. Pengujian dilakukan dengan menggunakan metode pengisian kuisioner oleh beberapa orang pengguna.

Pengujian aplikasi Word Search dilakukan pada Samsung Galaxy Tab GT-P1000. Adapun spesifikasi Samsung Galaxy Tab GT-P1000 adalah :


(78)

1. Sistem operasi Android 2.2 (Froyo).

2. Layar sentuh 7.0”.

3. Resolusi layar WSVGA (1024x600).

4. Mendukung audio MP3, OGG, AAC, AAC+, eAAC+, AMR-NB, AMR-WB,

WMA, WAV, MID, AC3, IMY, AAC (Mono), AMR_NB.

4.4.1 Pengujian Aplikasi

Pada tahap pengujian ini dilakukan evalusi pada setiap proses dalam aplikasi Word Search. Metode yang digunakan pada tahap pengujian ini adalah metode black box. Dengan metode black box pengujian hanya dilakukan pada representasi sistem yang terlihat tanpa perlu mengetahui bagaimana cara kerja sistem tersebut.

Dengan metode black box hasil eksekusi akan dibandingkan dengan hasil yang diharapkan. Bila hasil eksekusi sesuai dengan hasil yang diharapkan, maka aplikasi dianggap berhasil. Sebaliknya jika hasil eksekusi tidak sesuai dengan hasil yang diharapkan maka diperlukan perbaikan pada aplikasi.

Sasaran pengujian yang telah dilakukan dengan menggunakan metode black box dapat dilihat pada Lampiran skripsi ini.

Dari hasil evaluasi pada seluruh halaman pada aplikasi Word Search dapat disimpulkan bahwa aplikasi dapat berjalan dengan baik pada Galaxy Tab GT-P1000.

4.4.2 Penilaian Pengguna

Setelah aplikasi Word Search dapat berjalan dengan baik maka tahap pengujian selanjutnya yang dilakukan adalah pengujian penilaian pengguna terhadap aplikasi. Untuk memperoleh hasil penilaian pengguna terhadap aplikasi penulis akan memberikan kuisioner kepada 10 orang pengguna yang bertindak sebagai responden. Aspek yang dinilai oleh para responden adalah aspek antarmuka dan aspek penggunaan aplikasi. Aspek antarmuka yang akan dinilai meliputi desain aplikasi secara umum, desain tombol menu, ukuran dan warna tulisan, dan audio aplikasi.


(79)

Aspek penggunaan aplikasi yang akan dinilai meliputi kemudahan menggunakan aplikasi, kemudahan memahami fungsi menu-menu yang ada, dan kesesuaian tingkat kesulitan pada setiap level.

Setiap responden memberikan nilai pada setiap sasaran penilaian dengan nilai dalam skala 5 (A=5,B=4,C=3,D=2,E=1). Nilai nilai A mewakili ‘sangat baik’, nilai B mewakili ‘baik’, nilai C mewakili ‘cukup’, nilai D mewakili ‘buruk’, sedangkan E mewakili ‘sangat buruk’.

Hasil kuisioner aspek antarmuka dapat dilihat pada tabel 4.1.

Tabel 4.1 Hasil kuisioner aspek antarmuka

No. Sasaran Penilaian

Hasil Penilaian Sangat

baik Baik Cukup Buruk Sangat

buruk

1. Desain aplikasi secara

umum 8 2 - - -

2. Desain tombol menu 8 2 - - -

3. Ukuran dan warna tulisan 4 3 3 - -

4. Audio 4 3 2 1 -

Dari hasil kuisioner aspek antarmuka kemudian dihitung nilai setiap sasaran penilaian dengan menggunakan persamaan (1).

Sk = (f/N) * Ik ... (1)

Keterangan :

Sk : Nilai untuk setiap k (k = sangat baik, baik, cukup, buruk, dan sangat

buruk)

f : total respon dalam k

N : Jumlah responden

Ik : Nilai k


(80)

1. Desain aplikasi secara umum

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk

= (8/10)*5 + (2/10)*4 + (0/10)*3 + (0/10)*2 + (0/10)*1 = 4 + 0,8

= 4,8

2. Desain tombol menu

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk

= (8/10)*5 + (2/10)*4 + (0/10)*3 + (0/10)*2 + (0/10)*1 = 4 + 0,8

= 4,8

3. Ukuran dan warna tulisan

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk

= (4/10)*5 + (3/10)*4 + (3/10)*3 + (0/10)*2 + (0/10)*1 = 2 + 1,2 + 0,9

= 4,1

4. Audio

Ssangat baik + Sbaik + Scukup + Sburuk + Ssangat buruk

= (4/10)*5 + (3/10)*4 + (2/10)*3 + (1/10)*2 + (0/10)*1 = 2 + 1,2 + 0,6 + 0,2

= 4

Kemudian dapat dihitung nilai total keseluruhan dari aspek antarmuka dengan menggunakan persamaan (2).

Stotal = ∑Sk / n ... (2)

Keterangan :

Stotal : Nilai untuk keseluruhan penilaian


(1)

12. Huruf pada grid di-drag

- Huruf yang sedang di-drag sesuai dengan salah satu arah dari 8 arah yang ditentukan dalam permainan berwarna merah muda

- Kata yang terbentuk ditampilkan di bagian atas grid. 13. Huruf-huruf yang

di-drag

membentuk solusi

Huruf-huruf yang membentuk solusi berwarna biru muda dan soal terjawab berwarna abu-abu

14. Waktu habis Aplikasi menampilkan pesan gagal 15. Semua soal

berhasil diselesaikan

- Aplikasi menghitung dan menampilkan score yang berhasil diperoleh dan menampilkan pesan berhasil melanjutkan permainan

- Aplikasi menampilkan halaman permainan Level 3


(2)

e. Hasil evaluasi pada halaman permainan Level 3

Tabel Hasil evaluasi pada halaman permainan Level 3

No. Sasaran

Pengujian

Hasil Yang

Diharapkan Hasil Pengujian Kesimpulan

1. Tampilan halaman permainan Level 3

Aplikasi menampilkan halaman permainan Level 3, sisa waktu pemain, score, tombol mute, tombol pause, tombol home, menu Baru, menu Bantuan, menu Selesaikan 2. Waktu permainan Waktu berjalan

mundur selama 2 menit

3. Score permainan Aplikasi

menampilkan nilai 0 sampai

permainan berhasil diselesaikan 4. Pemilihan menu

mute saat aplikasi dalam keadaan unmute

Audio berhenti dan icon mute berubah

5. Pemilihan menu unmute saat aplikasi dalam keadaan mute

Audio aktif dan icon mute berubah

6. Pemilihan menu pause

- Aplikasi menampilkan halaman paused yang membuat posisi huruf-huruf pada grid tidak terlihat

- Waktu permainan dihentikan

sementara

- Semua menu dan tombol dalam halaman permainan tidak aktif


(3)

7. Resume ketika permainan dalam keadaan paused

Aplikasi menampilkan kembali halaman permainan dan melanjutkan permainan dengan sisa soal dan waktu seperti saat

sebelum permainan dalam keadaan paused

8. Pemilihan tombol home

Aplikasi menampilkan halaman Menu Utama

9. Pemilihan menu Baru

Aplikasi menampilkan halaman permainan Level 3 dengan soal baru 10. Pemilihan menu

Bantuan

- Aplikasi menunjukkan posisi huruf-huurf dari salah satu soal pada grid

- Huruf-huruf yang membentuk solusi berwarna biru muda dan soal terjawab berwarna abu-abu

- Tombol bantuan tidak aktif selama 15 detik

11. Pemilihan menu Selesaikan

Aplikasi menunjukkan posisi huruf-huruf seluruh soal pada grid dan permainan selesai


(4)

12. Huruf pada grid di-drag

- Huruf yang sedang di-drag sesuai dengan salah satu arah dari 8 arah yang ditentukan dalam permainan berwarna merah muda

- Kata yang terbentuk ditampilkan di bagian atas grid. 13. Huruf-huruf yang

di-drag

membentuk solusi

Huruf-huruf yang membentuk solusi berwarna biru muda dan soal terjawab berwarna abu-abu

14. Waktu habis Aplikasi menampilkan pesan gagal 15. Semua soal

berhasil diselesaikan

- Aplikasi menghitung dan menampilkan score yang berhasil diperoleh dan menampilkan pesan berhasil melanjutkan permainan

- Jika score yang diperoleh termasuk dalam 15 nilai tertinggi, aplikasi menampilkan halaman nilai tertinggi dengan meminta input nama pemain


(5)

f. Hasil evaluasi pada halaman Panduan

Tabel Hasil evaluasi pada halaman Panduan

No. Sasaran

Pengujian

Hasil Yang

Diharapkan Hasil Pengujian Kesimpulan

1. Tampilan halaman Panduan

Aplikasi menampilkan informasi tentang cara bermain dan tombol home 2. Pemilihan tombol

home

Aplikasi menampilkan halaman Menu Utama

g. Hasil evaluasi pada halaman Tentang

Tabel Hasil evaluasi pada halaman Tentang

No. Sasaran

Pengujian

Hasil Yang

Diharapkan Hasil Pengujian Kesimpulan

1. Tampilan halaman Panduan

Aplikasi menampilkan informasi tentang pengembang aplikasi dan tombol home

2. Pemilihan tombol home

Aplikasi menampilkan halaman Menu Utama

h. Hasil evaluasi pada halaman Nilai Tertinggi

Tabel Hasil evaluasi pada halaman Nilai Tertinggi

No. Sasaran

Pengujian

Hasil Yang

Diharapkan Hasil Pengujian Kesimpulan

1. Tampilan halaman Panduan

Aplikasi

menampilkan 15 nilai teringgi dan nama pemain yang berhasil

memperoleh nilai tersebut dan tombol home 2. Pemilihan tombol

home

Aplikasi menampilkan halaman Menu Utama


(6)

KUISIONER PENILAIAN PENGGUNA APLIKASI WORD SEARCH

Aspek Antarmuka

1. Desain aplikasi secara umum 2. Desain tombol menu

3. Ukuran dan warna tulisan 4. Audio

Aspek Penggunaan Aplikasi

5. Kemudahan menggunakan aplikasi

6. Kemudahan memahami fungsi menu-menu yang ada 7. Kesesuaian tingkat kesulitan pada setiap level

No Nama Ttd

Aspek Antarmuka Aspek Penggunaan

Aplikasi

1 2 3 4 5 6 7 1.

2. 3. 4. 5. 6. 7. 8. 9. 10.