Implementasi Algoritma Negascout untuk Menentukan Langkah Pemain Lawan Pada Permainan Nine Men's Morris

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ASEP SUKIRMAN 10109138

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA 2014


(2)

(3)

(4)

(5)

v

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... ix

DAFTAR SIMBOL ... x

DAFTAR LAMPIRAN ... xii

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang Masalah ... 1

1.2. Perumusan Masalah ... 2

1.3. Maksud dan Tujuan ... 3

1.3.1. Maksud ... 3

1.3.2. Tujuan ... 3

1.4. Batasan Masalah ... 3

1.5. Metode Penelitian ... 3

1.5.1. Metode Pengumpulan Data ... 4

1.5.2. Metode Pembangunan Perangkat Lunak ... 4

1.6. Sistematika Penulisan ... 5

BAB 2 TINJAUAN PUSTAKA ... 7

2.1. Nine Men’s Morris ... 7

2.1.1. Pengenalan Nine Men’s Morris ... 7

2.1.2. Peraturan Permainan... 8

2.1.3. Strategi Nine Men’s Morrin ... 10

2.2. Kecerdasan Buatan ... 11

2.3. Agen Cerdas... 12


(6)

vi

2.6. OOP (Object Oriented Programming) ... 19

2.7. Pemodelan Dengan UML ... 20

2.7.1. Diagram – Diagram UML ... 21

2.8. Java ... 25

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA ... 27

3.1. Analisis Masalah ... 27

3.2. Analisis Game ... 27

3.2.1. Gameplay ... 27

3.3. Analisis Masukan ... 28

3.3.1. Fungsi Evaluasi Nine Men’s Morris ... 29

3.4. Analisis Algoritma Negascout ... 33

3.5. Analisis Kebutuhan Non Fungsional ... 41

3.5.1. Analisis Kebutuhan Perangkat Lunak ... 41

3.5.2. Analisis Kebutuhan Perangkat Keras... 41

3.5.3. Analisis Pengguna ... 41

3.6. Analisis Kebutuhan Fungsional ... 42

3.6.1. Use Case Diagram ... 42

3.6.1.1. Definisi Aktor ... 42

3.6.1.2. Definisi Use Case ... 43

3.6.1.3. Use Case Scenario ... 43

3.6.2. Activity Diagram ... 46

3.6.3. Class Diagram ... 48

3.6.4. Sequence Diagram ... 48

3.7. Perancangan Sistem ... 50

3.7.1. Perancangan Komponen Permainan Nine Men’s Morris ... 51

3.7.2. Perancangan Struktur Menu ... 51


(7)

vii

4.1.1. Implementasi Perangkat Keras ... 55

4.1.2. Implementasi Perangkat Lunak ... 55

4.1.3. Implementasi Antarmuka ... 56

4.2. Pengujian Sistem ... 57

4.2.1. Rencana Pengujian ... 57

4.2.2. Pengujian Black Box ... 57

4.2.3. Pengujian White Box ... 58

4.2.4. Pengujian Algoritma Negascout Pada Nine Men’s Morris ... 63

BAB 5 KESIMPULAN DAN SARAN ... 69

5.1. Kesimpulan ... 69

5.2. Saran ... 69


(8)

71

[1] Adams, E 2010, Fundamentals of Game Design (2nd edition), New Riders, Berkeley.

[2] Ayuningtyas, Nadhira. 2008. Algoritma minimax dalam permainan checkers. Dalam Strategi Algoritmik. Bandung, Indonesia: Institut Teknologi Bandung.

[3] Bruin, D.A., Wim,Pijls., Aske,Plaat.1994. Solution Trees as a Basis for Game Tree Search. Technical Report EUR-CS-94-04, Department of Computer Science, Erasmus University Rotterdam.

[4] Chandler, Heather M & Chandler, R 2011, Fundamentals of Game Development, Jones & Bartlett Learning, LLC.

[5] Effendi, Aditya Kurniawan., Delima, Rosa. & Chrismanto, Antonius Rachmat. 2012. Implementasi Algoritma Negascout Untuk Permainan Checkers. Universitas Kristen Duta Wacana.

[6] Ismail, Andang 2006, Education Games: Menjadi Cerdas dan Ceria dengan Permainan Edukatif, Pilar Media, Yogyakarta.

[7] Jones, M., Dkk. 2008. Artificial Intelligence : A System Approach. Infinity Science Press LLC:Massachusetts.

[8] Kevin Winata. 2012. Penerapan Algoritma Alpha-Beta Pruning pada Permainan Nine Men’s Morris. Institut Teknologi Bandung.

[9] Millington, Ian. 2006. Artificial Intelligence For Games. United States of America.

[10] Munawar. 2005, Pemodelan Visual dengan UML, Graha Ilmu, Yogyakarta. [11] Petcu Simona Alexandra, Holban Stefan. 2008. Nine Men's Morris:

Evaluation Function. Politehnica of Timisoara.

[12] Russell, Stuart J & Norvig, Peter 1995, Artificial Intelligence: A Modern Approach, Prentice Hall.

[13] S, Rosa A & Shalahuddin, M 2013, Rekayasa Perangkat Lunak: Terstruktur dan Berorientasi Objek, Informatika, Bandung.


(9)

iii

Puji dan syukur penulis panjatkan ke hadirat Allah SWT, karena atas rahmat dan karunia-Nya, sehingga penyusunan skripsi dengan judul “Implementasi Algoritma Negascout Untuk Menentukan Langkah Pemain Lawan Pada Permainan Nine Men’s Morris” dapat diselesaikan dengan baik untuk menyelesaikan program sarjana strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia Bandung.

Atas semua bantuan yang telah diberikan, baik secara langsung maupun tidak langsung, penulis ingin ucapkan terima kasih yang sebesar - besarnya kepada :

1. Allah SWT yang telah memberikan rahmat, kasih dan hidayah-Nya sehingga dapat diselesaikannya penelitian dan skripsi ini.

2. Keluarga tercinta terutama kedua orang tua, Bapak dan Ibu, atas doa dan dukungan yang tidak pernah berhenti, baik secara moril dan materil, serta sebagai alasan penulis untuk terus berjuang menyelesaikan pendidikan ini. 3. Yth. Rasim, M.T., selaku pembimbing yang telah memberikan pengarahan

dan masukan-masukan yang berharga kepada penulis dalam penyusunan Skripsi ini.

4. Yth. Ednawati Rainarli, S.Si., M.Si., selaku Dosen Reviewer yang memberikan bimbingan dan kesempatan dalam penyusunan skripsi ini.

5. Yth. Rani Sutanto, S.Kom., selaku dosen wali kelas IF-4 angkatan 2009 . 6. Yth. Irawan Afrianto, S.T., M.T., selaku Ketua Program Studi Teknik

Informatika Universitas Komputer Indonesia.

7. Rekan-rekan mahasiswa Program Studi Teknik Informatika angkatan 2009 khususnya rekan-rekan mahasiswa dari kelas IF-4.

8. Seluruh dosen dan karyawan Teknik Informatika atas ilmu, bimbingan serta bantuannya hingga penulis selesai menyusun skripsi ini.


(10)

iv

senantiasa menerima kritik dan saran yang membangun demi pengembangan ke arah yang lebih baik. Akhir kata, penulis berharap semoga skripsi ini dapat memberikan manfaat.

Wassalamu alaikum, Wr. Wb.

Bandung, Agustus 2014


(11)

1 1.1. Latar Belakang Masalah

Permainan papan (board game) adalah sebuah permainan di mana bidak-bidak diletakkan, dipindahkan ataupun dimakan oleh bidak-bidak lawan di atas papan dengan peraturan yang berlaku pada permainan tersebut. Permainan papan ada yang murni berbasis strategi adapun yang berbasis kesempatan ataupun gabungan dari kedua hal tersebut dan biasanya mempunyai suatu tahap kemenangan yang ingin dicapai oleh para pemain. Permainan papan juga mempunyai berbagai jenis yang dibedakan oleh ukuran papan dan jumlah pemain. Berdasarkan jumlah pemain ada permainan papan yang dimainkan oleh dua pemain[4]. Salah satu permainan papan yang dimainkan oleh dua pemain adalah nine men’s morris. Permainan papan dengan dua pemain agar dapat dimainkan oleh satu pemain diperlukan sebuah kecerdasan.

Permainan itu diperlukan sebuah kecerdasan yang memungkinkan komputer untuk bermain melawan manusia. Cabang ilmu yang menirukan kecerdasan manusia adalah kecerdasan buatan atau Artificial Intelligence (AI). Salah satu permainan yang menggunakan AI adalah nine men’s morris. Nine men’s morris adalah sebuah permainan yang sudah sangat tua, bahkan salah satu yang tertua sepanjang sejarah. Permainan ini banyak ditemukan di berbagai negara. Papan tertua yang pernah ditemukan berada di Mesir, diperkirakan berasal dari 1400 SM. Nama nine men’s morris sendiri tercipta ketika permainan ini mencapai Inggris, jauh setelah permainan ini tercipta, yaitu pada masa middle ages. Pada zaman inilah nine men’s morris meraih popularitas di antara kalangan masyarakat. Pada permainan ini, untuk mengalahkan lawan seorang pemain harus

membentuk “mill” (atau disebut juga “morris”) yaitu garis lurus horizontal atau vertikal dengan tiga bidak berwarna sama.

Adapun penelitian pada permainan nine men’s morris yang dilakukan sebelumnya yaitu menggunakan algoritma alpha-beta prunning. Berdasarkan


(12)

penelitian yang dilakukan oleh Kevin Winata dengan menerapkan algoritma aplha-beta prunning pada permainan nine men’s morris yang menggunakan alpha-beta prunning dengan kedalaman terbatas. Kedalaman tersebut ditentukan oleh user atau programmer. Semakin besar kedalamannya, maka AI akan semakin kuat dengan kemungkinan menang semakin besar. Namun ketika kedalaman tersebut semakin besar, waktu berpikir AI akan semakin lama dalam menentukan keputusan[8].

Pada penelitian yang membandingkan algoritma alpha-beta prunning dengan algoritma negascout pada permainan checkers. Algoritma negascout menghasilkan node yang lebih sedikit dan waktu pencarian yang lebih cepat dibanding algoritma alpha-beta prunning[5]. Algoritma Negascout belum pernah diterapkan untuk menentukan langkah lawan (AI) dalam membentuk “mill” dan

