Penerapan Algoritma Negamax Untuk Menghasilkan Langkah Yang Optimal Pada Permainan Dam Daman
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Permainan tradisional merupakan kekayaan khasanah budaya lokal, ragam
permainan tradisional sangat banyak ditemukan di Indonesia sehingga permainan
tradisional ini seharusnya dipertahankan dan dilestarikan sebagai warisan budaya
bangsa. Salah satu permainan tradisional adalah Damdaman, permainan ini berasal
dari daerah jawa sekalipun di daerah lain ada. Damdaman biasanya dimainkan oleh
anak laki-laki walaupun tidak ada larangan anak perempuan untuk
memainkankannya karena termasuk permainan kompetitif, mengasah otak, ada
yang kalah dan menang. Permainan ini dimainkan oleh dua orang pemain. Tujuan
permainan ini adalah untuk menghabiskan bidak lawan dengan aturan yang telah
disepakati bersama sebagai akhir permainannya [1].
Pada permainan dam daman ini terdapat banyak langkah. Dari beberapa
langkah tersebut ada yang menguntungkan, ada juga yang merugikan pemain. Jika
pemain mengambil langkah bidak secara acak, maka kemungkinan kalah akan lebih
besar. Untuk mencari langkah pergerakan bidak digunakan algoritma Depth-First
Search. Salah satu algoritma DFS adalah algoritma
negamax
. Algoritma
negamax
adalah sebuah penyederhanaan dari algoritma minimax. Algoritma ini
menggunakan dua buah fungsi, satu fungsi untuk memaksimalkan dan satu untuk
meminimalkan kedua fungsi tersebut digabung menjadi satu fungsi yang dapat
menegasikan dan terbalik setiap kali pemanggilannya [2].
Pada penelitian mengenai permainan dam daman yang diterapkan dengan
menggunakan algoritma minimax. Algoritma minimax cocok dalam menyelesaikan
masalah dalam penelitian tersebut [3]. Penelitian lain pada aplikasi permainan
gomoku dengan algoritma
negamax
dan
alpha-beta search
, didapatkan bahwa
penggunaan metode
negamax
dan dapat memberikan solusi pencarian langkah
terbaik [4].
(2)
Algoritma
negamax
digunakan untuk mencari semua kemungkinan langkah
yang ada. Belum ada penelitian yang menggunakan algoritma
negamax
untuk
diterapkan kedalam permainan dam daman. Berdasarkan penjelasan tersebut, maka
dalam penelitian ini akan menerapkan algoritma
negamax
untuk menghasilkan
langkah yang optimal pada permainan dam daman. Algoritma
negamax
diharapkan
dapat menyelesaikan permainan dam daman.
1.2. Perumusan Masalah
Berdasarkan latar belakang diatas, masalah yang akan dibahas dalam
penelitian ini adalah bagaimana cara menerapkan algoritma
negamax
kedalam
permainan dam daman untuk mencari kemungkinan langkah yang bisa diambil.
1.3. Maksud dan Tujuan
Maksud dari penelitian ini adalah menerapkan algoritma
negamax
pada
permainan dam daman.
Tujuan dari penelitian ini adalah untuk mengetahui banyaknya kemungkinan
langkah yang bisa diambil dan tingkat kemenangan menggunakan algoritma
negamax
.
1.4. Batasan Masalah
Batasan masalah bertujuan untuk memudahkan penelitian dan menghindari
meluasnya permasalahan, adapun batasan masalah pada penelitian ini yaitu :
1.
Algoritma yang digunakan adalah algoritma
negamax
dengan
alpha beta
pruning
2.
Pemodelan dan perancangan sistem menggunakan pemodelan berbasis
objek dengan tools UML (
Unified Modeling Language
).
3.
Implementasi algoritma menggunakan bahasa pemrograman C#.
1.5.Metodologi Penelitian
Metode penelitian yang digunakan adalah metode deskriptif. Metode
deskriptif adalah suatu metode dalam penelitian untuk membuat gambaran dengan
(3)
3
cara mengumpulkan data, menganalisa data, membuat suatu pemecahan masalah,
dan kemudian disusun untuk menarik kesimpulan mengenai masalah tesebut.
Teknik yang digunakan pada saat pengumpulan data dan pembangunan
aplikasi adalah sebagai berikut:
1.5.1.
Metode Pengumpulan Data
Metode pengumpulan data dalam penelitian ini adalah menggunakan studi
literatur. Studi literatur adalah teknik pengumpulan data dengan cara
mengumpulkan literatur, jurnal, buku online dan bacaan-bacaan lainnya serta
memanfaatkan media internet yang berkaitan dengan permainan dam daman dan
algoritma
negamax
.
1.5.2.
Metode Pembangunan Perangkat Lunak
Metode perangkat lunak yang digunakan dalam penelitian ini adalah t
he
linear sequential model
dari buku Pressman
.
Tahapan-tahapan yang terdapat dalam
metode
the linear sequential model
dapat dilihat pada Gambar 1.1 sebagai berikut:
1.
Analysis
Pada tahap ini dilakukan analisis metode, algoritma dan kebutuhan yang
digunakan dalam pembangunan sistem. Analisis yang dilakukan adalah
anaslisis algoritma, analisis pada permainan, analisis fungional dan
analisis non fungsional.
2.
Design
Pada tahap ini bertujuan untuk memberikan gambaran apa yang harus
dikerjakan, arsitektur perangkat lunak, representasi antar muka. Proses ini
menerjemahkan kebutuhan menjadi representasi perangkat lunak sebelum
melakukan
coding.
3.
Code
Tahap ini merupakan tahapan untuk membangun program. Dalam tahap
ini juga dilakukan pemeriksaan terhadap sistem yang dibuat.
(4)
4.
Test
Tahap ini adalah tahap pengujian sistem, apakah sudah sesuai dengan
desain dan apakah ada kesalahan atau tidak.
(5)
5
1.6.
Sistematika Penulisan
Sistematika penulisan skripsi ini disusun untuk memberikan gambaran umum
tentang penelitian, sistematika penulisan tersebut sebagai berikut:
BAB I PENDAHULUAN
Menguraikan tentang latar belakang permasalahan, rumusan masalahan,
maksud dan tujuan, yang kemudian diikuti dengan batasan masalah,
metodologi penelitian, serta sistematika penulisan.
BAB II LANDASAN TEORI
Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik
penelitian mengenai permainan, permainan dam daman, algoritma
negamax,
algoritma
alpha beta pruning, UML
dan unity yang berguna dalam proses
analisis permasalahan serta tinjauan terhadap penelitian-penelitian serupa
yang telah pernah dilakukan sebelumnya termasuk sintesisnya.
BAB III ANALISIS DAN PERANCANGAN
Bab ini berisi analisis dalam pembangunan sistem yaitu gambaran umum
sistem, analisis basis data, analisis kebutuhan fungsional dan analisis
kebutuhan non fungsional. Pada perancangan berisi mengenai perancangan
data, perancangan menu, perancangan antarmuka dari permainan dam daman
BAB IV IMPLEMENTASI DAN PENGUJIAN
Bab ini berisi pembahasan mengenai implementasi serta penjelasan tentang
teknik dan strategi pengujian penerapan algoritma
Negamax
pada permainan
dam daman
BAB V KESIMPULAN DAN SARAN
Bab ini berisi hal-hal yang bisa disimpulkan dari hasil keseluruhan
penelitian dan aplikasi yang dibangun, serta saran untuk pengembangan
sistem selanjutnya
(6)
(7)
7
BAB II
LANDASAN TEORI
2.1.
Permainan
Istilah permainan dari kata dasar main. Menurut buku Kamus Besar Bahasa
Indonesia, edisi kedua, terbitan Departemen Pendidikan dan Kebudayaan Balai
Pustaka arti kata main adalah melakukan permainan untuk menyenangkan hati atau
melakukan perbuatan untuk bersenang-senang baik menggunakan alat-alat tertentu
atau tidak menggunakan alat. Jadi main adalah kata kerja, sedang permainan
merupakan kata benda jadian untuk memberi sebutan pada sesuatu yang jika
dilakukan dengan baik akan membuat senang hati si pelaku [6].
2.2.
Permainan Dam Daman
Permainan dam daman termasuk permainan tradisional, permainan ini
dimainkan oleh dua pemain, permainan ini dimainkan di papan atau karton yang
telah digambar. Dalam permainan ini terdapat 16 bidak untuk setiap pemain.
Untuk memulai permainan dam daman, langkah-langkahnya sebagai berikut:
1.
Pemain harus berjumlah 2 orang
2.
Pemain harus mencari batu/kerikil untuk bidaknya tetapi setiap pemain tidak
boleh sama
3.
Jumlah bidak untuk setiap pemain ada 16 buah
4.
Gambar papan permainan dam daman, seperti pada gambar 2.1
5.
Susun setiap batu/kerikil tadi pada papan permainan seperti pada gambar 2.1
6.
Lakukan suit untuk menentukan pemain giliran pertama.
(8)
Gambar 2.1 Papan Permainan Dam Daman
2.2.1.
Langkah Bidak Pada Dam Daman
Langkah bidak pada permainan Damdaman terdiri dari dua langkah yang
berbeda, yaitu langkah bidak biasa dan langkah bidak raja. Bidak biasa hanya bisa
melakukan langkah ke samping, depan dan diagonal. Sedangkan bidak raja bisa
bergerak bebas. Untuk bisa menjadi bidak raja harus melewati ujung yang
berbentuk segitiga di daerah lawan atau bidak tersisa 3.
(9)
a.
Untuk memakan bidak lawan dengan cara melewati bidak lawan.
Gambar 2.3 Cara Memakan Bidak
b.
Jika ada kesempatan untuk memakan bidak lawan tapi tidak dilakukan, maka
hal tersebut dinamakan dam. Dan lawan berhak mengambil 3 bidak secara
bebas.
Gambar 2.4 Dam
c.
Jika jumlah bidak tersisa 3 atau bidak melewati ujung dari daerah lawan, maka
bidak tersebut dikatan sakti. Bidak yang sakti bisa bebas bergerak lebih dari
satu langkah ke depan, ke belakang, ke samping ataupun bergerak diagonal.
(10)
2.3.
Artificial Intelligence
Sebagian kalangan menerjemahkan
Artificial Intelligence
sebagai kecerdasan
buatan, kecerdasan artifisial, intelijensia artifisial, atau intelijensia buatan. Istilah
Artificial Intelligence
sengaja tidak diterjemahkan ke dalam bahasa Indnesia
karena istilah tersebut sudah sangat akrab bagi orang Indonesia. begitu juga
dengan singkatannya yaitu AI, sudah sangat melekat di berbagai media ilmiah
maupun non ilmiah.
Sturat Russel dan Peter Norvig mengelompokkan definisi AI, berbeda, ke
dalam empat kategori, yaitu [7] :
1.
Thinking Humanly
:
the cognitive modeling approach
Pendekatan ini dilakukan dengan dua cara sebagai berikut :
a.
Melalui introspeksi : mencoba menangkap pemikiran-pemikiran kita
sendiri pada saat kita terpikir. Tetapi, seorang psikolog barat
mengatakan “
how do you know that you understand
?” bagaimana
anda tahu bahwa anda mengerti? Karena pada saat anda menyadari
pemikiran anda. Sehingga definisi ini terkesan mengada-ngada dan
tidak mungkin dilakukan.
b.
Melalui eksperimen-eksperimen psikologi
2.
Acting Humanly
: the Turing test approach
Pada tahun 1950, Alan Turing merancang suatu ujian bagi komputer
berintelijensia untuk menguji apakah komputer tersebut mampu mengelabui
seorang manusia yang menginterogasinya melalui
teletype
(komunikasi berbasis
teks jarak jauh). Jika
interrogator
tidak dapat membedakan yang diinterogasi
adalah manusia atau komputer, maka komputer berintelijensia tersebut lolos dari
Turning test. Komputer tersebut perlu memiliki kemampuan :
Natural Language
Processing
,
Knowledge Representation
,
Automated Reasoning
,
Machine
Learning
,
Computer Vision
,
Robotics
.
Turing test
sengaja menghindari interaksi
fisik antara
interrogator
dan komputer karena simulasi fisik manusia tidak
memerlukan intelijensia.
(11)
3.
Thinking Rationally : the laws of thought approach
Terdapat dua masalah dalam pendekatan ini, yaitu :
a.
Tidak mudah untuk membuat pengetahuan informal dan menyatakan
pengetahuan tersebut ke dalam
formal term
yang diperlukan oleh notasi
logika, khususnya ketika pengetahuan tersebut memiliki kepastian
kurang dari 100%.
b.
Terda
pat perbedaan besar antara dapat memecahkan masalah “dalam
prinsip” dan memecahkannya “dalam dunia nyata”.
4.
Acting Rationally : the rational agent approach
Membuat inferensi yang logis merupakan bagian dari suatu
rational agent
.
Hal ini disebabkan satu-satunya cara untuk melakukan aksi secara rasional adalah
dengan menalar secara logis. Dengan menalar secara logis, maka bisa didapatkan
kesimpulan bahwa aksi yang diberikan akan mencapai tujuan atau tidak. Jika
mencapai tujuan, maka agent dapat melakukan aksi berdasarkan kesimpulan
tersebut.
Thinking humanly
dan
acting humanly
adalah dua definisi dalam arti
yang sangat luas. Sampai saat ini, pemikiran manusia yang diluar rasio, yakni
reflex dan intuitif berhubungan dengan perasaan), belum dapat ditirukan
sepenuhnya oleh komputer. Dengan demikian, kedua definisi ini dirasa kurang
tepat untuk saat ini. Jika kita menggunakan definisi ini, maka banyak produk
komputasi cerdas saat ini yang tidak layak disebut sebagai produk AI.
Definisi
thinking rationally
terasa lebih sempit daripada
acting rationally
. Oleh
karena itu, definisi AI yang paling tepat untuk saat ini adalah
acting rationally
dengan pendekatan
rational agent
. Hal ini berdasarkan pemikiran bahwa komputer
bisa melakukan penalaran secara logis dan juga bisa melakukan aksi secara rasional
berdasarkan hasil penalaran tersebut.
2.3.1.
Teknik Pemecahan Masalah AI
1.
Searching
Terdapat beberapa langkah dalam teknik
searching
atau pencarian
ini.Langkah pertama yang harus dilakukan adalah mendefinisikan ruang masalah
(12)
untuk suatu masalah yang dihadapi. Ruang masalah ini dapat digambarkan
sebagai himpunan keadaan (
state
) atau bisa juga sebagai
himpunan rute dari keadaan awal (
initial state
) menuju keadaan tujuan (
goal
state
). Langkah kedua adalah mendefinisikan aturan produksi yang digunakan
untuk mengubah suatu
state
ke
state
lainnya. Langkah terakhir adalah memilih
metode pencarian yang tepat sehingga dapat
menemukan solusi terbaik dengan usaha yang minimal. Terdapat banyak
metode pencarian yang telah diusulkan. Semua metode yang ada dapat dibedakan
mendadi dua jenis, yaitu :
a.
Blind/Un-informed Search
1.
Breadth-First Search
(BFS)
2.
Depth-First Search
(DFS)
3.
Depth-Limited Search
(DLS)
4.
Uniform Cost Search
(USC)
5.
Iterative-Deepening Search
(IDS)
6.
Bi-Directional Search
(BDS)
b.
Metode Pencarian Heuristik
1.
Generate-and-Test
(Bangkitkan-dan-Uji)
2.
Hill Climbing
(Pendakian Bukit)
3.
Simulated Annealing
(SA)
4.
Best-First Search
(Pencarian Terbaik Terlebih Dahulu)
(13)
6.
A* (A
star
atau A bintang)
7.
Iterative Deepening
A* (IDA*)
8.
Simplified Memory-Bounded
A* (SMA*)
9.
Bi-directional
A* (BDA*)
10.
Modified Bi-directional
A* (MBDA*)
11.
Dinamic Weighting
A* (DWA*)
2.
Reasoning
Teknik
reasoning
atau penalaran merupakan teknik penyelesaian masalah
dengan cara mempresentasikan masalah kedalam basis pengetahuan (
knowledge
base
) menggunakan
logic
atau bahasa formal (bahasa yang dipahami komputer).
3.
Planning
Planning
adalah suatu metode penyelesaian masalah dengan cara memecah
masalah ke dalam sub-sub masalah yang lebih kecil, menyelesaikan sub-sub
masalah satu demi satu kemudian menggabungkan solusi-solusi dari sub-sub
masalah tersebut menjadi sebuah solusi lengkap dengan tetap mengingat dan
menangani interaksi yang terdapat pada sub-sub masalah tersebut.
4.
Learning
Pada ketiga teknik sebelumnya, kita harus mengetahui aturan yang berlaku
untuk sistem yang akan kita bangun. Tetapi pada masalah tertentu, terkadang kita
tidak bisa mendefinisikan aturan secara benar dan lengkap karena data-data yang
kita dapatkan tidak lengkap. Melalui suatu teknik yang disebut
learning
, kita bisa
secara otomatis menemukan aturan yang diharapkan bisa berlaku umum untuk
data
–
data yang belum kita ketahui [7].
(14)
2.4.
Algoritma
Negamax
Algoritma
negamax
merupakan bentuk sederhana dari algoritma minimax
yang melakukan pencarian dengan menggunakan teknik algoritma DFS yang akan
menelusuri setiap node untuk memperoleh hasil yang maksimum. Algoritma
negamax
identik dengan algoritma minimax untuk karakteristik kinerja. Meskipun
sederhana untuk menerapkan dan cepat untuk mengeksekusi, itu skala dengan cara
yang sama dengan pohon-pohon besar. Sebagian besar optimasi yang dapat
diterapkan untuk
negamax
ing dapat dibuat untuk bekerja dengan ketat mendekati
minimaxing [8].
Pseudocode
algoritma dari
Negamax
adalah sebagai berikut:
(15)
2.5.
Alpha Beta Prunning
Algoritma
negamax
efisien tapi memeriksa posisi papan lebih dari yang
diperlukan.
Alpha Beta pruning
memungkinkan algoritma untuk mengabaikan
bagian dari pohon yang tidak mengandung langkah yang terbaik . Hal ini terdiri
dari dua jenis pemangkasan:
alpha
dan
beta
[8].
2.5.1.
Alpha prunning
Untuk memangkas dengan cara ini, kita perlu melacak skor terbaik yang dapat
dicapai. Faktanya, nilai ini membentuk batas bawah pada skor yang dicapai.
Kemungkinan menemukan urutan yang lebih baik dari dari langkah dalam
pencarian, tetapi kita tidak akan pernah menerima urutan langkah yang memberi
kita nilai rendah. Ini terikat lebih rendah disebut nilai alpha (kadang-kadang, tapi
jarang, ditulis sebagai huruf Yunani α), dan pemangkasan yang disebut
alpha
pruning.
Dengan melacak nilai
alpha
, kita dapat menghindari mempertimbangkan
langkah apapun dimana lawan memiliki kesempatan untuk membuatnya lebih
buruk. Kita tidak perlu khawatir tentang berapa banyak langkah yang lebih buruk
dari lawan yang bisa dibuatnya. kita sudah tahu bahwa kita tidak akan memberinya
kesempatan [8].
2.5.2.
Beta Prunning
Beta pruning bekerja dengan cara yang sama. Nilai beta (β lagi, jarang
ditulis) melacak sebuah batas atas dengan harapan untuk mendapatkan nilai. Kami
memperbarui nilai beta ketika kita menemukan urutan pergerakan yang lawan bisa
untuk memaksa kita ke dalam.
Pada saat itu kami tahu tidak ada cara untuk mencetak lebih dari nilai beta,
tapi mungkin ada beberap urutan belum ditemukan yang dapat digunakan untuk
membatasi kita bahkan lebih jauh. Jika kita menemukan urutan dari gerakan bahwa
skor lebih besar dari nilai beta, maka kita bisa mengabaikan itu, karena kita tahu
kita akan tidak pernah diberi kesempatan. Alpha dan beta nilai bersama-sama
memberikan jendela skor. Kita tidak akan pernah memilih untuk membuat gerakan
yang skor kurang dari alpha, dan lawan kami tidak akan pernah membiarkan kita
(16)
membuat gerakan untuk mendapatkan nilai lebih dari beta. Jika cabang pohon
ditemukan yang berada di luar nilai-nilai ini, maka cabang dapat dipangkas. Karena
pergantian antara meminimalkan dan memaksimalkan untuk setiap pemain, hanya
satu nilai yang perlu diperiksa pada setiap posisi papan. Pada posisi papan di mana
itu adalah lawan untuk bermain, kita meminimalkan skor, sehingga hanya skor
minimal dapat berubah dan kita hanya perlu memeriksa terhadap alpha. Jika itu
adalah giliran kami untuk bermain, kita memaksimalkan nilai, dan sehingga hanya
beta yang diperlukan [8].
(17)
Berikut adalah
pseudocode
dari algoritma
negamax
dengan
alpa beta pruning
Gambar 2.7 Pseudocode algoritma
negamax
dengan
alpha beta pruning
[8]
2.6.
Pemograman Berorientasi Objek
Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat
lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang
berisi data dan operasi yang diberlakukan terhadapnya. Metodologi berorientasi
objek merupakan suatu cara bagaimana sistem perangkat lunak dibangun melalui
pendekatan objek secara sistematis. Metode berorientasi objek didasarkan pada
penerapan prinsip-prinsip pengelolaan kompleksitas. Metode berorientasi objek
meliputi rangkaian aktivitas analisis berorientasi objek, perancangan berorientasi
objek, pemrograman berorientasi objek, dan pengujian berorientasi objek [9].
(18)
Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi
lama banyak menimbulkan masalah seperti adanya kesulitan pada saat
mentransformasi hasil dari satu tahap pengembangan ke tahap berikutnya, misalnya
pada metode pendekatan terstruktur jenis aplikasi yang dikembangkan saat ini
berbeda dengan masa lalu. Aplikasi yang dikembangkan pada saat ini sangat
beragam (aplikasi bisnis,
real-time
,
utility
, dan sebagainya) dengan platform yang
berbeda-beda,
sehingga
membutuhkan
tuntutan
kebutuhan
metodologi
pengembangan yang dapat mengakomodasi ke semua jenis aplikasi tersebut.
Keuntungan menggunakan metodologi berorientasi objek adalah sebagai
berikut :
1.
Meningkatkan Produktivitas
Karena kelas dan objek yang ditemukan dalam suatu masalah dapat
dipakai ulang untuk masalah lainnya yang melibatkan objek tersebut
(
reusable
).
2.
Kecepatan Pengembangan
Karena sistem yang dibangun dengan baik dan benar pada saat
analisis dan perancangan akan menyebabkan berkurangnya kesalahan pada
saat pengkodean.
3.
Kemudahan Pemeliharaan
Karena dengan model objek, pola-pola yang cenderung tetap dan
stabil dapat dipisahkan dengan pola-pola yang mungkin sering
berubah-ubah.
4.
Adanya Konsistensi
Karena sifat pewarisan dan penggunaan notasi yang sama pada saat
analisis, perancangan maupun pengkodean.
5.
Meningkatkan Kualitas Perangkat Lunak
Karena pendekatan pengembangan lebih dekat dengan dunia
nyatadan adanya konsistensi pada saat pengembangannya, perangkat lunak
yang dihasilkan akan mampu memenuhi kebutuhan pemakai serta
mempunyai sedikit kesalahan.
(19)
Saat ini sudah banyak bahasa pemrograman berorientasi objek. Banyak orang
berfikir bahwa pemrograman berorientasi objek identik dengan bahasa java.
Memang bahasa java merupakan bahasa yang paling konsisten dalam
mengimplementasikan paradigma pemrograman berorientasi objek. Namun
sebenarnya bahasa pemrograman yang mendukung pemrograman berorientasi
objek tidak hanya bahasa java [9].
2.7.
UML (
Unified Modeling Language
)
Pada perkembangan teknik pemrograman berorientasi objek, muncul sebuah
standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun
dengan menggunakan teknik pemrograman berorientasi objek, yaitu
Unified
Modeling Language
(UML). UML muncul karena adanya kebutuhan pemodelan
visual untuk menspesifikasikan, menggambarkan, membangun, dan dokumentasi
dari sistem perangkat lunak. UML merupakan bahasa visual untuk pemodelan dan
komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teks-teks
pendukung.
UML hanya berfungsi untuk melakukan pemodelan. Jadi penggunaan UML
tidak terbatas pada metodologi tertentu, meskipun pada kenyataanya UML paling
banyak digunakan pada metodologi berorientasi objek. Seperti banyak kita ketahui
bahwa banyak hal di dunia informasi yang tidak dapat dibakukan, semua tergantung
kebutuhan, lingkungan, dan konteksnya.
Begitu juga dengan perkembangan penggunaan UML bergantung pada level
abstraksi penggunanya. Jadi, belum tentu pandangan yang berbeda dalam
penggunaan UML adalah suatu yang salah, tapi perlu ditelaah dimanakah UML
digunakan dan hal apa yang ingin divisualkan. Secara analogi jika dengan bahasa
yang kita gunakan sehari-hari, belum tentu penyampaian bahasa dengan puisi
adalah hal yang salah. Sistem informasi bukanlah ilmu pasti, maka jika ada banyak
perbedaan dan interpretasi di dalam bidang sistem informasi merupakan hal yang
sangat wajar [9].
(20)
2.7.1.
Use Case
Diagram
Secara grafik menggambarkan interaksi antara sistem, hal-hal diluar sistem,dan
user. Dengan kata lain, mereka mengambarkan siapa yang akan memakai sistem
dan dengan cara itu seorang user akan berinteraksi dengan sistem.
Use-case
merupakan urutan langkah yang secara tindakan saling terkait ( Skenario ), baik
termotivasi maupun secara manual, untuk tujuan melengkapi satu tugas bisnis
tunggal.
Notasi yang digunakan dalam
use-case
diagram antara lain :
1.
Actor
Adalah posisi yang dimiliki user terhadap sistem. Yang menjadi
actor
dapat
berupa manusia,
hardware
atau sistem lain yang berhubungan dengan sistem yng
berjalan. Atau
actor
adalah sesuatu yang memerlukan interaksi dengan sistem untuk
bertukar informasi.
2.
Use
–
case
simbol
Menggambarkan sekumpulan urutan, dimana setiap urutan mewakili intervensi
antara
actor
dengan sistem.
Use-case
symbol
mempresentasikan fungsionalitas
sistem secara keseluruhan.
(21)
Deskripsi
Use-case
Bagian umum kejadian
use-case
adalah deskripsi
use-case
, yaitu langkah demi
langkah mulai dengan pelaku menginisialisasi use-case dan melanjutkan hingga
akhir kejadian bisnis. Dimana dalam deskripsi
use-case
terdapat :
a. Nama
use-case
(
use-case
), merupakan nama dari suatu
use-case
.
b. Aktor (
actor
), pelaku yang berpartisipasi didalam suatu
use-case.
c. Tujuan (
goal
), tujuan dari
use-case
.
d. Prakondisi (
precondition
), batasan pada keadaan sistem sebelum use-case
dapat dieksekusi.
e. Ringkasan (
summary
), deskripsi ringkasan pendek yang berisi jumlah
kalimat yang menunjukan secara garis besar tujuan
use-case
dan berbagai
kegiatanya.
f.
Related use-case
,
use-case
yang saling berhubungan.
g. Langkah
–
langkah (
steps
), menjelaskan setiap langkah dari
use-case
dengan mengunakan dua kolom, dimana kolom sebelah kiri menunjukan aksi dari
pelaku dan kolom sebelah kanan merupakan respon yang diberikan oleh sistem.
2.7.2.
Activity
Diagram
Activity
diagram atau diagram aktivitas adalah sebuah diagram yang dapat
digunakan untuk menggambarkan secara grafis aliran proses bisnis, langkah
langkah sebuah
use-case
atau logika
behavior object
. Diagram ini serupa dengan
flowchart
, dimana secara grafis diagram ini menggambarkan aliran sekuential
dengan
flowchart
dimana diagram ini menggambarkan mekanisme kegiatan
paralel.
(22)
Oleh karena itu, diagram ini sangat berguna untuk memodelkan kegiatan
yang akan dilakukan saat sebuah operasi dieksekusi dan untuk memodelkan hasil
–
hasil dari kegiatan ini, seperti memodelkan
event
yang menyebabkan
window
akan
ditampilkan atau ditutup.
Dibawah ini merupakan simbol-simbol yang ada pada diagram aktivitas :
a.
Initial node
Lingkaran yang diisi penuh merupakan awal mulainya dari diagram ini.
Initial node
tidak harus ada, tetapi dengan mengunakanya membuat
diagramnya lebih mudah untuk dibaca.
b.
Activity
Segi empat bersudut tumpul menggambarkan kegiatan yang perlu
dilakukan. Secara
activity
bisa secara fisik, seperti inspect
Forms
, atau secara
elektronik, seperti
Display Create Student Screen
.
c.
Control Flow
(23)
Panah yang ada di diagram, menggambarkan sasaran yang mengawali
kegiatan.
d.
Fork
Bar hitam dengan satu
flow
yang ke dalamnya dan beberapa
flow
lainnya
meninggalkannya, merupakan bar sinkronissi dimana kegiatan dapat dilakukan
secara paralel.
e.
Join
Bar hitam dengan satu
flow
mengarah ke dalamnya dan ada satu
flow
yang
meninggalkannya, merupakan bar sinkronisasi dimana beberapa aktivitas yang
mempunyai tujuan yang sama dari keduannya digabung menjadi satu.
f.
Decicion
Gambar sebuah wajik, menggambarkan sebuah kegiatan keputusan.
g.
Final Node
Gambar lingkaran yang diisi penuh dan ada batas lagi di luarnya,
menggambarkan akhir dari sebuah proses.
2.7.3.
Class
Diagram
Class
diagram merupakan salah satu diagram struktur statis yang
menggambarkan struktur hubungan antar kelas.
Class
disgram digunakan untuk
mensimulasikan objek-objek dalam dunia nyata ke dalam sistem yang akan
dibangun. Notasi UML pada class diagram adalah sebuah persegi yang dibagi
menjadi 3 area, yaitu nama kelas, atribut, dan operasi (
method
).
Dalam sistem yang akan dibangun, kelas-kelas akan dihubungkan secara
konseptual. Hubungan ini disebut asosiasi.
Class
diagram dapat juga menggambarkan keanekaragaman (
multiplicity
),
yaitu jumlah objek dari suatu kelas yang berhubungan dengan sebuah objek dari
kelas yang berasosiasi.
(24)
Gambar 2.10 Contoh
class
diagram
2.7.4.
Sequence
Diagram
Sequance
diagram digunakan terutama untuk menunjukan interaksi antar
objek dalam urutan sekuensial.
Sequance
diagram sangat berguna untuk
mengkomunikasikan bagaimana objek-objek berinteraksi dalam suatu proses
bisnis. Analisis sistem umumnya mengunakan
sequance
diagram untuk
memperjelas
use case
.
Sequance
diagram terdiri dari objek-objek yang digambarkan dengan
sebuah persegi yang memiliki nama. Objek-objek tersebut diletakan diatas garis
hidup tersebut, ada kotak kecil memanjang yang dinamakan aktivasi. Aktivasi
mempresentasikan eksekusi dari operasi yang objek lakukan.
Suatu objek dapat bertukar pesan dengan objek lain. Pesan tersebut digambarkan
sebagai sebuah panah dari garis hidup suatu objek ke objek lain.
Ada empat jenis pesan yang bisa digunakan, yakni pesan sederhana (
simple
message
), pesan sinkron (
synchronous message
), pesan asinkron (
asynchronous
(25)
message
), dan pesan nilai pengembalian (
retrun value
). Pesan sederhana digunakan
untuk memindahkan kontrol dari satu objek ke objek lain. Pesan sinkron digunakan
apabila suatu objek harus menunggu jawaban dari objek lain (yang dipanggil)
terhadap pesan tersebut sebelum melanjutkan proses lainnya. Pesan asinkron
digunakan apabila suatu objek tidak perlu menunggu jawaban dari objek lain
sebelum melanjutkan proses lainnya. Sequance diagram merepresentasikan waktu
dan arah vertikal, dari atas ke bawah. Pesan yang lebih atas menandakan bahwa
pesan tersebut terjadi terlebih dahulu.
(26)
(27)
83
BAB V
KESIMPULAN DAN SARAN
Kesimpulan merupakan ringkasan yang diambil dari pembahasan perangkat
lunak yang dibuat, dimana perangkat lunak yang dibuat adalah penerapan algoritma
negamax
pada permainan dam daman, sedangkan saran diberikan untuk
penggunaan sistem ini yang merupakan hasil perancangan yang dapat menjadi
bahan referensi untuk meningkatkan kinerja sistem ini agar lebih baik.
5.1.
Kesimpulan
Berdasarkan hasil penelitian mengenai penerapan algoritma
negamax
kedalam
permainan dam daman, dapat disimpulkan bahwa
1.
Banyaknya kemungkinan langkah yang bisa diambil berdasarkan hasil
pencarian algoritma
negamax
adalah sebanyak 10 langkah kemungkinan.
2.
Tingkat kemenangan komputer masih rendah,yaitu hanya 40%. Algoritma
negamax
yang diterapkan pada permainan dam daman belum optimal.
5.2.
Saran
Dari keterbatasan yang ada dan untuk pengembangan perangkat lunak ini ke
depannya agar diperoleh hasil yang lebih baik, beberapa hal yang mungkin
dilakukam sebagai berikut :
1.
Menambah nilai evaluasi dan menambah kedalaman pencarian agar tingkat
kemenangan komputer lebih tinggi.
(28)
Nama
: Panji Febriyanto
NIM
: 10111435
Temat/Tanggal Lahir : Garut, 01 Februari 1993
Jenis Kelamin
: Laki-Laki
Agama
: Islam
Alamat
: Jl. Kubangsari Gg. Anggrek no. 25 rt 03 rw
06, Kel. Sekeloa, Kec. Coblong, Bandung
No. Telp
: 085759936707
: pfebri01@gmail.com
2.
Riwayat Pendidikan
1999-2005
:
SDN 1 Panyindangan
2005-2007
:
SMPN 1 Cisompet
2007-2008
:
SMPN 1 Samarang
2008-2011
:
SMAN 1 Garut
2011-2016
:
Universitas Komputer Indonesia (UNIKOM)
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan
sadar tanpa paksaan.
Bandung, 20 Februari 2016
(29)
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
PANJI FEBRIYANTO
10111435
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2016
(30)
v
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
DAFTAR SIMBOL ... xi
DAFTAR LAMPIRAN ... xvi
BAB I PENDAHULUAN ... 1
1.1.
Latar Belakang ... 1
1.2.
Perumusan Masalah ... 2
1.3.
Maksud dan Tujuan ... 2
1.4.
Batasan Masalah ... 2
1.5.
Metodologi Penelitian ... 2
1.5.1.
Metode Pengumpulan Data ... 3
1.5.2.
Metode Pembangunan Perangkat Lunak ... 3
1.6.
Sistematika Penulisan ... 5
BAB II LANDASAN TEORI ... 7
2.1.
Permainan ... 7
2.2.
Permainan Dam Daman ... 7
2.2.1.
Langkah Bidak Pada Dam Daman ... 8
2.3.
Artificial Intelligence
... 10
2.3.1.
Teknik Pemecahan Masalah AI ... 11
2.4.
Algoritma
Negamax
... 14
2.5.
Alpha Beta Prunning
... 15
2.5.1.
Alpha prunning
... 15
2.5.2.
Beta Prunning
... 15
2.6.
Pemograman Berorientasi Objek ... 17
(31)
vi
2.7.4.
Sequence
Diagram ... 24
BAB III ANALISIS DAN PERANCANGAN SISTEM ... 27
3.1.
Analisis Sistem ... 27
3.1.1.
Analisis Masalah ... 27
3.1.2.
Analisis Permainan Dam Daman ... 28
3.1.3.
Analisis Algoritma
Negamax
... 31
3.1.4.
Analisis Kebutuhan Non Fungsional ... 41
3.1.5.
Analisis Kebutuhan Fungsional ... 43
3.2.
Perancangan Sistem ... 56
3.2.1.
Perancangan Antarmuka ... 56
3.2.2.
Perancangan Pesan ... 58
3.2.3.
Jaringan Semantik ... 60
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM ... 61
4.1.
Implementasi ... 61
4.1.1.
Perangkat Keras ... 61
4.1.3
Perangkat Lunak... 61
4.1.3.
Implementasi Antarmuka ... 62
4.1.4.
Implementasi Algoritma... 63
4.2.
Pengujian Sistem ... 64
4.2.1.
Pengujian
Black Box
... 64
4.2.1.1.
Pengujian Tombol Mulai ... 65
4.2.1.2.
Pengujian Gerak Tiap Bidak ... 66
4.2.1.3.
Pengujian Tombol Jalankan AI ... 70
4.2.2. Pengujian
White Box
... 70
4.2.3
Skenario Pengujian... 74
4.3.
Kesimpulan Pengujian ... 82
BAB V KESIMPULAN DAN SARAN ... 83
(32)
(33)
84
DAFTAR PUSTAKA
[1] S. Dharmamulya, Permainan Tradisional Jawa, Yogyakarta: Penerbit Kepel
Press, 2005.
[2] C. M. Camacho, Adaptive Behavior in Artificial Intelligence, Helsinki
Metropolia University of Applied Sciences, 2009.
[3] A. Prasetyo, Implementasi Kecerdasan Buatan Pada Permainan Damdaman
Menggunakan Algoritma Minimax, Bandung: Skripsi : Universitas Pendidikan
Indonesia, 2013.
[4]
H. Kurniawan, “Aplikasi Permainan Gomoku dengan Algoritma Negamax,”
Citec Journal,
vol. 1, no. 3, pp. 231-242, 2014.
[5] R. S. Pressman, Software Engineering, 5th ed, New York: The McGraw-Hill
Companies, 2001.
[6] D. H. dan D. T. R. Siregar, Permainan Tradisional Indonesia, Jakarta:
Direktorat Jenderal Kebudayaan, 1998.
[7] Suyanto, Artificial Intelligence, Bandung: Informatika, 2007.
[8] I. Millington dan J. Funge, Artificial Intelligence for Games Second Edition,
CRC Press, 2012.
[9] S. S. M. Rosa, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek,
Bandung: Informatika, 2014.
(34)
LANGKAH YANG OPTIMAL PADA PERMAINAN DAM DAMAN
Panji Febriyanto
11 Teknik Informatika – Universitas Komputer Indonesia Jl. Dipatiukur 112-114 Bandung
E-mail : pfebri01@gmail.com
1ABSTRAK
Permainan dam daman merupakan permainan tradisional, permainan ini dimainkan oleh dua pemain. Permainan ini dimainkan di papan atau karton yang telah digambar. Dalam permainan ini terdapat 16 bidak untuk setiap pemain. Tujuan permainan ini adalah untuk menghabiskan bidak lawan dengan aturan yang telah disepakati bersama sebagai akhir permainannya.
Pada permainan dam daman ini terdapat banyak langkah. Satu bidak bisa mempunyai lebih dari dua kemungkinan langkah yang bisa diambil. Dari beberapa langkah tersebut ada yang menguntungkan, ada juga yang merugikan pemain. Jika pemain mengambil langkah bidak secara acak, maka kemungkinan kalah akan lebih besar. Untuk mencari langkah pergerakan bidak yang menguntungkan digunakan algoritma Depth-First Search. Salah satu algoritma DFS adalah algoritma negamax. Algoritma ini menggunakan dua buah fungsi, satu fungsi untuk memaksimalkan dan satu untuk meminimalkan kedua fungsi tersebut digabung menjadi satu fungsi yang dapat menegasikan dan terbalik setiap kali
pemanggilannya. Dan untuk mempersempit
pencarian digunakan algoritma alpha beta prunning. Tujuan dari penelitian ini adalah untuk mengetahui banyaknya kemungkinan langkah yang bisa diambil dan tingkat kemenangan dengan
menggunakan algoritma negamax. Banyaknya
kemungkinan langkah yang bisa diambil berdasarkan hasil pencarian algoritma negamax adalah sebanyak 10 langkah kemungkinan. Sedangkan tingkat kemenangan komputer masih rendah, yaitu hanya 40%. Algoritma negamax yang diterapkan pada permainan dam daman belum optimal.
Kata kunci : Dam daman, negamax, alpha beta prunning.
1.
PENDAHULUAN
Permainan tradisional merupakan kekayaan khasanah budaya lokal, ragam permainan tradisional sangat banyak ditemukan di Indonesia sehingga permainan tradisional ini seharusnya dipertahankan dan dilestarikan sebagai warisan budaya bangsa.
Salah satu permainan tradisional adalah Damdaman, permainan ini berasal dari daerah jawa sekalipun di daerah lain ada. Damdaman biasanya dimainkan oleh anak laki-laki walaupun tidak ada larangan anak
perempuan untuk memainkankannya karena
termasuk permainan kompetitif, mengasah otak, ada yang kalah dan menang. Permainan ini dimainkan oleh dua orang pemain. Tujuan permainan ini adalah untuk menghabiskan bidak lawan dengan aturan yang telah disepakati bersama sebagai akhir permainannya [1].
Pada permainan dam daman ini terdapat banyak langkah. Dari beberapa langkah tersebut ada yang menguntungkan, ada juga yang merugikan pemain. Jika pemain mengambil langkah bidak secara acak, maka kemungkinan kalah akan lebih besar. Untuk mencari langkah pergerakan bidak digunakan algoritma Depth-First Search. Salah satu algoritma DFS adalah algoritma negamax. Algoritma negamax
adalah sebuah penyederhanaan dari algoritma minimax. Algoritma ini menggunakan dua buah fungsi, satu fungsi untuk memaksimalkan dan satu untuk meminimalkan kedua fungsi tersebut digabung menjadi satu fungsi yang dapat menegasikan dan terbalik setiap kali pemanggilannya [2].
Pada penelitian mengenai permainan dam daman yang diterapkan dengan menggunakan algoritma
minimax. Algoritma minimax cocok dalam
menyelesaikan masalah dalam penelitian tersebut [3]. Penelitian lain pada aplikasi permainan gomoku dengan algoritma negamax dan alpha-beta search, didapatkan bahwa penggunaan metode negamax dan dapat memberikan solusi pencarian langkah terbaik [4].
Algoritma negamax digunakan untuk mencari semua kemungkinan langkah yang ada. Belum ada penelitian yang menggunakan algoritma negamax
untuk
diterapkan kedalam permainan dam daman. Berdasarkan penjelasan tersebut, maka dalam penelitian ini akan menerapkan algoritma negamax
untuk menghasilkan langkah yang optimal pada
permainan dam daman. Algoritma negamax
diharapkan dapat menyelesaikan permainan dam daman.
(35)
cara menerapkan algoritma negamax kedalam permainan dam daman untuk mencari kemungkinan langkah yang bisa diambil.
2.
ISI PENELITIAN
2.1 Permainan Dam Daman
Permainan dam daman termasuk permainan tradisional, permainan ini dimainkan oleh dua pemain, permainan ini dimainkan di papan atau karton yang telah digambar. Dalam permainan ini terdapat 16 bidak untuk setiap pemain.
Untuk memulai permainan dam daman, langkah-langkahnya sebagai berikut:
1. Pemain harus berjumlah 2 orang
2. Pemain harus mencari batu/kerikil untuk bidaknya tetapi setiap pemain tidak boleh sama 3. Jumlah bidak untuk setiap pemain ada 16 buah 4. Gambar papan permainan dam daman, seperti
pada gambar 1
5. Susun setiap batu/kerikil tadi pada papan permainan seperti pada gambar 1
6. Bidak hanya bisa melangkah satu langkah ke samping atau kedepan atau diagonal
7. Untuk makan bidak lawan caranya dengan melewati bidak lawan, bisa dilihat pada gambar 2
8. Lakukan suit untuk menentukan pemain giliran pertama.
9. Permainan berakhir apabila salah satu pemain sudah kehabisan bidak
Gambar 1. Papan Permainan Dam Daman
Gambar 2. Makan Bidak Lawan
2.2Artificial Intelligence
Sebagian kalangan menerjemahkan Artificial Intelligence sebagai kecerdasan buatan, kecerdasan artifisial, intelijensia artifisial, atau intelijensia
istilah tersebut sudah sangat akrab bagi orang Indonesia. begitu juga dengan singkatannya yaitu AI, sudah sangat melekat di berbagai media ilmiah maupun non ilmiah.
Definisi AI dikelompokkan menjadi 4 kategori, yaitu Thinking Humanly, Acting Humanly, Thinking Rationally dan Acting Rationally [5].
2.3Algoritma Negamax
Algoritma negamax merupakan bentuk sederhana dari algoritma minimax yang melakukan pencarian dengan menggunakan teknik algoritma DFS yang akan menelusuri setiap node untuk memperoleh hasil yang maksimum. Algoritma negamax identik dengan algoritma minimax untuk karakteristik kinerja. Meskipun sederhana untuk menerapkan dan cepat untuk mengeksekusi, itu skala dengan cara yang sama dengan pohon-pohon besar. Sebagian besar optimasi yang dapat diterapkan untuk negamaxing dapat dibuat untuk bekerja dengan ketat mendekati minimaxing [6].
Berikut ini adalah algoritma negamax.
Gambar 3. Algoritma Negamax
2.4 Algoritma Alpha Beta Prunning
2.4.1 Alpha Prunning
Untuk memangkas dengan cara ini, kita perlu melacak skor terbaik yang dapat dicapai. Faktanya, nilai ini membentuk batas bawah pada skor yang dicapai. Kemungkinan menemukan urutan yang lebih baik dari dari langkah dalam pencarian, tetapi kita tidak akan pernah menerima urutan langkah yang memberi kita nilai rendah. Ini terikat lebih rendah disebut nilai alpha (kadang-kadang, tapi jarang,
ditulis sebagai huruf Yunani α), dan pemangkasan
yang disebut alpha pruning. Dengan melacak nilai
(36)
khawatir tentang berapa banyak langkah yang lebih buruk dari lawan yang bisa dibuatnya. kita sudah tahu bahwa kita tidak akan memberinya kesempatan [6].
2.4.2 Beta Prunning
Beta pruning bekerja dengan cara yang sama.
Nilai beta (β lagi, jarang ditulis) melacak sebuah batas
atas dengan harapan untuk mendapatkan nilai. Kami memperbarui nilai beta ketika kita menemukan urutan pergerakan yang lawan bisa untuk memaksa kita ke dalam.
Pada saat itu kami tahu tidak ada cara untuk mencetak lebih dari nilai beta, tapi mungkin ada beberap urutan belum ditemukan yang dapat digunakan untuk membatasi kita bahkan lebih jauh. Jika kita menemukan urutan dari gerakan bahwa skor lebih besar dari nilai beta, maka kita bisa mengabaikan itu, karena kita tahu kita akan tidak pernah diberi kesempatan. Alpha dan beta nilai bersama-sama memberikan jendela skor. Kita tidak akan pernah memilih untuk membuat gerakan yang skor kurang dari alpha, dan lawan kami tidak akan pernah membiarkan kita membuat gerakan untuk mendapatkan nilai lebih dari beta. Jika cabang pohon ditemukan yang berada di luar nilai-nilai ini, maka cabang dapat dipangkas. Karena pergantian antara meminimalkan dan memaksimalkan untuk setiap pemain, hanya satu nilai yang perlu diperiksa pada setiap posisi papan. Pada posisi papan di mana itu adalah lawan untuk bermain, kita meminimalkan skor, sehingga hanya skor minimal dapat berubah dan kita hanya perlu memeriksa terhadap alpha. Jika itu
adalah giliran kami untuk bermain, kita
memaksimalkan nilai, dan sehingga hanya beta yang diperlukan [6].
2.5 Analisis Masalah
Permainan ini merupakan permainan strategi yang dapat mengasah keterampilan dan pola pikir pemain, permainan ini menggunakan papan atau alas untuk menggambar tempat permainannya.
Permainan ini merupakan permainan yang sederhana karena bisa dimainkan dimana saja asalkan ada tempat untuk menggambar papan permainannya. Permainan dam daman memerlukan 16 buah bidak untuk setiap pemain. Sebelum melakukan permainan dilakukan suit terlebih dahulu untuk menentukan pemain pertama. Permainan dikatakan selesai apabila salah satu pemain sudah kehilangan semua bidaknya. Pada permainan dam daman ada peraturan dimana apabila ada pemain yang mendapatkan kesempatan untuk memakan bidak lawan tapi tidak memakannya maka akan kena hukuman, hukuman tersebut dinamakan dam. Hukuman dam tersebut yaitu mengambil tiga buah bidak pemain yang mendapat hukuman.
2.6 Analisis Permainan Dam Daman
pertama memulai permainan dengan menggerakan salah satu bidak miliknya ke depan, ke samping atau diagonal sesuai dengan jalurnya. Giliran pemain
dinyatakan selesai setelah pemain selesai
menggerakan bidaknya, dalam satu giliran pemain hanya bisa menggerakan satu bidak saja. Selanjutnya giliran lawan untuk menggerakan bidaknya. Begitu seterusnya saling bergantian menggerakan bidak masing-masing sampai salah satu bidak lawannya habis.
Gambar 4. Flowchart Permainan Dam Daman
(37)
algoritma negamax. Pencarian pohon negamax
mengimplementasikan bahwa langkah lawan yang buruk adalah langkah yang anda yang baik. Berikut adalah gambar dari flowchart algoritma negamax.
Gambar 5. Flowchart Algoritma Negamax
Langkah pertama dari alur ini adalah pemberian inisialisasi nilai board, maxdepth, currentdepth, alpha
dan beta. Setelah itu algoritma negamax akan mengecek nilai dari board dan currentdepth apakah salah satunya sama dengan nilai dari maxdepth, jika nilainya sama maka proses pencarian selesai. Jika nilainya tidak sama maka langkah selanjutnya melakukan pencarian pada pohon pencarian. Pada posisi root nilai alpha diisi dengan min integer untuk beta diisi dengan max integer, untuk currentvalue diisi dengan 0 dan untuk bestvalue juga diisi dengan min integer.
Gambar 6. Pohon Pencarian Algoritma Negamax
Pada saat kondisi mencari nilai maksimum maka nilai evaluasi dari node anaknya haruslah negatif nilai evaluasi, karena pada saat pengambilan nilai evaluasi nilainya akan dinegatifkan terlebih dahulu. Negatif dari negatif nilai evaluasi adalah nilai evaluasi, maka ketika dicari nilai maksimumnya akan didapatkan nilai maksimum dari nilai evaluasi. Pada saat kondisi mencari nilai minimum maka nilai evaluasi dari node anaknya haruslah positif nilai evaluasi, karena pada saat pengambilan nilai evaluasi nilainya akan dinegatifkan terlebih dahulu. Negatif dari positif nilai evaluasi adalah negatif nilai evaluasi, maka ketika dicari nilai maksimumnya akan didapatkan nilai minimum dari nilai evaluasi.
2.8 Analisis Kebutuhan Non Fungsional 2.8.1 Analisis Kebutuhan Perangkat Keras
Perangkat keras diperlukan untuk menjalankan suatu aplikasi guna mendukung proses kerja dari suatu sistem. Analisis perangkat keras digunakan untuk mengetahui mengenai spesifikasi perangkat keras dalam membangun dan menerapkan aplikasi, terdapat dua spesifikasi yang akan dijelaskan, yaitu spesifikasi perangkat keras pengembang dan spesifikasi perangkat keras Pengguna.
Berikut ini merupakan spesifikasi perangkat keras yang digunakan dalam membangun aplikasi ini, yaitu:
1. Processor 2.7 GHz
2. VGA 2 GB
3. RAM 2GB
4. Harddisk 1 TB
5. Resolusi Layar 1280 x 1024 6. Keyboard dan Mouse standar
Berikut ini merupakan spesifikasi perangkat keras
pengguna atau spesifikasi minimum untuk
menjalankan aplikasi ini, yaitu: 1. Processor 1 GHZ
2. RAM 512 MB
3. Harddisk 200 MB
2.8.2 Analisis Kebutuhan Perangkat Lunak
Analisis perangkat lunak digunakan untuk mengetahui mengenai spesifikasi perangkat lunak untuk membangun dan menerapkan aplikasi, terdapat dua spesifikasi yang akan dijelaskan, yaitu spesifikasi perangkat lunak pengembang dan spesifikasi perangkat lunak pengguna.
(38)
1. Sistem Operasi Microsoft Window 7 2. Visual Studio 2012
2.8.3 Analisis Kebutuhan Pengguna
Selain dibutuhkannya perangkat lunak dan perangkat keras, Player atau penguna adalah bagian yang sangat penting untuk dapat menerapkan aplikasi ini. Analisis pengguna diperlukan untuk dapat mengetahui sasaran calon pengguna yang dapat menggunakan aplikasi. Pada penelitian ini pembangunan aplikasi ditujukan untuk pengujian implementasi algoritma sehingga pengguna disini disarankan memiliki karakteristik sebagai berikut: 1. Bisa mengoperasikan komputer dengan sistem
operasi windows.
2. Mengetahui aturan permainan dam daman
2.9 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional menyangkut analisis sistem yang dilakukan yaitu dengan menggunakan UML. Adapun tahapan analisis sistem menggunakan UML adalah melalui use case diagram,
activity diagram, dan class diagram.
2.9.1 Use Case Diagram
Use case diagram merupakan konstruksi untuk mendeskripsikan hubungan yang terjadi antara aktor dengan aktivitas yang terdapat pada sistem. Berikut ini merupakan use case diagram pada permainan dam daman.
Gambar 7. Use Case Diagram
2.9.2 Activity Diagram
Activity diagram berisi penjelasan lebih lengkap mengenai urutan suatu proses yang terjadi antara pengguna dan sistem. Aktivitas pertama selalu dimulai dari pengguna, kemudian akan mendapat respon dari sistem yang nantinya akan menampilkan akhir dari proses tersebut.
Gambar 8. Activity diagram mencari langkah dengan algoritma negamax
Gambar 9. Activity diagram Menggerakan bidak sesuai hasil pencarian
2.9.3 Class Diagram
Class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Class diagram dapat dilihat pada gambar 10.
Gambar 10. Class Diagram Dam Daman
2.10Perancangan Antarmuka
Perancangan antarmuka dibutuhkan untuk
mewakili keadaan sebenarnya dari aplikasi yang akan dibangun. Perancangan antarmuka pada aplikasi ini adalah sebagai berikut
(39)
dilihat pada gambar 11
Gambar 11. Tampilan Halaman Utama
Tampilan Halaman Permainan
Gambar 12. Tampilan Halaman Permainan
Perancangan Pesan
Tampilan ini merupakan tampilan awal pada saat permainan dam daman dijalankan. Gambarnya dapat dilihat pada gambar 13 dan gambar 14
Gambar 13. Pesan Pemberitahuan Player Menang
Gambar 14. Pesan Pemberitahuan Player Kalah
Jaringan Semantik
Jaringan semantik merupakan gambaran tentang relasi dari masing-masing halaman yang bisa diakses oleh pengguna.
Gambar 15. Jaringan Semantik
2.11 Pengujian Sistem
Pengujian yang dilakukan yaitu pengujian
blackbox dan whitebox.
2.11.1 Pengujian Blackbox
Berikut merupakan hasil dari pengujian blackbox
Tabel 1. Pengujian Tombol Mulai Permainan
Kasus dan Hasil Uji Data
Masukan
Yang Diharap
kan
Hasil Kesimpulan
Tombol Mulai Permainan
Menampi lkan halaman permaina n
Sistem menampilk an halaman permainan
[√] Diterima
(40)
Data Masuk an Yang Diharapk an
Hasil Kesimpul an Tombol Jalanka n AI Komputer menggerak an bidak sesuai dengan hasil pencarian algoritma negamax Sistem menampilk an bidak komputer bergerak
[√]
Diterima [ ] Ditolak
2.11.2 Pengujian Whitebox
Pengujian white box merupakan metode
perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural dalam mendapatkan test case. Adapun metode yang digunakan dalam pengujian white box ini adalah metode Basis Path. Metode Basis Path mengijinkan pendesain kasus uji untuk membuat perkiraan yang kompleks dari desain prosedural dan menggunakan perkiraan ini untuk mendefinisikan aliran eksekusi.
Berikut adalah diagram alir dari algoritma
negamax yang telah diterapkan kedalam aplikasi.
Gambar 16. Diagram Alir Algoritma Negamax
Dari diagram alir diatas, dapat dihitung cyclomatic complexity dengan rumus :
V(G) = Edge – Node + (2P) V(G) = 43 – 39 + 2 = 6
Path 1 :1-2-3-4-5-6-8-9-10-11-12-13-14-17-18-20-21-22-24-25-26-27-28-29-30-31-40-41-43
Path 2 :1-2-3-9-10-11-12-13-14-17-18-20-21-22-24-25-26-27-28-29-30-31-40-41-43
Path 3 : 1-2-3-9-10-11-12-13-15-16-17-18-19-20-21-22-24-25-26-27-28-29-30-31-40-41-43
Path 4 : 1-2-3-9-10-11-12-13-15-16-17-18-19-20-21-22-24-25-32-33-34-40-41-43
Path 5 : 1-2-3-9-10-11-12-13-15-16-17-18-20-21-22-24-25-32-33-34-40-41-43
Path 6 : 1-2-3-9-10-11-12-13-15-16-17-18-19-20-21-22-24-25-35-36-37-39-40-41-43
Berikut adalah graph matriks pada diagram alir di atas untuk metode pencarian algoritma negamax
sebagai berikut:
Tabel 3. Graph Matriks Pencarian Algoritma
Negamax
V(G) = X + 1 V(G) = 5 + 1 V(G) = 6
Berdasarkan pengujian pada setiap metode, dihasilkan nilai Cyclomatic Complexity yang sama yaitu 6. Maka dapat disimpulkan bahwa pengujian white box pada algoritma negamax berjalan dengan baik, karena setiap pengujian menghasilkan nilai yang sama.
3.
PENUTUP
Kesimpulan merupakan ringkasan yang diambil dari pembahasan perangkat lunak yang dibuat, dimana perangkat lunak yang dibuat adalah penerapan algoritma negamax pada permainan dam daman, sedangkan saran diberikan untuk penggunaan sistem ini yang merupakan hasil perancangan yang
(41)
3.1 Kesimpulan
Berdasarkan hasil penelitian mengenai penerapan algoritma negamax kedalam permainan dam daman, dapat disimpulkan bahwa
1. Banyaknya kemungkinan langkah yang bisa diambil berdasarkan hasil pencarian algoritma
negamax adalah sebanyak 10 langkah
kemungkinan.
2. Tingkat kemenangan komputer masih
rendah,yaitu hanya 40%. Algoritma negamax yang diterapkan pada permainan dam daman belum optimal.
3.2 Saran
Dari keterbatasan yang ada dan untuk
pengembangan perangkat lunak ini ke depannya agar diperoleh hasil yang lebih baik, beberapa hal yang mungkin dilakukam sebagai berikut
1. Menambah nilai evaluasi dan menambah
kedalaman pencarian agar tingkat kemenangan komputer lebih tinggi.
2. Menambahkan algoritma lain sebagai optimasi.
DAFTAR PUSTAKA
[1] S. Dharmamulya, Permainan Tradisional Jawa, Yogyakarta: Penerbit Kepel Press, 2005. [2] C. M. Camacho, Adaptive Behavior in Artificial
Intelligence, Helsinki Metropolia University of Applied Sciences, 2009.
[3] A. Prasetyo, Implementasi Kecerdasan Buatan Pada Permainan Damdaman Menggunakan Algoritma Minimax, Bandung: Skripsi : Universitas Pendidikan Indonesia, 2013. [4] H. Kurniawan, “Aplikasi Permainan Gomoku
dengan Algoritma Negamax,” Citec Journal,
vol. 1, no. 3, pp. 231-242, 2014.
[5] Suyanto, Artificial Intelligence, Bandung: Informatika, 2007.
[6] I. Millington dan J. Funge, Artificial Intelligence for Games Second Edition, CRC Press, 2012.
(42)
Panji Febriyanto
11
Teknik Informatika
–
Universitas Komputer Indonesia
Jl. Dipatiukur 112-114 Bandung
E-mail : pfebri01@gmail.com
1ABSTRACT
Game of dam daman is a game of traditional, this game is played by two players. The game is played on a board or cardboard that has been drawn. In this game there are 16 pawns for each other. The purpose of the game is to spend pawns opponent with the rules that have been agreed upon as the end of the game.
In game of dam daman there are mant steps, one pawn can have more than two possible steps that could be taken. From some of the steps there is a profitable, there is also a disadvantage to the player. If the player takes a pawn move randomly, then the possibility of losing will be bigger. To search for a profitable move movement pawn used algorithms Depth-First Search. One of the DFS algorithm is an algorithm negamax. This algorithm uses two functions, one function to maximize and one to minimize both functions are combined into a single function that can be negated and reversed each time calling. And to narrow the search algorithm, alpha beta prunning.
The purpose of this research was to determine the number of possible steps that can be taken and the level of victory by using algorithm negamax. The number of possible steps that can be taken based on the results of the search algorithm negamax is as many as 10 steps possibility. As for winning rate computer is still low at only 40%. Negamax algorithm is applied to the game of dam daman not optimal.
Keywords : Dam daman, negamax, alpha beta prunning
1.
INTRODUCTION
The traditional game is a wealth of local cultural treasures, the variety of traditional games are very commonly found in Indonesia so that this traditional game ought to be maintained and preserved as a national heritage. One of the traditional game is Damdaman, this game comes from the Javanese though in other areas there. Damdaman usually played by boys though there is no ban on girls to memainkankannya because it includes competitive games, sharpen the brain, there is winning and losing.
The game is played by two players. The purpose of the game is to spend a pawn opponent with the rules that have been agreed upon as the end of the game [1]. Daman dam on the game, there are many steps. From some of the steps there is a profitable, there is also a disadvantage to the player. If the player takes a pawn move randomly, then the possibility of losing will be greater. To search for step movement of pawns used algorithms Depth-First Search. One algorithm is an algorithm negamax DFS. Negamax algorithm is a simplification of the minimax algorithm. This algorithm uses two functions, one function to maximize and one to minimize both functions are combined into a single function that can be negated and reversed each time calling [2].
In research on drafts daman applied by using minimax algorithm. Minimax algorithm is suitable to solve the problems in the study [3]. Another study on the application gomoku game with negamax algorithm and alpha-beta search, it was found that the use of methods negamax and can provide the best search solution step [4].
Negamax algorithm used to search for all possible available measures. There is no research that uses algorithms to negamax incorporated into drafts daman. Based on these explanations, so in this study will apply negamax algorithm to generate the optimum step on drafts daman. Negamax algorithm is expected to be completed drafts daman.
Based on the above, the issues to be addressed in this study is how to implement the algorithm negamax into drafts daman for possible steps that could be taken.
2.
CONTENTS OF RESEARCH
2.1 Game Of Dam Daman
Game of dam daman including traditional games, the game is played by two players, the game is played on a board or cardboard that has been drawn. In this game there are 16 pieces for each player.
To start a game of checkers daman, the steps are as follows:
1. Players must 2 players
2. The player must find the stone / gravel to pawn but every player should not be the same
(43)
1
5. Arrange each stone / gravel had been on the game board as in Figure 1
6. Pawns can only move one step forward or sideways or diagonal
7. To take pawns opponents pawns way to pass an opponent, can be seen in Figure 2
8. Do a suit to determine a player's first turn. 9. The game ends when one player is already
running out of pawn
Figure 1. Board Game Of Dam Daman
Figure 2. Take Pawn Opponent
2.2 Artificial Intelligence
Some people translate Artificial Intelligence as artificial intelligence, artificial intelligence, artificial intelligence or artificial intelligence. The term Artificial Intelligence deliberately not translated into Indnesia because that term is already very familiar to the people of Indonesia. as well as the abbreviation AI, already inherent in the various scientific and non-scientific media.
AI definitions are grouped into four categories, namely Thinking Humanly, Acting Humanly, Rationally Thinking and Acting Rationally [5].
2.3 Algorithm Negamax
Algorithm negamax is a simple form of minimax algorithm that searches using techniques DFS algorithm that searches for any node to obtain maximum results. Negamax algorithm is identical to
the minimax algorithm for performance
characteristics. Although simple to implement and quick to execute, the scale in the same way with big trees. Most of optimization that can be applied to negamaxing can be made to work closely approaching minimaxing [6].
Figure 3. Algorithm Negamax
2.4 Algorithm Alpha Beta Prunning 2.4.1 Alpha Beta Prunning
To summarize this way, we need to track down the best score that can be achieved. In fact, these values form the lower limit on the scores achieved. The chances of finding a better sequence of step in the search, but we will never accept the sequence of steps which give us a low value. This lower bound is called an alpha value (sometimes, but rarely, written as the
Greek letter α), and trimming so-called alpha pruning. By tracking the value of alpha, we can avoid considering any measures which the opponent has a chance to make it worse. We do not need to worry about how many steps are worse than opponents could make it. we already know that we will not give him a chance [6].
2.4.2 Beta Prunning
Beta pruning work in the same way. Value beta
(β again, rarely written) track down an upper limit in
the hope to get the value. We are updating the beta value when we find a sequence of movements that the opponent can to force us into.
At that time we knew there was no way to print more than the value of beta, but there might be some undiscovered sequences that can be used to limit us even further. If we find a sequence of movements that score is greater than the value of beta, so we can ignore it, because we knew we would never be given a chance. Alpha and beta values together gives the window a score. We would never choose to make a motion that score less than alpha, and our opponents will never let us create a movement to get more value out of beta. If the branch of a tree is found that is outside these values, the branches can be trimmed. Because of the change between the minimize and
(44)
minimize the score, so that only a minimum score can change and we just need to check against alpha. If it is our turn to play, we maximize value, and so the beta is only required [6].
2.5 Analysis Of The Problem
This game is a strategy game that can sharpen the skills and mindset of the players, the game uses a board or board to draw a game.
This game is a simple game that can be played anywhere as long as there is nowhere to draw the game board. Drafts daman need 16 pieces pawns for each player. Before doing do suit the game beforehand to determine the first player. The game is said to be complete when one player has lost all of the pieces. In drafts daman if there are no rules where players get the chance to take opponents pawns but do not eat it then it will be subject to punishment, the punishment is called the dam. The dam penalty that took three pawns players were punished.
2.6 Analysis Game Of Dam Daman
At the beginning of the game to determine who the first player. If it has been determined then the first player to start the game by moving one of his pawns forward, sideways or diagonally on track. Rota players declared over after the player finishes moving the pieces, in one turn a player can only move one piece only. Next turn your opponent to move the pieces. And so on each in turn move the pawns each until one opponent pawn exhausted.
Figure 4. Flowchart Game Of Dam Daman
2.7 Analysis Of Algorithm
In this section will explain the game of checkers daman solving using algorithms negamax. Negamax implement tree search that opponents bad step is the step that you are good. Here is a picture of a flowchart algorithm negamax.
(45)
Figure 5. Flowchart Algorithm Negamax The first step of this flow is the provision of board initialization value, maxdepth, currentdepth, alpha and beta. After that negamax algorithm will check the value of board and currentdepth whether one of them is equal to the value of maxdepth, if it is equal then the search process is complete. If the value is not the same as the next step to search in the search tree. At the root position alpha value filled with an integer min to beta max filled integer, for CurrentValue filled with 0 and for bestvalue also filled with integer min.
Figure 6. Tree Search Algorithm Negamax At the time of searching for the maximum value of the evaluation value of its child nodes must be
of the evaluation is the evaluation value, so when looking for maximum value will get the maximum value of the evaluation value. At the time of searching for the minimum value of the evaluation value of child nodes should be the positive value of the evaluation, because at the time of taking the value of the evaluation value will be negated in advance. Negative than positive evaluation score evaluation score is negative, then when it sought the maximum value will be obtained from the minimum value of the evaluation value.
2.8 Analysis of Non-Functional Requirements 2.8.1 Analysis Of Hardware Requirements
The hardware needed to run an application in order to support the work processes of a system. Analysis of the hardware used to know about the hardware specifications to build and deploy applications, there are two specifications that will be explained, the hardware specifications developers and hardware specifications Users.
The following are the hardware specifications used in building this application,
1. Processor 2.7 GHz
2. VGA 2 GB
3. 2 GB RAM
4. Hard Drive 1 TB
5. Display Resolution 1280 x 1024 6. Keyboard and Mouse standards
The following are the specifications of the user's hardware or the minimum specifications to run this application,
1. Processor 1 GHZ
2. 512 MB RAM
3. Hard Drive 200 MB
2.8.2 Analysis Of Software Requirements
Analysis software is used to determine the specifications of the software to build and deploy applications, there are two specifications that will be explained, namely the specification of software developers and software specifications of the user.
The following are the specifications of the software used in building this application, namely:
1. Operating System Microsoft Window 7 2. Visual Studio 2012
2.8.3 Analysis Of User Needs
In addition to the need for software and hardware, Player or the user is a very important part to implement this application. User analysis is needed to ascertain the target potential users who can use the application. In this research, application development aimed at testing the implementation of the algorithm
(46)
operating system.
2. Know the rules of the game of dam daman
2.9 Analysis of Functional Requirements
Analysis of functional requirements regarding system analysis done by using UML. The stages of the analysis system is through the use of UML use case diagrams, activity diagrams, sequence diagrams, and class diagrams.
2.9.1 Use Case Diagram
Use case diagram is a construction for describe the relationship between actors with activities contained in the system. Following This is the use case diagram on the drafts.
Figure 7. UseCaseDiagram
2.9.2 Activity Diagram
Activity diagrams contain a fuller explanation of the sequence of a process that occurs between the user and the system. The first activity is always initiated from the user, then you will get a response from the system will display the end of the process.
Figure 8. Activity diagrams looking for a step by the algorithm negamax
Figure 9. Activity diagrams Moving pawns appropriate search results
2.9.3 Class Diagram
Class diagram describing the system in terms of defining the structure of the classes that will be created to build the system. Class diagrams can be seen in Figure 10.
Figure 10. Class Diagram Dam Daman
2.10 Design Interface
The design of the interface is needed to represent the true state of the application to be built. The design of the interface on this application is as follows
Display Main Page
This display is an early look at the game when the dam daman run. His picture can be seen in Figure 11
(47)
Figure 11. Display Main Page
Display Game Page
Figure 12. Display Game Page
Design Messages
This display is an early look at the game when the dam daman run. His picture can be seen in Figure 13 and Figure 14
Figure 13. Notification Message Player Wins
Figure 14. Notification Message Player Lose
Semantic Network
Semantic network is a picture of the relation of each page which can be accessed by the user.
Figure 15. Semantic Network
2.11 Testing System
Tests done of blackbox and whitebox testing.
2.11.1 Blackbox Testing
The following is the result of black box testing Table 1. Testing Button Mulai Permainan
Kasus dan Hasil Uji Data
Masukan
Yang Diharap
kan
Hasil Kesimpulan
Tombol Mulai Permainan
Menampi lkan halaman permaina n
Sistem menampilk an halaman permainan
[√] Diterima
(48)
Data Masuk an Yang Diharapk an
Hasil Kesimpul an Tombol Jalanka n AI Komputer menggerak an bidak sesuai dengan hasil pencarian algoritma negamax Sistem menampilk an bidak komputer bergerak
[√]
Diterima [ ] Ditolak
2.11.2 Whitebox Testing
White-box testing is a test case design method that uses the control structure of the procedural design in getting test case. The methods used in the white box testing is a method Basis Path. Basis Path method allows the designer to create a test case estimate of the complex of procedural design and use these estimates to define the flow of execution.
Here is a flow diagram of negamax algorithms that have been implemented into the application.
Figure 16. Flow Algorithm Negamax From the flow diagram above, cyclomatic complexity can be calculated using the formula:
V (G) = Edge - Node + (2P) V (G) = 43-39 + 2 = 6
21-22-24-25-26-27-28-29 -30-31-40-41-43
Path 2: 1-2-3-9-10-11-12-13-14-17-18-20-21-22-24-25-26-27-28-29-30-31-40-41 -43
Path 3: 1-2-3-9-10-11-12-13-15-16-17-18-19-20-21-22-24-25-26-27-28-29-30-31 -40-41-43
Path 4: 1-2-3-9-10-11-12-13-15-16-17-18-19-20-21-22-24-25-32-33-34-40-41-43
Path 5: 1-2-3-9-10-11-12-13-15-16-17-18-20-21-22-24-25-32-33-34-40-41-43
Path 6: 1-2-3-9-10-11-12-13-15-16-17-18-19-20-21-22-24-25-35-36-37-39-40-41 -43
Here is a graph matrix in the flow above to search methods negamax algorithm as follows:
Table 3. Matrix Graph Search Algorithm Negamax
V (G) = X + 1 F (G) = 5 + 1 V (G) = 6
Based on testing on each method, resulting Cyclomatic Complexity same value is 6. So we can conclude that white-box testing on negamax algorithms work well, because each test on the same value.
3.
CLOSING
The conclusion is a summary drawn from the discussion made software, where software is created is the application of algorithms negamax on drafts daman, while the advice given to the use of these systems is the result of design that can be a reference to improve the performance of these systems in order to better.
(1)
Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)
52 Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033 3.1 ConclusionBased on the results of research on the application of algorithms negamax daman dam into the game, it can be concluded that
1. The number of possibilities steps can be taken based on the results of the search algorithm is as many as 10 steps negamax possibilities. 2. The level of computer victory was still low at
only 40%. Negamax algorithm is applied to the game of checkers daman has not been optimal. 3.2 Suggestion
Of the limitations of existing funds for the development of this software in the future in order to obtain better results, some things may dilakukam as follows
1. Add value and add depth evaluation of the search so that higher-level computer wins. 2. Adding another as an optimization algorithm.
REFERENCES
[1] S. Dharmamulya, Permainan Tradisional Jawa, Yogyakarta: Penerbit Kepel Press, 2005. [2] C. M. Camacho, Adaptive Behavior in Artificial
Intelligence, Helsinki Metropolia University of Applied Sciences, 2009.
[3] A. Prasetyo, Implementasi Kecerdasan Buatan Pada Permainan Damdaman Menggunakan Algoritma Minimax, Bandung: Skripsi : Universitas Pendidikan Indonesia, 2013. [4] H. Kurniawan, “Aplikasi Permainan Gomoku
dengan Algoritma Negamax,” Citec Journal, vol. 1, no. 3, pp. 231-242, 2014.
[5] Suyanto, Artificial Intelligence, Bandung: Informatika, 2007.
[6] I. Millington and J. Funge, Artificial Intelligence for Games Second Edition, CRC Press, 2012.
(2)
iii
KATA PENGANTAR
Puji dan rasa syukur penulis panjatkan kehadirat Allah SWT, karena berkat limpahan rahmat, hidayah, dan inayah-Nya maka skripsi ini dapat diselesaikan dengan baik. Salam dan salawat semoga selalu tercurah pada baginda Rasulullah Muhammad SAW. Skripsi dengan judul Penerapan Algoritma Negamax Untuk
Menghasilkan Langkah Yang Optimal Pada Permainan Dam daman bisa
diselesaikan dengan waktu yang telah ditetapkan.
Penulis pun menyadari bahwa penyusunan skripsi ini tidak akan terwujud tanpa doa, bantuan, dukungan, dan masukan dari berbagai pihak. Penulis menyampaikan ucapan terima kasih kepada:
1. Orang tua yang senantiasa selalu mendoakan, menyemangati penulis;
2. Bapak Galih Hermawan, S.Kom, M.T. selaku dosen wali sekaligus pembimbing yang telah memberikan arahan dan petunjuk kepada penulis dengan penuh kesabaran;
3. Ibu Nelly Indriani W, S.Si., M.T. selaku reviewer yang telah membimbing penulis dengan penuh kesabaran;
4. Bapak dan ibu dosen Program Studi Teknik Informatika yang telah memberikan kemudahan dan kelancaran kepada penulis selama perkuliahan; 5. Staf Akademik dan Staf Administrasi Program Studi Teknik Informatika yang
telah bersedia membantu penulis selama menempuh gelar sarjana; 6. Kakak dan adik penulis yang selalu memberikan doa dan motivasi;
7. Teman seperjuangan yang selalu memberikan semangat dan dukungan kepada penulis;
8. Arif, Rangga, Zainun, Agung, Maulana, Fadhil, Mail dan Budi sebagai sahabat yang telah memberikan semangat dan arahan kepada penulis.
(3)
iv
Penulis hanya mampu mendoakan, semoga Allah Swt. memberikan rahmat kepada semua pihak yang telah membantu dan membimbing penulis.
Bandung, 20 Februari 2016
(4)
(5)
(6)