Anda di halaman 1dari 15

1

A. TUGAS AKHIR YANG DIUSULKAN


1. Judul Tugas Akhir:

Implementasi

DAWG (Directed Acyclic Word Graph) Pada


2.
a.
b.
c.
3.

Permainan Scrabble
Pengusul
Nama
:
Rezky Amelia
NIM
:
100170095
Jurusan :
Teknik Informatika
Objek Tugas Akhir
:
Aplikasi

Permainan Scrabble
4. Mata Kuliah Terkait

Teori

Bahasa

dan Automata, Matematika Diskrit, Struktur


Data
B. PENDAHULUAN
Perkembangan teknologi saat ini sudah merambah ke berbagai bidang, salah
satunya adalah permainan (game) . Hal ini dapat dilihat dari banyaknya
perusahaan yang membuat berbagai macam permainan. Magnet industri ini
mampu mendorong menjamurnya developer-developer lokal, termasuk developer
indie (belum berbentuk perseroan). Saat ini terdapat lebih dari 400 developer
dengan lebih dari sekitar 1000 game telah dilahirkan. Dan dari sisi konsumen ,
jumlah gamers di Indonesia diperkirakan telah mencapai sekitar 40 juta orang
sampai akhir 2013. Tak pelak, nilai bisnis industri ini tumbuh drastik (Bisnis.com,
2014) .
Permainan Scrabble adalah salah satu permainan papan yang cukup populer.
Scrabble dijual di 121 negara dalam 29 versi bahasa-bahasa di dunia. Seratus juta
set permainan Scrabble terjual di seluruh dunia, dan setiap tiga keluarga di
Amerika memiliki satu set permainan Scrabble (Wikipedia,2014).
DAWG (Directed Acyclic Word Graph) adalah algoritma yang dapat
digunakan untuk membangun Artificial Inteligence yang akan digunakan sebagai
computer player dalam aplikasi permainan Scrabble. Dalam prakteknya,
mengkombinasikan algoritma ini dengan kamus besar dan pemilihan langkah
secara heuristik dengan nilai tertinggi tiap giliran akan menghasilkan program
cepat yang jarang dikalahkan oleh manusia (A.Appel and G.Jacobson, 1988).
Intinya algoritma ini digunakan untuk membuat sebuah AI yang tidak mudah

dikalahkan oleh manusia dalam permainan Scrabble. Dengan cara itu, permainan
Scrabble akan menjadi menarik dan menantang untuk dimainkan.
C. PERUMUSAN MASALAH
Melihat latar belakang di atas, maka permasalahan yang dapat dirumuskan
sebagai berikut :
1. Bagaimana merancang sebuah AI dalam aplikasi permainan Scrabble yang
tidak mudah dikalahkan oleh manusia,
2. Bagaimana mengimplementasikan algoritma DAWG (Directed Acyclic Word
Graph) ke dalam aplikasi permainan Scrabble,
3. Bagaimana menuangkan rancangan aplikasi permainan Scrabble ke dalam
sebuah program menggunakan Bahasa Java.
D. PEMBATASAN MASALAH
Penelitian ini mempunyai batasan-batasan masalah sebagai berikut :
1. Hanya ada dua pemain dalam aplikasi permainan ini yaitu komputer (computer
player) dan pemain manusia ( human player),
2. Metode yang digunakan adalah algoritma DAWG ( Directed Acyclic Word
Graph) ,
3. Kata-kata yang digunakan dalam aplikasi permainan ini menggunakan bahasa
Inggris mengacu pada OSPD ( Official Scrabble Player Dictionary),
4. Menggunakan bahasa Java dalam pengimplementasiannya,
5. Aplikasi ini dibangun menggunakan Netbeans IDE 7.0.1,
6. Aplikasi ini berbasis PC/Desktop.
E. TUJUAN
Tujuan Penelitian ini adalah menerapkan algoritma DAWG ( Directed Acyclic
Word Graph) dalam aplikasi permainan Scrabble.

F. TINJAUAN PUSTAKA
1. Sejarah Permainan Scrabble
Permainan Scrabble mulanya diciptakan pada tahun 1938 dengan nama
"Criss-Crosswords" oleh seorang arsitek bernama Alfred Mosher Butts.
Permainan ini merupakan penyempurnaan dari permainan Lexiko yang lebih
dulu diciptakannya, tapi dilengkapi papan permainan dan cara bermain seperti
teka-teki silang. Permainan tetap menggunakan keping huruf seperti Lexiko
yang dibuat berdasarkan hasil perhitungan distribusi frekuensi penggunaan

