Penelitian ini bertujuan untuk membangun suatu aplikasi permainan tradisional dam-daman dengan mengimplementasikan
algoritma backtracking berbasis java desktop. Algoritma backtracking adalah algoritma yang berbasis pada Depth First Search
(DFS) untuk mencari solusi persoalan secara lebih mangkus. Dengan algoritma backtracking, kita tidak perlu memeriksa semua
kemungkinan solusi yang ada, hanya pencarian yang mengarah ke solusi saja yang selalu dipertimbangkan, akibatnya waktu
pencarian dapat dihemat. Aplikasi permainan tradisional dam-daman ini juga mendukung multiplayer dengan menggunakan
pemrograman socket. Metode pengembangan sistem yang digunakan untuk membangun aplikasi ini adalah model waterfall.
Sedangkan pada tahap analisa dan perancangan sistem dilakukan dengan menggunakan Unified Modelling Language (UML).
Hasil akhir dari penelitian ini adalah terciptanya sebuah aplikasi permainan tradisional dam-daman yang mendukung single
player dan multiplayer.
Kata Kunci: Kecerdasan Buatan, Permainan Tradisional, Algoritma Backtracking, Pemrograman socket.
Abstract: The aim of this research was to establish a Unified Modelling Language (UML). The final result of
traditional game aplication, dam-daman by implemented this research was a Dam-daman traditional game
backtracking algorithm with java desktop based. aplication which supports the single player and
Backtracking algorithm is the algorithm which based on multiplayer.
the Depth First Search (DFS) to solve problem and give Keywords: Artificial Intelligence, Traditional Game,
solution efectively. Through the backtracking algorithm, Backtracking Algorithm, Socket programming.
we do not need to check all possibility of providing
I. PENDAHULUAN
solution, but only on the searching which aim at the
Permainan merupakan suatu bentuk hiburan yang sering
oftenly considered solution, therefore the searching time
digunakan manusia untuk menghibur diri sendiri atau
will be efficient. The Dam-daman traditional game
kelompok dari suatu rutinitas sehari-hari. Permainan juga
aplication also supports the multiplayer by using socket
dapat digunakan sebagai alat hubungan atau kenyamanan
programming. The developing system method used for
sosial yang bersifat sangat menyenangkan, selain itu
creating this aplication was the waterfall model. While the
permainan juga bermanfaat bagi manusia, baik itu jasmani
analysing phase and planning system were done by using
maupun rohani.
Permainan Dam-Daman merupakan salah satu permainan Untuk fitur multiplayer,digunakan pemrograman socket,
tradisional, permainan ini berasal dari Indonesia. Dua hal sehinga permainan bisa melibatkan interaksi antara manusia
utama yang harus dipahami dalam permainan dam-daman dan manusia. Socket programming merupakan pemrograman
adalah bidak dan papan main. Bidak biasa dibuat dari batu yang bertujuan agar satu program bisa berinteraksi dengan
maupun kertas. Sedangkan papan main, bisa kertas atau tanah program lainnya dalam satu jaringan, biasa disebut juga
sekalipun yang digambar dengan motif tertentu. Alur dengan pemrograman jaringan. Socket adalah suatu abtraksi
permainan menghabiskan batu atau bidak dari lawan atau yang mana aplikasi dapat mengirim dan menerima data seperti
sampai lawan menyerah. Permainan ini juga bertujuan untuk sama halnya dengan membuka suatu file untuk dibaca dan
melatih daya ingat dan kepekaan indera serta melatih ditulis pada tempat penyimpanan file [3]. Socket
ketelitian dan kecermatan dalam menentukan keputusan, memungkinkan untuk masuk kedalam jaringan dan
karena dalam permainan membutuhkan strategi untuk menjadi berkomunikasi dengan aplikasi lain yang juga masuk kedalam
pemenang. Jadi permainan dam daman ini sangat menarik jaringan yang sama.
untuk dimainkan. Melihat latar belakang diatas, penulis tertarik untuk
Dalam permainan biasanya dikenal dengan istilah single membuat aplikasi permainan tradisional dama-daman,
player dan multiplayer. Multiplayer adalah dimana kita aplikasi permainan dam-daman ini merupakan permainan
bermain melawan orang, sedangkan single player adalah yang berbasis java desktop dan terdapat pengimplementasian
dimana kita tidak harus mencari orang untuk menjadi lawan algoritma backtracking (runut balik), sehingga memudahkan
tanding jika ingin bermain atau dengan kata lain kita lawan bagi masyarakat untuk mempelajari dan memainkan
agen cerdas. Agen cerdas merupakan komputer yang permainan ini. Aplikasi ini nantinya mendukung fitur single
dirancang untuk dapat berpikir seperti pemain manusia player dan multiplayer dengan bantuan pemrograman socket.
dengan analogi Artificial Inteligince (AI). Untuk membuat AI
II. LANDASAN TEORI
dalam sebuah permainan, diperlukan suatu algoritma yang
A. Permainan (Game)
dapat membuat AI ini mampu mengambil keputusan yang
terbaik agar dapat mengalahkan pemain atau setidaknya Permainan merupakan salah satu cara untuk menghibur
menghalau pemain menang. diri, karena permainan merupakan sebuah aktivitas rekreasi
Menurut Suyoto [1] AI merujuk pada satu bidang dengan tujuan bersenang-senang, mengisi waktu luang, atau
komputer yang berupaya melakukan tugas seperti manusia, berolahraga santai, permainan biasanya dilakukan sendiri atau
dalam keadaan ini, komputer tersebut boleh dikatakan cerdas. bersama-sama. Menurut (Pradiyar dkk, 2007) [4] game adalah
Untuk melakukan hal tersebut digunakan suatu algoritma sebuah permainan komputer interaktif yang dikendalikan oeh
pencarian, seperti alnya algoritma backtracking (runut balik). mikroprosesor. Berikut ini adalah elemen dasar yang dimiliki
Menurut Bakri [2] Algoritma ini merupakan perbaikan dari setiap permainan digital (game) diantaranya [5]: grafis,
algoritma bruteforce, yang secara sistematis mencari solusi interface, aktivitas pemain dan sebuah algoritma. Beberapa
persoalan diantara semua kemungkinan solusi yang ada. game (permainan) memiliki suatu aturan yang unik yang
Dengan metode ini, tidak perlu memeriksa semua membedakan dengan game-game lainnya, aturan inilah basis
kemungkinan solusi yang ada. Hanya pencarian yang pengelompokan beberapa game menjadi berbagai genre. Ada
mengarah ke solusi saja yang selalu dipertimbangkan. beberapa game berdasarkan jenis atau genre antara lain: Maze
Akibatnya, waktu pencarian dapat dihemat. Game, Board Game, Card Game, Trading Card Game, Quiz
Game, Puzzle Game, Shooting Game, Shoot Them up,
Adventure Game, Side Scroller Game, Fighting Game, Sport
Game, Racing Game, Simulation Game, Real Time Strategy berpeluang melompati kemungkinan yang ada dalam satu
(RTS) Game dan Role Playing Game (RPG). lompatan.
Permainan tradisional dapat diartikan sebagai satu
kegiatan yang menyenangkan yang dilakukan menurut tradisi,
sehingga menimbulkan rasa puas pada pelakunya [6].
Permainan dam-daman merupakan permainan tradisional
yang berasal dari Indonesia. Dikutip dari
http://www.urangkampoeng.com [7] berikut ini adalah
peraturan dan petunjuk dalam permainan dam-daman:
1. Menggunakan papan permainan, berikut gambar dari Gambar 2 Cara permainan Dam-daman
papan permainan dam-daman: 8. Terdapat sebuah aturan dimana sebuah bidak wajib
memakan bidak lawannyaa jika ada peluang, seperti
Gambar diatas, jadi bidak merah harus menggerakkan
bidak yang ditengah untuk memakan bidak biru tidak
bisa menggerakkan bidak lainnya.
9. Pemain yang kalah adalah pemain yang bidaknya sudah
Gambar 1 Papan Permainan Dam-daman [7] habis.
2. Dalam sebuah papan permainan dam-daman, terdapat
B. Kecerdasan Buatan
titik-titik yang digunakan pijakan pada masing-masing
bidak. Diantara tiap-tiap titik terdapat garis horisontal, Kecerdasan buatan merupakan salah satu bidang ilmu
vertikal dan diagonal yang dijadikan jalur langkah bagi komputer yang didefinisikan sebagai kecerdasan yang dibuat
3. Menggunakan bidak permainan. Pemain 1 dan 2 memiliki tertentu sehingga sistem tersebut seolah-olah dapat berpikir
bidak yang berbeda dengan jumlah 16 bidak untuk seperti manusia. Jadi tujuan ditanamkan kecerdasan buatan
masing-masing pemain. dalam suatu mesin atau aplikasi suapaya suatu sistem seolah-
4. Cara permaianannya adalah dengan cara mengerakan olah dapat berpikir seperti manusian, suatu system atau mesin
bidaknya secara bergantian seperti bermain Catur, ketika tidaklah pintar jika tidak ditanamkan suatu sistem kecerdasan.
pemain A sudah mengerakan bidak maka giliran B, dan Kecerdasan buatan dalam permainan kompuer (game)
5. Bidak hanya bisa dijalankan dengan satu langkah dengan AI paling awal, AI dalam game computer sebenarnya tidaklah
bergerak maju atau ke samping mengikuti jalur (garis) benar-benar cerdas. Game pada dasarnya merupakan set
papan permainan. Bidak tidak bisa bergerak mundur. intruksi kompeks yang dimasukkan ke program yang sudah
6. Bagi bidak yang bisa sampai pada kotak segitiga lawan memprediksi intelegensi pemakainya. Salin itu, isi program
pada baris terakhir, maka bidak itu menjadi bidak raja tersebu memuat prosedur pencarian. Menurut Suyoto [1],
yang bebas berjalan (maju ataupun mundur), asalkan algoritma pencarian adalah sebuah teknik untuk pencarian
masih pada satu garis lurus. sesuatu. Di dalam pencarian ada dua kemungkinan hasil yang
7. Cara mengambil atau memakan bidak lawan dengan cara akan kita dapatkan yaitu kita menemukan yang dicari atau kita
melompati bidak lawan dengan hanya jarak satu titik, dan tidak menemukan yang dicari. Oleh karena itu, kita tidak
dapat secara langsung mengatakan bahwa algoritma pencarian 3. Fungsi pembatas
mewakili AI. Dinyatakan sebagai predikat B(x1, x2, , xk), B bernilai
true jika (x1, x2, , xk) mengarah ke solusi. Jika true,
C. Algoritma Backtracking
maka pembangkitan nilai untuk xk+1 dilanjutkan, tetapi
Teknik runut balik (backtracking) merupakan salah satu
jika false, maka (x1, x2, , xk) dibuang.
teknik dalam penyelesaian masalah secara umum (General
Menurut NST [8] dalam pencarian solusi algoritma
Problem Solving). Adapun dasar dari teknik ini adalah suatu
backtracking, ada beberapa langkah yang dilakukan untuk
teknik pencarian (Teknik Searching). Teknik pencarian ini
mencapai solusi tersebut, yaitu sebagai berikut:
digunakan dalam rangka mendapatkan himpunan penyelesaian
1. Solusi dicari dengan membentuk lintasan dari akar ke
yang mungkin. Dari himpunan penyelesaian yang mungkin ini
daun. Aturan pembentukan yang dipakai adalah
akan diperoleh solusi optimal atau memuaskan [8].
mengikuti aturan pencarian mendalam (DFS). Simpul-
Runut balik (backtracking) adalah algoritma yang berbasis
simpul yang sudah dilahirkan dinamakan simpul hidup
pada Depth First Search (DFS) untuk mencari solusi
(live node). Simpul hidup yang sedang diperluas
persoalan secara lebih mangkus. Runut balik, yang
dinamakan simpul-E (Expand-node).
merupakan perbaikan dari algoritma brute-force, secara
2. Tiap kali simpul-E diperluas, lintasan yang dibangun
sistematis mencari solusi persoalan di antara semua
olehnya bertambah panjang. Jika lintasan yang sedang
kemungkinan solusi yang ada. Dengan metode runut balik,
dibentuk tidak mengarah ke solusi, maka simpul-E
kita tidak perlu memeriksa semua kemungkinan solusi yang
tersebut dibunuh sehingga menjadi simpul mati (dead
ada. Hanya pencarian yang mengarah ke solusi saja yang
node). Fungsi yang digunakan untuk membunuh simpul-E
selalu dipertimbangkan. Akibatnya, waktu pencarian dapat
adalah dengan menerapkan fungsi pembatas (bounding
dihemat. Saat ini algoritma runut balik banyak diterapkan
function). Simpul yang sudah mati tidak akan pernah
untuk program permainan seperti permainan tic-tac-toe,
diperluas lagi.
menemukan jalan keluar dalam sebuah labirin, catur,
3. Jika pembentukan lintasan berakhir dengan simpul mati,
crossword puzzle, sudoku dan masalah-masalah pada bidang
maka proses pencarian diteruskan dengan
kecerdasan buatan (artificial intelligence) [9].
membangkitkan simpul anak yang lainnya. Bila tidak ada
Dalam penerapan algoritma Backtracking ada beberapa
lagi simpul anak yang dapat dibangkitkan, maka
properti yang perlu dipertimbangkan, yaitu properti solusi
pencarian solusi dilanjutkan dengan melakukan runut
persoalan, properti komponen vektor solusi dan properti
balik ke simpul hidup terdekat (simpul orang tua).
kriteria pembatas. Berikut adalah penjabaran properti-properti
Selanjutnya simpul ini menjadi simpul-E yang baru.
tersebut:
Pencarian dihentikan bila kita telah menemukan solusi
1. Solusi persoalan.
atau tidak ada lagi simpul hidup untuk runut balik.
Solusi dinyatakan sebagai vektor dengan n-tuple: X = (x1,
x2, , xn), xi Si Mungkin saja S1 = S2 = = Sn. D. Pemrograman Socket
Contoh: Si = {0, 1}, xi = 0 atau 1 Pengertian socket adalah interface pada jaringan yang
2. Fungsi pembangkit ( nilai xk ) menjadi titik komunikasi antarmesin pada Internet Protocol,
Dinyatakan sebagai predikat: T(k) dan tentunya tanpa komunikasi ini, tidak akan ada pertukaran
T(k) membangkitkan nilai untuk xk, yang merupakan data dan informasi jaringan. Socket terdiri dari elemen-elemen
komponen vektor solusi. utama seperti protokol, local IP, local port, remote IP, dan
remote port [9].
Pemrograman socket adalah cara untuk menggunakan D. Metode Pengembangan Sistem
komponen/API (Application Programming Interface) socket Metode perancangan sistem dalam penelitian aplikasi
untuk membuat sebuah aplikasi. Aplikasi socket umumnya permainan dam-daman ini menggunakan model waterfall.
paket data yang dikirimkan UDP bisa jadi melalui rute yang membandingkan perhitungan manual atau pencarian manual
berbeda-beda, sehingga hasil yang diterima bisa jadi tidak pergerakan dari agen dengan pergerakan agen dalam sistem
pengujian algoritma dengan perhitungan manual dengan Setelah didapatkan hasil pergerakan yang dilakukan agen
pengujian algoritma yang telah ditanam didalam aplikasi cerdas, selanjutnya pengujian dilakukan pada aplikasi
permainan. Pada gambar dibawah ini agen bermain sebagai permainan yang telah dibuat. Setelah dilakukan pengujian
bidak biru dan mendapat giliran melangkah. pada aplikasi permainan ternyata hasilnya sama yaitu agen
cerdas akan menggerakan bidak pada [5][0] kemudian
bergerak ke [4][0], berikut gambar perubahan posisi yang
terjadi:
VII. SARAN
Berdasarkan hasil pengerjaan yang diperoleh maka penulis
mempunyai saran-saran untuk meningkatkan kinerja dan
pengembang aplikasi sebagai berikut:
1. Menambahkan fungsionalitas yang baru, seperti
terdapatnya tingkatan permainan.
2. Membandingkan algoritma backtracking dengan algoritma
lainnya untuk mengetahui optimasi algoritma ini sebagai
kecerdasan buatan pada permainan dam-daman.
3. Mengembangkan aplikasi yang dapat digunakan pada
sistem operasi mobile, seperti android, iphone dan
blackberry.
REFERENSI
[1] Suyoto. Intelengensi Buatan : Teori dan Pemrograman. Yogyakarta:
Gava Media. 2004.
[2] Bakri, Addhal Huda. Analisis dan Implementasi Algoritma
Backtracking pada Permainan Congklak. [Online]. Available :
http://repository.usu.ac.id
[3] Kurniawan. Agus. 2011. Dasar Pemrograman Socket dengan Java.
[Online]. Available : http://blog.aguskurniawan.net/post/ Dasar-
Pemrograman-Socket-Dengan-Java.aspx
[4] Pradiyar, dkk, 2007. Analisa dan Perancangan Game 2d Strategi Pada
Pc Berbasiskan Engine Torque Game Builder. [Online] Available :
http://library.binus.ac.id.
[5] Zain, Moh.Fatoni. 2009. Game Simulasi Out-Boud Jelajah Malang.
[Online]. Available : http://lib.uin-malang.ac.id
[6] Sartika, Wida. 2010. Perancangan Media Informasi Permainan
Tradisional Jawa Barat. [Online]. Available : http://elib.unikom.ac.id/.
[7] Permainan Sunda: Cara Bermain Dam Daman. [Online]. Available :
http://www.urangkampoeng.com/.
[8] NST, Muhammad Rival Anggi. 2010. Analisis dan Implementasi
Algoritma Runut Balik (Backtracking) pada Permainan Magic Square.
[Online]. Available : http://repository.usu.ac.id.
[9] Munir, Rinaldi. 2013. Algoritma Runut-Balik. [Online]. Available :
http://informatika.stei.itb.ac.id~rinaldi.munirStmik2012-
2013Algoritma%20Runut-balik.ppt.