mencegah pemain membentuk “mill” pada permainan nine men’s morris. Dimana algoritma negascout merupakan algoritma perbaikan dari alpha-beta pruning yang digunakan pada algoritma minimax dengan mempersempit ruang pencarian (minimal search window), dengan semakin sempitnya selisih nilai alpha dan beta, maka semakin besar kemungkinan terjadinya pemotongan pencarian. Sehingga akan mempercepat waktu berpikir AI dalam mengambil keputusan. Algoritma negascout menghasilkan jendela pencarian yang lebih kecil dari pada alpha-beta pruning[9].

Berdasarkan latar belakang yang telah dijelaskan maka penelitian tugas

akhir ini berjudul “Implementasi Algoritma Negascout Untuk Menentukan

Langkah Pemain Lawan Pada Permainan Nine Men’s Morris”. 1.2. Perumusan Masalah

Berdasarkan uraian di latar belakang yang telah diuraikan, maka yang menjadi pokok permasalahan adalah Bagaimana mengimplementasikan algoritma

Negascout untuk menentukan langkah pemain lawan pada permainan Nine Men’s


(13)

1.3. Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dan tujuan dari penulisan tugas akhir ini.

1.3.1. Maksud

Maksud dari penelitian ini adalah mengimplementasikan algoritma

Negascout pada AI permainan Nine Men’s Morris. 1.3.2. Tujuan

Tujuan yang ingin dicapai dari penelitian ini implementasi algoritma Negascout pada permainan nine men’s morris untuk menentukan langkah pemain lawan dalam mengambil keputusan.

1.4. Batasan Masalah

Batasan masalah yang ditentukan dalam penelitian ini adalah sebagai berikut :

1. Permainan yang akan dibangun hanya berupa prototype.

2. Permainan dibangun berbasis desktop dan dimainkan secara offline. 3. Permainan Nine Men’s Morris dimainkan oleh 1 pemain dan 1 komputer. 4. Algoritma yang digunakan untuk gerakan pemain lawan adalah Algoritma

Negascout.

5. Permainan tidak menggunakan batasan waktu. 6. Tidak ada tingkatan kesulitan.

7. Model analisis perancangan yang digunakan adalah analisis perancangan dan pengembangan perangkat lunak berorientasi obyek, dengan menggunakan pemodelan Unified Modeling Language (UML).

8. Implementasi algoritma dalam penelitian ini menggunakan bahasa pemrograman Java.

1.5. Metodologi Penelitian

Metodologi yang digunakan dalam penulisan tugas akhir ini adalah


(14)

1.5.1. Metode Pengumpulan Data

Metode pengumpulan data yang digunakan dalam penelitian ini dengan menggunakan studi literature. Dimana pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan mengenai permainan

Nine Men’s Morris dan algoritma Negascout yang ada kaitannya dengan judul penelitian.

1.5.2. Metode Pembangunan Perangkat Lunak

Metode dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara Prototype. Prototyping adalah salah satu pendekatan dalam rekayasa perangkat lunak yang secara langsung mendemonstrasikan bagaimana sebuah perangkat lunak atau komponen-komponen perangkat lunak akan bekerja dalam lingkungannya sebelum tahapan konstruksi aktual dilakukan. Model ini dimulai dengan pengumpulan kebutuhan. Pendekatan prototyping model digunakan jika pemakai hanya mendefenisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk antarmuka manusia-mesin yang harus diambil.

Adapun tahapan-tahapan dalam pembuatan perangkat lunak selama proses penelitian dengan menggunakan model Prototype adalah sebagai berikut pada gambar 1.1 :

Gambar 1.1 Ilustrasi model Prototype[13] 1. Pengumpulan Kebutuhan

Pada tahap ini dilakukan pengumpulan apa saja yang dibutuhkan dalam penelitian. Seperti pengumpulan data-data, jurnal, artikel mengenai algoritma


(15)

negascout, serta komponen-komponen yang dibutuhkan dalam membangun aplikasi.

2. Perancangan

Pada tahap ini dilakukan analisis dan perancangan sistem, baik itu analisis kebutuhan fungsional ataupun non fungsional seperti analisis data, analisis berorientasi objek yang terdiri dari perancangan use case diagram, activity diagram, sequence diagram, statechart diagram, dan class diagram. Serta perancangan antarmuka dan perancangan pesan. Dan setelah itu perancangan sistem dan perangkat lunak ditranslasikan ke dalam aplikasi perangkat lunak dengan menggunakan bahasa pemrograman java. Sehingga hasil dari tahap ini adalah aplikasi perangkat lunak yang sesuai dengan perancangan sistem dan perangkat lunak yang telah dibuat.

3. Evaluasi Prototipe

Pada tahap ini dilakukan pengujian pada aplikasi perangkat lunak serta memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk mengetahui kesalahan dan meminimalisirnya serta memastikan perangkat lunak yang dihasilkan sesuai yang diinginkan.

1.6. Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Bab ini berisikan tentang latar belakang permasalahan pengimplementasian algoritma Negascout pada permainan nine men’s morris, perumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab ini berisikan tentang konsep dasar dan teori yang mendukung dalam pembangunan permainan, seperti pengertian permainan nine men’s morris, Artificial Intelligence (kecerdasan buatan), pohon permainan, algoritma


(16)

negascout, pemrograman berorientasi objek, UML (Unified Modeling Language), dan Java.

BAB 3 ANALISIS DAN KEBUTUHAN ALGORITMA

Bab ini berisikan tentang analisis masalah, analisis game, analisis masukan, analisis algoritma negascout, analisis kebutuhan non fungsional, analisis kebutuhan fungsional serta perancangan pada game yang akan dibangun.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisikan implementasi antarmuka permainan nine men’s morris dan pengujian sistem yang telah dibangun.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang merupakan rangkuman dari hasil pengujian perangkat lunak dan saran yang perlu diperhatikan bagi pengembangan perangkat lunak di masa yang akan datang.


(17)

7

2.1. Nine Men’s Morris

Nine men’s morris merupakan salah permainan papan dengan 2 pemain, untuk lebih jelasnya dapat dilihat pada pengenalan nine men’s morris, peraturan nine men’s morris dan strategi nine men’s morris.

2.1.1. Pengenalan Nine Men’s Morris

Nine Men’s Morris adalah sebuah permainan yang sudah sangat tua,

bahkan salah satu yang tertua sepanjang sejarah. Permainan ini banyak ditemukan di berbagai negara. Papan tertua yang pernah ditemukan berada di Mesir, diperkirakan berasal dari 1400 SM. Nama Nine Men’s Morris sendiri tercipta ketika permainan ini mencapai Inggris, jauh setelah permainan ini tercipta, yaitu pada masa Middle Ages. Pada zaman inilah Nine Men’s Morris meraih popularitas di antara kalangan masyarakat.

Permainan ini juga memiliki banyak versi. Nine Men’s Morris memiliki 9 bidak untuk masing-masing pemain. Ada empat permainan sejenis yang memiliki aturan mirip tapi jumlah bidaknya berbeda, yaitu Three Men’s Morris, Six Men’s

Morris, Eleven Men’s Morris, dan Twelve Men’s Morris. Selain itu, ada juga

varian dengan aturan Nine Men’s Morris yang dimodifikasi, contohnya Misere, Diagonals, dan No Fly.

Ada berbagai nama lain untuk Nine Men’s Morris. Contohnya, di Jerman disebut Mühle, di Perancis disebut Jeu De Moulin atau Merelles, di India disebut Sujjua, di Cina disebut Sam K'i, di Mexico disebut Picaria, dan masih banyak lagi. Hal ini menunjukan opularitas Nine Men’s Morris yang melintasi


(18)

Papan yang digunakan berupa 3 buah persegi berbeda ukuran dengan yang lebih kecil berada di dalam persegi yang lebih besar. Titik tengah sisi sebuah persegi terhubung dengan titik tengah sisi dua persegi lain dengan sebuah garis. Bidak, yang berjumlah 9 dengan warna biasanya masing-masing hitam dan putih, diletakkan pada perpotongan antara dua garis[8]. Adapun papan permainan dari nine men’s morris dapat dilihat pada gambar 2.1 :

Gambar 2.1 Contoh Papan Permainan Nine Men’s Morris 2.1.2. Peraturan Permainan

Pada permainan Nine Men’s Morris, untuk mengalahkan lawan seorang

pemain harus membentuk “mill” (atau disebut juga “morris”) yaitu garis lurus dengan tiga bidak berwarna sama. Jika mill berhasil terbentuk, pemain berhak mengambil bidak pemain lain yang tidak berada di dalam garis mill.

Hanya ada dua kemungkinan bentuk mill yang dapat diraih. Kemungkinan pertama yaitu tiga bidak yang berada pada sisi yang sama dari persegi ketiga atau persegi kedua. Kemungkinan lain adalah tiga bidak yang berada pada garis pemisah dengan arah mata angin yang sama[8]. Adapun contoh terbentuknya mill dapat dilihat pada gambar 2.2.


(19)

Gambar 2.2 Contoh Terbentuknya Mill

Permainan ini terdiri dari tiga fase dan pada ketiganya pemain dapat membentuk mill dan mengambil bidak pemain lawan.

1) Fase Pertama : Meletakkan Bidak

Pada fase ini, masing-masing pemain secara bergantian meletakkan bidaknya pada papan. Jika seorang pemain berhasil membentuk mill, pemain tersebut boleh mengambil bidak pemain lawan di papan. Fase ini berakhir ketika seluruh bidak telah diletakkan pada papan permainan atau diambil pemain lain.

2) Fase Kedua : Menggerakkan Bidak

Pada fase ini, pemain dapat menggeser bidaknya secara bergiliran sesuai dengan garis yang ada. Kedua pemain dapat saling berlomba untuk membentuk mill atau menghalangi lawan membentuk mill.

3) Fase Ketiga : Flying

Fase ketiga dimulai ketika seorang pemain hanya tinggal memiliki tiga bidak. Dalam fase ini pemain tersebut dapat memindahkan bidaknya ke posisi manapun di dalam papan.

Permainan berakhir berdasarkan tiga kondisi, yaitu :

1) Kondisi pertama adalah salah satu pemain tidak bisa menggerakkan bidaknya kemanapun, maka pemain itu dinyatakan kalah. Contoh kondisi pertama dapat dilihat pada gambar 2.3.


(20)

Gambar 2.3 Pemain Hitam Tidak Bisa Bergerak

2) Kondisi kedua adalah jika seorang pemain memiliki kurang dari tiga bidak, maka pemain itu dinyatakan kalah.

