Penerapan Algoritma Negamax Untuk Menghasilkan Langkah Yang Optimal Pada Permainan Dam Daman

(1)

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

Email

: 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

1

1 Teknik Informatika Universitas Komputer Indonesia Jl. Dipatiukur 112-114 Bandung

E-mail : pfebri01@gmail.com

1

ABSTRAK

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

1

1

Teknik Informatika

Universitas Komputer Indonesia

Jl. Dipatiukur 112-114 Bandung

E-mail : pfebri01@gmail.com

1

ABSTRACT

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 Conclusion

Based 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)