huruf berbagai tulisan berbahasa Inggris, termasuk artikel surat kabar The
New York Times. Alfred Butts memproduksi sendiri permainan ini dan
menawarkannya ke berbagai perusahaan mainan besar tapi tidak laku.
Pada tahun 1948, pengacara James Brunot, penduduk asal Newtown,
Connecticut membeli hak memproduksi permainan "Criss-Crosswords"
dengan janji memberi Butts royalti dari setiap unit yang terjual. Sebagai
pemilik yang baru, Brunot mengganti nama permainan menjadi "Scrabble",
sebuah kata dalam bahasa Inggris yang berarti "berjuang membanting
tulang". Brunot hanya sedikit mengubah kotak-kotak "bonus" pada papan
permainan, dan menyederhanakan aturan permainan. Permainan Scrabble
ternyata laku dijual. Salah satu pembelinya adalah toko serba ada Macy's
yang berhasil mengangkat Scrabble menjadi mainan yang ingin dibeli
konsumen.
Pada tahun 1953, Brunot menjual hak produksi permainan Scrabble
kepada Selchow and Righter, karena kapasitas produksi tidak mampu lagi
memenuhi permintaan. Seperti halnya Parker Brothers dan Milton Bradley,
Selchow and Righter adalah salah satu dari pabrik mainan besar yang dulu
pernah menolak untuk membeli permainan Scrabble. Di Britania Raya dan
Australia, Scrabble mulai dipasarkan J. W. Spear & Sons tanggal 19 Januari
1955. Perusahaan J. W. Spear & Sons sekarang merupakan anak perusahaan
dari Mattel Pada tahun 1986, Selchow and Righter menjual permainan ini
kepada Coleco yang kemudian menjualnya lagi kepada Hasbro.
2. Aturan Permainan Scrabble
Permainan dimainkan 2 hingga 4 orang dengan papan permainan
berkotak-kotak yang terdiri dari 15 kolom dan 15 baris. Setiap pemain
mendapat sebuah rak huruf yang dapat diisi maksimal 7 keping huruf. Jumlah
keping permainan yang digunakan adalah 100 buah, terdiri dari 98 huruf a-z
dan 2 keping kosong yang dapat digunakan untuk mengganti huruf apa saja
tapi memiliki nilai nol.
Berikut ini adalah nilai untuk masing-masing huruf dalam permainan
Scrabble :

0 Poin keping kosong.


1 Point - A, E, I, L, N, O, R, S, T dan U.
2 Poin - D dan G.
3 Poin - B, C, M dan P.
4 Poin - F, H, V, W dan Y.
5 Poin - K.
8 Poin - J dan X.
10 Poin - Q dan Z.
Permainan dimulai dengan menentukan giliran setiap orang. Caranya
dengan mengambil keping huruf tanpa melihat ke dalam kantung keping.
Pemain yang hurufnya terdekat ke alphabet A mendapat giliran lebih dahulu
dari yang lain (keping kosong dihitung paling dekat dengan A). Lalu setiap
pemain meletakkan setiap keping huruf ke dalam rak, tentu saja huruf yang
diambil secara acak tanpa melihat ke dalam kantung keping. Pemain yang
mendapat giliran pertama harus menaruh keping-keping hurufnya melewati
kotak yang berada di tengah-tengah papan. Nilai kata yang pertama kali
diletakkan tersebut bernilai dua kali lipat (double word score). Lalu
dilanjutkan oleh pemain lainnya. Selain giliran pertama dimana pemain harus
meletakkan huruf membentuk suatu kata, ada salah satu dari 3 hal yang dapat
dilakukan pemain : meletakkan huruf, menukar huruf yang ada dan pass yang
berarti melewatkan gilirannya. Apabila salah satu dari ketiga itu telah
dilakukan dalam satu giliran maka dua hal lainnya tidak dapat dilakukan lagi
dalam giliran tersebut. Jumlah keping huruf yang diletakkan bebas asalkan
membentuk sebuah kata yang berada di dalam kamus. Pemain boleh pass
kapanpun. Permainan berakhir apabila semua huruf yang ada atau huruf pada
salah satu rak huruf pemain habis. Pemain yang berhasil mengumpulkan poin
terbanyaklah yang menang.
Di klub resmi atau turnamen, pertandingan hanya dimainkan dua orang
pemain (atau, kadang-kadang antara 2 tim yang masing-masing anggotanya
bekerja sama menyusun huruf dari rak yang sama).
Beberapa kotak dalam papan permainan Scrabble memiliki nilai
tersendiri sesuai nama dan warnanya :

