• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
80
0
0

Teks penuh

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ASEP SUKIRMAN 10109138

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER

(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.

(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.

(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

(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

(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,

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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);

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

[image:38.595.228.376.581.733.2]

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.

(40)

1. Closed Morris

Merupakan jumlah mill yang baru terbentuk. Cohtoh dari closed morris dapat

[image:40.595.238.381.174.358.2]

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

[image:40.595.236.383.474.619.2]

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

(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

[image:41.595.262.414.196.346.2]

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

[image:41.595.263.417.439.589.2]

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

(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

[image:43.595.247.412.351.518.2]

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

(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

(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

(47)
[image:47.595.107.522.132.754.2]

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

[image:48.595.79.498.505.751.2]

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 -

(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 -

(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-c

Gambar

Gambar 3.1 Lokasi Strategis
Gambar 3.3 Bidak Terblokir
Gambar 3.4 Jumlah 2-pieces Configuration
Tabel 3.1 Tabel Pohon Permainan Pada Nine Men’s Morris
+7

Referensi

Dokumen terkait

Sekali-sekali pasien akan mengalami rasa napas yang pendek (seperti orang yang kelelahan) dan bukanya tekanan pada substernal.Sekali-sekali bisa pula

Mungkin dalam pangananyo, manyabuik den urang ko ko,, mungkin itu yang tapikie di kapalonyo.(semenjak kejadian waktu RT kelas 4 SD, sampai sekarang RT selalu

Penelitian kualitatif dalam penelitian ini mengarah pada penelitian lapangan (field research). Selain dari itu peneliti juga menggunakan kajian isi dokumen., dimana

Menurut Fasli Jalal dan Dedi Supriadi “ Manajemen Berbasis Sekolah adalah bentuk alternatif sekolah sebagai hasil dari desentralisasi dalam bidang pendidikan .”

Penentuan jumlah faktor berdasarkan eigenvalues lebih dari satu ini adalah teknik yang paling banyak digunakan (Floyd &amp; Widaman, 1995) Pada faktor pertama terdapat

The main problems in this research are 1. What are the obstacles and solutions to murabahah financing at BNI Syariah KFO Masamba? The objectives of this study

Berdasarkan hasil penelitian yang telah dilaksanakan peneliti pada tanggal 14-28 Juli 2010 yang berjudul “Gambaran karakteristik penderita carsinoma (Ca) Mamae

Menjelaskan sebab terjadinya karena tindakan yang tidak sesuai prosedur, teknik operasi yang cukup sulit dan peralatan yang kurang memadai, serta