3) Kondisi ketiga adalah ketika posisi seluruh bidak terulang, maka permainan dinyatakan seri.

2.1.3. Strategi Permainan

Ada beberapa strategi yang umum digunakan oleh para pemain dalam

memenangkan permainan Nine Men’s Morris :

1. Lokasi yang strategis

Pada fase pertama, sangat penting untuk meletakkan para bidak di posisi yang strategis (mudah untuk digerakkan, tidak terhalang), dan tidak berfokus untuk membuat mill. Contoh posisi yang strategis adalah titik tengah di kotak terdalam, dimana bidak dapat bergerak pada tiga arah. Namun meletakkan bidak condong ke salah satu kotak juga tidak direkomendasi, distribusi bidak harus merata.

2. Menghalangi pemain lain

Keunikan permainan ini adalah mill yang dibentuk dapat digunakan berkali-kali. Ketika seorang pemain sudah membentuk sebuah mill, dia bisa memindahkan bidaknya ke tempat lain pada giliran berikutnya, dan mengembalikannya ke tempat semula pada giliran selanjutnya, dan mill akan erbentuk kembali. Maka dia berhak mengambil dua bidak pada tiga giliran tersebut. Kondisi seperti ini harus dicegah oleh pemain lawannya, dengan cara


(21)

meletakkan bidaknya sendiri di posisi yang ditinggalkan pada giliran kedua. Taktik ini disebut dengan blocking. Atau jika blocking tidak memungkinkan, pemain tersebut juga bisa mencoba membentuk mill sendiri, sehingga pemain lawan harus memilih antara melanjutkan membentuk mill atau melakukan blocking.

3. Double mill

Double mill dibentuk dengan dua mill yang bersisian sedemikian rupa sehingga pemain dapat menggerakkan bidak dari sebuah mill yang sudah terbentuk ke posisi yang menyebabkan mill lain terbentuk. Double mill adalah kondisi yang sangat menguntungkan bagi seorang pemain, karena dia bisa mengambil bidak lawan pada setiap giliran. Double mill harus menjadi prioritas blocking pemain lawan[8].

2.2. Kecerdasan Buatan

Kecerdasan buatan merupakan salah satu bidang ilmu komputer yang didefinisikan sebagai kecerdasan yang dibuat untuk suatu sistem dengan menggunakan algoritma-algoritma tertentu sehingga sistem tersebut seolah-olah dapat berpikir seperti manusia[2]. Terdapat beberapa tujuan akhir dari kecerdasan buatan yaitu :

1. Memahami pola pikir manusia, mencoba untuk mendapatkan pengetahuan ingatan manusia yang mendalam, kemampuan dalam memecahkan masalah, belajar, dan mengambil keputusan.

2. Otomatisasi, menciptakan sistem yang dapat menggantikan manusia dalam tugas-tugas intelegensi. Menggunakan sistem yang performanya sebaik manusia dalam melakukan pekerjaan.

3. Penguatan intelegensi, membangun sistem untuk membantu manusia agar mampu berpikir lebih baik dan lebih cepat.

4. Intelegensi manusia super, membangun sistem yang mempunyai kemampuan untuk melebihi intelegensi manusia.

5. Menyelesaikan permasalahan, sistem mampu menyelesaikan berbagai masalah yang luas.


(22)

6. Wacana koheren, mampu berkomunikasi dengan manusia menggunakan bahasa alami.

7. Belajar, mampu memperoleh data sendiri dan mengetahui bagaimana cara memperoleh data. Sistem mampu membuat hipotesis, penerapan atau pembelajaran secara heuristik dan membuat alasan dengan analogi.

8. Otonomi, mempunyai sistem intelegensi yang beraksi atas inisiatif sendiri. 9. Informasi, mampu menyimpan informasi dan mengetahui cara mengambil

informasi[6].

2.3. Agen Cerdas

Agen adalah sesuatu yang dapat mengesan lingkungannya melalui sensorsdan mengambil tindakan terhadap lingkungannya melalui actuators. Dengan adanya agen cerdas, maka diharapkan sistem mampu berpikir dan menentukan pilihan langkah yang tepat[7]. Terdapat beberapa karakteristik lingkungan agen yaitu sebagai berikut :

1. Fully observable – partially observable

Apabila sensor pada suatu agen dapat mengakses seluruh keadaan pada lingkungan, maka lingkungan itu dapat dikatakan fully observable terhadap agen. Lebih efektif lagi lingkungan dikatakan fully observable jika sensor dapat mendeteksi seluruh aspek yang berhubungan dengan pilihan aksi yang akan dilakukan. Lingkungan yang fully observable biasanya sangat memudahkan, karena agen tidak perlu mengurus keadaan internal untuk terus melacak keadaan lingkungan. Suatu lingkungan bisa menjadi partially observable akibat ada gangguan dan ketidakakurasian sensor ataupun karena ada bagian keadaan yang hilang dari data sensor. Permainan nine men’s morris bersifat fully observable karena seluruh keadaan pada papan permainan dan bidak-bidak yang ada semua dapat dipersepsi dengan baik. 2. Deterministic – stochastic

Apabila keadaan lingkungan selanjutnya sepenuhnya bergantung pada keadaan sekarang dan juga tindakan yang akan dilakukan oleh agen, maka lingkungan tersebut bersifat deterministic. Sedangkan stochastic adalah


(23)

kebalikan dari deterministic, dimana keadaan selanjutnya tidak bergantung pada keadaan sekarang dan juga tindakan yang akan dilakukan oleh agen. Apabila lingkungan bersifat deterministic terkecuali untuk tindakan dari agen, maka lingkungan tersebut bersifat strategic. Permainan nine men’s morris bersifat deterministic karena keadaan selanjutnya bergantung pada keadaan sekarang.

3. Episodic – sequential

Untuk lingkungan yang bersifat episodic, pengalaman agen dibagi-bagi menjadi beberapa episode pendek. Tiap episode terdiri dari apa yang dirasakan agen dan kemudian melakukan satu tindakan tertentu. Kualitas dari tindakan agen hanya tergantung pada episode itu saja, karena tindakan selanjutnya tidak tergantung pada tindakan apa yang akan dilakukan di episode sebelumnya. Lingkungan episodic lebih sederhana karena agen tidak perlu memikirkan langkah-langkah pada keadaan selanjutnya. Sedangkan pada lingkungan sequential, tindakan saat sekarang dapat mempengaruhi tindakan selanjutnya. Permainan nine men’s morris bersifat sequential karena agen berpikir untuk langkah- langkah selanjutnya dan seluruh langkah yang akan diambil oleh agen saling bergantung.

4. Static – dynamic

Apabila lingkungan dapat berubah saat agen sedang mengambil keputusan, maka lingungan tersebut bersifat dynamic, sebaliknya bersifat static. Lingkungan yang bersifat static lebih mudah dihadapi karena agen tidak perlu memperhatikan lingkungannya saat dia sedang mengambil tindakan, maupun waktu yang terus berjalan. Apabila lingkungan tidak berubah seiring waktu berjalan, namun menyebabkan nilai kemampuan agen berubah-ubah, maka lingkungan tersebut bersifat semidynamic. Permainan nine men’s morris bersifat static karena saat agen mengambil tindakan, lingkungan tidak berubah dan juga tidak mempengaruhi nilai kemampuan agen.


(24)

5. Discrete – continuous

Apabila kesan dan tindakan yang akan diterima dan dilakukan oleh agen telah ditetapkan dengan jelas, maka lingkungan tersebut bersifat discrete. Catur bersifat discrete, karena langkah yang akan diambil terbatas dan tertentu. Sedangkan pengendara taxi bersifat continuous, karena kecepatan dan lokasi pada taksi untuk suatu jangka tertentu mempunyai nilai yang terus-menerus berubah. Permainan nine men’s morris bersifat discrete karena seluruh kesan dan tindakan telah jelas ditetapkan sesuai dengan peraturan permainan.

6. Single agent – multiagent

Agen pemecah permainan teka teki silang berada pada lingkungan yang bersifat single agent. Agen pemain catur berada pada lingkungan yang bersifat multiagent. Ada hal lain yang memberikan perbedaan lingkungan agen, yaitu akan hal apakah agen memberikan bantuan kepada agen lain atau apakah agen akan memaksimalkan kemampuannya bergantung pada prilaku agen lain. Permainan nine men’s morris bersifat multiagent karena memikirkan langkah yang akan diambil oleh lawan[12].

2.4. Pohon Permainan

Pohon permainan mempresentasikan kepada pemain kondisi - kondisi yang mungkin dihadapi pada permainan dimulai dari kondisi yang sedang dihadapi sekarang hingga beberapa kondisi ke depan. Sebuah pohon permainan merupakan representasi grafis dari contoh permainan. Pohon permainan menyediakan informasi pemain, hasil, strategi, dan pilihan langkah.

Pohon permainan dapat direpresentasikan dengan baik pada permainan yang dilakukan secara giliran (turn-based-game). Pohon permaian memiliki root yang merupakan representasi dari kondisi langkah yang belum diambil, node pada pohon mempresentasikan keadaan-keadaan yang mungkin diambil pada permainan, dan Arcs yang mempresentasikan langkah.

Pengguna pohon permainan pada permainan yang dimainkan oleh dua pemain direpresentasikan dengan cara bergantian. Untuk edges dari tingkat pertama keringat kedua mempresentasikan langkah - langkah yang dapat diambil


(25)

oleh pemain pertama, sedangkan untuk edges dari tingkat kedua ketingkat ketiga mempresentasikan langkah-langkah yang diambil oleh pemain kedua, dan begitu seterusnya.

Leaf node pada pohon permainan mempresentasikan keadaan akhir pada permainan, Diana pemain tersebut dimenangkan, dikalahkan ataupun seri. Pada permainan sederhana, untuk mencapai leaf node mungkin dapat direpresentasikan, tetapi untuk permainan yang rumit seperti Damdaman, pencapaian leaf node angat tidak memungkinkan karena percabangan pada pohon permainan yang sangat besar.

Gambar 2.4 Contoh Pohon Permainan Tic Tac Toe[1]

Berikut penjelasan pohon permainan tictactoe pada gambar 2.4:

1. Terdapat root yang merupakan keadaan awal Dimana pemain belum mulai bermain dan langkah belum diambil.