Double Letter Scores : warnanya biru muda dan berapa di tempat yang akan
terpencil. Jika keping huruf ditempatkan di kotak ini, maka nilai huruf pada

keping huruf tersebut dikalikan dengan dua.


Triple Letter Scores : warnanya biru tua. Keping huruf yang ditempatkan

pada kotak ini, nilai hurufnya dikalikan dengan 3.


Double Word Scores : warnanya merah muda yang terdapat pada posisi
diagonal dari keempat sudut papan. Jika salah satu huruf menyentuh kotak

ini, maka nilai keseluruhan kata dikalikan dengan 2.


Triple Word Score: warnanya merah tua. Warnanya merah tua, terdapat pada
keempat sisi papan dengan jarak yang sama dari masing-masing sudut papan.
Bila kata yang dibuat menyentuh salah satu kotak berwarna merah tua ini,

maka poin untuk kata tersebut dikalikan dengan 3.


One Single Use : poin ekstra ini hanya berlaku satu kali. Jika seorang pemain
berikutnya menggunakan kotak-kotak tersebut pula, maka nilainya tidak lagi
digandakan.
3. Representasi Leksikon
Untuk mendapatkan kata yang tepat dan memiliki nilai tertinggi setiap
giliran, dibutuhkan sebuah prosedur untuk mencari kata yang cocok di dalam
kamus.

Oleh

karena

itu,

dibutuhkan

struktur

data

yang

dapat

merepresentasikan semua kata dalam kamus. Representasi leksikon kali ini


digambarkan dalam dua bentuk, yaitu bentuk pohon huruf(trie) dan DAWG.
3.1 Bentuk Pohon Huruf (Trie)
Misalkan dalam sebuah kamus terdapat kata seperti berikut ini : CAR,
CARS, CAT, CATS, DO, DOG, DOGS, DONE, EAR, EARS, EAT, EATS.
Maka bentuk pohon hurufnya adalah :

Gambar 1 Pohon Huruf (trie)

Dapat dilihat dari gambar di atas, bahwa ada banyak sekali huruf-huruf
yang dapat digunakan secara bersama-sama. Apabila struktur data ini dapat
diperkecil tentunya akan mempercepat proses pencarian dan menghemat
memori. Caranya dengan menggunakan awalan dan akhiran yang sama.
3.2 DAWG (Directed Acyclic Word Graph)
DAWG disebut graf searah (directed graph) karena ia hanya bisa
berpindah pada arah yang spesifik diantara dua titik(node). Dengan kata lain,
ia bisa berpindah dari A ke B tapi tidak bisa berpindah dari B ke A. Oleh
karena itu juga, graph ini disebut tidak bersiklus(Acyclic). Hubungan balik ke
A akan membentuk sebuah siklus dan mungkin perulangan tanpa akhir di
dalam program pencarian yang akan dibuat (wutka.com,2014) .
Berikut ini adalah contoh DAWG berdasarkan leksikon yang sama
dengan contoh pohon huruf sebelumnya :

Gambar 2 Sebuah DAWG ( Directed Acyclic Word Graph)

Apabila dibandingkan dengan struktur data sebelumnya, dapat dilihat


bahwa tipe ini lebih sederhana, kata-kata yang memiliki awalan dan akhiran
yang sama akhirnya menggunakan node yang sama misalnya CARS dan
EARS sama-sama menggunakan node A-R-S meskipun node awalnya
berbeda. Karena strukturnya lebih sederhana, pencarian akan lebih mudah dan
penggunaan memori akan lebih kecil.
4. Struktur Penyimpanan Kamus Data Pada Java
Dalam implementasinya sendiri semua node-node yang dibentuk oleh
algoritma DAWG disimpan menggunakan metode yang telah disediakan oleh
Java, dimana semua data yang berkait akan dimaping kedalam sebuah metode
yaitu hashtable atau hash map. Hash table adalah sebuah data struktur yang
memanfaatkan fungsi hash dalam mengasosiasikan sebuah key dengan
sebuah nilai, sehingga key menjadi index dari data array yang disimpan,
dalam hal ini index berbeda dengan kunci tetapi untuk mencari index dihitung
dari kunci dengan menggunakan fungsi hash. Misalkan terdapat data nama
dan nomor telepon, maka tabelnya akan menjadi seperti ini.

