Analisis Dan Implementasi Algoritma Linear Search Pada Permainan Word Scramble
ANALISIS DAN IMPLEMENTASI ALGORITMA
LINEAR SEARCH
PADA PERMAINAN
WORD SCRAMBLE
SKRIPSI
AMMAHLI FAKAR TARIGAN
071401071
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012
(2)
ANALISIS DAN IMPLEMENTASI ALGORITMA LINEAR SEARCH
PADA PERMAINAN WORD SCRAMBLE
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
AMMAHLI FAKAR TARIGAN 071401071
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2012
(3)
PERSETUJUAN
Judul : ANALISIS DAN IMPLEMENTASI ALGORITMA
LINEAR SEARCH PADA PERMAINAN WORD
SCRAMBLE
Kategori : SKRIPSI
Nama : AMMAHLI FAKAR TARIGAN
Nomor Induk Mahasiswa : 071401071
Program Studi : SARJANA (S1) ILMU KOMPUTER
Departemen : ILMU KOMPUTER
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 24 Mei 2012
Komisi Pembimbing :
Pembimbing II, Pembimbing I,
M. Andri Budiman, ST, MCompSc, MEM Dr. Poltak Sihombing, M.Kom
NIP. 197510082008011001 NIP. 196203171991031001
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
(4)
PERNYATAAN
ANALISIS DAN IMPLEMENTASI ALGORITMA LINEAR SEARCH
PADA PERMAINAN WORD SCRAMBLE
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 13 April 2012
Ammahli Fakar Tarigan 071401071
(5)
PENGHARGAAN
Alhamdulillahirabbil’alamin penulis ucapkan kepada Allah SWT yang telah melimpahkan rahmat dan karunia-Nya sehingga skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan.
Skripsi ini merupakan salah satu syarat yang wajib diselesaikan guna meraih gelar Sarjana Komputer pada jurusan S1 Ilmu Komputer Universitas Sumatera Utara. Adapun judul yang diangkat penulis dalam skripsi ini adalah Analisis dan Implementasi Algoritma Linear Search pada Permainan Word Scramble. Tidak dapat dipungkiri bahwa dalam penyelesaian skripsi ini tidak luput dari campur tangan banyak pihak yang telah memberikan bantuan dan motivasi bagi penulis. Maka, dalam kesempatan ini, penulis mengucapkan terima kasih kepada:
1. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Jurusan S1 Ilmu Komputer
serta pembimbing I dan Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M selaku pembimbing II yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk menyelesaikan skripsi ini.
2. Ibu Dian Rachmawati, S.Si, M.Kom dan Bapak Dahlan Sitompul M.Eng selaku
dosen penguji yang telah memberikan panduan ringkas, padat dan profesional kepada penulis guna menyempurnakan skripsi ini.
3. Sekretaris Jurusan S1 Ilmu Komputer Ibu Maya Silvi Lydia, B.Sc., M.Sc., Dekan
dan Pembantu Dekan Fakultas MIPA beserta para pegawai/staf S1 Ilmu Komputer.
4. Keluarga tercinta, Ayahanda Drs. H. Enda Tarigan dan Ibunda Dra. Hj. Nilva
Yenisda, Ammamiarihta, Ammazizzaky Tarigan, dan Ammanawwara yang selalu memberikan doa, dukungan, perhatian, kasih sayang yang tulus, pengorbanan yang tidak ternilai harganya serta dukungan moril maupun materiil selama kehidupan penulis.
5. Dely Utari, S.Kom yang selalu memberikan doa, perhatian, kasih sayang, motivasi dan semangat yang luar biasa bagi penulis.
6. Teman-teman setim Istiqlal FC khususnya Fatih, Wahyu, Safri, Hanafi, Febrian
dan Faisal, yang selama ini telah berbagi semangat dan canda tawa dengan penulis, serta sahabat-sahabat lain yang pernah mengisi perjalanan hidup penulis yang tidak dapat disebutkan satu per satu.
7. Teman-teman seperjuangan, mahasiswa S1 Ilmu Komputer stambuk 2007
khususnya Jenita Heptani, Fitri Rahayu, dan Yoga Nugraha yang telah banyak berbagi ilmu, memberikan bantuan, saran, kritikan, semangat, inspirasi, dukungan serta mewarnai kenangan selama masa kuliah yang tak akan terlupakan bagi penulis.
(6)
8. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Semoga Allah SWT memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian serta kerja samanya kepada penulis dalam menyelesaikan tugas akhir ini.
Penulis menyadari bahwa dalam penyelesaian skripsi ini masih jauh dari sempurna. Untuk itu penulis sangat mengharapkan kritik dan saran yang membangun guna penyempurnaan di masa mendatang.
Akhirnya penulis berharap semoga skripsi ini dapat bermanfaat bagi pribadi penulis, keluarga, masyarakat, organisasi dan negara.
Medan, 13 April 2012
(7)
ABSTRAK
Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Tidak sedikit murid yang merasa bosan ketika belajar sehingga dapat menghambat proses belajar mengajar. Permainan dapat membantu dan menyemangati banyak murid untuk dapat terus menjaga ketertarikan mereka untuk belajar. WordScramble termasuk salah satu jenis permainan kata yang dapat menambah wawasan kosakata Bahasa Inggris. Permainan ini menuntut kemampuan berpikir pemain untuk mencari kosakata yang bisa disusun dari huruf acak di papan permainan. Huruf-huruf yang diperoleh harus terhubung langsung secara horizontal, vertikal, atau diagonal. Kata tebakan pemain diperiksa oleh komputer apakah kata tersebut terdapat di dalam kamus yang sudah
ditentukan dengan menggunakan algoritma pencarian Linear Search. Penelusuran
dimulai dengan membandingkan kata tebakan dengan kata pada indeks pertama di
dalam kamus yang berbentuk array. Apabila kedua kata tersebut sama, maka data
telah ditemukan dan jawaban pemain benar. Jika tidak, penelusuran dilakukan pada kata pada indeks selanjutnya hingga ditemukan jawaban yang benar. Algoritma Linear Search dapat diimplementasikan pada permainan ini untuk mencocokkan jawaban dan tidak perlu dilakukan pengurutan data sehingga penelusuran dapat langsung dilakukan.
(8)
ANALYSIS AND IMPLEMENTATION OF BRUTE FORCE ALGORITHM ON WORD SCRAMBLE GAME
ABSTRACT
Game is one of the alternative solutions for student learning. Not a few students feel bored when learning that can hinder the learning process. Games can help and encourage more students to be able to maintain their interest in learning. Word Scramble is one kind of word game that can add insight into the English vocabulary. This game requires player’s thinking ability to find the word that can be composed from the letters results of randomization on the game’s board. The letters must be directly connected horizontally, vertically, or diagonally. Player’s guess word is checked by the computer whether the word is found in the dictionary that has been determined by using Linear Search Algorithm. Search begins by comparing the guess word with the first word at the first index in the dictionary. If those two words are equals, the data have been found and the player answers correctly. If not, search performed on the next word at the next index until the correct answer is found. Linear Search algorithm can be implemented in this game to match the answers and doesn’t need to sort the data so the searches can be performed directly.
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori 5
2.1 Algoritma 5
2.2 Algoritma Pencarian
2.3 Algoritma Pencarian Linear 7
6
2.3.1
2.3.2 Cara Kerja Algoritma Pencarian Linear 8
Karakteristik Algoritma Pencarian Linear 7
2.3.3 Pseudocode Algoritma Pencarian Linear 8
2.3.4 Kompleksitas Algoritma Pencarian Linear 8
2.4 Pengacakan Huruf 9
2.5 Word Scramble 11
2.5.1 Aturan Permainan Word Scramble 11
2.6 Penilaian Kualitas Aplikasi 12
Bab 3 Analisis dan Perancangan 13
3.1 Analisis Sistem 13
3.1.1 Analisis Permainan 13
3.1.2 Analisis Algoritma 14
3.1.2.1 Flowchart Alur Permainan 21
3.1.2.2 Flowchart HurufAcak() 21
3.1.2.3 Flowchart HurufTerpilih() 23
3.1.2.4 Flowchart Ketetanggaan() 24
3.1.2.5 Flowchart KataBaru() 25
3.1.2.6 Flowchart PeriksaKata() 25
(10)
3.1.2.8 Flowchart CariKata() 28
3.1.2.9 Flowchart Nilai() 29
3.2 Perancangan Sistem 30
3.2.1 Perancangan Aplikasi Permainan 30
3.2.2 Perancangan Antarmuka 31
Bab 4 Implementasi dan Pengujian 35
4.1 Implementasi Sistem 35
4.1.1 Spesifikasi Perangkat Lunak 35
4.1.2 Spesifikasi Perangkat Keras 35
4.1.3 Implementasi Rancangan Fungsi 36
4.1.4 Implementasi Rancangan Antarmuka 36
4.1.4.1 Tampilan Utama 36
4.1.4.2 Tampilan Arena Permainan 37
4.1.4.3 Tampilan Aturan Permainan 38
4.1.4.4 Tampilan Tentang Permainan 39
4.2 Pengujian Aplikasi 39
4.2.1 Pengujian Integrasi Aplikasi 40
4.2.1.1 Proses pada Tampilan Utama 40
4.2.1.2 Proses pada Tampilan Arena Permainan 41
4.2.1.3 Proses pada Tampilan Aturan Permainan 41
4.2.1.4 Proses pada Tampilan Tentang Permainan 42
4.2.2 Pengujian Responden 42
4.2.2.1 Aspek Antarmuka Aplikasi 42
4.2.2.2 Aspek Penggunaan Aplikasi 44
4.2.2.3 Aspek Penilaian Aplikasi 45
Bab 5 Kesimpulan dan Saran 47
5.1 Kesimpulan 47
5.2 Saran 48
Daftar Pustaka 49
LAMPIRAN A: LISTING PROGRAM
(11)
DAFTAR TABEL
Halaman
2.1 Daftar Nilai Frekuensi Huruf yang Akan Diacak 10
3.1 Hasil Daftar Nilai 14
4.1 Hasil Evaluasi Proses pada Tampilan Utama 40
4.2 Hasil Evaluasi Proses pada Tampilan Arena Permainan 41
4.3 Hasil Evaluasi Proses pada Tampilan Aturan Permainan 41
4.4 Hasil Evaluasi Proses pada Tampilan Tentang Permainan 42
4.5 Hasil Kuisioner Aspek Antarmuka Aplikasi 43
4.6 Hasil Kuisioner Aspek Penggunaan Aplikasi 44
(12)
DAFTAR GAMBAR
Halaman
2.1 Papan Permainan Word Scramble 12
3.1 Langkah 1 19
3.2 Langkah 3 20
3.3 Flowchart Alur Permainan 21
3.4 Flowchart HurufAcak() 22
3.5 Flowchart HurufTerpilih() 23
3.6 Flowchart Ketetanggaan 24
3.7 Flowchart KataBaru() 25
3.8 Flowchart PeriksaKata() 26
3.9 FlowchartFlowchart SudahKetemu() 27
3.10 Flowchart CariKata() 28
3.11 Flowchart Nilai() 29
3.12 Flowchart Aplikasi 30
3.13 Frame Menu 31
3.14 Frame Arena Permainan 32
3.15 Frame Aturan Permainan 33
3.16 Frame Tentang Permainan 34
4.1 Tampilan Utama 36
4.2 Tampilan Arena Permainan 37
4.3 Tampilan Arena Permainan Ketika Permainan Sedang Berlangsung 37
4.4 Tampilan Arena Permainan Ketika Permainan Selesai 38
4.5 Tampilan Aturan Permainan 38
(13)
ABSTRAK
Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Tidak sedikit murid yang merasa bosan ketika belajar sehingga dapat menghambat proses belajar mengajar. Permainan dapat membantu dan menyemangati banyak murid untuk dapat terus menjaga ketertarikan mereka untuk belajar. WordScramble termasuk salah satu jenis permainan kata yang dapat menambah wawasan kosakata Bahasa Inggris. Permainan ini menuntut kemampuan berpikir pemain untuk mencari kosakata yang bisa disusun dari huruf acak di papan permainan. Huruf-huruf yang diperoleh harus terhubung langsung secara horizontal, vertikal, atau diagonal. Kata tebakan pemain diperiksa oleh komputer apakah kata tersebut terdapat di dalam kamus yang sudah
ditentukan dengan menggunakan algoritma pencarian Linear Search. Penelusuran
dimulai dengan membandingkan kata tebakan dengan kata pada indeks pertama di
dalam kamus yang berbentuk array. Apabila kedua kata tersebut sama, maka data
telah ditemukan dan jawaban pemain benar. Jika tidak, penelusuran dilakukan pada kata pada indeks selanjutnya hingga ditemukan jawaban yang benar. Algoritma Linear Search dapat diimplementasikan pada permainan ini untuk mencocokkan jawaban dan tidak perlu dilakukan pengurutan data sehingga penelusuran dapat langsung dilakukan.
(14)
ANALYSIS AND IMPLEMENTATION OF BRUTE FORCE ALGORITHM ON WORD SCRAMBLE GAME
ABSTRACT
Game is one of the alternative solutions for student learning. Not a few students feel bored when learning that can hinder the learning process. Games can help and encourage more students to be able to maintain their interest in learning. Word Scramble is one kind of word game that can add insight into the English vocabulary. This game requires player’s thinking ability to find the word that can be composed from the letters results of randomization on the game’s board. The letters must be directly connected horizontally, vertically, or diagonally. Player’s guess word is checked by the computer whether the word is found in the dictionary that has been determined by using Linear Search Algorithm. Search begins by comparing the guess word with the first word at the first index in the dictionary. If those two words are equals, the data have been found and the player answers correctly. If not, search performed on the next word at the next index until the correct answer is found. Linear Search algorithm can be implemented in this game to match the answers and doesn’t need to sort the data so the searches can be performed directly.
(15)
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Permainan atau sering disebut dengan game merupakan suatu sarana hiburan yang
diminati dan dimainkan oleh banyak orang baik dari kalangan anak-anak, remaja maupun orang dewasa. Permainan juga dapat berguna untuk melatih dan mengasah kemampuan berpikir seseorang.
Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Tidak sedikit murid yang merasa bosan ketika belajar sehingga dapat menghambat proses belajar mengajar. Faktanya permainan dapat membantu dan menyemangati banyak murid untuk dapat terus menjaga ketertarikan mereka untuk belajar. Saat ini, terdapat berbagai macam permainan yang bertujuan untuk menambah wawasan kosakata Bahasa Inggris, salah satunya adalah word game (permainan kata).
Dari sekian banyak macam jenis permainan kata yang ada, Word Scramble
termasuk salah satu jenis permainan kata yang populer. Permainan Word Scramble diawali dengan pengacakan huruf oleh komputer, kemudian pemain mencari kosakata yang bisa disusun dari huruf acak tersebut. Huruf-huruf tersebut harus terhubung secara vertikal, horizontal atau diagonal pada papan permainan.
Pada permainan ini terdapat beberapa permasalahan seperti pengacakan huruf pada papan permainan agar pola pengacakannya dapat mempermudah pemain untuk menemukan lebih banyak kata, pencocokan jawaban pemain oleh komputer dengan kata pada kamus, tampilan antarmuka aplikasi permainan, dan sistem penilaian untuk setiap kata yang ditemukan oleh pemain berdasarkan jumlah huruf pada kata tersebut.
(16)
Oleh karena itu, penulis mengangkat judul “Analisis dan Implementasi Algoritma
Linear Search pada Permainan WordScramble” untuk mencari tahu apakah algoritma
Linear Search dapat diimplementasikan pada permainan Word Scramble.
1.2Rumusan Masalah
Permasalahan yang akan diteliti dan diuraikan disini adalah:
1. Bagaimana mengimplementasikan algoritma Linear Search pada permainan
Word Scramble.
2. Bagaimana komputer dapat melakukan pencarian kata pada kamus yang sesuai
dengan jawaban pemain dengan menggu nakan algoritma Linear Search.
1.3 Batasan Masalah
Batasan masalah pada tugas akhir ini adalah:
1. Papan permainan berukuran 4x4.
2. Huruf diacak berdasarkan frekuensi huruf yang paling sering muncul dalam
Bahasa Inggris.
3. Pencarian jawaban yang valid menggunakan algoritma Linear Search. 4. Kata-kata yang akan ditebak disimpan dalam kamus dengan format .txt. 5. Kata-kata dalam kamus tidak dapat dimodifikasi.
6. Permainan ini bersifat single player.
7. Pembangunan permainan ini menggunakan aplikasi Adobe Flash CS5 dan
ActionScript 3.
1.4Tujuan Penelitian
Tujuan penelitian ini adalah sebagai berikut:
1. Menerapkan algoritma Linear Search pada proses pencarian kata yang
diperoleh pemain dengan kata dalam kamus.
2. Membuat sebuah permainan komputer dimana pemain ditugaskan untuk
mencari kosakata Bahasa Inggris pada papan permainan yang berisi huruf-huruf yang tersusun secara acak.
(17)
1.5 Manfaat Penelitian
Manfaat dari tugas akhir ini adalah sebagai berikut:
1. Mengimplementasikan algoritma Linear Search dalam permainan Word
Scramble.
2. Mengasah kemampuan pemain dalam intuisi bermain, khususnya pada
permainan kata.
1.6Metodologi Penelitian
Metodologi penelitian yang akan digunakan adalah: 1. Studi Pustaka
Pada tahap ini dilakukan studi pustaka yaitu mengumpulkan bahan referensi dari buku, artikel, jurnal, makalah, maupun internet mengenai penerapan algoritma
Linear Search pada permainan Word Scramble.
2. Pengumpulan Data
Pada tahap ini dilakukan pengumpulkan data yang berupa kosakata Bahasa Inggris yang akan disimpan dalam basis data.
3. Analisis Masalah
Pada tahap ini akan dilakukan analisis terhadap cara bermain Word Scramble dan
bagaimana solusi penyelesaiannya dengan menerapkan algoritma Linear Search
dalam bentuk flowchart.
4. Implementasi Sistem
Pada tahap ini hasil analisis dari solusi penyelesaian pada permainan Word
Scramble diterapkan dalam source code dan perancangan aplikasinya sehingga
menghasilkan bentuk antarmuka yang mudah digunakan oleh pemain.
5. Pengujian Sistem
Pada tahap ini aplikasi permainan Word Scramble akan diuji untuk memastikan semuanya telah bekerja sesuai dengan tujuan yang diinginkan.
6. Penulisan Skripsi
Pada tahap ini seluruh kegiatan dari awal hingga akhir penelitian akan dituliskan ke dalam format penulisan tugas akhir dengan disertai kesimpulan akhir.
(18)
1.7 Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:
BAB 1: PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi ”Analisis dan Implementasi Algoritma Linear Search pada Permainan Word
Scramble”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metode penelitian, dan sistematika penulisan.
BAB 2: LANDASAN TEORI
Bab ini akan membahas teori-teori yang berkaitan dengan algoritma pencarian, algoritma Linear Search, pengacakan huruf, dan permainan Word Scramble.
BAB 3: ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
Bab ini akan membahas mengenai analisis kebutuhan sistem yang meliputi analisis permainan, analisis algoritma, dan perancangan sistem.
BAB 4: IMPLEMENTASI DAN PENGUJIAN
Bab ini menjelaskan prasyarat dan syarat yang harus dipenuhi agar perangkat lunak yang dikembangkan dapat dijalankan secara baik serta pengujian terhadap perangkat lunak tersebut.
BAB 5: KESIMPULAN DAN SARAN
Bab ini memuat kesimpulan dari uraian bab-bab sebelumnya dan hasil penelitian yang diperoleh. Bab ini juga memuat saran yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.
(19)
BAB 2
LANDASAN TEORI
2.1 Algoritma
Algoritma berasal dari nama ilmuwan muslim dari Uzbekistan, Abu Ja’far Muhammad bin Musa Al-Khuwarizmi (780-846M). Pada awalnya kata algoritma adalah istilah yang merujuk kepada aturan-aturan aritmetika untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab. Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Pemecahan sebuah masalah pada hakikatnya adalah menemukan langkah-langkah tertentu yang jika dijalankan efeknya akan memecahkan masalah tersebut [7].
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar [8].
Ada beberapa tipe masalah algoritma, antara lain [2]:
1. Pengurutan
Masalah pengurutan berhubungan dengan bagaimana mengurutkan kembali unsur-unsur dari suatu daftar yang diberikan.
2. Pencarian
Masalah pencarian berhubungan dengan bagaimana menemukan suatu nilai yang disebut kunci pencarian (search key) dalam suatu himpunan (set).
(20)
3. Pemrosesan String
Salah satu masalahnya yaitu mencari kata tertentu dalam teks yang disebut pencocokan
4. Masalah Grafik
string.
Dalam algoritma, masalah grafik mencakup graph traversal algorithms dan shortest-path algorithms.
5. Masalah Kombinatoris
Prespektik abstrak, masalah traveling salesman, dan masalah pewarnaan grafik merupakan contoh dari masalah kombinatorik.
6. Masalah Geometris
Masalah ini berhubungan dengan objek geometris, seperti titik, garis, dan poligon.
7. Masalah Numerik
Algoritma ini banyak dikembangkan pada masalah yang mencakup objek matematis yang bersifat menyelesaikan persamaan dan sistem persamaan, menghitung integral tertentu, dan mengevaluasi sebuah fungsi.
2.2 Algoritma Pencarian
Pengertian string menurut Dictionary of Algorithms and Data Structures, National
Institute of Standards and Technology (NIST) adalah susunan dari karakter-karakter
(angka, alfabet atau karakter yang lain) dan biasanya direpresentasikan sebagai struktur data array. String dapat berupa kata, frase, atau kalimat [9].
Algoritma pencarian adalah algoritma untuk mencari nilai dalam struktur data [9]. Pencocokan string merupakan bagian penting dari sebuah proses pencarian string
(string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam
dokumen tergantung dari teknik atau cara pencocokan string yang digunakan.
Untuk mengukur performansi metode pencarian, terdapat empat kriteria yang dapat digunakan [1] :
1. Completeness : apakah metode tersebut menjamin penemuan solusi jika
(21)
2. Time complexity : berapa lama waktu yang diperlukan,
3. Space complexity : berapa banyak memori yang diperlukan,
4. Optimality : apakah metode tersebut menjamin menemukan solusi yang terbaik
jika terdapat beberapa solusi berbeda.
2.3 Algoritma Pencarian Linear
Algoritma Pencarian Linear (Linear Search) adalah algoritma yang digunakan untuk mencari nilai pada sebuah array atau daftar nilai dengan cara memeriksa satu per satu [9]. Linear Search atau yang juga dikenal sebagai Sequential Search (Pencarian Beruntun) bekerja dengan memeriksa setiap elemen dari sebuah list sampai sebuah kecocokan ditemukan. Pencarian Linear tidak membutuhkan pengurutan data terlebih dahulu.
Kelebihan dari algoritma Linear Search antara lain: 1.
2.
Algoritma pencarian sekuensial ini cocok untuk pencarian nilai tertentu pada sekumpulan data terurut maupun tidak.
3.
Keunggulan algoritma ini adalah dalam mencari sebuah nilai dari sekumpulan kecil data.
Termasuk algoritma yang sederhana dan cepat karena tidak memerlukan proses persiapan data (misalnya: pengurutan).
Sedangkan kelemahan algoritma Linear Search adalah bahwa dalam kasus
terburuk (nilai tidak ditemukan), pembandingan nilai dilakukan sebanyak jumlah data dalam kumpulan nilai. Dengan demikian, proses pencarian akan bertambah lambat secara linear dengan bertambahnya banyaknya jumlah data.
2.3.1 Karakteristik Algoritma Pencarian Linear
Karakteristik algoritma Pencarian Linear
1. Pencarian dapat dilakukan di struktur data apapun yang dapat diakses secara sekuensial (misalnya array, linked list), sementara sebagian algoritma lain
(22)
kadang hanya bisa digunakan pada struktur data yang bisa diakses secara random (misalnya binary search)
2. Data tidak harus terurut
3. Worst case dan expected cost untuk pencarian linear adalah O(n)
2.3.2 Cara Kerja Algoritma Pencarian Linear
Algoritma pencarian linear dapat dituliskan sebagai berikut : 1. i⇽ 0
2. Ketemu ⇽ false
3. Selama (tidak ketemu) dan (i<=N) kerjakan baris 4
4. Jika (data[i] = x) maka ketemu ⇽ true, jikan tidak i ⇽ i + 1
5. Jika (ketemu) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemuka n.
2.3.3 Pseudocode Algoritma Pencarian Linear
Pseudocode algoritma Pencarian Linear adalah:
ketemu false {belum ketemu }
n 1 { mulai dari elemen pertama }
while ((n < ukuran) and (not ketemu)) do
if (array[n] = kunci) then { dibandingkan }
ketemu true { data ketemu }
i n { pada posisi ke-i, posisi disimpan }
endif
else n n+1 { cek data berikutnya }
endwhile
if ketemu then pencarianLinier I { data ketemu pada posisi ke-i }
else pencarianLinier -1 { data tidak ketemu }
endif end
2.3.4 Kompleksitas Algoritma Pencarian Linear
Jika linear search dimulai dari kiri, maka posisi berawal dari elemen ke-1 dan membandingkannya sampai ketemu. Kemungkinan terbaik (best case) dari algoritma ini adalah jika data yang dicari terletak di indeks array terdepan (elemen array
(23)
pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal). Kompleksitas dari algoritma ini sebanyak n pebandingan untuk kasus terburuk (data tidak ditemukan atau berada di posisi terakhir). Bila rata-rata posisi data ada ditengah, maka kompleksitas menjadi 1/2 n.
Penelitian yang dilakukan Sabdifha, 2010 menggunakan algoritma Depth-First
Search pada permainan Word Scramble. Kotak-kotak pada papan permainan
direpresentasikan sebagai simpul sehingga setiap kotak akan memiliki indeks.
Program akan mengacak huruf dengan menggunakan frekuensi dari Hidden Markov
Models (HMM) untuk selanjutnya kotak tersebut akan diisi dengan huruf acak.
Selanjutnya komputer akan mencari kata yang dapat dibentuk dari huruf-huruf tersebut sebagai jawaban yang valid dengan menggunakan algoritma DFS. Kemudian permainan oleh user (pemain). Pemain diberi waktu untuk menebak kata yang dapat dibentuk dari huruf-huruf yang ada pada papan permainan sebanyak mungkin. Jawaban pemain akan dicocokkan dengan jawaban valid dari komputer. Jika jawaban pemain benar maka pemain akan memperoleh nilai berdasarkan jumlah huruf dari kata-kata yang diperolehnya. Permainan akan berakhir ketika waktu habis.
2.4 Pengacakan Huruf
Proses ini berfungsi sebagai pengacak huruf yang akan keluar di setiap kotak pada papan permainan. Huruf-huruf pada setiap kotak diacak sedemikian rupa agar huruf acak yang diperoleh adalah huruf-huruf yang memiliki frekuensi kemunculan yang tinggi, sehingga lebih mudah untuk mendapatkan campuran yang baik antara vokal dan konsonan. Oleh karena itu, dibutuhkan suatu daftar frekuensi huruf yang paling sering muncul dalam bahasa Inggris.
Frase mnemonik “ETAOIN SHRDLU” sering digunakan untuk mengingat 12 buah huruf yang paling sering muncul di dalam teks Bahasa Inggris [4].
(24)
Tabel 2.1 Daftar Nilai Frekuensi Huruf yang Akan Diacak No. Huruf Frekuensi Inisialisasi
1 E 12.702% 12
2 T 9.056% 9
3 A 8.167% 8
4 O 7.507% 7
5 I 6.966% 7
6 N 6.749% 6
7 S 6.327% 6
8 H 6.094% 6
9 R 5.987% 6
10 D 4.253% 4
11 L 4.025% 4
12 C 2.782% 3
13 U 2.758% 3
14 M 2.406% 2
15 W 2.360% 2
16 F 2.228% 2
17 G 2.015% 2
18 Y 1.974% 2
19 P 1.929% 2
20 B 1.492% 1
21 V 0.978% 1
22 K 0.772% 1
23 J 0.153% 1
24 X 0.150% 1
25 Q 0.0`5% 1
26 Z 0.074% 1
(Robert Lewand, 2000)
Menurut table di atas, jumlah seluruh inisialisasinya adalah 100, maka dapat didefinisikan sebuah array dengan interval 0 sampai 99 seperti ini:
alfabet[0] = [0-7] (Huruf A memiliki nilai frekuensi 0 sampai 7)
alfabet[1] = [8] (Huruf B memiliki nilai frekuensi 8)
...
alfabet[24] = [97-98] (Huruf Y memiliki nilai frekuensi 97 sampai 98)
alfabet[25] = [99] (Huruf Z memiliki nilai frekuensi 99)
Kemudian saat proses generalisasi angka acak frekuensi pada interval 0 hingga
99, program hanya mencari dalam interval array dan mendapatkan huruf yang
terdapat pada interval tersebut.
alfabet = "A","B","C","D","E","F","G","H","I","J","K","L","M","N", "O","P","Qu","R","S","T","U","V","W","X","Y","Z"]
(25)
frek ← random()*99
if 0<= frek and frek <=7 then begin
alfabet[0] end
2.5 Word Scramble
Scramble merupakan pengembangan dari permainan scrabble yang sangat inspiratif.
Pola permainannya yang menjadi inspirasi dalam mengerjakan tugas akhir ini. Permainan ini dimulai dengan mengacak huruf dengan tingkat frekuensi yang berbeda-beda untuk diisi pada papan berukuran 4x4 kotak, masing-masing kotak diisi dengan huruf berbeda atau sama tergantung nilai acak yang diperoleh. Selanjutnya pemain harus mencari kata yang bisa dibentuk dari huruf yang sudah terisi pada papan. Pemain akan diberikan waktu untuk menebak dan harus mencari kata sebanyak mungkin. Pemain akan mendapatkan nilai sesuai dengan jumlah huruf pada setiap kata valid yang berhasil ditebak.
2.5.1 Aturan Permainan Word Scramble
Aturan permainan Word Scramble secara umum adalah sebagai berikut:
1. Pemain mencari kata sebanyak-banyaknya dari huruf acak yang terdapat pada
papan permainan. Huruf-huruf tersebut harus terhubung secara vertikal, horizontal atau diagonal.
2. Setiap kotak hanya bisa digunakan satu kali dalam satu kata. 3. Jawaban minimal terdiri dari tiga huruf.
4. Permainan berakhir ketika waktu habis.
(26)
Gambar 2.1 Papan Permainan Word Scramble
2.6 Penilaian Kualitas Aplikasi
Untuk menghitung penilaian kualitas dari aplikasi ini dapat dihitung dengan menggunakan rumus (2.1) dan rumus (2.2):
Pk = (f/N) * Ikb
P
... ... (2.1)
total = ∑ Pk
/ n ... ... (2.2)
Dimana: Pk
dan sangat baik
= persentase untuk k kondisi dalam hal tidak baik, kurang baik, baik,
f = total respon dalam k kondisi
N = jumlah responden
Ikb
baik 50%, baik 75%, dan sangat baik 100%)
= interpretasi k kondisi terbesar (dalam hal ini tidak baik 25%, kurang
Ptotal
n = banyak pertanyaan
= persentase untuk jumlah keseluruhan persentase pertanyaan
M
F
R
V
C
A
V
R
E
D
G
A
(27)
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Pada analisis sistem ini akan dilakukan analisis terhadap permainan Word Scramble dan algoritma pencarian Linear Search.
3.1.1 Analisis Permainan
Berikut ini aturan permainan yang telah ditetapkan penulis untuk aplikasi permainan
Word Scramble:
6. Pemain mencari kata sebanyak-banyaknya dari huruf acak yang terdapat pada
papan permainan. Huruf-huruf tersebut harus terhubung secara vertikal, horizontal atau diagonal.
7. Setiap kotak hanya bisa digunakan satu kali dalam satu kata. 8. Huruf Q selalu berpasangan dengan huruf U (Qu).
9. Apabila tebakan pemain benar maka akan mendapatkan nilai dan jika salah
tidak akan mendapatkan nilai.
10.Jawaban minimal terdiri dari tiga huruf dan maksimal delapan huruf. 11.Kata yang sudah ditemukan tidak dapat diulangi.
12.Pemain diberikan waktu selama 120 detik untuk menemukan jawaban.
13.Permainan berakhir ketika waktu habis.
Kata yang ditemukan oleh pemain mempunyai nilai yang berbeda sesuai dengan jumlah huruf pada setiap kata yang sudah masuk dalam daftar kata yang ditemukan pemain. Daftar nilainya sebagai berikut:
(28)
Tabel 3.1 Daftar Nilai Jumlah Huruf Nilai
3 2
4 3
5 5
6 6
7 8
8 9
3.1.2 Analisis Algoritma
Algoritma yang digunakan untuk membangun permainan Word Scramble ini adalah algoritma pencarian. Algoritma ini akan digunakan oleh Komputer untuk mencocokkan antara jawaban pemain dengan kata di dalam kamus. Pada algoritma Linear Search, ada beberapa properti yang perlu dipertimbangkan yaitu data dan nilai. Berikut ini adalah penjabaran properti-properti tersebut:
1. Data
Data di dalam permainan Word Scramble ini berbentuk array yang disebut kamus. Array ini berisi kosakata-kosakata bahasa Inggris. Kata-kata tersebut merupakan simpul-simpul solusi dalam proses penelusuran ini. Penelusuran dimulai dari kata pertama (indeks 0) sampai kata terakhir (indeks n).
2. Nilai
Nilai (kata) yang akan ditelusuri yaitu jawaban pemain. Jika kata yang menjadi jawaban pemain terdapat dalam kamus maka jawaban dianggap benar.
Jika menggunakan Linear Search pada proses penelusuran, maka
semua simpul akan dibangkitkan tanpa melihat apakah simpul mendekati solusi yang diinginkan atau tidak. Penelusuran nilai (kata) yang dicari dimulai pada indeks 0. Apabila kata pada indeks tersebut sama dengan kata yang dicari, maka nilai telah ketemu dan jawaban pemain benar. Apabila nilai yang dicari belum ketemu, penelusuran dilanjutkan pada indeks berikutnya. Apabila sampai akhir pemeriksaan tidak ada data yang sama, berarti nilai yang dicari tidak ada dan jawaban pemain salah.
(29)
Algoritma Linear Search memeriksa semua posisi dalam array secara berurutan dari indeks 0 sampai n apakah nilai(kata) yang dicari ada di dalam kamus. Perbandingan karakter yang terjadi diharapkan n, dengan n adalah jumlah kata pada kamus. Kamus pada permainan ini berisikan 80325 kata. Pada kasus yang paling buruk, untuk n elemen data harus dilakukan pencarian sebanyak n kali pula. Maka untuk kasus terburuk, kompleksitas algoritma
Linear Search pada permainan ini adalah O(80325).
Berikut ini adalah pseudocode dari beberapa prosedur dalam permainan Word Scramble.
const kamus : kamus.txt panjang_kata : 3 huruf_menurun : 4 huruf_mendatar : 4 uk_tombol : 50 waktu : 121
nilai : Array = [null,0,0,2,3,5,6,8,9] var loader : URLLoader
alfabet, kata, kata_ketemu, tombol : Array[] masukan : TextInput
kata_tebakan : String
status_kata,status_waktu : Label
tombol_terakhir,tombol_tambah,tombol_hapus, tombol_kembali : Button
hasil_nilai : TextArea t : Timer
i : int
procedure WordScramble() procedure Kamus()
procedure LoadKamus() procedure LoadKamus2() begin
isi_kamus : String(kamus)
kata ← isi_kamus.split()
Tampilan()
Papan(30,50,huruf_mendatar,huruf_menurun,uk_tombol) MulaiWaktu(waktu)
end
procedure Tampilan() procedure Papan() procedure HurufAcak() begin
alfabet = "A","B","C","D","E","F","G","H","I","J","K", "L","M","N","O","P","QU","R","S","T","U","V", "W","X","Y","Z"]
(30)
if 0<= frek and frek <=7 then begin
alfabet[0] end
else if frek =8 then begin
alfabet[1] end
else if frek >= 9 and frek <=11 then begin
alfabet[2] end
else if frek >= 12 and frek <=15 then begin
alfabet[3] end
else if frek >= 16 and frek <=27 then begin
alfabet[4] end
else if frek >= 28 and frek <=29 then begin
alfabet[5] end
else if frek >= 30 and frek <=31 then begin
alfabet[6] end
else if frek >= 32 and frek <=37 then begin
alfabet[7] end
else if frek >= 38 and frek <=44 then begin
alfabet[8] end
...
else if frek = 99 then begin alfabet[25] end end procedure HurufTerpilih() begin
b ← Button(e.target)
if not tombol_terakhir then begin
KataBaru(b.label) end
else if Ketetanggaan (b,tombol_terakhir)) then begin TambahTebakan(b.label) end else begin KataBaru(b.label) end
tombol_terakhir ← b
(31)
end
procedure TambahTebakan () begin
kata_tebakan ← kata_tebakan + huruf
end
procedure KataBaru () begin
for i ← 0 to tombol.length do
begin
tombol[i].enabled ← true
end
kata_tebakan ← huruf
end
procedure Ketetanggaan ()
var baris_sesudah ← (tombol_sesudah(tombol_sesudah + 3))
var kolom_sesudah ← (tombol_sesudah(tombol_sesudah + 3))
var baris_sebelum ← (tombol_sebelum(tombol_sebelum + 3))
var kolom_sebelum ← (tombol_sebelum(tombol_sebelum + 3))
begin
return baris_sebelum - baris_sesudah <= 1 and kolom_sebelum - kolom_sesudah <= 1 end
procedure TambahKata() begin
if kata_tebakan.length < panjang_kata then begin
KataBaru("") end
else if not SudahKetemu(kata_tebakan) then begin
var indeks_kata:Number ← CariKata(kata_tebakan)
if indeks_kata > -1 then begin
kata_tebakan ← kata_ketemu
KataBaru("") Nilai() end else begin KataBaru("") end end else begin KataBaru("") end end procedure HapusKata() procedure SudahKetemu() begin
for i ← 0 to kata_ketemu.length do
begin
if a = kata_ketemu[i] then return true
(32)
end
return false end
procedure CariKata() begin
for i ← 0 to kata.length do
begin
var Kata:String
Kata ← kata[i]
if huruf = kata[i] then begin
return i end
end
return -1 end
procedure Nilai() begin
var daftar_kata:String nilai_total:Number
for i ← 0 to kata_ketemu.length do
begin
var Kata:String
Kata ← kata_ketemu[i]
nilai_total ← nilai_total + nilai[Kata.length]
daftar_kata ← daftar_kata + Kata + "\n"
end end
procedure MulaiWaktu() procedure hitung_waktu() procedure waktu_habis() procedure Kembali() end.
Berdasarkan pseudocode di atas, pada procedure HurufTerpilih() dapat dilihat bahwa huruf-huruf yang dipilih pemain untuk membentuk sebuah kata harus bertetangga secara vertikal, horizontal, atau diagonal. Apabila nilai ketetanggaannya benar maka huruf-huruf tersebut dapat diajukan sebagai jawaban oleh pemain. Panjang kata yang dibentuk pemain juga tidak boleh kurang dari tiga huruf dan tidak melebihi delapan huruf. Selanjutnya kata tersebut akan dicari di dalam kamus. Penelusuran dimulai dari kata awal hingga kata terakhir dalam kamus sampai ditemukan kata yang sesuai. Apabila kata yang dicari telah ditemukan dalam kamus, maka kata tersebut ditambahkan ke dalam daftar kata yang berhasil ditemukan pemain. Pemain memperoleh nilai total dari hasil penjumlahan nilai masing-masing kata yang berhasil diperoleh sesuai dengan jumlah huruf dari setiap kata tersebut.
(33)
Penerapan algoritma Linear Search pada permainan Word Scramble dijelaskan dalam beberapa langkah berikut.
1. Langkah 1
Langkah 1 dimulai dengan melihat apakah huruf-huruf yang dipilih pemain memiliki nilai ketetanggaan yang benar. Nilai ketetanggan tersebut bernilai benar apabila huruf-huruf yang dipilih saling terhubung secara vertikal, horizontal, atau diagonal baik ke arah kiri maupun kanan. Jika huruf yang dipilih saling bertetangga, maka pemain dapat mengajukan jawabannya untuk dijadikan sebagai nilai yang akan dicari di dalam kamus. Seperti yang dapat dilihat pada Gambar , huruf F, A, C, dan E saling berhubungan secara secara vertikal, horizontal, dan diagonal sehingga didapat kata FACE sebagai nilai yang akan dicari keberadaannya di dalam kamus.
Gambar 3.1 Langkah 1
FACE
M F R V
C A V R
E
D G A
E E N A
W O
S C R A M B L E R D
Tambah
(34)
2. Langkah 2
Setelah pemain memasukkan kata tebakannya untuk dicari di dalam kamus, selanjutnya akan diperiksa terlebih dahulu apakah kata tebakannya kurang dari tiga huruf atau lebih dari delapan huruf sebelum dilakukan penelusuran lebih lanjut. Jika kurang dari tiga huruf atau lebih dari delapan huruf, maka kata tersebut tidak dapat dijadikan tebakan dan pemain harus mencari kata lain. Misalkan kata yang dipilih adalah FACE. Kata tersebut terdiri dari empat huruf maka kata tersebut dapat dilanjutkan penelusurannya di dalam kamus.
3. Langkah 3
Selanjutnya, penelusuran kata yang akan dicari di dalam kamus. Penelusuran dimulai dari kata pertama sampai kata terakhir di dalam kamus. Apabila kata atau pola yang dicari ditemukan maka pemain akan mendapatkan nilai yang sesuai dengan jumlah huruf dari kata tebakannya tersebut. Jika kata yang dicari tidak ditemukan, maka pemain harus mencari kata baru yang lain sebagai tebakannya. Berdasarkan Tabel Daftar Nilai, untuk kata FACE yang terdiri dari empat huruf maka pemain mendapatkan nilai 3 (tiga). Kata tersebut dimasukkan ke dalam daftar kata yang berhasil ditebak oleh pemain. Pemain dapat melanjutkan permainan sampai waktu yang telah ditentukan habis.
Gambar 3.2 Langkah 3
Kata Baru Ditemukan!
M F R V
C A V R
E
D G A
E E N A
Tambah
Hapus
Total nilai : 3
Daftar Kata : FACE
W O
S C R A M B L E R D
(35)
3.1.2.1 Flowchart Alur Permainan
Langkah-langkah bermain pada permainan Hangman akan digambarkan dengan
flowchart berdasarkan peraturan permainan yang telah ditentukan. Gambar 3.3 berikut
ini akan menjelaskan mengenai alur permainan Hangman. Start
HurufAcak () waktu_sisa = 120
HurufTerpilih ()
TambahKata ()
waktu_sisa = 0 ?
End
Ya
Tidak
“Waktu habis !”
Gambar 3.3 Flowchart Alur Permainan
Keterangan:
waktu_sisa : jumlah waktu yang diberikan untuk menebak
3.1.2.2 Flowchart HurufAcak()
Flowchart ini menggambarkan bagaimana huruf acak yang akan dimasukkan pada
papan permainan diperoleh. Penentuan huruf acak didasarkan pada frekuensi huruf acak pada Tabel 2.1 dengan jumlah seluruh frekuensi adalah 100. Gambar 3.4 merupakan flowchart HurufAcak().
(36)
Start alfabet[], frek frek = random(99)
frek = 0-7 ? alfabet[0]
frek = 8-9 ?
alfabet[1] Ya Tidak Ya
alfabet[3] frek = 10-14 ?
alfabet[2] Ya Tidak Ya
Tidak
frek = 15-17 ?
alfabet[4] frek = 29-30 ?
alfabet[5] Ya Tidak Ya
Tidak
frek = 18-28 ?
alfabet[7] frek = 31-32 ?
alfabet[6] Ya Tidak Ya
Tidak
frek = 33-35 ?
alfabet[8] frek = 43 ?
alfabet[9] Ya Tidak Ya
Tidak
frek = 36-42 ?
alfabet[11] frek = 44 ?
alfabet[10] Ya Tidak Ya
Tidak
frek = 45-49 ?
alfabet[12] frek = 53-59 ?
alfabet[13] Ya Tidak Ya
Tidak
frek = 50-52 ?
alfabet[15] frek = 60-66 ?
alfabet[14] Ya Tidak Ya
Tidak
frek = 67-69 ?
alfabet[16] frek = 71-77 ?
alfabet[17] Ya Tidak Ya
Tidak
frek = 70 ?
alfabet[19] frek = 78-83 ?
alfabet[18] Ya Tidak Ya
Tidak
frek = 84-90 ?
alfabet[20] frek = 94 ?
alfabet[21] Ya Tidak Ya
Tidak
frek = 91-93 ?
alfabet[23] frek = 95 ?
alfabet[22] Ya Tidak Ya
Tidak
frek = 96 ?
alfabet[25]
Tidak
End alfabet[24]
Ya Tidak
frek = 97-98 ?
A A A A A A A A A
(37)
Keterangan:
frek : nilai acak untuk alfabet
alfabet[] : array berisi huruf mulai dari A sampai Z
3.1.2.3 Flowchart HurufTerpilih()
HurufTerpilih() merupakan fungsi yang berguna untuk memeriksa apakah huruf-huruf yang dipilih Pemain saling bertetangga atau tidak. Apabila nilai ketetanggaan antara huruf yang terakhir dipilih dengan huruf yang sebelumnya telah dipilih adalah benar, maka Pemain dapat melanjutkan tebakannya. Jika nilai ketetanggaannya salah, maka Pemain harus memilih huruf lain yang bertetangga. Gambar 3.6 merupakan flowchart HurufTerpilih().
Start
b, tombol_terakhir, Ketetanggaan, kata_tebakan, huruf
tombol_terakhir = null ?
Ketetanggaan (b, tombol_terakhir) =
true ?
KataBaru() Ya
Tidak
Tidak kata_tebakan = kata_tebakan + huruf Ya
tombol_terakhir = b
End
(38)
Keterangan:
b : tombol huruf yang dipilih Pemain sesudah tombol_terakhir
tombol_terakhir : tombol huruf terakhir yang dipilih Pemain
Ketetanggaan : tipe boolean untuk menyatakan ketetanggan antara b dan
tombol_terakhir
kata_tebakan : kata tebakan Pemain
huruf : huruf-huruf yang dipilih Pemain
3.1.2.4 Flowchart Ketetanggaan()
Flowchart ini menggambarkan bagaimana menentukan huruf-huruf yang dipilih
Pemain saling bertetangga atau tidak. Gambar 3.7 merupakan flowchart
Ketetanggaan().
Start
Ketetanggaan, baris_sebelum, baris_sesudah, kolom_sebelum,
kolom sesudah
baris_sebelum – baris_sesudah <= 1 ?
Ya
Tidak Tidak
Ya
End Ketetanggaan = true
kolom_sebelum – kolom_sesudah <= 1
?
Ketetanggaan = false
Gambar 3.6 Flowchart Ketetanggaan
Keterangan:
baris_sebelum : indeks huruf yang sebelumnya dipilih berdasarkan baris
baris_sesudah : indeks huruf yang terakhir dipilih berdasarkan baris
kolom_sebelum : indeks huruf yang sebelumnya dipilih berdasarkan kolom
(39)
3.1.2.5 Flowchart KataBaru()
Flowchart ini menggambarkan bagaimana huruf-huruf yang dipilih Pemain dirangkai
menjadi sebuah kata. Gambar 3.6 merupakan flowchart KataBaru().
Start
i, tombol[], kata_tebakan, huruf
i = 0
tombol[i] = enabled
i = tombol.length
?
kata_tebakan = huruf
End
i = i + 1
Ya
Tidak
Gambar 3.7 Flowchart KataBaru()
Keterangan:
i : jumlah variabel tombol huruf
tombol [] : array berisi tombol-tombol huruf
3.1.2.6 Flowchart PeriksaKata()
Flowchart ini menggambarkan bagaimana kata yang telah dirangkai oleh Pemain
(40)
Start
kata_tebakan.length < panjang_kata ?
Nilai ()
KataBaru = “ “
SudahKetemu (kata_tebakan) = true ?
indeks_kata = CariKata(kata_tebakan)
indeks_kata > -1 ? KataBaru = “ “ kata_ketemu = push(kata_tebakan)
KataBaru = “ “
KataBaru = “ “ kata_tebakan, panjang_kata,
SudahKetemu, indeks_kata, CariKata, kata_ketemu
“ Minimal 3 huruf !”
“ Kata baru telah ditemukan !”
“ Kata tidak ada dalam kamus !”
Ya Tidak
Tidak
Tidak
Ya Ya
“ Kata sudah dimasukkan”
End
Gambar 3.8 Flowchart PeriksaKata()
Keterangan:
panjang_kata : jumlah huruf minimal yang dapat dirangkai menjadi sebuah kata SudahKetemu : tipe boolean untuk menyatakan apakah kata tebakan sudah ditemukan
sebelumnya atau belum
(41)
CariKata : nilai yang menyatakan apakah kata tebakan terdapat dalam kamus kata_ketemu : array yang berisi kata tebakan yang benar
3.1.2.7 Flowchart SudahKetemu()
SudahKetemu() merupakan fungsi yang berguna untuk memeriksa apakah kata yang
dijadikan tebakan telah ditemukan sebelumnya. Gambar 3.8 merupakan flowchart
SudahKetemu().
Start
i, a, kata_ketemu, SudahKetemu
i = 0
a = kata_ketemu[i]
?
SudahKetemu = true
i =
kata_ketemu.length ?
SudahKetemu = false i = i + 1
End Ya
Tidak
Ya Tidak
Gambar 3.9 Flowchart SudahKetemu()
Keterangan:
i : jumlah variabel pada kata_ketemu
(42)
3.1.2.8 Flowchart CariKata()
CariKata() merupakan fungsi yang berguna untuk memeriksa apakah kata tebakan Pemain terdapat di dalam kamus. Fungsi inilah yang menggunakan algoritma
pencarian untuk menemukan kata di dalam kamus. Gambar 3.9 merupakan flowchart
CariKata().
Start
i = 0
Kata = kata[i]
huruf = kata[i] ?
CariKata = i
i = kata.length ?
CariKata = -1 i = i + 1
End kata, huruf, i,
Kata, CariKata
Ya Ya
Tidak
Tidak
Gambar 3.10 Flowchart CariKata()
Keterangan:
kata : kata dalam kamus
i : jumlah kata dalam kamus
(43)
3.1.2.9 Flowchart Nilai()
Nilai() merupakan fungsi yang berguna untuk menghitung jumlah nilai yang diperoleh dari tiap kata yang berhasil ditebak oleh Pemain. Penentuan nilai dari tiap kata ditentukan dari banyaknya huruf yang membentuknya. Gambar 3.10 merupakan flowchart Nilai().
Start
i, Kata, kata_ketemu, nilai_total, nilai,
daftar_kata
i = 0
Kata = kata_ketemu[i]
nilai_total = nilai_total + nilai[Kata.length]
daftar_kata = daftar_kata + Kata i =
kata_ketemu.length ? i = i + 1
“Total Nilai : nilai_total” “Daftar Kata : daftar_kata” End
Ya Tidak nilai_total = 0
Gambar 3.11 Flowchart Nilai()
Keterangan:
i : jumlah kata yang berhasil ditebak Pemain
nilai : nilai berdasarkan banyak huruf tiap kata
nilai_total : Total nilai yang diperoleh Pemain
(44)
3.2 Perancangan Sistem
Perancangan sistem yang akan dibahas meliputi perancangan aplikasi permainan dan perancangan antarmuka.
3.2.1 Perancangan Aplikasi Permainan
Perancangan aplikasi permainan merupakan perancangan interaksi yang dapat dilakukan pemain terhadap aplikasi permainan yang dibangun. Aplikasi akan dimulai
dengan menampilkan frame Menu yang tersedia tombol pilihan Mulai, Aturan,
Tentang dan Keluar. Setiap tombol akan memberikan tampilan pada frame-frame
berikutnya. Aplikasi akan berhenti jika pengguna memilih tombol Keluar. Berikut ini adalah proses yang terjadi pada aplikasi permainan Word Scramble yang dapat dilihat pada Gambar 3.11.
Start
Tampilkan
Frame Menu
Pilih tombol Mulai ? Tampilkan
Frame Arena Permainan
Pilih tombol Aturan ?
Pilih tombol Tentang ?
Pilih tombol Keluar
Tampilkan
Frame Aturan Permainan
Tampilkan
Frame Tentang Permainan Pilih tombol Kembali
Bermain Word Scramble
Permainan berakhir
Pilih tombol Kembali
End
Ya Ya
Ya Tidak
Tidak
(45)
Gambar 3.12 Flowchart Aplikasi
3.2.2 Perancangan Antarmuka
Perancangan antarmuka aplikasi permainan Word Scramble ini terdiri dari beberapa
frame, yaitu frame Menu, frame Arena Permainan, frame Aturan Permainan, dan
frame Tentang Permainan. Berikut ini adalah rancangan antarmuka frame- frame
tersebut.
1. Frame Menu
Frame Menu merupakan frame yang pertama kali ditampilkan pada saat
aplikasi dijalankan. Frame ini berisikan menu yang dapat dipilih oleh
pengguna yaitu Mulai, Aturan, Tentang dan Keluar. Rancangan antarmuka frame ini dapat dilihat pada Gambar 3.12.
Gambar 3.13 Frame Menu
Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.
W O
S C R A M B L E
R D
1
4 3
5
(46)
2. Mulai merupakan tombol yang berfungsi untuk menampilkan frame Arena Permainan yang dirancang dengan menggunakan komponen Button.
3. Aturan merupakan tombol yang berfungsi untuk menampilkan frame
Aturan Permainan yang dirancang dengan menggunakan komponen Button.
4. Tentang merupakan tombol yang berfungsi untuk menampilkan frame
Tentang Permainan yang dirancang dengan menggunakan komponen Button.
5. Keluar merupakan tombol yang berfungsi untuk keluar dari aplikasi yang dirancang dengan menggunakan komponen Button.
2. Frame Arena Permainan
Frame arena permainan merupakan frame yang digunakan untuk bermain
Word Scramble. Rancangan antarmuka frame ini dapat dilihat pada Gambar
3.13.
Gambar 3.14 Frame Arena Permainan
Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic. 3
6
W O
S C R A M B L E R D
2
1
4 5
8
(47)
2. Papan merupakan komponen Button yang berfungsi untuk menampilkan huruf acak yang akan ditebak.
3. Tambah merupakan komponen Button yang berfungsi untuk memeriksa
jawaban pemain apakah benar atau tidak.
4. Hapus merupakan komponen Button yang berfungsi untuk menghapus
jawaban sebelum diperiksa.
5. Kembali merupakan komponen Button yang berfungsi untuk kembali ke
frame Menu jika waktu sudah habis.
6. Hasil Nilai merupakan komponen Text Area yang berfungsi menampilkan
nilai dan semua jawaban benar yang diperoleh pemain.
7. Status Kata merupakan komponen Movie Clip yang berfungsi
menampilkan huruf yang dipilih.
8. Status Waktu merupakan komponen Movie Clip yang berfungsi
menampilkan jumlah waktu yang tersisa untuk menebak jawaban.
3. Frame Aturan Permainan
Frame aturan permainan merupakan frame yang berisikan peraturan sekaligus
cara bermain sehingga dapat memberikan informasi kepada pengguna tentang permainan Word Scramble. Rancangan antarmuka frame ini dapat dilihat pada Gambar 3.14.
Gambar 3.15 Frame Aturan Permainan
2
W O
S C R A M B L E R D
1
(48)
Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.
2. Komponen Static Text yang berfungsi untuk menampilkan aturan dan cara
bermain Word Scramble.
3. Kembali merupakan komponen Button yang berfungsi untuk kembali ke
frame awal.
4. Frame Tentang Permainan
Frame tentang permainan merupakan frame yang berisikan informasi
mengenai profil penulis. Rancangan antarmuka frame ini dapat dilihat pada Gambar 3.15.
Gambar 3.16 Frame Tentang Permainan
Keterangan :
1. Word Scramble merupakan judul aplikasi yang dirancang dengan
menggunakan komponen Graphic.
2. Komponen Static Text yang berfungsi untuk menampilkan informasi
mengenai profil penulis.
3. Kembali merupakan komponen Button yang berfungsi untuk kembali ke
frame awal. 2
W O
S C R A M B L E R D
1
(49)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Tahap implementasi dilakukan sesuai dengan analisis dan perancangan sistem pada
bab sebelumnya. Implementasi aplikasi permainan Word Scramble meliputi
kebutuhan perangkat lunak dan perangkat keras untuk dapat membangun permainan dengan optimal. Pada tahap ini seluruh spesifikasi dari aplikasi yang dirancang akan
diterjemahkan ke dalam source code dan rancangan antarmuka sehingga
menghasilkan sebuah aplikasi.
4.1.1 Spesifikasi Perangkat Lunak
Perangkat lunak yang digunakan dalam pembuatan permainan Word Scramble ini
adalah Adobe Flash CS5 dengan menggunakan ActionScript 3.0. Penggunaan ActionScript 3.0 sebagai external class bertujuan agar pemrograman menjadi lebih teroraganisir karena source code dan animasi tidak berada dalam satu timeline. Aplikasi ini dibangun pada sistem operasi Windows 7 Home Premium.
4.1.2 Spesifikasi Perangkat Keras
Pada pengimplementasian aplikasi permainan Word Scramble, penulis menggunakan
sebuah laptop yang mempunyai spesifikasi perangkat keras sebagai berikut: 1. Prosesor Intel Core i3
2. Memory RAM 4 GB.
3. Hard Disk 320 GB.
(50)
4.1.3 Implementasi Rancangan Fungsi
Implementasi rancangan fungsi merupakan hasil transformasi dari proses perancangan fungsi algoritma yang telah dijelaskan pada flowchart di bab sebelumnya menjadi source code dalam aplikasi. Hasil list program dapat dilihat pada lampiran A.
4.1.4 Implementasi Rancangan Antarmuka
Berikut ini akan diperlihatkan tampilan antarmuka dari aplikasi permainan Word
Scramble.
4.1.4.1 Tampilan Utama
Tampilan utama dari aplikasi permainan Word Scramble ini dapat dilihat pada
Gambar 4.1. Gambar tersebut memperlihatkan tampilan daftar menu yang dapat dipilih oleh pemain. Pada tampilan ini, pemain dapat memilih tombol Mulai yang menampilkan Arena Permainan. Jika pemain memilih tombol Aturan, maka akan ditampilkan Tampilan Aturan Permainan yang berisi peraturan dan cara bermain
permainan Word Scramble. Jika pemain memilih Tentang Permainan, maka akan
ditampilkan mengenai penulis. Jika pemain memilih Keluar, maka pemain akan keluar dari aplikasi permainan ini. Tampilan Utama dapat dilihat pada Gambar 4.1 berikut.
(51)
4.1.4.2 Tampilan Arena Permainan
Tampilan arena permainan Word Scramble pada Gambar 4.2 memperlihatkan arena
permainan ketika permainan baru dimulai. Gambar 4.3 memperlihatkan arena permainan ketika permainan sedang berlangsung.
Gambar 4.2 Tampilan Arena Permainan
(52)
Gambar 4.4 menampilkan arena permainan ketika permainan berakhir yaitu dengan menunjukkan pesan bahwa waktu telah habis, tombol Kembali, Total Nilai dan Daftar Kata yang diperoleh Pemain.
Gambar 4.4 Tampilan Arena Permainan Ketika Permainan Selesai
4.1.4.3 Tampilan Aturan Permainan
Pada tampilan ini, akan ditampilkan peraturan permainan Word Scramble yang
ditetapkan pada aplikasi sekaligus cara bermainnya dan tombol Kembali. Berikut ini adalah Tampilan Aturan Permainan yang dapat dilihat pada Gambar 4.5.
(53)
4.1.4.4 Tampilan Tentang Permainan
Pada tampilan ini, akan ditampilkan informasi mengenai penulis. Berikut ini adalah Tampilan Permainan yang dapat dilihat pada Gambar 4.6.
Gambar 4.6 Tampilan Tentang Permainan
4.2 Pengujian Aplikasi
Pada tahap pengujian ini akan dievaluasi apakah aplikasi yang dibangun sesuai dengan tujuan yang diharapkan atau tidak. Pengujian ini dilakukan untuk menemukan kelemahan yang ada pada aplikasi dan mendemonstrasikan fungsi-fungsinya apakah telah bekerja sesuai dengan spesifikasi, kebutuhan serta kinerjanya. Pengujian yang akan dilakukan pada aplikasi ini adalah pengujian integrasi aplikasi dan pengujian responden.
Metode yang digunakan pada pengujian ini adalah Black Box. Dengan Black Box, pengujian hanya dilakukan pada representasi sistem yang terlihat tanpa perlu mengetahui bagaimana cara kerja sistem tersebut.
1.
Teknik yang digunakan dalam pengujian Black Box antara lain:
(54)
2.
3.
Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai dapat diukur dan dapat diketahui kesalahan-kesalahannya.
4.2.1 Pengujian Integrasi Aplikasi
Pengujian integrasi dilakukan terhadap sistem dan subsistem lengkap beserta komponen-komponen penyusunnya yang terintegrasi. Pengujian integrasi ini akan dilakukan pada satu platform yaitu Windows untuk memastikan keadaan aplikasi pada sistem operasi itu dapat bekerja dengan baik. Berikut ini adalah pengujian integrasi aplikasi pada tiap proses pada platform Windows.
4.2.1.1 Proses pada Tampilan Utama
Berikut adalah hasil evaluasi proses pada Tampilan Utama pada platform Windows yang dapat dilihat pada Tabel 4.1.
Tabel 4.1 Hasil Evaluasi Proses pada Tampilan Utama
No. Sasaran Pengujian Output Status
1. Uji tampilan aplikasi ketika dieksekusi
Tampilan Utama menampilkan tombol Mulai, tombol Aturan, tombol Tentang dan tombol Keluar
Baik
2. Uji pemilihan tombol Mulai
Tampilan Arena Permainan ditampilkan
Baik
3. Uji pemilihan tombol
Aturan
Tampilan Aturan Permainan ditampilkan
Baik 4. Uji pemilihan tombol
Tentang
Tampilan Tentang pembuat aplikasi permainan ditampilkan
Baik
5. Uji pemilihan tombol
Keluar
Aplikasi berhenti dan pemain keluar dari aplikasi
(55)
4.2.1.2 Proses pada Tampilan Arena Permainan
Berikut adalah hasil evaluasi proses pada tampilan Arena Permainan pada platform Windows yang dapat dilihat pada Tabel 4.2.
Tabel 4.2 Hasil Evaluasi Proses pada Tampilan Arena Permainan
No. Sasaran Pengujian Output Status
1. Uji tampilan Arena
Permainan
Arena Permainan menampilkan Papan Word Scramble, Status Kata, Status Waktu, Hasil Nilai, tombol Tambah, tombol Hapus, dan tombol Kembali.
Baik
2. Uji tampilan Papan
Word Scramble
Papan Word Scramble
menampilkan huruf acak
berdasarkan nilai frekuensi yang terpilih
Baik
3. Uji tampilan Status Kata
Huruf yang telah dipilih ditampilkan
Baik 4. Uji tampilan Status
Waktu
Sisa waktu ditampilkan Baik
5. Uji tampilan Nilai Nilai yang diperoleh sesuai dengan
kata yang ditemukan
Baik
6. Uji pemilihan tombol
Tambah
Jawaban diperiksa apakah terdapat dalam kamus atau tidak
Baik
7. Uji pemilihan tombol
Hapus
Pemain membatalkan jawabannya untuk memulai jawaban yang baru
Baik
8. Uji pemilihan tombol
Kembali
Tampilan Utama ditampilkan Baik
4.2.1.3 Proses pada Tampilan Aturan Permainan
Berikut adalah hasil evaluasi proses pada tampilan Aturan Permainan pada platform Windows yang dapat dilihat pada Tabel 4.3.
Tabel 4.3 Hasil Evaluasi Proses pada Tampilan Aturan Permainan
No. Sasaran Pengujian Output Status
1. Uji tampilan Aturan
Permainan
Tampilan Aturan Permainan menampilkan informasi
mengenai peraturan permainan, cara bermain dan tombol Kembali
Baik
2. Uji pemilihan tombol Kembali
(56)
4.2.1.4 Proses pada Tampilan Tentang Permainan
Berikut adalah hasil evaluasi proses pada tampilan Tentang permainan pada platform Windows yang dapat dilihat pada Tabel 4.4.
Tabel 4.4 Hasil Evaluasi Proses pada Tampilan Tentang Permainan
No. Sasaran Pengujian Output Status
1. Uji tampilan Tentang
Permainan
Tampilan Tentang Permainan menampilkan informasi
mengenai pembuat aplikasi dan tombol Kembali
Baik
2. Uji pemilihan tombol Kembali
Tampilan Utama ditampilkan Baik
4.2.2 Pengujian Responden
Untuk mengevaluasi aspek antarmuka, penggunaan, dan penilaian, penulis melakukan pengujian kepada pengguna dengan metode kuisioner. Pengguna (responden) berjumlah 20 orang. Pada kuisoner ini terdapat penilaian untuk setiap pertanyaan yang terbagi menjadi empat golongan, yaitu Tidak Baik (TB), Kurang Baik (KB), Baik (B), dan Sangat Baik (SB). Jika digolongkan dalam bentuk persentase, maka 0-25% diinterpretasikan dalam kategori Tidak Baik, 26-50% diinterpretasikan dalam kategori Kurang Baik, 51-75% diinterpretasikan dalam kategori Baik, dan 76-100% diinterpretasikan dalam kategori Sangat Baik. Hasil kuisioner dapat dilihat pada lampiran B.
4.2.2.1 Aspek Antarmuka Aplikasi
Pengujian pada antarmuka aplikasi bertujuan untuk mencari tahu seberapa baik rancangan antarmuka aplikasi bagi pengguna. Hasil evaluasi aspek antarmuka yang diperoleh dapat dilihat pada Tabel 4.5.
(57)
Tabel 4.5 Hasil Kuisioner Aspek Antarmuka Aplikasi
No. Sasaran Pertanyaan
Hasil Penilaian
Sangat
Baik Baik
Kurang Baik
Tidak Baik
1. Ketepatan warna background 4 16 0 0
2. Ketepatan warna, posisi dan ukuran
tulisan 3 17 0 0
3. Ketepatan warna, posisi dan ukuran
tombol 7 13 0 0
4. Efek suara 7 9 4 0
Dengan menggunakan rumus (2.1) dan (2.2) dapat dihitung persentase untuk aspek antarmuka sebagai berikut:
1. Ketepatan warna background
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(0/20)*50% + (0/20)*25% = (4/20)*100% + (16/20)*75% +
= 80 % 2. Ketepatan warna, posisi, dan ukuran tulisan
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(0/20)*50% + (0/20)*25% = (3/20)*100% + (17/20)*75% +
= 78,75% 3. Ketepatan warna, posisi dan ukuran tombol
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(0/20)*50% + (0/20)*25% = (7/20)*100% + (13/20)*75% +
= 83,75%
4. Efek Suara
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(4/20)*50% + (0/20)*25% = (7/20)*100% + (9/20)*75% +
= 78,75% 5. Total Keseluruhan
(58)
Dari perhitungan tersebut dapat diperoleh, persentase untuk aspek antarmuka sebesar 80.31% atau diinterpresentasikan sangat baik.
4.2.2.2 Aspek Penggunaan Aplikasi
Pengujian pada aspek ini bertujuan untuk mengevaluasi tingkat kesulitan pengguna dalam menjalankan aplikasi. Dari pengujian ini akan didapati apakah pengguna memahami aturan permainan dan fungsi-fungsi dari menu yang ada. Hasil pengujian
dari kuisioner terhadap penggunaan aplikasi permainan Word Scramble ini dapat
dilihat pada Tabel 4.6.
Tabel 4.6 Hasil Kuisioner Aspek Penggunaan Aplikasi
No. Sasaran Pertanyaan
Hasil Penilaian Sangat
Baik Baik
Kurang Baik
Tidak Baik
1. Pemahaman fungsi tiap tombol 6 13 1 0
2. Pemahaman aturan dan cara
bermain 3 13 4 0
3. Kemudahan menjalankan aplikasi 9 10 1 0
4. Kemudahan penggunaan mouse 11 9 0 0
Dengan menggunakan rumus (2.1) dan (2.2) dapat dihitung persentase untuk aspek
pengguna sebagai berikut:
1. Pemahaman fungsi tiap tombol Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(1/20)*50% + (0/20)*25% = (6/20)*100% + (13/20)*75% +
= 81,25%
2. Pemahaman aturan dan cara bermain
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(4/20)*50% + (0/20)*25% = (6/20)*100% + (13/20)*75% +
(59)
3. Kemudahan menjalankan aplikasi Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(1/20)*50% + (0/20)*25% = (9/20)*100% + (10/20)*75% +
= 85%
4. Kemudahan penggunaan mouse
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(0/20)*50% + (0/20)*25% = (11/20)*100% + (9/20)*75% +
= 88,75% 5. Total Keseluruhan
Ptotal = (81,25% + 88,75% + 85% + 88,75%) / 4 = 85,94%
Dari perhitungan tersebut dapat diperoleh, persentase untuk aspek penggunaan aplikasi sebesar 85,94% atau diinterpresentasikan sangat baik.
4.2.2.3 Aspek Penilaian Aplikasi
Penilaian terhadap aspek penilaian secara keseluruhan bertujuan untuk mengetahui seberapa jauh rasa kepuasan pengguna sehingga dapat diketahui apakah aplikasi ini sudah mencapai tujuan yang diharapkan atau tidak. Hasil kuisioner yang diperoleh untuk pengujian terhadap aspek permainan dapat dilihat pada Tabel 4.7.
Tabel 4.7 Hasil Kuisioner Aspek Penilaian Aplikasi
No. Sasaran Pertanyaan
Hasil Penilaian Sangat
Baik Baik
Kurang Baik
Tidak Baik
1. Nilai edukasi dari aplikasi 15 4 1 0
2. Tingkat kesulitan soal 7 12 1 0
3. Ketertarikan terhadap permainan 7 12 1 0
4. Aturan dan cara bermain yang
telah ditentukan 8 9 3 0
Dengan menggunakan rumus (2.1) dan (2.2) dapat dihitung persentase untuk aspek pengguna sebagai berikut:
(60)
1. Nilai edukasi dari aplikasi
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(1/20)*50% + (0/20)*25% = (15/20)*100% + (4/20)*75% +
= 90% 2. Tingkat kesulitan soal
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(1/20)*50% + (0/20)*25% = (7/20)*100% + (12/20)*75% +
= 82,5% 3. Ketertarikan terhadap permainan
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(1/20)*50% + (0/20)*25% = (7/20)*100% + (12/20)*75% +
= 82,5% 4. Aturan dan cara bermain yang telah ditentukan
Psangat baik + Pbaik + Pkurang baik + Ptidak baik
(3/20)*50% + (0/20)*25% = (8/20)*100% + (9/20)*75% +
= 85%
5. Total Keseluruhan
Ptotal = (90% + 82,5% + 82,5% + 85%) / 4 = 85%
Dari perhitungan tersebut dapat diperoleh, persentase untuk aspek penilaian aplikasi sebesar 85% atau diinterpresentasikan sangat baik.
(61)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan pembahasan dan evaluasi dari bab-bab terdahulu, maka diperoleh kesimpulan sebagai berikut:
1. Algoritma Linear Search dapat diimplementasikan sebagai algoritma
pencarian untuk mencocokkan jawaban pemain dengan kata-kata yang ada
pada kamus pada permainan Word Scramble dengan melakukan penelusuran
dari kata pertama hingga kata terakhir pada kamus sampai ditemukan kata yang sesuai.
2. Pengacakan huruf pada papan permainan dilakukan berdasarkan daftar
frekuensi huruf yang paling sering muncul dalam Bahasa Inggris untuk mendapatkan kombinasi huruf konsonan dan vokal yang baik sehingga dapat dirangkai menjadi sebuah kata.
3. Aplikasi permainan Word Scramble yang dibangun mendapatkan penilaian
yang cukup memuaskan dari pengguna dengan penilaian terhadap aspek antarmuka aplikasi 80,31%, aspek penggunaan aplikasi 85,94%, dan aspek penilaian aplikasi 85%.
(62)
5.2 Saran
Berikut ini adalah saran-saran yang dapat dipertimbangkan dalam pengembangan penelitian ini:
1. Menambahkan kecerdasan buatan dalam permainan Word Scramble.
2. Mengimplementasikan permainan Word Scramble dengan menggunakan
bahasa pemrograman lain seperti PHP, J2ME, atau Java sehingga dapat menghasilkan aplikasi permainan handphone atau web-based.
3. Aplikasi permainan Word Scramble ini memiliki kekurangan pada kriteria efek suara yang mendapatkan persentase 78,75%. Untuk itu, aplikasi ini perlu dikembangkan dengan menambahkan efek suara yang lain selama permainan berlangsung dan saat pesan pemenang ditampilkan.
(1)
var i:uint;
for(i = 0; i<tombol.length; i++) { tombol[i].enabled = true; }
kata_tebakan = huruf; status_kata.text = huruf; }
private function
Ketetanggaan(tombol_sebelum:Button,tombol_sesudah:Button):Boolean { var baris_sesudah:Number =
Number(tombol_sesudah.name.charAt(tombol_sesudah.name.indexOf("Row") + 3));
var kolom_sesudah:Number =
Number(tombol_sesudah.name.charAt(tombol_sesudah.name.indexOf("Col") + 3));
var baris_sebelum:Number =
Number(tombol_sebelum.name.charAt(tombol_sebelum.name.indexOf("Row") + 3));
var kolom_sebelum:Number =
Number(tombol_sebelum.name.charAt(tombol_sebelum.name.indexOf("Col") + 3));
return ((Math.abs(baris_sebelum - baris_sesudah) <= 1) &&
(Math.abs(kolom_sebelum - kolom_sesudah) <= 1));
}
private function TambahKata(e:MouseEvent):void { if(kata_tebakan.length < panjang_kata) {
KataBaru("");
status_kata.text = "Minimal " + panjang_kata + " huruf!";
}
else if(!SudahKetemu(kata_tebakan)) { var indeks_kata:Number =
CariKata(kata_tebakan.toLowerCase());
if(indeks_kata > -1) {
kata_ketemu.push(kata_tebakan); KataBaru("");
Nilai();
status_kata.text = "Kata baru ditemukan!"
} else {
KataBaru("");
status_kata.text = "Kata tidak ada dalam kamus!"
} }
else {
KataBaru("");
status_kata.text = "Kata sudah dimasukkan." }
}
private function HapusKata(e:MouseEvent):void { KataBaru("");
(2)
}
private function SudahKetemu(a:String):Boolean { var i:uint;
for(i = 0; i<kata_ketemu.length; i++) { if(a == kata_ketemu[i]) return true; }
return false; }
private function CariKata(huruf:String):Number { var i:uint = 0
for(i=0; i<kata.length; i++) { var Kata:String = kata[i]; if(huruf == kata[i]) {
return i; }
}
return -1; }
private function Nilai():void { var daftar_kata = new Array(); var nilai_total:Number = 0; var i:uint;
for(i=0; i<kata_ketemu.length; i++) { var Kata:String = kata_ketemu[i]; nilai_total += nilai[Kata.length]; daftar_kata += Kata + "\n";
}
hasil_nilai.text = "Total Nilai: " + nilai_total + "\n" + "\n" + "Daftar Kata: " + "\n" + daftar_kata;
}
private function MulaiWaktu(total_waktu:Number):void { t = new Timer(1000, total_waktu);
t.addEventListener(TimerEvent.TIMER,hitung_waktu); t.addEventListener(TimerEvent.TIMER_COMPLETE,waktu_habis);
t.start(); }
private function hitung_waktu(e:TimerEvent):void { var waktu_sisa:Number = waktu -
e.target.currentCount;
status_waktu.text = "Sisa waktu: " + String(waktu_sisa);
}
private function waktu_habis(e:TimerEvent):void { status_waktu.text = "Waktu habis!";
var i:uint;
for(i=0; i<tombol.length; i++) { tombol[i].enabled = false; }
tambah_tombol.enabled = false; hapus_tombol.enabled = false;
var kata:Object = new TextFormat(); kata.font = "Georgia";
kata.size = 16;
kata.color = 0xFFFF00;
(3)
tombol_kembali = new Button(); tombol_kembali.move(290,150);
tombol_kembali.setSize(175 / 2, 30);
tombol_kembali.setStyle("textFormat",kata); tombol_kembali.label = "Kembali";
tombol_kembali.addEventListener(MouseEvent.CLICK,Kembali); addChild(tombol_kembali);
status_kata.text = ""; }
private function Kembali(e:MouseEvent):void { var i:uint;
for(i=0; i<tombol.length; i++) { tombol[i].enabled = false; removeChild(tombol[i]); tombol[i]=null;
}
removeChild(status_kata); removeChild(tambah_tombol); removeChild(hapus_tombol); removeChild(hasil_nilai); removeChild(status_waktu); removeChild(tombol_kembali); kata_ketemu=[];
gotoAndStop(5); }
} }
(4)
LAMPIRAN B : HASIL KUISIONER
Tabel Hasil Kuisioner Untuk Aspek Antarmuka dan Penggunaan Aplikasi
No
Nama
TTD
Antarmuka
Penggunaan
1
2
3
4
5
1
2
3
4
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Keterangan :
A = Sangat Baik
B = Baik
C = Kurang Baik
D = Tidak Baik
(5)
Tabel Hasil Kuisioner untuk Aspek Penilaian Aplikasi
No
Nama
TTD
Penilaian
1
2
3
4
5
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Keterangan :
A = Sangat Baik
B = Baik
C = Kurang Baik
D = Tidak Baik
(6)