2. Edges yang menghubungkan tingkat pertama (root) dengan tingkat kedua merupakan langkah pemain pertama dan begitu seterusnya. Sehingga ohon permainan tersebut merepresentasikan langkah kedua pemain secara bergantian.

3. Untuk nodes pada pohon tersebut merepresentasikan keadaan-keadaan yang dapat diambil oleh pemain yang akan melangkah.

4. Percabangan pertama yang dihasilkan adalah 9, kemudian untuk percabangan berikutnya adalah 8, dan begitu seterusnya hingga mencapai keadaan akhir (leaf nodes).


(26)

2.5. Algoritma Negascout

Negascout merupakan optimalisasi minimax dengan mempersempit ruang pencarian (minimal search window), dengan semakin sempitnya selisih nilai alpha dan beta maka semakin besar kemungkinan terjadinya pemotongan pencarian. Negascout memiliki dasar bahwa langkah-langkah setelah langkah pertama akan menghasilkan pemotongan, maka mengevaluasi semua langkah adalah sia-sia. Negascout akan mengecek dengan null window terlebih dahulu yang dinotasikan dengan m dan n dimana m adalah batas atas dan n adalah batas bawah, null window memiliki batas atas dan bawah yang berselisih satu. Ketika sebuah node memiliki nilai yang lebih tinggi dari m maka akan dilakukan pencarian ulang dengan menggunakan window yang lebih besar untuk mengetahui nilai yang terbaik[1]. Pada gambar 2.5 dapat dilihat pseudocode algoritma Negascout.

Gambar 2.5 Pseudo-code algoritma Negascout[5]

Keterangan pseudo code: p = kondisi papan

d = kedalaman maksimum dari pohon yang ditelusuri

b = lebar pohon (banyak langkah yang mungkin terjadi pada papan)

1 FUNCTION negascout (p: POSITION; alpha, beta, depth: INTEGER) : INTEGER;

2 VAR i,t,m,n: INTEGER; 3 BEGIN

4 IF depth = d THEN RETURN (evaluate(p)) 5 ELSE

6 BEGIN m := -INFINITY; 7 n := beta;

8 FOR i := 1 TO b DO

9 BEGIN t:= -negascout (p.i,-n,-max(alpha,m),depth+1); 10 IF t > m THEN

11 IF (n = beta) OR (depth >= d-2)

12 THEN m := t

13 ELSE m := -negascout (p.i,-beta,-t,depth+1);

14 IF m >= beta THEN RETURN (m);

15 n := max (alpha, m) +1;

16 END;

17 RETURN (m);

18 END; 19 END;


(27)

evaluate(p) = merupakan fungsi yang memberikan nilai evaluasi pada kondisi

papan “p”.

Gambar 2.5 merupakan pseudocode untuk algoritma Negascout, berdasarkan algoritma diatas dapat dijelaskan cara kerja algoritma negascout sebagai berikut, statement pertama sama seperti alpha-beta, yaitu jika posisi p adalah node leaf maka negascout akan mengembalikan nilai fungsi evaluasi (baris 4). Selain itu variable m dan n diinisialisasi dengan -∞ dan beta (baris 6 dan 7). Kemudian negascout akan melakukan "scout" pada node anak dari p dari kiri ke kanan. Node anak paling kiri akan dicari dengan menggunakan interval(-beta,-alpha) dan anak lainnya dicari dengan zero-width window (-m-1, -m) yang sudah diisi pada baris 15 sesudah melakukan pencarian anak paling kanan, karena null window ini tidak memiliki elemen, maka pencarian pasti akan gagal. Arah dari kegagalan ini menunjukkan apakah node tersebutdapat dipotong atau tidak.

Jika null window gagal karena t > m (baris 10), negascout harus mengecek kembali node tersebut dengan search window yang lebih lebar untuk mengetahui nilai aslinya. Hanya terdapat dua kasus dimana tidak diperlukan pencarian ulang yaitu, ketika n=beta (baris 11), dan negascout's "fail-soft refinement"selalu mengembalikan nilai minimax yang benar pada dua level terbawah. Pada kasus lainnya pencarian ulang harus dilakukan dengan menggunakan search window baru yaitu (-beta,-t) (baris 13).

Kondisi untuk pemotongan (baris 14) sama seperti alpha-beta : jika m

≥beta maka semua node anak lain dapat diabaikan[5].

2.5.1. Pemotongan Alpha

Gambar 2.6 menunjukan satu pohon permainan sebelum proses pemotongan dilakukan. Untuk lebih mudah melihat bagaimana nilai nilai di proses, akan dicoba dlakukan dengan algoritma Minimax untuk ilustrasi ini.


(28)

Gambar 2.6 Pohon Permainan dengan Proses Pemotongan Alpha [3] Untuk proses pertama, sama halnya dengan algoritma Minimax. Jika pemain memilih langkah A, maka lawan akan membiarkan respons dengan langkah C, dan memberikan pemain nilai 5. Maka nilai 5 naik pada tingkat min. Jika pemain memilih langkah B maka lawan akan melangkah ke E, sehingga pemain akan mendapat nilai 4. Setelah melihat kondisi demikian pemain akan menyadari nilai yang didapatkan lebih rendah dari nilai sementara di tingkat max. Sehingga pemain akan menyimpulkan ini adalah langkah yang salah.

Untuk melakukan pemotongan dengan cara ini, perlu dilakukan pencarian nilai terbaik yang pasti akan tercapai. Bahkan, nilai ini membentuk batas bawah pada nilai yang akan tercapai. Sehingga urutan langkah yang lebih baik dapat ditemukan dalam pencarian, namun nilai yang paling rendah akan mustahil untuk didapatkan. Batas bawah ini dinamakan nilai alpha dan pemotongannya dinamakan dengan pemotongan alpha.

2.5.2. Pemotongan Beta

Pemotongan beta bekerja dengan cara yang sama. Nilai beta terus melacak nilai batas tertinggi dari nilai yang diharapkan. Nilai beta berubah ketika ditemukan satu langkah yang dipaksakan oleh lawan.

Pada posisi itu pemain mengetahui tidak ada nilai yang lebih besar dari beta. Jika urutan langkah yang bernilai lebih besar dari nilai beta ditemukan maka dari kondisi ini dapat diabaikan, karena kesempatan untuk mendapatkannya lebih kecil.


(29)

2.5.3. Pemotongan Alpha Beta

Bersamaan nilai – nilai dari alpha dan beta memberikan satu jendela kemungkinan langkah. Pemain etika pernah memilih untuk melakukan langkah yang dinilainya lebih kecil dari alpaha, dan lawan tidak akan pernah membiarkan ada langkah yang lebih besar dari beta. Nilai pada akhirnya harus terletak antara alpha dan beta. Ketika pencarian mulai dilakukan pada pohon, nilai - nilai dari alpha dan beta diperbaharui. Jika cabang dari pohon yang ditemukan di luar nilai - nilai ini, maka akan dilakukan pemotongan pada cabang.

2.6. OOP (Object Oriented Programming)

Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku. Dalam kehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata seperti manusia, hewan, mobil, komputer, handphone, pena, ataupun benda yang tidak nyata atau konsep, seperti halnya tabungan bank, sistem antrian, sistem internet banking, dan sebagainya. Jadi pengertian OOP adalah konsep yang membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (konsep). Jika kita menggunakan OOP maka akan ada enam keuntungan yang dapat diperoleh, yaitu [10] :

1. Alami (Natural)

2. Dapat diandalkan (Reliable)

3. Dapat digunakan kembali (Reusable) 4. Mudah untuk perawatan (Maintainable) 5. Dapat diperluas (Extendable)

6. Efisiensi waktu

Berikut ini beberapa bahasa pemrograman yang sudah menggunakan konsep OOP, adalah :

1. C++

2. Visual C++

3. Visual Basic


(30)

2.7. Pemodelan Dengan UML

UML (Unified Modeling Language) adalah salah satu alat bantu yang sangat handal di dunia pengembangan sistem yang berorientasi obyek[10]. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembang sistem untuk membuat cetak biru atas visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi dan mengkomunikaskan rancangan mereka dengan yang lain.

UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan oleh Booch, Object Modeling Technique (OMT) dan Object Oriented Software Engineering (OOSE). Metode Booch dari Grady Booch sangat terkenal dengan nama metode Design Object Oriented. Metode ini menjadikan proses analisis dan design ke dalam empat tahapan iterative, yaitu: identifikasi kelas-kelas dan obyek-obyek, identifikasi semantic dari hubungan obyek dan kelas tersebut, perincian interface dan implementasi. Keunggulan metode Booch adalah pada detail dan kayanya dengan notasi dan elemen. Pemodelan Object Modeling Technique yang dikembangkan Rumbaugh didasarkan pada analisis terstruktur dan permodelan entity-relationship. Tahapan utama dalam metodologi ini adalah analisis, design sistem, design obyek dan implementasi. Keungulan metode ini aladah dalam penotasian yang mendukung semua konsep Object Oriented Software Engineering. Metode Object Oriented Software Engineering Jacobson lebih memberikan penekanan pada use case. Object Oriented Software Engineering memiliki tiga tahapan yaitu membuat model requirement dan analisis, design dan implementasi, dan model pengujian. Keungulan metode ini adalah mudah dipelajari karena memiliki notasi yang sederhana namun mencakup seluruh tahapan dalam rekayasa perangkat lunak.

Dengan UML, metode Booch, Object Modeling Technique dan Object Oriented Software Engineering digabungkan dengan membuang elemen-elemen yang tidak praktis ditambah dengan elemen-elemen dari metode lain yang lebih efektif dan elemen-elemen baru yang belum ada pada metode terdahulu sehingga UML lebih ekspresif dan seragam dari pada metode lainnya.


(31)

2.7.1. Diagram – Diagram UML

Didalam UML terdapat beberapa macam diagram yang dapat menggambarkan suatu sistem, berikut adalah beberapa diagram yang terdapat di dalam UML.

1. Use Case dan Use Case Diagram

Use case adalah deskripsi fungsi dari sebuah sistem dari perspektif pengguna. Use case bekerja dengan cara mendeskripsikan tipikal antara pengguna sebuah sistem dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah sistem dipakai. Urutan langkah-langkah yang menerangkan antara pengguna dan sistem disebut scenario. Setiap scenario mendeskripsikan urutan kejadian. Setiap urutan diinisialisasi oleh orang, sistem yang lain, perangkat keras atau urutan waktu. Dengan demikian secara singkat bisa dikatakan, use case adalah serangkaian scenario yang digabungkan bersama-sama oleh tujuan umum pengguna.