Gambar 3 Tabel Hash

Sedangkan dalam penyimpanan kamus data pada penelitian ini yang


menjadi index adalah semua node mulai dari root sampai leaf simpul terakhir
yang kan diurut mulai dari simpul paling kiri ke simpul paling kanan. Dan
huruf-huruf yang terdapat pada edge masing-masing node akan disimpan
sebagai nilai yang ditunjuk oleh index yang berupa node itu sendiri. Setiap
huruf disimpan dalam bentuk integer dimana a direpresentasikan sebagai 1
dan z sebagai 26 dengan nilai biner.
5. Java
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai
komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James
Gosling saat masih bergabung di Sun Microsystems saat ini merupakan
bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi
sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek
yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal.
Aplikasi-aplikasi berbasis Java umumnya dikompilasi ke dalam p-code
(bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM).
Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik
(general purpose), dan secara khusus didisain untuk memanfaatkan
dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang
memungkinkan aplikasi Java mampu berjalan di beberapa platform sistem
operasi yang berbeda, Java dikenal pula dengan slogannya, "Tulis sekali,

jalankan di mana pun". Saat ini Java merupakan bahasa pemrograman yang
paling

populer

digunakan,

dan

secara

luas

dimanfaatkan

dalam

pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi


berbasis web.
Berikut ini adalah kelebihan bahasa pemrograman Java yang menjadi

alasan digunakannya bahasa ini dalam penelitian ini :


Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa
platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali,
jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis
sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti
manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat
dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini
memungkinkan sebuah program berbasis Java dikerjakan diatas operating
system Linux tetapi dijalankan dengan baik di atas Microsoft Windows.
Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux,
Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi
menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs

Java) untuk meninterpretasikan bytecode tersebut.


OOP (Object Oriented Programming - Pemrogram Berorientasi Objek)
Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan
library/perpustakaan (kumpulan program program yang disertakan dalam
pemrograman Java) yang sangat memudahkan dalam penggunaan oleh para
pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini
ditambah dengan keberadaan komunitas Java yang besar yang terus menerus
membuat

perpustakaan-perpustakaan

baru

untuk

melingkupi

seluruh

kebutuhan pembangunan aplikasi.


Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga
menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna
Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke
Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan
mengajarkan Java kepada murid-murid yang baru karena lebih mudah

10

dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan

mengambil jurusan komputer.


Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan
memori sehingga para pemrogram tidak perlu melakukan pengaturan memori
secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

6. Skema Sistem
Dari hasil pembahasan, maka skema sistem yang akan dibangun dapat
digambarkan sebagai berikut :

11

Gambar 4 Skema Sistem

G. METODE PENELITIAN
1. Studi Kepustakaan dan Pengumpulan Data

12

Studi kepustakaan dilakukan dengan cara mengumpulkan, membaca dan


memahami referensi yang terkait dengan topik penelitian, dalam hal ini
permainan Scrabble itu sendiri, teori graf, metode DAWG (Directed
Acyclic Word Graph) Hash table dan hal lain yang berkaitan dengan
penelitian ini.
2. Alat Penelitian
a) Perangkat keras, spesifikasi yang digunakan pada penelitian ini adalah
sebagai berikut.
- Laptop Dell Inspiron 1440
- Processor Intel Dual Core CPU T4500 @2.30 GHz(2 CPU)
- DDR RAM 2048 MB
- HDD 320 GB
b) Perangkat lunak, spesifikasi yang digunakan pada penelitian ini adalah
sebagai berikut.
- Windows 7 Ultimate 32-bit (6.1, Build 7600)
- Microsoft Office 2007
- Microsoft Visio 2007
- Netbeans IDE 7.0.1
H. RELEVANSI
Manfaat yang diharapkan setelah penelitian ini adalah dapat memberikan
kontribusi kepada berbagai pihak baik yang sedang mendalami teori graf, pembuat
game. Diharapkan juga masyarakat umum dapat menikmati aplikasi permainan
ini.

