PERANCANGAN DAN PEMBUATAN APLIKASI WORD GAME SCRAMBLE
PADA BOARD DUA DIMENSI
Oleh : Noswa Sabdifha
(1203 109 009)
Dosen Pembimbing Tugas Akhir : Prof. DR. Mohammad Isa Irawan, MT ABSTRAK
Banyak metode pembelajaran yang digunakan guru agar murid dapat menangkap apa yang sedang diajarkan, salah satunya adalah dengan permainan. Metode pembelajaran ini mampu menyampaikan tujuan pokok belajar dengan cara yang menyenangkan, sehingga para siswa diharapkan dapat lebih bersemangat dan tertarik terhadap topik pembelajaran. Metode pembelajaran sambil bermain juga dapat diterapkan pada salah satu pelajaran penting di sekolah, yakni pelajaran Bahasa Inggris. Permainan berbahasa Inggris ini dikenal dengan Word Games. Dari sekian banyak macam jenis permainan Word games yang ada, Scramble termasuk salah satu jenis permainan Word games yang populer.
Artificial Intelligence (AI) atau kecerdasan buatan merupakan cabang dari ilmu komputer yang berhubungan dengan pengautomatisasi tingkah laku cerdas. Pencarian atau pelacakan merupakan salah satu teknik untuk menyelesaikan permasalahan AI. Terdapat beberapa aplikasi yang menggunakan teknik pencarian, yaitu : Papan game dan puzzle.
Pada Tugas Akhir ini, terdapat berbagai macam permasalahan seperti pengacakan huruf-huruf untuk generate board yang dimaksudkan adalah bagaimana pola pengacakannya dapat mempermudah pengguna mencari lebih banyak kata dalam board 4x4, kemudian pencarian kata dengan menerapkan algoritma Depth-First Search pada board 4x4 oleh komputer berdasarkan pencocokan kata pada kamus sehingga diperoleh seluruh kata yang bisa didapat.
Kata Kunci: Word Games, Scramble Games, Depth-First Search. I. Pendahuluan
Belajar adalah salah satu kegiatan utama murid di sekolah. Bahasa Inggris merupakan salah satu mata pelajaran di kelas. Banyak metode pembelajaran yang digunakan guru agar murid dapat menangkap apa yang sedang diajarkan. Namun tidak sedikit murid yang merasa bosan sehingga dapat menghambat proses belajar mengajar. Permainan adalah salah satu solusi alternatif untuk pembelajaran murid. Faktanya permainan dapat membantu dan menyemangati banyak murid untuk dapat terus menjaga ketertarikan mereka. Terdapat persepsi dasar bahwa pembelajaran seharusnya dengan suasana serius dan khusuk sehingga jika ada yang bersenang – senang atau tertawa maka tidak dapat dikatakan sebagai sebuah pembelajaran. Hal ini adalah kesalahpahaman, karena sangat memungkinkan untuk mempelajari sebuah kosakata bahasa inggris dan bermain disaat yang bersamaan, salah satu cara terbaik melakukannya adalah dengan permainan [1]. Banyak macam permainan yang bertujuan menambah wawasan English Vocabulary. Salah satunya adalah Word game.
Dari sekian banyak macam jenis permainan Word games yang ada, Scramble termasuk salah satu jenis permainan Word games yang populer. Dapat disimpulkan bahwa jenis permainan Scramble merupakan pengacakan huruf-huruf,
kemudian pemain mencari kosa kata yang bisa disusun dari huruf –huruf yang diacak. Dalam Tugas Akhir ini jenis scramble yang diterapkan adalah memasukkan huruf secara acak pada kotak 4x4, kemudian pemain mencari kata yang bisa didapat dengan pola yang bisa disusun secara horisontal, vertikal maupun diagonal. Aplikasi ini memungkinkan pemain mendapatkan kosakata baru yang belum pernah didengar atau dilihat setelah hasil yang diperoleh dibandingkan dengan hasil pencarian oleh komputer.
Pada game ini terdapat berbagai macam permasalahan seperti pengacakan huruf-huruf untuk generate board yang dimaksudkan adalah bagaimana pola pengacakannya dapat mempermudah pengguna mencari lebih banyak kata dalam board 4x4, kemudian pencarian kata pada board 4x4 oleh komputer berdasarkan pencocokan kata pada kamus sehingga diperoleh jumlah kata yang bisa didapat, serta tampilan program yang akan digunakan pemain untuk pencarian kata, juga terdapat sistem penilaian untuk setiap kata yang ditemukan oleh komputer pengguna. Sehingga, pada tugas akhir ini akan dirancang dan diimplementasikan sebuah permainan scramble pada board 4x4.
II. TINJAUAN PUSTAKA
Pencarian boleh jadi merupakan hasil dari suatu solusi ruang keadaan yang mungkin telah
terkunjungi semua, tetapi tanpa penyelesaian. Pencarian yang mendalam (Exchausting Search Strategy) mungkin dilakukan dengan menggunakan strategi Depth First Search (Iterative Deepening). Pencarian ini merupakan pencarian buta (blind search).
2.1. Algoritma Depth First Search
Algoritma Depth First Search (DFS) adalah algoritma traversal di dalam graf dengan menelusuri verteks-verteks yang bertetangga terlebih dahulu. Khusus untuk persoalan ini, graf yang akan ditelusuri berbentuk pohon [4]. Cara tradisional memandang DFS sebagai suatu proses yang secara lepas dapat digambarkan sebagai berikut. Mula-mula, semua verteks dari graph dinyatakan sebagai "unvisited', maka kita memilih satu dan mengeksplorasi sebuah edge yang mengantarkan kepada verteks baru. Sekarang kita mulai pada verteks tersebut dan mengeksplorasi sebuah edge yang mengantarkan kepada verteks baru lagi. Kita meneruskan proses ini dengan cara tersebut sampai kita mencapai sebuah verteks yang tidak punya edges yang mengantar kita ke verteks-verteks lain yang belum dikunjungi. Pada saat ini kita kembali dan meneruskan dari verteks terakhir yang mengantarkan kepada verteks yang belum dikunjungi.
Akhirnya kita akan mencapai sebuah titik dimana setiap verteks yang 'reachable' dari verteks awal sudah dikunjungi semua. Jika masih ada verteks yang tersisa, kita pilih satu dan memulai pencarian lagi, sampai akhimya setiap verteks sudah dikunjungi sekali, dan setiap edge sudah diuji. Contoh penelusuran algoritma DFS diberikan pada gambar di bawah ini.
Gambar 2.1 Contoh penelusuran DFS Langkah-langkah penelusuran untuk gambar 2.1 tersebut adalah:
1.
Open = [1]; closed = [].2.
Open = [2, 3, 4]; closed = [1].3.
Open = [5, 6, 3, 4]; closed = [2, 1].4.
Open = [11, 12, 6, 3, 4]; closed = [5, 2, 1].5.
Open = [19, 12, 6, 3, 4]; closed = [11, 5, 2, 1].6.
Open = [12, 6, 3, 4]; closed = [19, 11, 5, 2, 1].7.
Open = [20, 6, 3, 4]; closed = [12, 19, 11, 5, 2, 1].8.
Open = [6, 3, 4]; closed = [20, 12, 19, 11, 5, 2, 1].9.
Open = [13, 3, 4] (karena 12 telah di-closed); closed = [6, 20, 12, 19, 11, 5, 2, 1].10.
Open = [3, 4]; closed = [13, 6, 20, 12, 19, 11, 5, 2, 1].11.
Open = [7, 8, 4]; closed = [3, 13, 6, 20, 12, 19, 11, 5, 2, 1].12.
Dan seterusnya sampai state 21 diperoleh atau open = [].Penentuan teknik pencarian yang sesuai atau yang tepat untuksebuah kasus khusus penganalisaan suatu ruang permasalahan, menjadi sangat penting dan biasanya dengan melakukan konsultasi dengan para pakar di bidangnya untuk mendapatkan dan mengetahui tingkah laku ruang permasalahan tersebut [7
].
2.2. Word Games Scramble
Scramble merupakan pengembangan dari permainan scrabble yang sangat inspiratif, pola permainan ini yang menjadi inspirasi dalam mengerjakan tugas akhir ini. Permainan ini dimulai dengan mengacak huruf alpabet dengan kadar frekuensi setiap huruf berbeda untuk diisi pada board berukuran 4x4, masing-masing grid diisi dengan huruf berbeda atau sama pada setiap isinya. Pemain harus mencari kata yang bisa dibentuk dari huruf yang sudah terisi pada board 4x4, pemain akan dibatasi oleh waktu tiga menit sejak dimulai dan pemain harus mencari kata sebanyak yang bisa didapat.
Aturan permainannya, yang harus dicapai pemain adalah mencari kata yang terdapat pada board 4x4 seperti pada gambar 2.2 dengan syarat:
Sebuah kata yang didapat terdiri dari 2 huruf atau lebih.
Jalan itu ditelusuri oleh huruf-huruf di kata harus terhubung secara horisontal, vertikal, atau diagonal. Pemain tidak dapat melompati grid untuk mendapatkan huruf berikutnya. Setiap grid hanya bisa digunakan satu kali
dalam satu kata.
Sebagai contoh, pola pada gambar 2.2 mengandung kata P E A C E yang bisa ditunjukkan pada:
Gambar 2.2 Terdapat kata PEACE dalam board. Jalan yang ditunjukkan, sebagaimana yang dimaksud pada gambar 2.2, tidak terdapat kata PLACE, karena sesuai peraturan tidak boleh melompat grid yang tidak terhubung dari huruf P ke L lalu kembali ke huruf A. Sama juga dengan kata POPE, pemain tidak boleh menggunakan huruf yang telah digunakan lebih dari satu kali. 2.3. Randomization (Alphabet Generator)
Proses ini berfungsi sebagai pengacak huruf alfabet yang akan keluar di setiap node. Huruf-huruf pada setiap node diacak sedemikian rupa sehingga huruf-huruf umum muncul lebih sering dan lebih mudah untuk mendapatkan campuran yang baik antara vokal dan konsonan. Dari penelitian yang di lakukan oleh Andrea Krause [3] berdasarkan Hidden Markov Models (HMM) menunjukkan bahwa huruf ”E” adalah huruf yang paling sering keluar dalam 10.000 kata dari Reuters data set. Maka dalam tahap Randomization ini huruf ”E” mendapat porsi lebih besar saat proses pengacakan. Berikut ini sekilas contoh pseudocode tentang alphabet generator untuk pengacakan huruf yang akan digunakan :
freq['a'] = 0.2 freq['b'] = 0.01 ...
freq['z'] = 0.02
jumlah seluruh frekuensi diatas adalah 1, maka dapat didefinisikan sebuah array dengan interval seperti ini:
intr['a'] = [0; 0.2) intr['b'] = [0.2; 0.01) ...
intr['z'] = [0.98; 1)
kemudian saat proses generalisasi angka acak n pada interval [0; 1) program hanya mencari dalam interval array dan mendapatkan huruf yang terdapat pada interval tersebut.
for(huruf = 'a' .. 'z') if n in int[huruf] then return huruf;
III. METODE PENELITIAN
Pembuatan tugas akhir ini dilakukan dengan mengikuti metodologi sebagai berikut :
3.1. Analisa Sistem
Tahapan ini dilakukan dengan observasi permasalahan, identifikasi permasalahan, mempelajari hal-hal yang berkaitan dengan kecerdasan buatan. Pembelajaran ini didapat dari buku-buku literatur, paper maupun beberapa artikel di internet. Pada bagian ini akan menganalisa bagaimana sistem perangkat lunak aplikasi scramble menggunakan algoritma depth first search akan berinteraksi dengan user mulai dari proses randomization huruf sampai kemudian proses pencarian kata – kata pada grid yang telah terisi serta proses penghitungan nilai maksimalnya. 3.2. Desain algoritma
Pada tahap ini dilakukan desain algoritma DFS terhadap analisa sistem yang telah ditentukan 3.3. Desain interface
Pada tahap ini, didesain seluruh tampilan interface seperti apa yang diinginkan untuk mengakomodasi seluruh objek dan atribut yang telah ditentukan. Selain itu, juga didesain alur-alur yang menghubungkan interface berdasarkan hubungan antar objek dan atribut yang telah ditentukan.
Untuk mengetahui gambaran keseluruhan dari proses kerja perangkat lunak aplikasi scramble pada board 4x4 yang akan dibuat diperlukan langkah awal yaitu analisa alur proses kerja pada perangkat lunak yang akan dibuat. Diagram perancangan sistem ini secara global diilustrasikan pada gambar berikut ini :
Gambar 3.1 : Alur Proses Kerja (Flowchart) Perangkat Lunak
IV. PERANCANGAN PERANGKAT LUNAK Dari keadaan sistem yang telah dipaparkan diatas, maka dapat dibuat perancangan perangkat lunak yang sesuai dengan kebutuhan, yaitu permainan word game scramble.
4.1. Aturan Permainan
Pada permainan ini, pemain harus mencari kata yang akan di acak pada proses randomization kemudian komputer akan mencocokkan pada kamus apakah kata yang ditemukan oleh pemain valid atau terdapat pada kamus tersebut. Ada pula aturan pada pencarian kata oleh pemain sebagai berikut:
Sebuah kata yang didapat terdiri dari 2 huruf atau lebih.
Jalan itu ditelusuri oleh huruf-huruf di kata harus terhubung secara horisontal, vertikal, atau diagonal. Pemain tidak dapat melompati grid untuk mendapatkan huruf berikutnya.
Setiap grid hanya bisa digunakan satu kali dalam satu kata.
Kata yang sudah ditemukan tidak dapat diulangi (walaupun terdapat kata yang sama namun dengan path yang berbeda). Jika salah satu dari kondisi diatas tidak terpenuhi, kata yang sudah didapat atau dalam kasus ini di-accept akan ditolak. Jika terpenuhi
akan di masukkan dalam daftar kata dan score yang didapat oleh pemain.
4.2. Penentuan Nilai (Scoring)
Pada tahap ini kata yang ditemukan oleh pemain mempunyai nilai yang berbeda sesuai dengan jumlah huruf pada kata yang sudah masuk dalam daftar kata yang ditemukan pemain. Dengan nilai – nilainya sebagai berikut:
Tabel 4.1 : Daftar nilai berdasarkan jumlah huruf 4.3. Randomization
Pengisian huruf secara acak pada board 4x4 di setiap node-nya akan dilakukan secara acak. Huruf-huruf pada setiap node diacak sedemikian rupa sehingga huruf-huruf umum muncul lebih sering dan lebih mudah untuk mendapatkan campuran yang baik antara vokal dan konsonan. Untuk memenuhi kondisi tersebut diperlukan frekuensi yang berbeda – beda tiap hurufnya, dapat ditunjukkan pada tabel berikut ini:
Tabel 4.2 Nilai Frekuensi Huruf yang Akan Diacak
Panjang Kata Nilai 2 3 4 5 6 7 ≥8 1 1 2 3 5 7 11
No. Urut Huruf Frekuensi Inisialisasi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 E A R I O T N S L C U D P M H G B F Y W K V X Z J Qu 11.1607% 8.4966% 7.5809% 7.5448% 7.1635% 6.9509% 6.6544% 5.7351% 5.4893% 4.5388% 3.6308% 3.3844% 3.1671% 3.0129% 3.0034% 2.4705% 2.0720% 1.8121% 1.7779% 1.2899% 1.1016% 1.0074% 0.2902% 0.2722% 0.1965% 0.1962% 11 8 7 7 7 7 7 6 5 5 4 3 3 3 3 2 2 2 2 1 1 1 1 1 1 1
4.4. Implementasi Algoritma Depth First Search Dalam penerapannya pada aplikasi Scramble, prosedur Depth First Search dapat diimplementasikan dengan [7] :
4.5. Implementasi Antar Muka
Tampilan dari perangkat lunak ini terdiri dari Tampilan Utama yang ditampilkan pada Gambar 4.1, Contoh tampilan utama yang sudah terisi huruf secara acak pada gambar 4.2, serta contoh tampilan utama yang sudah selesai pada gambar 4.3.
Tampilan pada gambar dibawah ini adalah contoh tampilan utama saat pertama kali di eksekusi. Pemain harus menekan tombol klik pada start button untuk memulai permainan, untuk lebih jelasnya simak tabel 4.1 dibawah ini.
Gambar 4.1 : Tampilan Utama Pada Perangkat Lunak
Berikut ini akan dijelaskan masing-masing tools yang digunakan pada aplikasi word game scramble. Sesuai dengan gambar tampilan utama yang ditampilkan pada gambar 4.1. Tools yang digunakan meliputi Menu Bar, text area, serta button, dan kesemuanya ditampilkan pada Tabel 4.3:
Nama Tools Jenis Keterangan
File Menu Bar Membuka sub
menu yang ada
didalam game
yaitu: Mulai (start), berhenti (stop) dan keluar (exit).
Help Menu Bar Berisi tentang
informasi tentang petunjuk penggunaan
aplikasi word
game scramble.
Juga berisi sub
menu tentang
informasi sang penulis aplikasi.
Board Grid Digunakan
untuk menampilkan huruf – huruf yang teracak sebagai papan permainan dalam aplikasi word game scramble.
Mulai Button Digunakan
untuk memulai permainan.
Berhenti Button Digunakan
untuk
menghentikan permainan dan akan
menunjukkan kata yang sudah ditemukan komputer. Prosedur depth first search
Begin
Open := [start] Closed := []
While open = [] do Begin
Pindahkan verteks paling kiri dari open, namakan x Jika x adalah tujuan maka return SUCCESS;
Else Begin
Hasilkan cabang dari x; Letakkan x pada closed;
Abaikan cabang dari x jika sudah terletak pada open or closed;
Menempatkan cabang yang tersisa pada ujung kiri dari open;
End; End
return FAIL End.
Check Button Digunakan untuk
memeriksa kata
pada data
apakah kata
yang dipilih oleh
pemain benar
atau salah.
Reset Button Digunakan
untuk
membersihkan huruf – huruf
yang sudah
dipilih pada text
field permainan.
TextInput Text field Digunakan
untuk menunjukkan huruf yang sudah di pilih oleh pemain. Wordlist Scroll Panel Digunakan untuk menunjukkan seluruh kata yang ditemukan oleh komputer.
Terjemahan Text area Digunakan
untuk menampilkan hasil terjemahan kata yang sedang di pilih pada Wordlist
Status Label Digunakan
untuk menunjukkan status permainan. Timer Status label Digunakan untuk menunjukkan perhitungan mundur waktu yang tersisa pada game Tabel 4.3 : Tabel Petunjuk Tool yang Digunakan
Pada Aplikasi
4.3.2 Tampilan Figur Utama Saat Permainan Dimulai
Berikut ini adalah tampilan figur utama saat permainan dimulai. Tahap ini memungkinkan
pemain untuk bermain dengan cara memilih huruf – huruf yang terlihat pada grid. Contoh tampilan gambar 4.2 dibawah ini menunjukkan huruf C A T telah dipilih dan selanjutnya pemain harus menekan tombol check button untuk mengkonfirmasi pilihan kata yang sudah dimasukkan dalam text input. Pilihan yang sudah dikonfirmasi tersebut akan dicocokkan pada kamus oleh komputer. Terdapat dua kemungkinan yang terjadi pada tahap ini yaitu:
Jika ada, maka komputer akan memasukkan pada label status sebagai poin dengan besar nilai 1 angka karena aturan dalam permainannya adalah 1 angka untuk 3 huruf yang bisa di temukan.
Jika tidak ada, maka komputer akan memasukkan pada label status sebagai penunjuk bahwa kata tidak terdapat dalam kamus.
Gambar 4.2 : Tampilan Utama Saat Permainan Sedang Berlangsung
4.3.3 Tampilan Utama Saat Permainan Selesai Tahap ini akan menunjukkan hasil yang sudah diraih oleh pemain, juga menunjukkan seluruh kata hasil temuan oleh komputer.
Gambar 4.3 : Tampilan Utama Saat Permainan Sudah Selesai
5.1 Kesimpulan
Dari hasil uji coba yang telah dilakukan pada aplikasi word game scramble dengan algoritma depth first search (DFS), maka dapat diambil kesimpulan bahwa:
1. Penggunaan algoritma depth first search dapat diaplikasikan pada word game scramble untuk mencari seluruh kata yang terdapat pada board dua dimensi 4x4.
2. Pemain dapat memperkaya vocabulary bahasa inggris.
3. Netbeans IDE 6 dengan bahasa pemrograman Java dapat digunakan untuk membuat program-program atau perangkat lunak yang membutuhkan kecerdasan buatan seperti DFS. 4. Proses Randomization pada aplikasi word game
scramble tidak bisa dikatakan optimal penggunaannya yang mengakibatkan ketidak-stabilan untuk jumlah kata yang bisa diperoleh. 5.2. Saran
Saran yang dapat diberikan untuk pengembangan pada tugas akhir ini adalah : 1. Menggunakan Genetic Algorithm untuk proses
pengacakan kata agar lebih banyak kata yang bisa diperoleh.
2. Menambahkan animasi atau efek suara pada desain antar muka aplikasi word game scramble dapat menambah minat orang untuk memainkannya.
3. Mengimplementasikan word game scramble kearah yang lebih interaktif seperti web-based, multiplayer dengan menggunakan piranti lunak yang berbeda seperti PHP atau J2ME.
VI. DAFTAR PUSTAKA
[1] El-Bahri, M. Agus. S. Desember 2008. Teaching English Vocabulary Using
Games. <URL:
http://www.scribd.com/doc/9639825/> (diakses tanggal 16 November 2009)
[2] Gozali, Evan. 2008. Penggunaan Depth First Search Dalam Pengambilan Keputusan Pada Klimaks Permainan Scrabble. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008. Teknik Informatika ITB.
[3] Krause, Andreas, dan Zollmann, Andreas. 2002. Not So Randomly Typing Monkeys – Rank-frequency Behavior of Natural and Artificial Languages, Algorithms for Information Networks – Project Report. [4] Maulana I, Dimas and Sidik Sasongko,
Priyo. 2009. PENERAPAN ALGORITMA BREADTH FIRST SEARCH DAN DEPTH FIRST SEARCH PADA PERMAINAN SLIDE PUZZLE. Undergraduate thesis, Universitas Diponegoro.
[5] Mega, Indra. 2000. Kamus Inggris – Indonesia. Kamus John-EchoLs.
[6] Miller, David. Juni 1985. Word Games for Formal Logic. University of Warwick. [7] Munir, Rinaldi, MT. 2005. Diktat kuliah
IF2251 Strategi Algoritmik. Teknik Informatika ITB.
[8] <URL:
http://en.wikipedia.org/wiki/Word_games/ > (diakses tanggal 2 Juli 2010)
[9] <URL:
http://en.wikipedia.org/wiki/Casual_game/ >(diakses tanggal 2 Juli 2010)