Use case diagram adalah penggambaran interaksi pengguna sistem (actor) dengan kasus (use case) yang telah disesuaikan dengan langkah-langkah (scenario). Diagram use case menunjukan 3 aspek dari system yaitu actor, use case dan sistem, sub sistem boundary. Actor mewakili perang orang, sistem yang lain atau alat ketika berkomunikasi dengan use case.

2. Class Diagram

Class dalam notasi UML digambarkan dengan kotak. Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah obyek dan merupakan inti dari pengembangan dan desain berorientasi obyek. Class menggambarkan keadaan (atribut atau properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda atau fungsi).

Class mempunyai beberapa bagian yang menjelaskan isi dari class:

a. Attribute adalah property dari sebuah class. Attribute ini melukiskan batas nilai yang mungkin ada pada obyek class. Sebuah class mungkin mempunyai nol atau lebih attribute.


(32)

b. Operation adalah sesuatu yang bisa dilakukan oleh sebuah class atau class yang lain dapat lakukan untuk sebuah class.

c. Responsibility adalah keterangan tentang apa yang akan dilakukan class yaitu apa yang akan dicapai oleh attribute dan operation.

3. Statechart diagram

Menelusuri individu-individu obyek melalui keseluruhan daur hidupnya, menspesifikasikan semua urutan yang mungkin dari pesan-pesan yang akan diterima obyek tersebut, bersama-sama dengan tanggapan atas pesan-pesan tersebut.

Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu obyek pada sistem sebagai akibat dari stimulasi yang diterima [10]. Pada umunya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).

Simbol UML untuk state diagram adalah segiempat yang tiap pojoknya dibuat rounded, Titik awalnya menggunakan lingkaran solid yang diarsir dan diakhiri dengan mata.

4. Activity Diagram

Activity Diagram adalah teknik untuk mediskripsikan logika procedural, proses bisnis dan aliran kerja dalam banyak kasus [10]. Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah activity diagram bisa mendukung perilaku parallel sedangkan flowchart tidak bisa.

Activity diagram tidak menunjukan apa yang terjadi, tetap tidak menunjukan siapa yang melakukan apa. Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi dan bagaimana mereka berakhir, Activity diagram juga dapat menggambarkan proses parallel yang mungking terjadi pada beberapa eksekusi. Simbol-simbol yang sering digunakan pada pembuatan activity diagram.


(33)

5. Sequence Diagram

Sequence diagram digunakan untuk menggambarkan perilaku pada sebuah

scenario. Diagram ini menunjukan sejumlah contoh obyek dan message pesan

yang diletakan diantara obyek-obyek ini dalam use case.

Sequence diagram menggambarkan interaksi antar obyek di dalam dan di sekitar sistem berupa message yang digambarkan terhadap waktu [10]. Sequence diagram terdiri atas dimensi vertical (waktu) dan dimensi horizontal (obyek-obyek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan scenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.

Komponen utama sequence diagram terdiri atas obyek yang dituliskan dengan kotak segiempat bernama. Message diwakili oleh garis dengan tanda panah dan waktu yang ditunjukan dengan progress vertical. Penjelasan dari komponen utama sequence diagram yaitu :

a. Obyek atau Participant

Obyek atau participant diletakan di dekat bagian atas diagram dengan urutan dari kiri ke kanan. Mereka diatur dalam urutan guna menyederhanakan diagram. Setiap participant terhubung dengan garis titik-titik yang disebut lifeline. Sepanjang lifeline ada kotak yang disebut

activation. Activation mewakili sebuah eksekusi operation dari

participiant. Panjang kotak ini berbanding lurus dengan durasi activation.

b. Message

Sebuah message bergerak dari satu participant ke participant yang lain dan dari satu lifeline ke lifeline yang lain. Sebuah participant bisa mengirim sebuah message kepada dirinya sendiri.

c. Time

Time adalah diagram yang mewakili waktu pada arah vertical. Waktu dimulai dari atas kebawah. Message yang lebih dekat dari atas akan


(34)

dijalankan terlebih dahulu dibandingkan message yang lebih dekat ke bawah.

6. Collaboration diagram

Collaboration diagram adalah perluasan dari obyek diagram. Obyek diagram menunjukan obyek-obyek dan hubungannya satu dengan yang lain. Collaboration diagram menunjukan message-message obyek yang dikirimkan satu sama lain [10].

Collaboration diagram juga menggambarkan interaksi antar obyek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing obyek dan bukan pada waktu penyampaian message. Setiap message memiliki sequence number, dimana message dari level tertinggi memiliki nomor satu Message dari level yang sama memiliki prefix yang sama.

Dengan collaboration diagram memungkinkan untuk memodelkan pengiriman sebuah message ke banyak obyek pada class yang sama. Demikian juga halnya untuk menunjukan adanya obyek aktif yang mengendalikan aliran message.

7. Component diagram

Component diagram merepresentasikan dunia nyata item yaitu component software. Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) diantaranya. Component software adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time. Umumnya komponen terbentuk dari beberapa class dan atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain. Component diagram mengandung component, interface dan relationship [10].


(35)

8. Deployment diagram

Deployment diagram menunjukan tata letak sebuah sistem secara fisik, menampakan bagian-bagian software yang berjalan pada bagian-bagian hardware [10].

Deployment diagram menyediakan gambaran bagaimana sistem secara

fisik akan terlihat. Sistem terdiri dari node-node dimana setiap node diwakili untuk sebuah kubus. Garis yang menghubungkan antara dua kubus menunjukan hubungan diantara kedia node tersebut. Tipe node bisa berupa device yang berwujud hardware dan bisa juga processor (yang mengeksekusi component) atau execution environment (software yang menjadi host atau mengandung software yang lain).

2.8. Java

Java adalah bahasa pemrograman yang disusun oleh James Gosling yang dibantu oleh rekan-rekannya seperti Patrick Naughton, Chris Warth, Ed Rank, dan Mike Sheridan di suatu perusahaan perangkat lunak yang bernama Sun Microsystems pada tahun 1991. Bahasa pemrograman ini mula-mula diinisialisasi dengan nama “Oak”, namun pada tahun 1995 diganti namanya menjadi “Java”.


(36)

(37)

27 3.1. Analisis Masalah

Analisis masalah dilakukan untuk mengetahui masalah – masalah apa saja yang terjadi dalam permainan nine men’s morris. Berdasarkan latar belakang masalah dari mengevaluasi jurnal yang buat oleh Kevin Winata yang berjudul

“Penerapan Algoritma Alpha-Beta Pruning pada Permainan Nine Men’s Morris” yang menggunakan kedalaman terbatas. Kedalaman tersebut ditentukan oleh user atau programmer. Semakin besar kedalamannya, maka AI akan semakin kuat dengan kemungkinan menang semakin besar. Namun ketika kedalaman tersebut semakin besar, waktu berpikir AI semakin lama dalam mengambil keputusan.

3.2. Analisis Game

Game yang akan dibangun adalah game nine men’s morris yang bergenre

board game. Game ini dibangun 2D dan dimainkan secara single player. 3.2.1. Gameplay

Permainan ini terdiri dari tiga fase dan pada ketiganya pemain dapat membentuk mill dan mengambil bidak pemain lawan.

1) Meletakkan Bidak

Pada fase ini, masing-masing pemain secara bergantian meletakkan bidaknya pada papan. Jika seorang pemain berhasil membentuk mill, pemain tersebut boleh mengambil bidak pemain lawan di papan. Fase ini berakhir ketika seluruh bidak telah diletakkan pada papan permainan atau diambil pemain lain.

2) Menggeserkan Bidak

Pada fase ini, pemain dapat menggeser bidaknya secara bergiliran sesuai dengan garis yang ada. Kedua pemain dapat saling berlomba untuk membentuk mill atau menghalangi lawan membentuk mill.


(38)

3) Memindahkan Bidak

Fase ketiga dimulai ketika seorang pemain hanya tinggal memiliki tiga bidak. Dalam fase ini pemain tersebut dapat memindahkan bidaknya ke posisi manapun di dalam papan.

Permainan berakhir berdasarkan tiga kondisi, yaitu :

1) Kondisi pertama adalah salah satu pemain tidak bisa menggerakkan bidaknya kemanapun, maka pemain itu dinyatakan kalah.

2) Kondisi kedua adalah jika seorang pemain memiliki kurang dari tiga bidak, maka pemain itu dinyatakan kalah.

3) Kondisi ketiga adalah ketika posisi seluruh bidak terulang, maka permainan dinyatakan seri.

3.3. Analisis Masukan

Pada bagian ini menjelaskan masukan yang diperlukan pada algoritma

nine men’s morris yaitu berupa strategi yang digunakan untuk memenangkan

permainan Nine Men‟s Morris :

1. Lokasi yang strategis

Pada fase ini sangat penting untuk meletakkan para bidak di posisi yang strategis (mudah untuk digerakkan, tidak terhalang), dan tidak berfokus untuk membuat mill. Contoh posisi yang strategis adalah titik tengah di kotak tengah, dimana bidak dapat bergerak pada empat arah. Namun meletakkan bidak condong ke salah satu kotak juga tidak direkomendasi, distribusi bidak harus merata. Dapat dilihat lingkaran hitam dari gambar:


(39)

2. Menghalangi pemain lain

Keunikan permainan ini adalah mill yang dibentuk dapat digunakan berkali-kali. Ketika seorang pemain sudah membentuk sebuah mill, dia bisa memindahkan bidaknya ke tempat lain pada giliran berikutnya, dan mengembalikannya ke tempat semula pada giliran selanjutnya, dan mill akan terbentuk kembali. Maka dia berhak mengambil dua bidak pada tiga giliran tersebut. Kondisi seperti ini harus dicegah oleh pemain lawannya, dengan cara meletakkan bidaknya sendiri di posisi yang ditinggalkan pada giliran kedua. Taktik ini disebut dengan blocking. Atau jika blocking tidak memungkinkan, pemain tersebut juga bisa mencoba membentuk mill sendiri, sehingga pemain lawan harus memilih antara melanjutkan membentuk mill atau melakukan blocking.

3. Double mill

Double mill dibentuk dengan dua mill yang bersisian sedemikian rupa sehingga pemain dapat menggerakkan bidak dari sebuah mill yang sudah terbentuk ke posisi yang menyebabkan mill lain terbentuk. Double mill adalah kondisi yang sangat menguntungkan bagi seorang pemain, karena dia bisa mengambil bidak lawan pada setiap giliran. Double mill harus menjadi prioritas blocking pemain lawan