I. HASIL DAN PEMBAHASAN


Hasil yang diharapkan dari tugas akhir ini yaitu sebuah aplikasi permainan
Scrabble yang memiliki pemain komputer yang tidak mudah dikalahkan sehingga
membuat permainan lebih seru dan menantang, dengan begitu dapat membantu
menambah perbendaharaan kata bahasa inggris penggunanya.
J. SISTEMATIKA PENULISAN
BAB I
PENDAHULUAN

13

Terdiri dari latar belakang, rumusan masalah, tujuan, manfaat,


batasan masalah dan metodologi penulisan serta sistematika
penulisan
BAB II

LANDASAN TEORI
Bab ini berisi acuan-acuan yang menjadi landasan dalam
pembuatan tulisan ini serta bab ini juga menjelaskan tentang teoriteori yang berhubungan dengan topik yang diangkat.

BAB III PERENCANAAN DAN PEMBUATAN SISTEM


Berisi langkah-langkah pembuatan sistem.
BAB IV ANALISA DAN PENGUJIAN SISTEM
Berisi tentang analisa terhadap hasil yang diperoleh dari tahap
perencanaan sistem dan simulasi.
BAB V

PENUTUP
Berisikan kesimpulan dari hasil penulisan ini dan saran-saran.

K. JADWAL PELAKSANAAN
No
1
2
3
4
5
6
7

Uraian Kegiatan

Bulan
I

II

III

IV

VI

Studi Literatur
Pembuatan Proposal
Perencanaan Sistem
Pembuatan Sistem
Pengujian dan Analisa
Penulisan Laporan
Penyerahan

L. DAFTAR KEPUSTAKAAN
A.Appel and G.Jacobson, 1988, The world's fastest Scrabble program,
Commn. ACM, 31,(5),572-578,585.
Anonim , 2014, Java, http://id.wikipedia.org/wiki/Java, diakses 2 Mei 2014.
Anonim,

2014,

Directed

Acyclic

Word

http://www.wutka.com/dawg.html, diakses 2 Mei 2014.

Graphs,

14

Anonim,

2014,

Hash

Map

(Java

Platform

SE

http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

7),
diakses

2 Mei 2014.
Anonim , 2014,Scrabble, http://id.wikipedia.org/wiki/Scrabble, diakses 2 Mei
2014.
Arie Lasaprima, Agung Toto Wibowo, ZK Abdurrahman Baizal, Juni 2012,
Implementasi

Algoritma

Perancangan

Directed

Game

Acyclic

Scrabble,

Word

Graph

SNATI

Dalam
2012,

http://download.portalgaruda.org/article.php?article=8587&val=576.
Clifton,
John,
2014,
Scrabble
Rules,
http://www.scrabblesite.com/scrabble/rules/, diakses 6 Mei 2014.
Jonathan L. Gross, Jay Yellen, 2004, Handbook of Graph Theory, CRC Press
LLC, Florida.
Hasim,

2010,

Aturan

Permainan

Scrabble,

http://novenrique.blogspot.com/2010/10/aturan-permainan-Scrabble.html,
diakses 2 Mei 2014.
Shunsuke Ienaga, dkk, 2005, On-line construction of compact directed
acyclic

word

graphs,

http://www.sciencedirect.com/science/article/pii/S0166218X04003464,dia
kses 2 Mei 2014.
Sukarno, Puput Ady 2014, Sejarah Perkembangan Industri Game di
Indonesia,http://m.bisnis.com/industri/read/20140303/105/207515/sejarah
-perkembangan-industri-game-di-indonesia, diakses 2 Mei 2014.

M. OUT LINE
BAB I Pendahuluan
Latar Belakang
Perumusan Masalah
Tujuan Penulisan
Metodologi Penelitian
Sistematika Penulisan
BAB II Tinjauan Pustaka

15

BAB III Metodologi


BAB IV Hasil dan Pembahasan
BAB V Penutup (Kesimpulan dan Saran)
Lhokseumawe, 6 Mei 2014
Pengusul,
Rezky Amelia
NIM. 100170095