Algoritma yang nantinya dibuat akan memanfaatkan strategi yang sudah disebutkan di atas.

3.3.1. Fungsi Evaluasi pada Nine Men’s Morris

Dalam suatu pemainan yang berbasis giliran (turn based game), tugas dari fungsi evaluasi ialah untuk melihat kondisi permainan dan memberikan nilai dari sudut padang satu pemain[9]. Nilai dihitung pada kedua sisi pemain dan fungsi memberikan nilai positif untuk sisi pemain yang sedang melangkah dan nilai negatif untuk pemain yang tidak sedang melangkah. Nilai evaluasi ialah nilai balik yang diberikan oleh fungsi evaluasi.

Adapun fungsi evaluasi pada permainan nine men’s morris yang digunakan :


(40)

1. Closed Morris

Merupakan jumlah mill yang baru terbentuk. Cohtoh dari closed morris dapat dilihat pada gambar 3.2, dimana bidak putik yang baru membentuk mill.

Gambar 3.2 Closed Morris

2. Number of Morrises

Merupakan total mill yang ada di papan.

3. Number of blocked opponent pieces

Merupakan jumlah bidak lawan yang terblokir. Dapat dilihat pada gambar 3.2, dimana bidak hitam terblokir ketika giliran putih main.

Gambar 3.3 Bidak Terblokir

4. Number of pieces

Perbedaan jumlah bidak pemain dan lawan yang ada di papan.

5. Opened Morris

Jumlah mill yang terbuka, yaitu pada mill yang sudah terbentuk bidaknya dipindahkan ke tempat lain.


(41)

6. Number of 2 pieces configurations

Merupakan Jumlah 2-pieces configuration, yaitu konfigurasi dua bidak berurutan yang memungkinkan terbentuk mill pada giliran berikutnya. Dapat dilihat pada gambar 3.3, dimana bidak putih dapat terbentuk mill.

Gambar 3.4 Jumlah 2-pieces Configuration

7. Number of 3 pieces configurations

Merupakan Jumlah 3-pieces configuration, yaitu konfigurasi dimana dapat terbentuk mill di dua tempat sehingga lawan tidak bisa melakukan blocking.

Gambar 3.5 Jumlah 3-pieces Configuration

8. Double Morris

Merupakan Jumlah Double Morris.

9. Winning configurations

Konfigurasi unggul, yaitu konfigurasi-konfigurasi tertentu yang berdasarkan pengalaman dapat membawa kemungkinan lebih besar untuk menang.


(42)

Karena permainan ini terdiri dari tiga fase yang berbeda dalam cara bermain, maka fungsi evaluasi yang digunakan haruslah terpisah. Berikut fungsi evaluasi setiap fase :

Berdasarkan percobaan yang dilakukan yang dilakukan oleh Petcu dan Holban dimana beberapa program AI nine men’s morris dengan algoritma yang sama tapi dengan fungsi penghitung skor yang berbeda. Berikut hasil dari percobaan yang dilakukan oleh Petcu dan Holban dari setiap fase[11] :

1. Relasi yang diperhitungkan pada fase pertama adalah Meletakkan bidak R1. Clossed Morris

R2. Number of Morrises

R3. Number of blocked opponent pieces R4. Number of pieces

R5. Number of 2 pieces configurations R6. Number of 3 pieces configurations

Fungsi penghitung skor/nilai evaluasi fase pertama = (18*R1)+(26*R2)+(R3)+(6*R4)+(12*R5)+(7*R6)

2. Relasi yang diperhitungkan pada fase kedua adalah Menggeserkan bidak R1. Clossed Morris

R2. Number of Morrises

R3. Number of blocked opponent pieces R4. Number of pieces

R5. Opened Morris R6. Double Morris

R7. Winning configuration

Fungsi penghitung skor/nilai evaluasi fase kedua =

(14*R1)+(43*R2)+(10*R3)+(8*R4)+7*R5)+(42*R6)+(1086*R7) 3. Relasi yang diperhitungkan pada fase ketiga adalah Memindahkan bidak

R1. Number of 2 pieces configurations R2. Number of 3 pieces configurations R3. Closed Morris


(43)

Fungsi penghitung skor/nilai evaluasi fase ketiga = (10*R1)+(R2)+(16*R3)+(1190*R4)

3.4. Analisis Algoritma Negascout

Pada bagian ini akan dibahas tentang pemecahan permainan Nine Men’s Morris menggunakan algoritma negascout. Seperti yang sudah dijelaskan di atas, negascout memerlukan sebuah fungsi penghitung skor untuk mengukur tingkat keuntungan suatu simpul.

Contoh kondisi permainan nine men’s morris pada fase kedua yaitu menggeserkan bidak dan membatasi tingkat kedalaman hanya sampai tingkat 3. Berikut ialah gambar kondisi permainan pada nine men’s morris dapat dilihat pada gambar 3.6.

Gambar 3.6 Kondisi Fase Kedua Permainan Nine Men’s Morris Dari kondisi gambar 3.6 giliran bermain pada bidak hitam. Berikut suatu pohon permainan yang sesuai dengan segala kondisi yang berlaku mulai dari langkah-langkah yang boleh dilakukan sampai aturan-aturan permainan dapat dilihat pada table 3.1.

Tabel 3.1 Tabel Pohon Permainan Pada Nine Men’s Morris

Giliran Hitam Giliran Putih Giliran Hitam Giliran Putih

Node a Node b

11-15

Node e 6-11

7-6 13-12 13-20 15-16 Node f

8-12

7-8 13-20 15-11 15-16


(44)

Node g 10-11 3-10 9-10 13-12 13-20 15-16 Node h 10-18 3-10 9-10 13-12 13-20 15-11 15-16 Node i 17-12 13-20 15-11 15-16 Node j 17-16 13-12 13-20 15-11 Node k 22-19 13-12 13-20 15-11 15-16 21-22 23-22 Node c 13-12 Node l 10-18 3-10 5-13 9-10 11-10 11-15 12-13 Node m 14-13 11-15 23-14 Node n 17-16 5-13 11-15 12-13 12-17 Node o 22-19 5-13 11-15 12-13 21-22 23-22 Node d 13-20 Node p 8-12 5-13 7-8 11-15 20-13 20-19 Node q 10-18 3-10 5-13 9-10 11-10 11-15 20-13 20-19


(45)

14-13 20-19 23-14 Node s 17-12 5-13 11-15 20-13 20-19 Node t 17-16 5-13 11-15 20-13 20-19 Node u 22-19 5-13 11-15 20-13 21-22 23-22

Setelah membangun suatu pohon permainan, maka selanjutnya memberikan nilai evaluasi pada setiap langkah yang terjadi pada pohon permainan. Dapat dilihat table pohon dengan nilai evaluasi pada table 3.2.

Tabel 3.2 Tabel Pohon Dengan Nilai Evaluasi Pada Leaf Node

Giliran Hitam(MAX) Giliran Putih(MIN) Giliran Hitam(MAX) Giliran Putih(MIN)

Simpul a Simpul b

Simpul e

E1 = 40 E2 = 40 E3 = 30 E4 = 40 Simpul f

F1 = 40 F2 = 30 F3 = 50 F4 = 50

Simpul g

G1 = 50 G2 = 50 G3 = 50 G4 = 40 G5 =50

Simpul h

H1= 30 H2 = 30 H3 = 40 H4 = 30 H5 = 50 H6 = 40 Simpul i

I1 = 40 I2 = 60 I3 = 50 Simpul j

J1 = 40 J2 = 30 J3 = 50 Simpul k

K1 = 40 K2 = 30 K3 = 50


(46)

K4 = 40 K5 = 40 K6 = 30

Simpul c

Simpul l

L1 = 98 L2 = 50 L3 = 40 L4 = 40 L5 = 40 L6 = 40

Simpul m M1 = 30

M2 = 50 Simpul n

N1 = 40 N2 = 40 N3 = 50 N4 = 40

Simpul o

O1 = 50 O2 = 50 O3 = 50 O4 = 50 O5 = 50

Simpul d

Simpul p

P1 = 30 P2 = 20 P3 = 30 P4 = 50 P5 = 50

Simpul q

Q1 = 67 Q2 = 30 Q3 = 30 Q4 = 30 Q5 = 30 Q6 = 50 Q7 = 50 Simpul r

R1 = 30 R2 = 50 R3 = 40 Simpul s

S1 = 50 S2 = 40 S3 = 60 S4 = 60 Simpul t

T1 = 40 T2 = 30 T3 = 50 T4 = 50

Simpul u

U1 = 40 U2 = 30 U3 = 50 U4 = 40 U5 = 40

Berikut adalah proses menghitung nilai evaluasi pada table 3.2 dapat dilihat pada table 3.3.


(47)

Tabel 3.3 Tabel Proses Menghitung Nilai Evaluasi

Node R1 R2 R3 R4 R5 R6 R7 Nilai Akhir

E1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

E2 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

E3 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

E4 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

F1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

F2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

F3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

F4 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

G1 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

G2 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

G3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

G4 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

G5 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

H1 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

H2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

H3 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

H4 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

H5 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

H6 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

I1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

I2 14*0 43*0 10*6 8*0 7*0 42*0 1086*0 60

I3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

J1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

J2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

J3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

K1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

K2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

K3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

K4 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

K5 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

K6 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

L1 14*1 43*1 10*4 8*0 7*0 42*0 1086*0 98

L2 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

L3 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

L4 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

L5 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

L6 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

M1 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

M2 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

N1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

N2 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

N3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

N4 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

O1 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

O2 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

O3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

O4 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

O5 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

P1 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30


(48)

P3 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

P4 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

P5 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

Q1 14*1 43*1 10*2 8*0 7*0 42*0 1086*0 67

Q2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

Q3 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

Q4 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

Q5 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

Q6 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

Q7 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

R1 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

R2 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

R3 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

S1 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

S2 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

S3 14*0 43*0 10*6 8*0 7*0 42*0 1086*0 60

S4 14*0 43*0 10*6 8*0 7*0 42*0 1086*0 60

T1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

T2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

T3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

T4 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

U1 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

U2 14*0 43*0 10*3 8*0 7*0 42*0 1086*0 30

U3 14*0 43*0 10*5 8*0 7*0 42*0 1086*0 50

U4 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

U5 14*0 43*0 10*4 8*0 7*0 42*0 1086*0 40

Berikut adalah langkah – langkah algoritma negascout dengan pohon permainan yang ada di atas dapat dilihat pada table 3.4.

Tabel 3.4 Tabel Analisis Algoritma Negascout

Langkah Simpul Alpha Beta Catatan

1 a -∞ ∞ Nilai alpha dimulai dengan -∞ dan nilai

beta dimulai dengan ∞

2 b -∞ ∞ -

3 e -∞ ∞ -

4 e 40 ∞

Dalam tahap ini menelusuri

cabang-cabang dari simpul ‘e’ dan mendapat

nilai terbaik ialah 40 (karena 40 memiliki nilai lebih besar dari cabang lainnya)

5 b -∞ 40

Pada simpul min, nilai yang diharapkan adalah nilai yang lebih kecil dari 40. Sekarang harus menelusuri cabang-cabang dari simpul f,g,h,I,j dan k.

6 f -∞ 40 -

7 f 50 40 Setelah menelusuri cabang-cabang dari simpul f, nilai yang didapat ialah 50,


(49)

setelah mendapat nilai 50 maka terjadi pemotongan beta karena 50>40 8 b -∞ 40 Nilai tidak diupdate karena 40<50

9 g -∞ 40 -

10 g 50 40

Setelah menelusuri cabang-cabang dari simpul g, nilai yang didapat ialah 50, setelah mendapat nilai 50 maka terjadi pemotongan beta karena 50>40 11 b -∞ 40 Nilai tidak diupdate karena 40<50

12 h -∞ 40 -

13 h 50 40

Setelah menelusuri cabang-cabang dari simpul h, nilai yang didapat ialah 50, setelah mendapat nilai 50 maka terjadi pemotongan beta karena 50>40 14 b -∞ 40 Nilai tidak diupdate karena 40<50

15 i -∞ 40

16 i 60 40

Setelah menelusuri cabang-cabang dari simpul i, nilai yang didapat ialah 60, setelah mendapat nilai 60 maka terjadi pemotongan beta karena 60>40 17 b -∞ 40 Nilai tidak diupdate karena 40<60

18 j -∞ 40 -

19 j 50 40 Setelah menelusuri cabang-cabang dari simpul i, nilai yang didapat ialah 50 20 b -∞ 40 Nilai tidak diupdate karena 40<50

21 k -∞ 40 -

22 k 50 40

Setelah menelusuri cabang-cabang dari simpul k, nilai yang didapat ialah 50, setelah mendapat nilai 50 maka terjadi pemotongan beta karena 50>40

23 a 40 ∞

Nilai 40 telah dinaikan ke akar a. sekarang max telah mengetahui bahwa sekarang nilai terbaiknya ialah 40.

24 c -∞ ∞ -

25 l -∞ ∞ -

26 l 98 ∞ Setelah menelusuri cabang-cabang dari

simpul l, nilai yang didapat ialah 98

27 c -∞ 98 Update nilai pada simpul c

28 m -∞ 98 -

29 m 50 98 Setelah menelusuri cabang-cabang dari simpul m, nilai yang didapat ialah 50 30 c -∞ 50 Update nilai pada simpul c karena 50<98

31 n -∞ 50 -

32 n 50 50 Setelah menelusuri cabang-cabang dari simpul n, nilai yang didapat ialah 50


(50)

33 c -∞ 50 Nilai tidak diupdate karena 50=50

34 o -∞ 50 -

35 o 50 50 Setelah menelusuri cabang-cabang dari simpul o, nilai yang didapat ialah 50 36 c -∞ 50 Nilai tidak diupdate karena 50=50

37 a 50 ∞

Update nilai pada simpul a, karena 50>40 (dimana 40 adalah hasil dari simpul b)

38 d -∞ ∞ -

39 p -∞ ∞ -

40 p 50 ∞ Setelah menelusuri cabang-cabang dari

simpul p, nilai yang didapat ialah 50

41 d -∞ 50 Update nilai pada simpul d

42 q -∞ 50 -

43 q 67 50

Setelah menelusuri cabang-cabang dari simpul q, nilai yang didapat ialah 67, setelah mendapat nilai 67 maka terjadi pemotongan beta karena 67>50 44 d -∞ 50 Nilai tidak diupdate karena 50<67

45 r -∞ 50 -

46 r 50 50 Setelah menelusuri cabang-cabang dari simpul r, nilai yang didapat ialah 50 47 d -∞ 50 Nilai tidak diupdate karena 50=50

48 s -∞ 50 -

49 s 60 50

Setelah menelusuri cabang-cabang dari simpul s, nilai yang didapat ialah 60, setelah mendapat nilai 60 maka terjadi pemotongan beta karena 60>50 50 d -∞ 50 Nilai tidak diupdate karena 50<60

51 t -∞ 50 -

52 t 50 50 Setelah menelusuri cabang-cabang dari simpul t, nilai yang didapat ialah 50 53 d -∞ 50 Nilai tidak diupdate karena 50=50

54 u -∞ 50 -

55 u 50 50 Setelah menelusuri cabang-cabang dari simpul u, nilai yang didapat ialah 50

56 c -∞ 50

Setelah menelusuri cabang-cabang dari simpul c &d nilai yang diperoleh adalah 50. Karena c adalah nilai terbaik

pertama. Sehingga pencarian selesai dengan nilai optimum yang diperoleh ialah 50.


(51)

3.5. Analisis Kebutuhan Non Fungsional

Analisis kebutuhan sistem non fungsional meliputi analisis perangkat lunak (software), analisis perangkat keras (hardware), dan analisis pengguna (user) sebagai bahan analisis kebutuhan yang harus dipenuhi dalam perancangan sistem yang akan diterapkan.

3.5.1. Analisis Kebutuhan Perangkat Lunak

Perangkat lunak digunakan dalam sebuah sistem merupakan kumpulan perintah-perintah yang diberikan kepada perangkat keras agar saling berinteraksi untuk melakukan suatu tugas. Perangkat lunak yang dibutuhkan untuk membangun aplikasi ini adalah sebagai berikut:

1. Sistem Operasi Windows 7 32 bit 2. NetBeans IDE 7.0

3. Java SE Development Kit 7 Update 45 4. Java SE Runtime Environment 7 Update 45 3.5.2. Analisis Kebutuhan Perangkat Keras

Perangkat keras yang dibutuhkan untuk mendukung game halma ini adalah sebagai berikut:

1. Prosesor : Pentium 4 > 1GHz atau setara. 2. Memori : 512MB

3. Hardisk : 40GB

4. VGA : 128MB

5. Keyboard & Mouse 3.5.3. Analisis Pengguna

Analisis pengguna digunakan untuk mengetahui spesifikasi pengguna agar dapat memainkan permainan nine men’s morris. Spesifikasi minimal bagi pengguna agar dapat memainkan permainan nine men’s morris dapat dilihat pada table 3.5.


(52)

Tabel 3.5 Spesifikasi Pengguna Karakter Fisik Pengguna

Umur > 6 Tahun

Gender Laki-laki dan Perempuan

Disabilities Tidak buta dan tidak mempunyai cacat fisik

seperti cacat tangan

Pengetahuan dan Pengalaman Pengguna

Computer literacy Dapat menggunakan dan mengoperasikan

Komputer

3.6. Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional merupakan analisis untuk menggambarkan sistem yang akan dibangun. Analisis kebutuhan fungsional dimodelkan dengan menggunakan UML, tahap-tahap pemodelannya antara lain adalah use case diagram, use case scenario, activity diagram, class diagram dan sequence diagram.

3.6.1. Use Case Diagram

Use case diagram merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Berikut adalah use case diagram permainan nine men’s morris :

Gambar 3.7 UseCaseDiagram Permainan Nine Men’n Morris 3.6.1.1. Definisi Aktor

Definisi aktor berfungsi untuk menjelaskan aktor yang terdapat pada use case diagram. Deskripsi pendefinisian aktor pada permainan nine men’s morris dapat dilihat pada tabel 3.6.


(53)

Tabel 3.6 Tabel Definisi Aktor Pada Permainan Nine Men’s Morris

No Aktor Deskripsi

1 Pemain Orang yang memainkan permainan

3.6.1.2. Definisi UseCase

Definisi use case berfungsi untuk menjelaskan proses yang terdapat pada use case diagram. Deskripsi pendefinisian use case pada permainan nine men’s morris dapat dilihat pada tabel 3.7.

Tabel 3.7 Tabel Definisi Use Case Pada Permainan Nine Men’s Morris

No Use case Deskripsi

1 Mulai permainan Merupakan proses untuk memulai permainan baru

2 Meletakkan bidak Merupakan proses untuk meletakkan bidak

3 Menggeserkan bidak Merupakan proses untuk menggeserkan bidak dimana setelah semua bidak masing-masing pemain telah diletakkan 4 Memindahkan bidak Merupakan proses untuk memindahkan

bidak dimana pemain yang bidaknya hanya tersisa 3 bidak

3.6.1.3. UseCaseScenario

Use case scenario merupakan deskripsi alur kejadian yang menjelaskan urutan interaksi antara aktor dengan use case tersebut. Berdasarkan use case diagram, maka use case scenario untuk permainan nine men’s morris terdiri dari mulai permainan, meletakkan bidak menggeserkan bidak dan memindahkan bidak. Berikut adalah use case scenario pada permainan nine men’s morris.

1. UseCaseScenario Mulai Permainan

Use case scenario ini menjelaskan interaksi antara aktor pemain dengan use case mulai permainan yang dijelaskan pada tabel 3.8.

Tabel 3.8 Tabel UseCase Scenario Mulai Permainan Identifikasi

Nama Mulai permainan

Tujuan Memulai permainan nine men’s morris Deskripsi Proses untuk memulai permainan baru

Aktor Pemain


(54)

Kondisi awal Tampil papan permainan

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Memilih mulai permainan

b. Menampilkan papan permainan baru

Kondisi Akhir Menampilkan papan permainan permainan baru

2. ScenarioUseCase Meletakkan Bidak

Use case scenario ini menjelaskan interaksi antara aktor pemain dengan use case meletakkan bidak yang dijelaskan pada tabel 3.9.

Tabel 3.9 Tabel UseCase Scenario Meletakkan Bidak Identifikasi

Nama Meletakkan Bidak

Tujuan Meletakkan bidak pada papan permainan

Deskripsi Proses untuk memulai permainan nine men’s morris

Aktor Pemain

Skenario Utama

Kondisi awal Tampil arena permainan dengan posisi bidak belum diletakan pada papan permainan

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Memilih posisi dimana bidak akan diletakkan

b. Uptade papan permainan sesuai bidak yang diletakkan Kondisi Akhir Seluruh bidak telah diletakkan pada papan permainan

3. ScenarioUseCase Menggeserkan Bidak

Use case scenario ini menjelaskan interaksi antara aktor pemain dengan use case menggeserkan bidak yang dijelaskan pada tabel 3.10.

Tabel 3.10 Tabel UseCase Scenario Menggeserkan bidak Identifikasi

Nama Menggeserkan Bidak

Tujuan Menggeserkan bidak dari satu posisi ke posisi sebelahnya yang kosong


(55)

Aktor Pemain

Skenario Utama

Kondisi awal Arena permainan dengan posisi seluruh bidak pada papan permainan

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Pilih bidak yang akan digeserkan

b. Tampil kemungkinan langkah bidak

c. Pilih tujuan langkah yang akan dilakukan bidak

d. Update papan permainan sesuai dengan pergeseran bidak

Kondisi Akhir Bidak telah bergeser dan permainan dilanjutkan

4. ScenarioUseCase Memindahkan bidak

Skenario use case ini menjelaskan interaksi antara aktor pemain dengan use case memindahkan bidak yang dijelaskan pada tabel 3.11.

Tabel 3.11 Tabel UseCase Scenario Memindahkan Bidak Identifikasi

Nama Memindahkan bidak

Tujuan Memindahkan bidak dari satu posisi ke posisi lain yang kosong

Deskripsi Proses untuk memindahkan bidak

Aktor Pemain

Skenario Utama

Kondisi awal Bidak pemain hanya tersisa 3 bidak

Aksi Aktor Reaksi Sistem

Skenario Normal

a. Pilih bidak yang akan dipindahkan

b. Tampil kemungkinan langkah bidak

c. Pilih tujuan langkah yang akan dilakukan bidak

d. Update papan permainan sesuai dengan perpindahan bidak


(56)

3.6.2. ActivityDiagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Berikut adalah activity diagram dari permainan nine men’s morris :

1. ActivityDiagram Mulai Permainan

Pada proses ini sistem akan menampilkan arena permainan dimana pemain akan memulai permainan baru. Activity diagram mulai permainan dapat dilihat pada gambar 3.8.

Gambar 3.8 Activity Diagram Mulai Permainan 2. Activity Diagram Meletakkan Bidak

Pada proses ini sistem akan menampilkan arena permainan dimana pemain akan mulai meletakan bidak pada papan. Activity diagram meletakkan bidak dapat dilihat pada gambar 3.9.


(57)

3. Activity Diagram Menggeserkan Bidak

Pada proses ini sistem akan melanjutkan permainan dimana pemain akan mulai menggeserkan bidak dari satu posisi ke posisi sebelahnya. Activity diagram menggeserkan bidak dapat dilihat pada gambar 3.10.

Gambar 3.10 Activity Diagram Menggeserkan Bidak 4. Activity Diagram Memindahkan Bidak

Pada proses ini sistem akan menampilkan permainan dimana pemain akan mulai memindahkan bidak dari satu posisi ke posisi lain. Activity diagram memindahkan bidak dapat dilihat pada gambar 3.11.


(58)

3.6.3. ClassDiagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem [12]. Berikut adalah class diagram dari permainan nine men’s morris :

Gambar 3.12 Class Diagram Permainan Nine Men’s Morris 3.6.4. SequenceDiagram

Diagram sequence menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Berikut adalah sequence diagram dari permainan nine men’s morris :


(59)

1. SequenceDiagram Mulai Permainan

Gambar 3.13 SequenceDiagram Mulai Permainan

2. SequenceDiagram Meletakkan bidak


(60)

3. SequenceDiagram Menggeserkan bidak

Gambar 3.15 SequenceDiagram Menggeserkan Bidak

4. SequenceDiagram Memindahkan Bidak

Gambar 3.16 SequenceDiagram Memindahkan Bidak

3.7. Perancangan Sistem

Perancangan sistem merupakan metodologi pengembangan suatu perangkat lunak yang dilakukan setelah melalui tahapan analisis.

3.7.1. Perancangan Komponen Permainan Nine Men’s Morris

Perancangan komponen pada permainan nine men’s morris terdiri dari pemain, titik awal dan titik tujuan yang akan dijelaskan sebagai berikut :

1. Pemain

Permainan ini akan dimainkan oleh dua orang, satu pemain dan satu AI. 2. Papan Nine Men’s Morris


(61)

Papan yang digunakan berupa 3 buah persegi berbeda ukuran dengan yang lebih kecil berada di dalam persegi yang lebih besar. Titik tengah sisi sebuah persegi terhubung dengan titik tengah sisi dua persegi lain dengan sebuah garis.

3. Bidak

Bidak yang berjumlah 9 dengan warna biasanya masing-masing hitam dan putih, diletakkan pada perpotongan antara dua garis.

3.7.2. Perancangan Struktur Menu

Perancangan struktur menu dirancang untuk menyediakan fungsi-fungsi yang akan digunakan dalam game Nine Men’s Morris yang dapat dilihat pada gambar 3.17.

Gambar 3.17 Struktur Menu 3.7.3. Perancangan Antarmuka

Perancangan antarmuka bertujuan untuk memberikan gambaran tentang aplikasi yang akan dibangun, sehingga akan mempermudah dalam mengimple-mentasikan aplikasi serta akan memudahkan pembuatan aplikasi.

1. Tampilan Utama

Tampilan ini merupakan tampilan pertama saat aplikasi Nine Men’s Morris dijalankan. Gambar tampilan utama dapat dilihat pada gambar 3.18.


(62)

Gambar 3.18 Tampilan Utama Permainan Nine Men’s Morris 3.7.3.1. Perancangan Pesan

Perancangan antarmuka ini adalah tampilan pesan yang muncul pada aplikasi ini seperti ditunjukan pada Gambar 3.19.


(63)

3.7.3.2. Jaringan Semantik

Perancangan jaringan semantik menggambarkan alur informasi dari setiap antarmuka aplikasi yang dijelaskan pada gambar 3.20.


(64)

(65)

55

Pada bab ini akan dilakukan implementasi dan pengujian terhadap aplikasi yang dibangun. Tahapan ini dilakukan setelah analisis dan perancangan selesai dilakukan dan selanjutnya akan diimplementasikan kedalam bahasa pemograman. Setelah implementasi maka dilakukan pengujian terhadap aplikasi. Aplikasi yang telah dibangun akan diimplementasikan untuk mengetahui apakah sistem tersebut dapat berjalan sesuai dengan tujuannya atau tidak.

4.1. Implementasi

Implementasi merupakan terjemahan perancangan yang berdasarkan hasil analisis pada bab sebelumnya ke dalam bahasa pemprograman yang dapat dimengerti oleh komputer. Bahasa pemprograman yang digunakan adalah java.

4.1.1. Implementasi Perangkat Keras

Perangkat keras yang digunakan untuk menjalankan permainan nine men’s morris tidak harus yang memiliki spesifikasi tinggi. Spesifikasi minimum yang dapat digunakan untuk menjalankan permainan nine men’s morris adalah sebagai berikut :

1. Prosessor dengan kecepatan 1,80 GHz 2. RAM berkapasitas 1 GB

3. VGA berkapasitas 512 MB

4. Harddisk dengan kapasitas memori kosong 32 GB 5. Monitor Standar

6. Mouse Standar 7. Keyboard Standar

4.1.2. Implementasi Perangkat Lunak

Perangkat lunak yang digunakan untuk mengimplementasikan dan enguji

permainan nine men’s morris adalah sebagai berikut : 1. Windows 7 Ultimate sebagai sistem operasi


(66)

2. Netbeans 7.0 sebagai perangkat lunak pembangunan 4.1.3. Implementasi Antarmuka

Untuk memperjelas bentuk dari implementasi antarmuka berikut tampilan antarmuka form utama dari program yang telah dibuat.


(1)

13-20 8-12 7-8 11-15 20-13 20-19 Node q 10-18 3-10 5-13 9-10 11-10 11-15 20-13 20-19 Node r 14-13 11-15 20-19 23-14 Node s 17-12 5-13 11-15 20-13 20-19 Node t 17-16 5-13 11-15 20-13 20-19 Node u 22-19 5-13 11-15 20-13 21-22 23-22

Tabel 4.5 Proses Negascout Untuk Sampel

Tingkat

0 1 2 3

40 40 40 40 30 40 50 40 30 50 50 50 50 50 50 40 50 50 30 30 40 30 50 40

60 40


(2)

66 50 50 40 30 50 50 40 30 50 40 40 30 50 98 98 50 40 40 40 40

50 30

50 50 40 40 50 40 50 50 50 50 50 50 50 50 30 20 30 50 50 67 67 30 30 30 30 50 50 50 30 50 40 60 50 40 60 60 50 40 30 50 50 50 40 30 50


(3)

40 40

Tabel 4.5 telah menunjukkan bahwa langkah yang dipilih AI telah sesuai dengan yang ditampilkan pada tabel. Karena agen akan mendapatkan nilai 50 jika AI memilih langkah 13-12. Hasil setelah AI melangkah dapat dilihat pada gambar 4.6.


(4)

(5)

69

saran untuk pengembangan penelitian lebih lanjut. 5.1. Kesimpulan

Berdasarkan dari hasil penelitian, analisis perancangan sistem dan implementasi serta pengujian yang dilakukan dari algoritma negascout untuk menentukan langkah pemain lawan dalam mengambil keputusan pada permainan nine men’s morris, maka diperoleh kesimpulan Algoritma negascout dapat diterapkan untuk menentukan langkah pemain lawan pada permainan nine men’s morris dalam mengambil keputusan.

5.2. Saran

Dalam analisis algoritma penelitian ini masih jauh dari sempurna dan masih banyak kekurangan, oleh karena itu perlu dilakukan analisis yang lebih dalam. Adapun saran yang dapat diberikan oleh peneliti pada penelitian ini adalah sebagai berikut :

1. Dapat mencoba algoritma lain untuk mendapatkan hasil yang lebih optimal. 2. Penambahan level permainan, agar user lebih tertantang untuk memainkan

permainan nine men’s morris.

3. Diharapkan pada pengembangan aplikasi yang selanjutnya tampilan antarmuka dapat dirancang semenarik mungkin sehingga lebih menarik perhatian pengguna.


(6)