Penerapan Algoritma Minimax Pada Permainan Checkers

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

MUHAMMAD FAISAL RIANT SAPUTRA 10104025

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA BANDUNG


(2)

iii

Dengan mengucap puji dan syukur kehadirat Allah SWT, karena atas ridho dan hidayahNya, sehingga penulis dapat menyelesaikan Tugas Akhir ini. penulis juga dapat mencoba menerapkan dan membandingkan pengetahuan dan keterampilan yang diperoleh dibangku kuliah dengan kenyataan yang ada di lingkungan kerja.

Penulis merasa bahwa dalam menyusun laporan ini masih menemui beberapa kesulitan dan hambatan, disamping itu juga menyadari bahwa penulisan laporan ini masih jauh dari sempurna dan masih banyak kekurangan-kekurangan lainnya, maka dari itu penulis mengharapkan saran dan kritik yang membangun dari semua pihak.

Menyadari penyusunan laporan ini tidak lepas dari bantuan berbagai pihak, maka pada kesempatan ini penulis menyampaikan ucapan terima kasih yang setulus-tulusnya kepada:

1. Bapak Irawan Afrianto. sebagai dosen pembimbing pertama yang telah bersedia untuk meluangkan waktu untuk membimbing, memeriksa, serta memberikan petunjuk-petunjuk serta saran dalam penyusunan laporan ini.

2. Seketaris Jurusan Teknik Informatika Unikom yang telah membantu penulis dalam mengurus proposal tugas akhir.

3. Seluruh staf pengajar Unikom yang telah membimbing dan memberikan materi perkuliahan kepada penulis.

4. Seluruh staf Perpustakaan Unikom yang telah membantu penulis dalam peminjaman buku.


(3)

iiii moril maupun materil kepada penulis.

6. Sahabat spesialku Rizka Yuliawati. yang selalu mendampingiku dalam memberi dukungan, perhatian, semangat dan doa bagi penulis selama penyusunan tugas akhir. 7. Seluruh rekan-rekan di Universitas Unikom Bandung, khususnya Jurusan Informatika

Angkatan ’04 yang telah memberikan saran dan kritikan kepada penulis.

8. Seluruh pihak yang tidak dapat disebutkan satu persatu, yang telah banyak membantu selama ini.

Akhir kata, semoga Allah SWT senantiasa melimpahkan karunia-Nya dan membalas segala amal budi serta kebaikan pihak-pihak yang telah membantu penulis dalam penyusunan laporan ini dan semoga tulisan ini dapat memberikan manfaat bagi pihak-pihak yang membutuhkan.


(4)

v DAFTAR ISI

LEMBAR JUDUL

LEMBAR PENGESAHAN

ABSTRAK ... i

ABSTRACT... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... ix

DAFTAR GAMBAR ... x

DAFTAR SIMBOL ... xii

DAFTAR LAMPIRAN... xiv

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang………... 1

1.2 Identifikasi Masalah ……….. 2

1.3 Maksud dan tujuan penulisan ……… 2

1.4 Batasan Masalah ……… 2

1.5 Metodologi Penelitian ………...……… 3

1.6 Sistematika Penulisan ………... 6

BAB II LANDASAN TEORI... 7

2.1 Kecerdasan Buatan………. 7

2.2 Sejarah Kecerdasan Buatan……… 7

2.3 Definisi Kecerdasan Buatan………... 9

2.4 Paham Pemikiran………...……… 10


(5)

vi

2.6 Algoritma……… 15

2.7 Struktur Data (Stack)……….. 16

2.8 Algoritma Pencarian………... 17

2.8.1 Pencarian List………... 18

2.8.2 Pencarian Pohon………... 19

2.9 Depth First Search………. . 20

2.10 Breadth First Search……….. 24

2.11 Best First Search……… 26

2.12 Algoritma Minimax………... 28

2.13 Alpha Beta Pruning……… 32

2.14 Penerapan Algoritma Minimax Pada Permainan Checkers………... 33

2.15 Permainan……….. 37

2.15.1 Aplikasi Dan Tantangan………. 38

2.15.2 Ilmu Komputer Dan Logika……… 39

2.16 Permainan Checkers……….. 39

2.16.1 Peraturan Checkers……… 40

2.17 Microsoft Visual Basic………. 41

BAB III ANALISIS DAN PERANCANGAN SISTEM... 42

3.1 Analisis system……… 42

3.2 Analisis Alur Kerja Proses……….. 43

3.3 Spesifikasi Proses……… 45

3.3.1 Kedalaman Pencarian……… 47

3.4 Analisis Proses……… 49

3.5 Perancangan……… 62


(6)

vii

BAB IV IMPLEMENTASI DAN PENGUJIAN... 65

4.1 Pembentukan Data Awal………. 65

4.2 Persiapan Perangkat Keras………... 66

4.3 Persiapan Perangkat Lunak………...…….. 66

4.4 Persiapan Pengguna……….. 67

4.5 Pengujian Sistem……….. 67

4.5.1 Pengujian Alpha……….. 68

4.5.2 Pengujian Betha………... 69

BAB V KESIMPULAN DAN SARAN... 74


(7)

viii

DAFTAR LAMPIRAN

Lampiran A Tampilan Antar Muka ... 83 Lampiran B Listing Program ... 45 Lampiran C Hasil Kuesioner ... 55


(8)

i

PENERAPAN ALGORITMA MINIMAX PADA PERMAINAN CHECKERS

Oleh

Muhammad Faisal Riant Saputra 10104025

Checkers merupakan jenis permainan game board,yang mengandalkan strategi sebagai elemen utamanya. Permainan ini dimainkan oleh dua orang pemain dengan tujuan menghabiskan kepingan lawan. Permainan checkers yang dibuat dengan AI (Artificial Intelligence) tertentu menerapkan algoritma Minimax. Algoritma ini digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilaimaksimal, yang akan mendeskripsikan dimana jika terdapat pemain yang mengalami pendapatan akan maka pemain lain akan mengalami kehilangan sebesar pendapatan tersebut. Untuk memperkecil lingkup pencarian pada algoritma Minimax, dikembangkan suatu algoritma yang dinamakan alpha-beta untuk mengurangi jumlah node pada pohon pencarian. Pada permainan checkers algoritma ini akan menentukan langkah yang diambil oleh AI agar menghasilkan pendapatan maksimum dengan mempertimbangkan kemungkinan langkah yang dapat dilakukan lawan selanjutnya.

Penerapan algoritma Minimax dalam checkers dibuat berdasarkan prosedur Minimax untuk mendapatkan langkah terbaik dari posisi yang ada. Setiap posisi memiliki nilai yang dapat dihasilkan dari langkah terbaik, dengan berasumsi bahwa AI akan selalu mencoba memaksimalkan nilai, ketika lawan akan mencoba untuk meminimalkannya.Ketika prosedur minimax mencapai akar pada pohon pencarian (posisi saat tersebut), akan menghasilkan langkah terbaik dengan asumsi lawan akan menggunakan kriteria evaluasi yang sama. Beberapa versi program yang dibuat kebanyakan telah menerapkan algoritma pemotongan alpha-beta.Terdapat dua macam metode, yang disebut rote learning. Metode tersebut memiliki penyimpan untuk setiap posisi yang ditemui selama permainan dengan tidak menghilangkan nilai yang ditentukan oleh prosedur Minimax. Hasilnya adalah jika terdapat posisi yang pernah ditenukan sebelumnya, akan dimunculkan sebagai posisi terminal pada pohon pencarian. Sehingga, pencarian akan semakin mudah karena nilai posisi diambil dari hasil pencarian yang telah dilakukan sebelumnya. Satu masalah awal yang ditemukan adalah program tidak mendukung untuk melangkah langsung menuju kemenangan.


(9)

ii ii

ON CHECKERS

by

Muhammad Faisal Riant Saputra 10104025

Checkers is game type of game board , relies on strategy as main element. This game played by two player with a purpose to finishs opponent chipping. Checkers which is made with AI ( Artificial Intelligence) certain applies algorithm Minimax. This algorithm applied to take choice to minimize possibility losing value maximum, which description will where if there is player experiencing earnings would hence other player will experience loss equal to the earnings. To minimize seeking scope at algorithm Minimax, developed an algorithm named by alpha-beta to lessen number of node at seeking tree. At this algorithm checkers will determine step taken by AI to yield maximum earnings by considering possibility that step which can be done opponent.

Applying of algorithm Minimax in checkers is made based on procedure Minimax to get best step from position. Every position is having value which can be value from best step , by assuming that AI would always tries maximizes value, when opponent will try for minimum value.When procedure minimax reachs root at seeking tree (the position), will yield best step with assumption of opponent will apply the same evaluation criterion. Some program versions which is made mostly has applied cutting algorithm of alpha-beta have two kinds of method, so-called rote learning. The method has depositor for every position met during game without eliminating value determined by procedure Minimax. Result of his its was if there is position which been before all, will be peeped out as position of terminal at seeking tree. So, seeking for increasingly easy to because value position of taken away from seeking result which has been done before all. One initial problems found is program doesn't support for direct towards victory.


(10)

1

1.1 Latar Belakang

Kecerdasan Buatan (Artificial Intelligence) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (Komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Salah satu macam bidang yang menggunakan kecerdasan buatan adalah permainan komputer (games).

Permainan-permainan berbasis komputer ini juga bermacam-macam. Salah satu kelebihannya adalah kita tidak harus mencari orang untuk menjadi lawan tanding jika ingin bermain karena permainan berbasis komputer ini sudah mendukung single-player mode dimana kita dapat bermain sendiri melawan komputer yang dirancang untuk dapat berlaku seperti pemain manusia atau yang sering dikenal dengan Artificial Inteligince. Contoh permainan yang menggunakan Artificial Inteligince adalah permainan catur, go, othello, checkers, bridge, tic-tac-toe dan lain sebagainya.Untuk membuat pemain merasa seperti melawan pemain manusia lainnya, diperlukan suatu algoritma yang dapat membuat Artificial Inteligince ini mampu mengambil keputusan yang terbaik agar dapat mengalahkan pemain atau setidaknya menghalau pemain menang.


(11)

Algoritma minimax merupakan salah satu contoh algoritma yang sangat sering dipakai untuk permasalah tersebut. Dan permainan dapat menjadi salah satu contoh yang baik dan cukup sederhana untuk kita mengerti bagaimana cara kerja dan efeknya.

Berdasarkan uraian di atas, penulis bermaksud untuk menerapkan algoritma minimax pada permainan checkers. Oleh karena itu, penulis mengambil topik tugas akhir dengan judul “Penerapan Algoritma Minimax Pada Permainan Checkers”.

1.2 Identifikasi Masalah

Berdasarkan latar belakang pemilihan judul, maka yang menjadi permasalahan adalah bagaimana menerapkan metode algoritma minimax pada permainan Checkers

1.3 Maksud dan Tujuan Penulisan

Maksud penyusunan tugas akhir ini adalah untuk menerapakan metode algoritma minimax pada permainan checkers

Adapun tujuan dari penulisan tugas akhir ini adalah

1. Mengetahui cara kerja algoritma minimax yang diterapkan pada permainan checkers


(12)

1.4 Batasan Masalah

Di dalam penulis tugas akhir ini terdapat lingkup permasalahan antara lain : 1. Permainan strategi yang akan dibuat bersifat artificial intelligence ,dengan

menggunakan metode algoritma minimax untuk penyelesaian masalah 2. Tools yang digunakan untuk membangun permainan strategi ini

mengunakan bahasa pemograman visual basic 6.0 3. Sifat permainan stand alone.

1.5 Metodologi Penelitian

Langkah – langkah pembuatan tugas akhir ini antara lain : 1. Metode studi pustaka dan literature :

Mengumpulkan semua bahan baik yang berasal dari buku atau dari internet sebagai bahan acuan dan pemikiran serta sumber referensi dalam menyelesaikan masalah.

Pembangunan aplikasi ini menggunakan metodologi Waterfall dengan gambar sebagai berikut:


(13)

Analisis Sistem

Perancangan Sistem

Pengkodean

Pengujian Sistem

Gambar 1.1 Metodologi Waterfall

a. Rekayasa Sistem

Tahapan ini mendefinisikan kebutuhan pada level sistem yaitu kebutuhan perangkat keras, perangkat lunak, dan lain lain

b. Analisis Sistem

pada tahap ini dilakukan menganalisa algoritma yg dipakai dalam permainan checkers

c. Perancangan Sistem

Menterjemahkan analisa kebutuhan ke dalam bentuk rancangan sebelum penulisan program yang berupa perancangan antarmuka dan merancang prosedur (algoritma).

d. Pengkodean

Tahapan penterjemahan hasil perancangan (detil) kedalam program-program yang menggunakan bahasa pemrograman yang sesuai.


(14)

e. Pengujian Sistem

Program yang telah dibuat harus diuji, proses pengujian difokuskan pada kebenaran logika internal perangkat lunak dan fungsional sistem

1.6 Sistematika Penulisan

Sistematika penulisan laporan ini dibagi dalam beberapa bab dengan pokok pembahasan secara umum sebagai berikut:

BAB I PENDAHULUAN

Bab ini berisi latar belakang, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian, sistematika penulisan, jadwal kegiatan.

BAB II LANDASAN TEORI

Bab ini berisi landasan teori dari perancangan aplikasi

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisikan analisis pembahasan keseluruhan aplikasi dan perancangan dan komponen apa saja yang digunakan


(15)

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisikan hasil pengujian dari aplikasi yg dibuat

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan tentang keseluruhan dari pembangunan aplikasi ini dan saran tentang aplikasi ini.


(16)

BAB II

LANDASAN TEORI

2.1 Kecerdasan buatan

Kecerdasan buatan (artificial intelligence) merupakan inovasi baru di bidang ilmu pengetahuan. Mulai ada sejak muncul komputer modern, yakni pada 1940 dan 1950. Ini kemampuan mesin elektronika baru menyimpan sejumlah besar info, juga memproses dengan kecepatan sangat tinggi menandingi kemampuan manusia.

Pentingnya kecerdasan buatan menjadi nyata bagi negara-negara yang berperan sejak tahun 1970. Para pemimpin negara yang mengakui potensialnya kecerdasan buatan mengharap mendapat persetujuan jangka panjang untuk sumber-sumber yang memerlukan dana intensif. Jepang adalah yang pertama kali melakukan itu. Negara ini mengembangkan program yang sangat berambisi dalam penelitian kecerdasan buatan.

2.2 Sejarah Kecerdasan Buatan

Pada awal abad 17, Rene Descartes mengemukakan bahwa tubuh hewan bukanlah apa-apa melainkan hanya mesin-mesin yang rumit. Blaise Pascal menciptakan mesin penghitung digital mekanis pertama pada 1642. Pada 19, Charles Babbage dan Ada Lovelace bekerja pada mesin penghitung mekanis yang dapat diprogram.


(17)

Bertrand Russell dan Alfred North Whitehead menerbitkan Principia Mathematica, yang merombak logika formal. Warren McCulloch dan Walter Pitts menerbitkan "Kalkulus Logis Program AI pertama yang bekerja ditulis pada 1951 untuk menjalankan mesin Ferranti Mark di University of Manchester (UK): sebuah program permainan naskah yang ditulis oleh Christopher Strachey dan program permainan catur yang ditulis oleh Dietrich Prinz. John McCarthy membuat istilah "kecerdasan buatan " pada konferensi pertama yang disediakan untuk pokok persoalan ini, pada 1956. Dia juga menemukan bahasa pemrograman Lisp. Alan Turing memperkenalkan “Turing Test” sebagai sebuah cara untuk mengoperasionalkan test perilaku cerdas. Joseph Weizenbaum membangunELIZA, sebuah chatterbot yang menerapkan psikoterapi Rogerian

Selama tahun 1960-an dan 1970-an, Joel Moses mendemonstrasikan kekuatan pertimbangan simbolis untuk mengintegrasikan masalah di dalam program Macsyma, program berbasis pengetahuan yang sukses pertama kali dalam bidang matematika. Marvin Minsky dan Seymour Papert menerbitkan Perceptrons, yang mendemostrasikan batas jaringan syaraf sederhana dan Alain Colmerauer mengembangkan bahasa komputer Prolog. Ted Shortliffe mendemonstrasikan kekuatan sistem berbasis aturan untuk representasi pengetahuan dan inferensi dalam diagnosa dan terapi medis yang kadangkala disebut sebagai sistem pakar pertama. Hans Moravec mengembangkan kendaraan terkendali komputer pertama untuk mengatasi jalan berintang yang kusut secara mandiri.


(18)

Pada Pada tahun 1980-an, jaringan syaraf digunakan secara meluas dengan algoritma perambatan balik, pertama kali diterangkan oleh Paul John Werbos pada 1974. Tahun 1990-an ditandai perolehan besar dalam berbagai bidang AI dan demonstrasi berbagai macam aplikasi. Lebih khusus Deep Blue, sebuah komputer permainan catur, mengalahkan Garry Kasparov dalam sebuah pertandingan 6 game yang terkenal pada tahun 1997. DARPA menyatakan bahwa biaya yang disimpan melalui penerapan metode AI untuk unit penjadwalan dalam Perang Teluk pertama telah mengganti seluruh investasi dalam penelitian AI sejak tahun 1950 pada pemerintah AS.

Tantangan Hebat DARPA, yang dimulai pada 2004 dan berlanjut hingga hari ini, adalah sebuah pacuan untuk hadiah $2 juta dimana kendaraan dikemudikan sendiri tanpa komunikasi dengan manusia, menggunakan GPS, komputer dan susunan sensor yang canggih, melintasi beberapa ratus mil daerah gurun yang menantang.

2.3 Definisi Kecerdasan Buatan

Tidak ada definisi yang memuaskan untuk kecerdasan. Kecerdasan dapat diartikan sebagai kemampuan untuk memperoleh pengetahuan dan menggunakannya atau kecerdasan adalah apa yang di ukur oleh sebuah ”test kecerdasan”.

Apa kecerdasan buatan itu? Bagian dari ilmu pengetahuan komputer ini khusus ditujukan dalam perancangan otomatisasi tingkah laku cerdas dalam sistem kecerdasan komputer. Sistem memperlihatkan sifat-sifat khas yang dihubungkan


(19)

dengan kecerdasan dalam kelakuan atau tindak-tanduk yang sepenuhnya bisa menirukan beberapa fungsi otak manusia, seperti pengertian bahasa, pengetahuan, pemikiran, pemecahan masalah, dan lain sebagainya.

Kecerdasan Buatan (Artificial Intelligence) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (Komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf dan robotika.

Walaupun Artificial Intelligence) memiliki konotasi fiksi ilmiah yang kuat, Artificial Intelligence) membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam Artificial Intelligence) menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.


(20)

2.4 Paham Pemikiran

Secara garis besar, Artificial Intelligence terbagi ke dalam dua faham pemikiran yaitu Artificial Intelligence Konvensional dan Kecerdasan Komputasional (CI, Computational Intelligence). AI konvensional kebanyakan melibatkan metoda-metoda yang sekarang diklasifiksikan sebagai pembelajaran mesin, yang ditandai dengan formalisme dan analisis statistik. Dikenal juga sebagai Artificial Intelligence simbolis, Artificial Intelligence logis, Artificial Intelligence murni dan Artificial Intelligence cara lama (GOFAI, Good Old Fashioned Artificial Intelligence). Metoda-metodanya meliputi:

1. Sistem pakar: menerapkan kapabilitas pertimbangan untuk mencapai kesimpulan. Sebuah sistem pakar dapat memproses sejumlah besar informasi yang diketahui dan menyediakan kesimpulan-kesimpulan berdasarkan pada informasi-informasi tersebut.

2. Pertimbangan berdasarkan kasus 3. Jaringan Bayesian

4. Artificial Intelligence berdasar tingkah laku: metoda modular pada pembentukan sistem AI secara manual


(21)

Kecerdasan komputasional melibatkan pengembangan atau pembelajaran iteratif (misalnya penalaan parameter seperti dalam sistem koneksionis. Pembelajaran ini berdasarkan pada data empiris dan diasosiasikan dengan AI non-simbolis, AI yang tak teratur dan perhitungan lunak. Metoda-metoda pokoknya meliputi:

1. Jaringan Syaraf: sistem dengan kemampuan pengenalan pola yang sangat kuat 2. Sistem Fuzzy: teknik-teknik untuk pertimbangan di bawah ketidakpastian,

telah digunakan secara meluas dalam industri modern dan sistem kendali produk konsumen.

3. Komputasi Evolusioner: menerapkan konsep-konsep yang terinspirasi secara biologis seperti populasi, mutasi dan “survival of the fittest” untuk menghasilkan pemecahan masalah yang lebih baik.

Metoda-metoda ini terutama dibagi menjadi algoritma evolusioner (misalnya algoritma genetik) dan kecerdasan berkelompok (misalnya algoritma semut).

Dengan sistem cerdas hibrid, percobaan-percobaan dibuat untuk menggabungkan kedua kelompok ini. Aturan inferensi pakar dapat dibangkitkan melalui jaringan syaraf atau aturan produksi dari pembelajaran statistik seperti dalam ACT-R. Sebuah pendekatan baru yang menjanjikan disebutkan bahwa penguatan kecerdasan mencoba


(22)

untuk mencapai kecerdasan buatan dalam proses pengembangan evolusioner sebagai efek samping dari penguatan kecerdasan manusia melalui teknologi.

2.5 Macam – Macam Kecerdasan Buatan

Ada banyak jenis kecerdasan buatan, setidaknya ada lima jenis kecerdasan buatan yang sering kita temui, yaitu :

1. Jaringan Syaraf Buatan (Artificial Neural Networks),

Merupakan sekelompok jaringan saraf (neuron) buatan yang menggunakan model matematis atau komputasi untuk pemrosesan informasi berdasarkan pendekatan terhubung pada komputasi. Pada kebanyakan kasus, JST merupakan sistem adaptif yang merubah strukturnya berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut.

2 Logika Fuzzy (Fuzzy Logics)

Adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Di mana logika klasik menyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), logika fuzzy menggantikan kebenaran boolean dengan tingkat kebenaran.Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti "sedikit", "lumayan", dan "sangat". Dia berhubungan dengan set fuzzy dan teori


(23)

kemungkinan. Dia diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California, Berkeley pada 1965.

3 Algoritma Genetik (Genetic Algorithms),

Adalah teknik pencarian yang di dalam ilmu komputer untuk menemukan penyelesaian perkiraan untuk optimisasi dan masalah pencarian. Algoritma genetik adalah kelas khusus dari algoritma evolusioner dengan menggunakan teknik yang terinspirasi oleh biologi evolusioner seperti warisan, mutasi, seleksi alam dan rekombinasi (atau crossover).Algoritma Genetik biasanya digunakan dibidang kedokteran, misal untuk menganalisis DNA.


(24)

2.5.1 Bagian-bagian Utama dari Aplikasi Artificial Intelligene (AI)

Artificial Intelligence (AI) dapat dikelompokkan ke dalam empat bagian utama, seperti terlihat pada gambar di bawah ini :

ARTIFICIAL INTELLIGENCE

Aplikai Ilmu Falsafah

Aplikasi Ilmu

Komputer Aplikasi Robotics

Aplikasi Bahasa Alami

 Sistem Pakar

 Sistem Berbasis Pengetahuan

 Sistem Belajar

 sistem Logic Fuzzy  Generasi Kelima Komputer  Pemrosesan Pararel  Pemrosesan Simbolik  Jaringan Neural  Persepsi Visual  Perabaan  Decterity  Pengangkutan  Navigasi  Pengertian Bahasa  Pidato Pengakuan  Penterjemahan Bahasa


(25)

Seperti terlihat pada gambar di atas, Artificial Intelligence (AI) dapat dikelompokkan ke dalam empat bagian utama, yaitu ilmu falsafat, ilmu komputer, aplikasi robotic, dan bahasa alami yang akan dijelaskan berikut ini.

Aplikasi Ilmu Falsafat

Untuk aplikasi ini, Artificial Intelligence (AI) berbasis pada penelitian di bidang biologi, neurologi, psikologi, matematika, dan berbagai disiplin ilmu terkait lainnya. Fokus penelitian dari aplikasi ini adalah meneliti bagaimana otak manusia dapat bekerja, dan bagaimana manusia dapat berfikir dan belajar. Aplikasi ilmu falsafah ini mencakup pengembangan di bidang sistem pakar, sistem berbasis pengetahuan, sistem belajar, dan sistem logic fuzzy.

Aplikasi Ilmu Komputer

Untuk aplikasi ini, Artificial Intelligence (AI) memfokuskan diri pada perangkat keras komputer dan sistem perangkat lunak yang dibutuhkan untuk menghasilkan superkomputer yang kuat seperti yang dibutuhkan oleh berbagai aplikasi Artificial Intelligence (AI). Aplikasi ilmu komputer ini mencakup pengembangan genarasi kelima komputer, pemrosesan pararel, pemrosesan simbolik, dan jaringan neural.


(26)

Aplikasi Robotic

Robotic berbasis pada bidang Artificial Intelligence (AI), teknik, dan psikologi. Teknologi inilah yang menghasilkan robot. Robot diartikan sebagai mesin dengan kecerdasan komputer dan dikontrol oleh komputer, dan memiliki kemampuan fisik seperti manusia. Aplikasi dari robotic ini mencakup pemberian kemampuan untuk melihat atau persepsi visual, menyentuh atau kemampuan meraba, decterity atau kemampuan untuk memegang dan memanipulasi, pengangkutan atau kemampuan fisik untuk bergerak, dan navigasi atau kecerdasan untuk menemukan atau mencapai jalan keluar.

Aplikasi Bahasa Alami

Pengembangan aplikasi ini berhubungan dengan lingkungan atau bagian utama dari Artificial Intelligence (AI) dan merupakan inti dari ilmu falsafat dan robotic. Dapat berkomunikasi atau berbicara kepada komputer dan robot dakam bahasa percakapan manusia dan dapat membuat komputer “mengerti” kita seperti kita saling mengerti satu sama lain merupakan tujuan dari Artificial Intelligence (AI).

2.6 Permainan

Permainan merupakan sebuah aktivitas rekreasi dengan tujuan bersenang-senang, mengisi waktu luang, atau berolahraga ringan. Permainan biasanya dilakukan


(27)

sendiri atau bersama-sama.Permainan komputer adalah permainan video yang dimainkan pada komputer pribadi, dan bukan pada konsol permainan, maupun mesin ding-dong. Permainan komputer telah berevolusi dari sistem grafis sederhana sampai menjadi kompleks dan mutakhir. Namun, pasar permainan komputer di Amerika Serikat mulai menurun sejak tahun 1999. Permainan teori adalah salah satu cabang diterapkan matematika yang digunakan dalam ilmu sosial (terutama ekonomi), biologi, rekayasa, sains politik, hubungan internasional, ilmu komputer (terutama untuk kecerdasan buatan), dan filosofi. Permainan teori matematis upaya untuk menangkap perilaku dalam situasi strategis, di mana individu yang sukses dalam membuat pilihan tergantung pada pilihan lain. Walaupun pada awalnya dikembangkan untuk menganalisa kompetisi di mana satu individu tidak lebih baik di lain penghasilan (nol jumlah permainan), telah diperluas untuk merawat berbagai kelas interaksi, yang berdasarkan beberapa kriteria. Hari Ini, "permainan teori adalah satu bentuk payung atau 'unified lapangan' teori untuk rasional samping ilmu sosial, dimana 'sosial' diterjemahkan luas, termasuk untuk manusia serta pemain non-manusia (komputer, binatang, tanaman)" (Aumann 1987).

Aplikasi permainan tradisional dari teori mencoba untuk menemukan equilibria permainan ini di-set strategi yang individu juga tidak mungkin untuk mengubah perilaku mereka. Banyak keseimbangan konsep telah dikembangkan (yang paling terkenal Nash keseimbangan) dalam upaya untuk menangkap ide ini. Keseimbangan konsep ini diharapkan akan dapat memotivasi berbeda tergantung


(28)

pada bidang aplikasi, meskipun mereka sering tumpang tindih atau bersamaan. Metodologi ini tidak tanpa kritik, dan perdebatan atas tepat untuk melanjutkan tertentu keseimbangan konsep, tepat equilibria dari semuanya, dan kegunaan dari model matematika umumnya.

2.6.1 Aplikasi dan tantangan

Permainan teori telah digunakan untuk kajian berbagai perilaku manusia dan binatang. Ia mula-mula dikembangkan dalam bidang ekonomi yang besar untuk memahami koleksi perilaku ekonomi, termasuk perilaku perusahaan, pasar, dan konsumen. Penggunaan permainan teori dalam ilmu sosial telah diperluas, dan permainan teori telah diterapkan untuk politik, sosiologis, psikologis dan perilaku juga.

Permainan teori analisis awalnya digunakan untuk studi perilaku hewan oleh Ronald Fisher pada tahun 1930an (meskipun bahkan Charles Darwin membuat beberapa permainan teori pernyataan informal). Ini bekerja predates nama "teori permainan", tetapi saham banyak fitur penting dengan bidang ini. Perkembangan ekonomi tersebut kemudian diterapkan untuk biologi sebagian besar oleh John Maynard Smith dalam bukunya Evolution dan Teori Permainan.


(29)

Selain digunakan untuk memprediksi dan menjelaskan perilaku, permainan teori juga telah digunakan untuk mencoba untuk mengembangkan teori dari etika normatif atau perilaku. Dalam ekonomi dan falsafah, cendekiawan telah menerapkan permainan teori untuk membantu dalam memahami perilaku baik atau tepat. Permainan teori argumen dari jenis ini dapat dilihat sebagai jauh kembali sebagai Plato.

2.6.2 Ilmu komputer dan logika

Permainan teori telah datang untuk memainkan peran yang semakin penting dalam logika dan dalam ilmu komputer. Beberapa logis teori memiliki dasar dalam permainan semantik. Selain itu, para ilmuwan komputer telah digunakan untuk model permainan interaktif computations. Juga, permainan teori menyediakan teori dasar kepada bidang sistem multi-agen.

Secara terpisah, permainan teori telah memainkan peranan dalam line algoritma. Secara khusus, k-masalah server, yang di masa lalu telah disebut sebagai permainan bergerak dengan biaya dan permintaan-Jawaban permainan (Ben Daud, Borodin & Karp dkk. 1994). Yao prinsip adalah permainan teori-teknik untuk membuktikan batas lebih rendah pada komputer kompleksitas randomized algoritma, dan algoritma khususnya online


(30)

2.7 Permainan Checkers

Permainan checkers (dalam bahasa Inggris Amerika) atau disebut draughts (dalam bahasa Inggris British) merupakan permainan yang menggunakan strategi abstrak dimainkan oleh dua pemain dengan menggunakan langkah diagonal token dan menangkap dengan melompati token musuh. Permainan ini telah dimainkan di Eropa sejak abad ke- 16, dikembangkan dari permainan alquerque. Bentuk yang paling populer dari pemainan ini adalah international draughts, yang dimainkan pada papan 10x10. Bentuk yang juga populer adalah English draughts, yang disebut American checkers, dimainkan pada papan 8x8.


(31)

2.7.1 Peraturan Checkers

Dimainkan oleh dua orang, dengan pemain berada pada sisi yang berlawanan dari papan. Salah satu pemain memiliki kepingan berwarna gelap dan pemain lain berwarna terang. Pemain dengan kepingan berwarna gelap melakukan langkah pertama, kecuali telah ditentukan sebelumnya.Kepingan akan bergerak diagonal dan kepingan lawan ditangkap dengan meloncatinya. Kepingan yang ditangkap akan dihilangkan dari papan.Gerak kepingan pada papan hanya dapat dilakukan pada kotak yang tidak ditempati. Permukaan yang dapat menjadi papan permainan hanya kotak dengan warna gelap. Pemain yang kalah adalah pemain yang tidak memiliki kepingan yang tersisa atau tidak dapat melakukan langkah lagi.

Kepingan tanpa mahkota disebut orang, akan bergerak satu langkah maju diagonal dan menangkap kepingan dengan melakukan dua langkah pada arah yang sama, melompati kepingan lawan pada kotak tengah. Sejumlah kepingan lawan dapat ditangkap dengan satu loncatan, tidak harus pada arah yang sama tapi bisa zigzag.


(32)

Pada English draughts kepingan hanya dapat ditangkap maju, tetapi pada international draughts kepingan dapat ditangkap mundur.

Ketika mencapai baris terjauh, kepingan berubah menjadi raja, ditandai dengan memberikan mahkota. Kepingan raja ini memiliki kekuatan tambahan untuk berjalan dan menangkap mundur (pada jenis yang tidak dapat melakukaknnya). Pada international draughts, raja dapat begerak sejauh yang ia inginkan secara diagonal

2.8 Algoritma

Dalam matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan


(33)

kriteria yang sama.Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

2.9 Algoritma pencarian

Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang sederhana dan sangat intuitif pada ruang pencarian, sedangkan algoritma pencarian informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam pencarian.Sebuah algoritma pencarian uninformed adalah algoritma yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh karena itu algoritma tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang sama dapat


(34)

digunakan pada lingkup permasalahan yang luas, hal ini berkat abstraksi. Kekurangannya adalah sebagian besar ruang pencarian adalah sangat besar, dan sebuah pencarian uninformed (khususnya untuk pohon) membutuhkan banyak waktu walaupun hanya untuk contoh yang kecil. Sehingga untuk mempercepat proses, kadang-kadang hanya pencarian informed yang dapat melakukannya.

2.9.1 Pencarian List

Algoritma pencarian list mungkin adalah algoritma pencarian paling dasar. Tujuannya adalah mencari sebuah elemen dari sebuah himpunan dengan suatu kunci (kemungkinan memuat informasi yang terkait dengan kunci). Oleh karena hal ini adalah masalah yang lazim dalam ilmu komputer, kompleksitas komputasi algoritma-algoritma tersebuh telah dipelajri dengan baik. Algoritma paling sederhana adalah pencarian linear, yang secara sederhana melihat setiap elemen dari list secara berurutan. Waktu pengerjaan algoritma ini adalah O(n), dimana n adalah banyaknya elemen dalam list, dan dapat digunakan langsung pada list yang belum diproses. Algoritma pencarian list yang lebih canggih adalah pencarian biner; waktu pengerjaannya adalah O(log n). Waktu pengerjaannya jauh lebih baik daripada pencarian linear untuk list yang memiliki data banyak, tetapi sebelum dilakukan pencarian list terlebih dahulu harus terurut (lihat algoritma pengurutan) dan juga harus dapat diakses secara acak (pengaksesan acak). Pencarian interpolasi adalah


(35)

lebih baik dari pencarian biner untuk list terurut yang sangat besar dan terdistribusi merata. Algoritma Grover adalah sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut.

Tabel hash juga digunakan untuk pencarian list, hanya memerlukan waktu yang konstan untuk mencari pada kasus rata-rata, tetapi memiliki overhead ruang yang lebih dan pada kasus terburuk waktu pengerjaannya adalah O(n). Pencarian lain yang berdasarkan struktur data khusus, menggunakan pohon pencarian biner yang self-balancing (self-balancing binary search tree) dan membutuhkan waktu pencarian O(log n); hal ini dapat dipandang sebagai pengembangan dari ide utama pencarian biner untuk memungkinkan penyisipan dan penghapusan yang cepat. Lihat array asosiatif untuk diskusi lanjut dari struktur data pencarian list.

Sebagian besar algoritma pencarian, seperti pencarian linear, pencarian biner dan pohon pencarian biner yang self-balancing, dapat dikembangkan dengan sedikit tambahan costuntuk menemukan semua nilai yang kurang dari atau lebih dari sebuah kunci, operasi ini disebut pencarian jangkauan (range search). Pengecualin ada pada tabel hash, yang tidak dapat melakukan pencarian tersebut secara efisien.

2.9.2 Pencarian Pohon

Algoritma pencarian pohon adalah jantung dari teknik-teknik pencarian. Algoritma tersebut mencari node dari pohon, terlepas apakah pohon tersebut eksplisit


(36)

atau implisit (dibangkitkan saat pengerjaan). Prinsip dasarnya adalah sebuah node diambil dari sebuah struktur data, suksesornya diperiksa dan ditambahkan pada struktur data. Dengan memanipulasi struktur data, pohon dieksplorasi dalam urutan yang berbeda-beda, dieksplore dari satu tingkat ke tingkat berikutnya (pencarian Breadth-first) atau mengunjungi node pucuk terlebih dahulu kemudian lacak balik/backtracking (pencarian Depth-first). Contoh lain dari pencarian pohon antara lain pencarian iterative-deepening, pencarian berbatas kedalaman, pencarian dwiarah dan pencarian uniform-cost.

2.10 Depth First Search

Pada Depth First Search (DFS), proses akan dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node (titik) yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi. Stack atau tumpukan adalah struktur data yang setiap proses baik penambahan maupun penghapusan hanya bisa dilakukan dari posisi teratas tumpukan. Cara kerja stack adalah LIFO (Last In First Out), dimana data yang terakhir masuk akan keluar pertama.

Berikut analisis ruang dan waktu untuk metode pencarian DFS : 1. Diasumsikan :

a. Pohon pelacakan memiliki cabang yang selalu sama, yaiu sebanyak b. b. Tujuan dicapai pada level ke-d


(37)

a. Setelah berjalan 1 langkah, stack akan berisi b node.

b. Setelah berjalan 2 langkah, stack akan berisi (b-1) + b node.

c. Setelah berjalan 3 langkah, stack akan berisi (b-1) + (b-1) + b node. d. Setelah berjalan d langkah, stack akan berisi (b-1) * d + 1 node, mencapai maksimum.

3. Analisis Waktu

a.Pada kasus terbaik, DFS akan mencapai tujuan pada kedalaman d pertama, sehingga dibutuhkan pencarian sebanyak d + 1 node.

b. Pada kasus terburuk, DFS akan mencapai tujuan pada kedalaman d pada node terakhir, sehingga dibutuhkan pencarian sebanyak 1 + b + b2 + b3 +….+ bd = (bd+1-1) / ( b-1)

Keuntungan dari metode ini adalah :

1. Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.

2. Secara kebetulan, metode DFS akan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.

Kelemahan dari metode ini adalah :

1. Memungkinkan tidak ditemukannya tujuan yang diharapkan. 2. Hanya akan mendapatkan 1 solusi pada setiap pencarian.


(38)

Gambar 2.2 Contoh penelusuran DFS

Pada pohon di atas, penelusuran dimulai dari simpul akar bernomor 1. Simpul berikutnya yang ditelusuri adalah simpul 2 yang bertetangga dengan simpul 1, lalu simpul 3 yang bertetangga dengan simpul 2. Karena simpul 3 sudah tidak memiliki tetangga, penelusuran akan berlanjut ke tetangga simpul 2 yaitu simpul 4. Setelah itu simpul 5 yang bertetangga dengan simpul 1, dan terakhir simpul 6 yang bertetangga dengan simpul 5.

Untuk memecahkan persoalan memaksimalkan f(H), dilakukan penelusuran terhadap semua himpunan bagian Ai yang saling lepas. Setiap simpul berisi himpunan solusi biji-biji yang akan ditaruh dan jumlah nilai dari himpunan solusi. Penelusuran dimulai dari simpul akar yang merupakan himpunan kosong dengan nilai -P. Simpulsimpul berikutnya dibangkitkan dari himpunan biji pada tabel nilai yang saling lepas dengan himpunan solusi yang telah terbentuk sejauh ini. Jika penelusuran


(39)

telah mencapai simpul daun dan tidak ada lagi simpul yang dapat dibangkitkan, nilai total dari himpunan solusi disimpan sebagai nilai maksimum sementara. Pencarian dilakukan sampai mendapatkan nilai maksimum yang paling besar. Sebagai contoh digunakan huruf-huruf pada contoh sebelumnya yaitu A, B, E, G, T, O, U. Tabel nilai yang digunakan adalah tabel 3. Nilai simpul akar = - (1+3+1+2+1+1+1) = -10. Mulai dari simpul akar, simpul pertama yang dibangkitkan berisi {B, E, G}. Lalu simpul berikutnya dibangkitkan dengan menambahkan {A, T} menjadi {B, E, G, A, T}. Setelah itu tidak ada lagi simpul yang dapat dibangkitkan, jadi nilai untuk solusi ini adalah 12


(40)

Dari simpul 2 juga sudah tidak ada lagi simpul yang dapat dibangkitkan karena {B, E, G} beririsan dengan {G, E, T}, {E, A, T}, maupun {B, U, G}. Jadi penelusuran akan kembali ke simpul akar. Dari simpul akar dibangkitkan simpul {A, T}, lalu {A, T, B, U, G} dengan nilai total 9. Penelusuran dilakukan terus sampai semua simpul dibangkitkan. Dari gambar di atas dapat dilihat bahwa nilai maksimum yang dapat diambil adalah 12 dengan menaruh biji {B, E, G} dan {A, T}.

2.11 Breadth First Search

Pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikia n seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik ( Optimal).Tetapi breadth first search harus menyimpan semua node yang pernah dibangkitkan. Hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan.

Penelusuran breadth first search : Traversal dimulai dari simpul v.

a. Algoritma:

1. Kunjungi simpul v,

2. Kunjungi semua simpul yang bertetangga dengan simpul v terlebih dahulu. 3. Kunjungi simpul yang belum dikunjungi dan bertetangga dengan simpul simpul yang tadi dikunjungi, demikian seterusnya.


(41)

Jika graf berbentuk pohor berakar, maka semua simpul pada aras d dikunjungi lebih dahulu sebelum simpul-simpul pada aras d + 1.

Gambar 2.4 Gambar Graf tak berarah

Apabila pada graf di atas digunakan algoritma

Breadth First Search, maka pengunjungan simpulsimpul akan dilakukan seperti berikut:

1. Simpul awal 0, urutan simpul yang dikunjungi adalah 0,1,2,3,5,4,6,7 2. Simpul awal 1, urutan simpul yang dikunjungi adalah 1,0,2,3,5,4,6,7 3. Simpul awal 2, urutan simpul yang dikunjungi adalah 2,0,1,3,5,4,6,7 4. Simpul awal 3, urutan simpul yang dikunjungi adalah 3,2,4,6,0,1,5,7 5. Simpul awal 4, urutan simpul yang dikunjungi adalah 4,3,6,2,0,1,5,7 6. Simpul awal 5, urutan simpul yang dikunjungi adalah 5,2,7,0,1,3,4,6 7. Simpul awal 6, urutan simpul yang dikunjungi adalah 6,3,4,2,0,1,5,7


(42)

8. Simpul awal 7, urutan simpul yang dikunjungi adalah 7,5,2,0,1,3,4,6

Jelas bahwa semua simpul akan dikunjungi, tetapi prioritas kunjungan diberikan kepada simpul yang paling dekat

2.12 Best First Search

Metode pencarian best first search merupakan kombinasi dari metode depth first search dan breadth first search dengan mengambil kelebihan – kelebihan dari kedua metode tersebut.Pada metode best first search ini, pencarian node tujuan atau goal, mengizinkan untuk mengunjungi sebuah node yang ada pada level yang lebih rendah jika ternyata node yang berada pada level yang lebih tinggi memiliki nilai heuristik yang lebih buruk ( rendah ).Hal ini sangat berbeda apabila pencarian dilakukan dengan metode hill climbing, dimana pada metode hilll climbing tidak diperbolehkannya untuk mengunjungi sebuah node pada level yang rendah yang meskipun node tersebut mempunyai nilai heuristik yang lebih baik ( tinggi )

Pada setiap langkah proses pencarian terbaik pertama, kita memilih node-node dengan menerapkan fungsi heuristik yang memadai pada setiap node/simpul yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan penggantinya.Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goalstate, yang dinyatakan dengan :


(43)

dimana f’ = prakiraan cost dari initial ke goal g = cost dari initial state ke current state

h’ = prakiraan cost dari current state ke goal state

Contoh Proses pada Best First Search:

Langkah 1 Langkah 2 Langkah 3


(44)

2.13 Algoritma minimax

Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal. Algoitma ini diterpkan dalam permainan yang melibatkan dua pemain seperti tic tac toe, checkers, go dan permainan yang menggunakan strategi atau logika lainnya. Hal ini berarti permainan-permainan tersbut dapa dijelaskan sebagai suatu rangkaian aturan dan premis.

Algoritma ini mulai dikembangkan dari teori game zero-sum. Teori ini mendeskripsikan situasi dimana jika terdapat pemain yang mengalami pendapatan, pemain lain akan mengalami kehilangan dengan nilai yang sama dari pendapatan tersebut, dan sebaliknya. Jumlah pendapatan dari pemain yang dikurangi dengan jumlah kehilangan akan berjumlah nol.

Teori minimax menyatakan :

Untuk setiap dua orang pemain dalam zero-sum game, terdapat nilai V dari strategi yang dimiliki pemain seperti :

1. Stratregi yang ditentukan pemain kedua akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, V

2. Strategi yang dutentukan pemain pertama akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, -V


(45)

Secara setara, strategi pemain pertama akan memastikan suatu nilai V tanpa memperdulikan strategi pemain kedua, dan bersamaan dengan itu pemain kedua akan memastikan dirinya kehilangan nilai sebesar –V.Algoritma Minimax merupakan algoritma dasar pencarian DFS (Depth-First Search) untuk melakukan traversal dalam pohon. DFS akan mengekspansi simpul paling dalam terlebih daulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst. Dalam melakukan treversal, misalkan dimulai dari suatu simpul i, maka simpul selanjutnya yang akan dikunjungi adalah simpul tetangga j, yang bertetangga dengan simpul k, selanjutnya pencarian dimulai lagi secara rekursif dari simpul j. Ketika telah mencapai simpul m, dimana semua simpul yang bertetangga dengannya telah dikunjungi, pencarian akan dirunutbalik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul yang belum dikunjungi. Selanjutnya pencarian dimulai kembali dari j. Ketika tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi maka pencarian selesai.

Dalam repersentasi pohon dalam algoritma Minimax, terdapat dua jenis node, yaitu node min dan node max. Max node akan memilih langkah dengan nilai tertinggi dan min node akan memilih langkah dengan nilai terendah. Berikut merupakan gambar pohon untuk algoritma Minimax.


(46)

Gambar 2.6 Pohon Pencarian Algoritma Minimax

Dalam algoritma ini, langkah yang dapat dilakukan pemain ditentukan oleh langkah pemain lawan sebelumnya. Sebagai contoh pada tabel berikut di berikan tabel nilai yang memberitahukan hasil dari pilihan


(47)

Pada tabel ini diperlihatkan setiap pemain memiliki tiga pilihan yang harus dipertimbangkan. Dengan mengasumsikan nilai pilihan yang dipilih untuk suatu pemain akan bernilai kebalikannya bagi pemain lawan. Maka pilihan minimal untuk A adalah A2 karena nilai terburuk adalah kehilangan -1, dengan pilihan minimax untuk B adalah B3 karena kemungkinan teburuk adalah mendapatkan nilai 1. Bagaimanapun, solusi ini tidak stabil, jika B mengira A akan memilih A2 maka B akan memilih B1 untuk mendapatkan nilai 1. Jika A mengira B akan memilih B1 maka A akan memilih A1 untuk mendapatkan 3, maka B akan memilih B2 yang dimana kedua pemain akan menyadari kesulitan menentukan pilihan. Disinilah dibutuhkan strategi. Pada beberapa pilihan, terlihat dominasi salah satu pemain dan dapat dieliminasi, seperti : A tidak akan memilih A3 karena A1 dan A2 memiliki hasil yang lebih baik, apapun yang B pilih. B tidak akan memilih B3 karena B2 akan memberikan hasil yang lebih baik, apapun yang A pilih. A dapat menghindari kehilangan lebih dari 1/3 dengan memilih A1 dengan kemungkina 1/8 dan A2 dengan kemungkinan 5/6 apapun yang B pilih. B dapat memastikan pendapatan setidaknya 1/3 dengan menggunakan strategi acak untuk memilih B1 dengan kemungkinan 1/3 atau B2 dengan kemungkinan 2/3 apapun yang A pilih.

Berdasarkan contoh tersebut diketahui bahwa dalam algoritma ini terdapat dua peran, yaitu max dan min.Pembuatan pohon dimulai dari posisi awal hingga posisi akhir permainan. Sekanjutnya, posisi akhir dievaluasi dari sudut pandang max,. Setelah itu, node bagian dalam diisi dengan nilai yang telah dievaluasi. Node yang


(48)

dimiliki max akan menerima nilai maksimum dari anak-anaknya. Node untuk min akan memilih nilai minumum dari anak-anaknya

2.14 Alpha-Beta Pruning

Dalam algoritma Minimax, pencarian dilakukan pada seluruh bagian pohon, sementara sebagian pohon tidak seharusnya diperiksa. Alpha-beta pruning merupakan modifikasi dari algoritma Minimax, yang akan mengurangi jumlah node yang dievaluasi oleh pohon pencarian. Pencarian untuk node berikutnya akan dipikirkan terlebih dahulu. Algoritma ini akan berhenti mengevaluasi langkah ketika terdapat paling tidak satu kemungkinan yang ditemukan dan membuktikan bahwa langkah tersebut lebih buruk jika dibandingkan dengan langkah yang diperiksa sebelumnya. Sehingga, langkah berikutnya tidak perlu dievaluasi lebih jauh. Dengan algoritma ini hasil optimasi dari suatu algoritma tidak akan berubah. Berikut merupakan pohon dengan algoritma alpha-beta pruning


(49)

Gambar 2.8 Pohon Pencarian Algoritma Minimax dengan Alpha-Beta Pruning

Diperlihatkan, pada pohon tersbut, bahwa terdapat pemotongan pencarian dengan menggunakan algoritma ini.Pada algoritma ini, terdapat dua nilai yang diatur, yaitu alpha dan beta, yang merepresentasikan nilai minum dari max yang diyakini dan nilai maksimum dari min yang diyakini. Nilai awal alpha adalah tak hingga negatif dan nilai awal beta adalah tak hingga positif. Sebagai hasil dari proses rekursif, area pencarian akan semakin kecil. Ketika beta menjadi lebih kecil dari alpha, akan berarti posisi saat itu tidak dapat menjadi hasil terbaik permainan untuk kedua pemain dan pencarian tidak perlu dilakukan lebih jauh. Pseudocode untuk algoritma Minimax


(50)

yang telah mengimplementasikan alpha beta pruning, yaitu : Pembentukan pohon DFS biasa membutuhkan big-O sebesar O(bm) dan dengan alpha-beta pruning pohon big- O akan menjadi sebesar O(bm/2).

2.15 Penerapan Algoritma Minimax Pada Permainan Chekers

Penerapan algoritma Minimax dalam checkers dibuat berdasarkan prosedur Minimax untuk mendapatkan langkah terbaik dari posisi yang ada. Setiap posisi memiliki nilai yang dapat dihasilkan dari langkah terbaik, dengan berasumsi bahwa AI akan selalu mencoba memaksimalkan nilai, ketika lawan akan mencoba untuk meminimalkannya.Ketika prosedur minimax mencapai akar pada pohon pencarian (posisi saat tersebut), akan menghasilkan langkah terbaik dengan asumsi lawan akan menggunakan kriteria evaluasi yang sama. Beberapa versi program yang dibuat kebanyakan telah menerapkan algoritma pemotongan alpha-beta.Terdapat dua macam metode, yang disebut rote learning. Metode tersebut memiliki penyimpan untuk setiap posisi yang ditemui selama permainan dengan tidak menghilangkan nilai yang ditentukan oleh prosedur Minimax. Hasilnya adalah jika terdapat posisi yang pernah ditenukan sebelumnya, akan dimunculkan sebagai posisi terminal pada pohon pencarian. Sehingga, pencarian akan semakin mudah karena nilai posisi diambil dari hasil pencarian yang telah dilakukan sebelumnya. Satu masalah awal yang ditemukan adalah program tidak mendukung untuk melangkah langsung menuju kemenangan.


(51)

Solusi pencegahan adalah dengan mengurangi sedikit nilai posisi setiap tahap (disebut ply) pada analisis Minimax. Jika program berhadapan dengan pilihan posisi dengan nilai yang hanya dibedakan oleh ply, maka program akan secara otomatis melangkah pada pilihan yang paling menguntungkan.. Ide ini digambarkan pada gambar berikut ini.

Gambar 2.9 Diagram Backup Permainan Checkers

Setiap lingkaran putih merepresentasikan posisi langkah program berikutnya dan setiap lingkaran hitam merepresentasikan posisi langkah lawan selanjutnya. Backup dibuat untuk setiap nilai pada posisi setelah perpindahan sisi, yang akan menghasilkan langkah berikutnya. Hal ini dibuat berdasarkan nilai yang dihasilkan dari algoritma Minimax. Perkembangan checkers menggunakan algoritma Minimax banyak dipengaruhi oleh pembuatan yang dilakukan Samuel tersebut. Untuk


(52)

menerapkan algoritma Minimax pada permainan checkers diperlukan suatu fungsi optimasi tertentu yang ditambahkan. Salah satu fungsi optimasi yang paling dasar adalah membatasi kedalaman dari pohon pencarian. Jika permainan memiliki pohon 3-ary, maka pohon tersebut akan memiliki nilai yang diperlihatkan pada tabel berikut.

Gambar 2.10 Gambar Kedalaman Pohon Pencarian

Berdasarkan tabel tersebut dapat dilihat bahwa untukpohon pencarian dengan kedalaman 5 akan membutuhkan 1+3+9+27+81+243 = 364 * 1s = 364s = 6m. Waktu ini merupakan waktu yang sangat lama untuk ukuran permainan. Fungsi optimasi selanjutnya yang perlu ditambahkan adalah fungsi yang dibutuhkan untuk melakukan evaluasi posisi permainan dari pemain tertentu. Hal ini dapat dilakukan dengan memberikan nilai pada langkah tertentu pada permainan, seperti menghitung jumlah kepingan di papan atau jumlah langkah yang tersisa di akhir permainan. Sebagai pengganti sebaiknya diperlukan suatu fungsi estimasi yang dapat melakukan penghitungan kemungkinan posisi agar pemain dapat memenangkan permainan. Fungsi ini harus memiliki fungsi heuristik dari permainan tersebut. Pada checkers, kepingan pada pojok dan pinggir posisi tidak buat suatu fungsi dapat dimakan. Sehingga, dapat dibuat suatu fungsi yang memberikan nilai yang lebih tinggi pada


(53)

posisi tersebut. Sebagai ilustrasi dapat dilihat pada gambar 5. Untuk memperkecil kemungkinan, fungsi heuristik nilai kepingan juga dapat ditambahkan, misalanya raja yang memiliki nilai lebih dibanding kepingan biasa.

Gambar 2.11 Pemberian Nilai pada Checkers

Artificial Intelegent pada permainan checkers dapat dikembangkan untuk memiliki dua kemungkinan metode pencarian alpha-beta. Pertama, pohon pencarian akan mencari hingga kedalaman tertentu, misalkan, pada sebuah permainan ditetapkan kedalaman pohon tingkat 4-5 untuk Artificial Intelegent pada level beginner, kedalaman 6-8 untuk level intermediate dan kedalaman 9-10 untuk level advanced. Metode kedua yaitu memungkinkan Artificial Intelegent untuk mencari dalam waktu tertentu. Metode ini dianggap lebih baik, karena jika bergantung pada keadaan permainan sejumlah langkah yang mungkin untuk setiap posisi, pencarian berdasarkan kedalaman akan menghasilkan variasi pohon yang sangat berbeda-beda. Pada metode tersebut, pengurangan pohon pada kedalaman rendah tidak diperlukan. Dengan mencari pada waktu tertentu, Artificial Intelegent memulai pencarian pada


(54)

kedalaman 4 dan melakukan pencarian lebih dalam secara iteratif dengan menambahkan kedalaman sebanyak 1 pada setiap pencarian. Jika waktu yang ditentukan habis pada tengah pencarian, pencarian akan dihentikan pada tingkatan tersebut dan langkah akan dihasilkan dari pencarian sebelumnya.

2.16 Microsoft Visual Basic

Merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi eksternal tambahan.IDE (Integrated Development Environment) adalah program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan


(55)

perangkat lunak. Tujuan dari IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam membangun perangkat lunak.

Sebuah IDE, atau secara bebas dapat diterjemahkan sebagai Lingkungan Pengembangan Terpadu, setidaknya memiliki fasilitas:

1. Editor, yaitu fasilitas untuk menuliskan kode sumber dari perangkat lunak.

2. Compiler, yaitu fasilitas untuk mengecek sintaks dari kode sumber kemudian mengubah dalam bentuk binari yang sesuai dengan bahasa mesin.

3. Linker, yaitu fasilitas untuk menyatukan data binari yang beberapa kode sumber yang dihasilkan compiler sehingga data-data binari tersebut menjadi satu kesatuan dan menjadi suatu program komputer yang siap dieksekusi.

4. Debuger, yaitu fasilitas untuk mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat dalam program.

Sampai tahap tertentu IDE modern dapat membantu memberikan saran yang mempercepat penulisan. Pada saat penulisan kode, IDE juga dapat menunjukan bagian-bagian yang jelas mengandung kesalahan atau keraguan.


(56)

40 BAB III

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Analisis sistem merupakan penguraian dari suatu sistem yang utuh ke dalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan-permasalahan, kesempatan dan hambatan-hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikan.

Pembangunan perangkat lunak terdiri dari beberapa tahap, salah satunya adalah tahap menganalisa sistem. Sistem yang akan dianalisis untuk membangun perangkat lunak permainan checkers menggunakan algoritma minimax. Analisis sistem yang akan dibahas mengenai cara kerja algoritma minimax yang diimplementasikan pada permainan checkers

Tahapan analisis harus dilakukan dengan teliti agar diketahui detail yang ada dalam sistem yang berjalan saat ini. Hal-hal yang akan dianalisis terdiri dari:

1. Analisis Masalah

2. Analisis Komponen Permainan 3. Analisis Kebutuhan Non Fungsional 4. Analisis Kebutuhan Fungsional

3.1.1 Analisis Masalah

Strategi di belakang Minimax algoritma adalah komputer berasumsi bahwa kedua pemain akan main sejauh kemampuan mereka. Maka, jika lawan


(57)

mempunyai pilihan suatu gerak tidak baik atau suatu yang baik gerak, komputer akan mempunyai lawan memilih yang baik gerak. sungguh mencoba untuk memilih gerak yang mengakibatkan nilai titik yang paling rendah. Konsep relatif nyata dan sederhana ini menjadi rahasia di belakang minimax pohon. Jika komputer di program untuk mencari maksimal, maka rangkaian atau gerakan yang terbaik akan selalu ditemukan yang mengakibatkan nilai titik yang paling tinggi. Demikian juga dengan minimal, maka rangkaian atau gerakan yang terbaik akan selalu ditemukan yang mengakibatkan nilai titik yang paling rendah

3.1.2 Analisis Komponen Permainan

Beberapa komponen dalam permainan checkers: 1. Pemain.

Permainan ini dimainkan oleh dua orang. Berperan sebagai lawan satu sama lain.

2. Papan.

Papan yang digunakan dalam permainan ini mirip dengan papan catur. Terdiri dari 8 x 8 kotak-kotak kecil warna terang dan gelap. Permukaan yang dimainkan terdiri dari 32 kotak hanya gelap. Sebuah konsekuensi ini adalah bahwa, dari perspektif masing-masing player, kiri dan kanan tikungan mendorong strategi yang berbeda.

3. Koin.

Koin yang digunakan berbentuk silinder datar seperti koin pada umumnya. Koin yang digunakan pada permainan ini berwarna terang dan gelap. Pada


(58)

awalnya, warna terang direpresentasikan dengan warna putih dan warna gelap direpresentasikan dengan warna merah. Tapi pada perkembangannya,banyak warna yang digunakan untuk menggantikan warna-warna tersebut.

4. Posisi awal.

Masing-masing pemain mempunyai 12 koin sewarna yang diletakkan pada 3 baris pertama pada bidang yang terdekat dengan pemain dan diletakkan pada bidang yang berwarna gelap. Pemain yang memainkan koin berwarna gelap, memulai langkah awal terlebih dahulu.

5. Cara bergerak.

Koin bergerak secara diagonal mengikuti warna bidang yang gelap, satu di tiap langkahnya. Cara lain adalah dengan melangkahi satu buah koin lawan. Keadaan itu mungkin dapat dilakukan jika pada diagonal setelah koin lawan, merupakan bidang kosong. Jika langkah kedua itu terjadi, koin lawan yang dilangkahi mati, dan harus keluar dari bidang permainan. Koin dengan pangkat “biasa” hanya dapat bergerak maju. Namun, koin dengan pangkat “raja”, dapat bergerak maju maupun mundur.

6. Raja.

Raja merupakan sebutan untuk koin yang mendapat perlakuan istimewa. Koin ini adalah koin yang bertahan dan berhasil masuk ke ujung baris bidang lawan. Koin ini didefinisikan sebagai tumpukan dari dua koin biasa. Keistimewaan koin ini adalah dapat bergerak baik maju maupun mundur.


(59)

7. Permainan selesai

Permainan selesai ditandai oleh habisnya koin lawan pada bidang permainan atau koin sudah tidak dapat bergerak kemanapun.

3.2Analisis Kebutuhan Non Fungsional

Analisis Kebutuhan Non fungsional adalah sebuah langkah dimana seorang pembangun perangkat lunak menganalisis sumber daya yang akan menggunakan perangkat lunak yang dibangun. Analisis Kebutuhan Non Fungsional untuk penerapan algoritma minimax pada permainan checkers, yaitu :

1. Analisis Pengguna 2. Analisis Perangkat Lunak 3. Analisis Perangkat Keras

3.2.1 Analisis Pengguna

Perangkat keras dan perangkat lunak yang ada tidak akan berguna apabila tidak ada perangkat pikir yang mengoperasikannya. Perangkat pikir yang terlibat dalam sistem adalah pemain/player untuk memainkan permainan checkers.


(60)

Kebutuhan perangkat lunak yang digunakan untuk bisa mengoperasikan aplikasi yang akan dibangun adalah Windows XP SP I/II

3.2.3 Analisis Perangkat Keras

Perangkat keras yang digunakan untuk memainkan permainan ini antara lain adalah :

a. Procesor dengan kecepatan 1,8 GHz b. RAM 512 Mb

c. Harddisk 40 Gb d. Sound Card. e. CD-Rom 52x f. Monitor

g. Keyboard dan Mouse

3.3 Analisis Kebutuhan Fungsional

Analisis Kebutuhan Fungsional adalah asumber daynalisis untuk menentukan entitas-entitas baik entitas internal maupun entitas eksternal, data yang mengalir, serta prosedur-prosedur yang bisa dilakukan oleh masing-masing entitas.


(61)

Untuk mempermudah menggambarkan hasilnya, maka dibentuklah hasil analisis kebutuhan non fungsional dalam bentuk diagram-diagram serta alat bantu berupa:

1. Diagram konteks 2. Diagram alir data 3. Spesifikasi proses

3.3.1 Diagram Konteks

Diagram konteks merupakan salah satu alat bantu dalam melakukan analisis terstruktur. Diagram konteks ini menggambarkan suatu sistem secara garis besarnya atau keseluruhannya saja.

Gambar 3.1 Diagram Konteks permainan checkers

3.3.1.1Data Flow Diagram (DFD) Level 1

Diagram alir data merupakan sebuah representasi dari suatu sistem yang menggambarkan bagian-bagian dari sistem tersebut beserta keterkaitan antara bagian-bagian yang ada. Adapun diagram alir data level satu sebagai berikut :


(62)

Gambar 3.2 DFD Level 1 permainan checkers


(63)

Gambar 3.3 DFD Level 2 permainan checkers


(64)

Spesifikasi proses digunakan untuk menggambarkan proses model aliran yang terdapat pada DFD. Spesifikasi proses dari gambaran DFD di atas akan dijelaskan sebagai berikut :

No. Proses Keterangan

1 No. Proses 1

Nama Proses Mulai permainan Source (sumber) 1. Player

2. Komputer

Input 1. Langkah pemain

Output pencarian

Destination (tujuan) Proses 1. Logika Proses Begin

{ pemain memulai langkah dalam permainan} End

2 No. Proses 2

Nama Proses validasi

Source (sumber) 1. komputer

Input Hasil langkah pemain

Output Hasil pencarian

Destination (tujuan) Proses 3 Logika Proses Begin

{komputer melakukan pencarian keputusan} End


(65)

3.3.3 Analisis Proses

Diasumsikan bahwa permainan memilik dua pemain, disebut Maks dan Min, dan yang Maks bergerak pertama. Max ingin memaksimalkan hasil yang bisa dicapai. Min, di lain pihak, ingin meminimalkan hasil yang diperoleh dapat Max. Permainan teori-nilai yang permainan ketika adalah hasil baik dan Min Maks bermain dengan baik. Nilai ini dapat ditentukan, dalam teori, oleh semua kemungkinan memperluas secara rekursif dari continuations

permainan's mulai posisi semua jalan menuju ke akhir permainan (posisi terminal).

Aturan yang digunakan untuk menyebarkan hasil dikenal (dari pandangan Max)dari terminal kembali ke posisi awal. Apabila itu adalah Max's memindahkan, dia selalu memilih beraktivitas yang mengarah ke nilai maksimum. Ketika itu Min's memindahkan, dia akan mencoba untuk meminimalkan Max's keuntungan dengan memilih selalu berpindah tempat dengan nilai minimum.

Berasumsi bahwa mungkin hasil dari permainan adalah nilai bulat di rentang -9-9 (dimana angka positif menunjukkan hasil yang menguntungkan untuk Maks). Itu posisi awal adalah untuk mencari kedalaman 2 lapis (satu lapis merujuk dibuat untuk memindahkan satu per satu player). Setiap node di pohon mewakili posisi permainan dan ujung-ujungnya antara node mewakili bergerak. Square node menunjukkan posisi dimana Maks telah berpindah tempat, dan circled node Min adalah di mana telah beraktivitas


(66)

Algoritma Minimax yang meluaskan pohon secara rekursif dalam ke-kiri-kanan. Pencarian mulai dalam posisi A. Pertama yang bergerak terkemuka a1 adalah diperluas untuk permainan posisi B, kemudian bergerak menuju ke posisi b1 C, yang merupakan posisi terminal (dalam hal ini contoh sederhana) dan memiliki hasil +5. Algoritma yang sekarang backtracks, kembali +5 atas ke tingkat sebelumnya (node B), di mana bergerak B2 dan b3 yang diperluas dengan gaya yang sama; mereka mendapatkan nilai +9 dan +8, masing-masing. Pada B Min pemain yang memiliki pilihan yang pindah ke memilih, dan dia memilih memindahkan b1 karena mengurangi Max's keuntungan. Dengan demikian +5 (nilai pindah dari b1) adalah kembali kembali ke A. Dengan demikian,

memindahkan a1 menjamin Maks nilai minimal +5.

Max, namun harus terus menjelajahi tersisa dua bergerak, karena mereka dapat mengakibatkan sebuah hasil yang lebih menguntungkan. Dalam contoh ini yang tidak kasus, dan pencarian nilai yang akan ditentukan +5

Untuk memberikan gambaran bagaimana Alpha-Beta bekerja, akan diperlihatkan bagaimana traverses pohon secara rinci dan konsep.


(67)

Untuk lebih detail , berikut kode Alpha Beta :

function alphabeta(n, , ) g; if n = leaf then return eval(n); else if n = max then

g := ;

c := firstchild(n); while g < and c = do g := max g, alphabeta(c, , ) ; := max( , g);

c := nextbrother(c); else /* n is a min node */ g := + ;

c := firstchild(n); while g > and c = do g := min g, alphabeta(c, , ) ; := min( , g);

c := nextbrother(c); return g;

Kedua fungsi yang paling menarik adalah bagaimana dan mengapa cutoffs dilakukan, dan melihat bagaimana Alpha-Beta konstruksi minimal pohon . Dalam contoh ini Alpha-Beta akan menemukan beberapa cutoffs, akan tetapi lebih dari yang melintasi minimal pohon, anak-anak sejak beberapa node tidak


(68)

memerintahkan terbaik pertama. (Misalnya, max di node yang paling kiri-anak tidak b tertinggi dan di menit node k kiri-paling anak tidak terendah.) Nilai-nilai untuk, dan g sebagai Alfa-Beta traverses mereka adalah ditampilkan di samping node dalam gambar 3.7. Anak-anak yang putus ditampilkan sebagai kecil titik hitam.

Gambar 3.8 pohon minimax alpha beta

Angka dalam gambar 3.8 memberikan langkah-oleh-langkah Alpha-Beta Cutoffs ditunjukkan dalam tabel, dan dijelaskan di bawah ini. Sejak alpha-beta bekerja menuju maksimum dan mencari solusi yang min pohon dari nilai sama, akan ditunjukkan dalam tabel ini juga. Kondisi dari Alpha-Beta jika node kembali nilai g yang terletak dalam pencarian jendela, kemudian kedua yang T + dan T memiliki telah ditransfer. Hal ini berlaku untuk sebagian besar node. Hanya node j, p u kembali dan sebuah nilai mereka di luar jendela. Nilainya ditentukan oleh satu solusi pohon. Atas batas untuk node ditandai sebagai | +, lebih rendah sebagai batas |. Max adalahsolusi pohon ditampilkan sebagai + T, min solusi sebagai pohon T.


(69)

Root disebut dengan α = - α dan β = +∞. B anak pertama adalah dengan memperluas sama parameter. Hal yang sama berlaku untuk node c, d dan e. Node e adalah daun, yang panggilan yang evaluasi fungsi. Itu kembali minimax dengan nilai 41 untuk induk. Di sini, di node d, nilai-nilai g dan diperbarui sampai dengan 41. Node d memeriksa g> α (karena 41 > -∞ ) pencarian terus ke anak berikutnya, |. Karena telah diupdate dalam parent, node ini adalah dengan mencari sebuah jendela (-∞,41). Node f kembali dengan minimax nilai. Induk d 5 kembali, minimum 41 dan 5. parent c pembaruan g dan ke 5. Node c meneruskan untuk mencari node g, sejak 5 <+. Semakin rendah terikat digunakan untuk pencarian dan node g anak-anak dengan pencarian jendela kecil dari 5, +. Node g kembali minimum 12 dan 90 untuk c, yang memberikan hasil yang maksimal 5 dan 12 untuk b.Dalam node b pencarian dilanjutkan untuk memperluas j. B node adalah node menit.Yang g-12 merupakan nilai atas terikat, substantiated oleh maks solusi pohon yang berisi node c, d, |, g dan h. Lihat di baris 16 meja. Jendela pencarian untuk node j berkurang ke 12, menunjukkan bahwa orang tua b sudah memiliki terikat atas 12, sehingga jika di atas anak-anak lebih rendah dari b terikat 12 muncul, pencarian dapat dihentikan. Node j meluaskan sub-pohon berakar dalam anak k, yang kembali 80. Iniyang menyebabkan romulos dari saudara dalam node j, sejak 80 <12. Itu pencarian dari node j,yang nilai, menjadi max node, adalah lebih rendah terikat 80 yang hanya dapat peningkatan, tidak lagi berguna. Nilai b induk sudah serendah-rendahnya 12, dan sejak itu adalah min node, ia tidak akan naik. Karena b tidak lain untuk anak-anak itu lebihrendah nilai lebih lanjut,


(70)

hasilnya dia nilai terlalu. Nilai hasil dari b didefinisikan oleh min solusi pohon c, g, h, i, j, k, l, m dan maks solusi pohon b, c, d, |, g, h.

Berikut contoh pohon pencarian dari langkah diatas : Algoritma

1. Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada level 2 masukkan nilai 5, hampiri 8, karena 8 > 5 maka ganti parent dengan 8, hampiri 3.

2. Setelah ketiga leaf pertama terhampiri, naik lebih tinggi lagi ke level 1 masukkan nilai 8.

3. Hampiri node keempat pada leaf dengan nilai 9, naik ke parent pada level 2 masukkan nilai 9. Jika kita menghampiri leaf berikutnya, kita mencari nilai yang lebih tinggi dari 9, sementara pada level 1 kita mencari yang lebih kecil dari 8, maka leaf 3 dan 1 kita potong (tidak kita hampiri). 4. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah

seperti gambar 3.10

Gambar 3.11 Tree untuk Hasil Metode Alpha Beta Prunning 5 8 3 9 3 1 2 8 3 4 5 6 9 7 2 3

minimize – level 3 maximize – level 2 maximize – level 0

minimize – level 1

4 8 2 7 1 5 2 1 2 3 4 8

8

9 8

8

6 6

7


(71)

3.4 Perancangan

Perancangan merupakan bagian dari metodologi pembangunan suatu perangkat lunak yang harus dilakukan setelah melalui tahapan analisis.

3.4.1 Perancangan Komponen Permainan 1. Pemain.

Permainan ini dimainkan oleh dua orang. Berperan sebagai lawan satu sama lain.di dalam perancangan ini pemain dilambangkan dengan koin. Masing-masing pemain mempunyai 12 koin sewarna yang diletakkan pada 3 baris pertama pada bidang yang terdekat dengan pemain dan diletakkan pada bidang yang berwarna gelap. Pemain yang memainkan koin berwarna gelap, memulai langkah awal terlebih dahulu.

2. Koin.

Koin yang digunakan berbentuk silinder datar seperti koin pada umumnya. Koin yang digunakan pada permainan ini berwarna terang dan gelap. Pada awalnya, warna terang direpresentasikan dengan warna putih dan warna gelap direpresentasikan dengan warna putih

Di dalam perancangan permainan koin yg dibuat diwakili dengan warna,warna tersebut adalah merah dan biru..

= Mewakili koin yang dimainkan oleh computer/koin pemain bila bermain dalam modus 2 pemain (pemain versus pemain)


(72)

= Mewakili koin yang dimainkan oleh pemain/pemain bila bermain dalam modus 2 pemain (pemain versus pemain)

Koin bergerak secara diagonal mengikuti warna bidang yang gelap, satu di tiap langkahnya. Cara lain adalah dengan melangkahi satu buah koin lawan. Keadaan itu mungkin dapat dilakukan jika pada diagonal setelah koin lawan, merupakan bidang kosong. Jika langkah kedua itu terjadi, koin lawan yang dilangkahi mati, dan harus keluar dari bidang permainan. Koin dengan pangkat “biasa” hanya dapat bergerak maju. Namun, koin dengan pangkat “raja”, dapat bergerak maju maupun mundur.

= Koin dengan Pangkat raja

Raja merupakan sebutan untuk koin yang mendapat perlakuan istimewa. Koin ini adalah koin yang bertahan dan berhasil masuk ke ujung baris bidang lawan. Koin ini didefinisikan sebagai tumpukan dari dua koin biasa. Keistimewaan koin ini adalah dapat bergerak baik maju maupun mundur


(73)

3. Papan.

Papan yang digunakan dalam permainan ini mirip dengan papan catur. Terdiri dari 8 x 8 kotak-kotak kecil warna terang dan gelap. Permukaan yang dimainkan terdiri dari 32 kotak hanya gelap. Sebuah konsekuensi ini adalah bahwa, dari perspektif masing-masing player, kiri dan kanan tikungan mendorong strategi yang berbeda.

Dalam perancangan permainan ini papan diwakili dengan gambar kotak berwarna hitam dan putih yang disusun sehingga membentuk arena permainan

Gambar 3.11 Perancangan papan permainan

Permainan selesai ditandai oleh habisnya koin lawan pada bidang permainan atau koin sudah tidak dapat bergerak kemanapun.


(74)

1.4.2 Perancangan Antar Muka

Perancangan antar muka dilakukan untuk mempermudah dalam mengimplementasikan sistem yang akan dibangun.

3.4.4.2 Form Utama

Gambar 3.12 Rancangan Form utama

3.4.4.3 Perancangan Antar Muka Pesan

Perancangan Antar Muka ini adalah tampilan pesan yang munccul pada aplikasi ini seperti ditunjukan pada Gambar


(75)

Gambar 3.13 Rancangan Antar Muka Kotak pesan

3.5 Perancangan Prosedural

Sebagai langkah terakhir dalam perancangan yaitu merancang prosedural yang akan diimplementasikan ke dalam sistem. Prosedural ini akan digunakan sebagai algoritma dasar dalam mengkodekan prosedur yang ada.

Perancangan prosedural permainan checkers adalah sebagai berikut: 1. Prosedur permainan


(76)

(77)

2. Prosedur algoritma alpha beta

Diagram alir prosedur algoritma minimax alpha beta adalah sebagai berikut :


(1)

78

Q = jumlah responden Y = nilai prosentase

Hasil perhitungan prosentase masing-masing jawaban sebagai berikut: Untuk Pertanyaan No 1

“Bagaimana proses pengolahan data menggunakan perangkat lunak yang dibangun”

Tabel 4.3 Hasil Pengujian Betha Pertanyaan No 1

Kategori Jawaban Frekuensi Jawaban Jumlah populasi Sampel Jumlah Persentase Sangat mudah 5 10 50 %

Mudah 4 10 40 %

Cukup mudah 1 10 10 % Biasa-biasa saja 0 10 20 %

Agak sulit 0 10 0 %

Sulit 0 10 0 %

Sangat sulit 0 10 0 %

Untuk Pertanyaan No 2

“Bagaimana tampilan dari perangkat lunak yang dibangun” Tabel 4.4 Hasil Pengujian Betha Pertanyaan No 2

Kategori Jawaban Frekuensi Jawaban Jumlah Populasi Sampel Jumlah Persentase


(2)

79

Sangat bagus 0 10 0 %

Bagus 6 10 60 %

Cukup bagus 3 10 30 % Biasa-biasa saja 1 10 10 % Kurang bagus 0 10 0 % Tidak bagus 0 10 0 % Sangat tidak bagus 0 10 0 %

Untuk Pertanyaan No 3

“Bagaimana waktu yang diperlukan computer untuk berfikir/melangkah pada saat kita bermain melawan computer di permainan”

Tabel 4.5 Hasil Pengujian Betha Pertanyaan No 3

Kategori Jawaban

Frekuensi Jawaban

Jumlah Populasi Sampel

Jumlah Persentase Sangat cepat 1 10 10 %

Cepat 5 10 50 %

Cukup cepat 4 10 40 % Biasa-biasa saja 0 10 10 % Agak lambat 0 10 0 %

Lambat 0 10 0 %

Sangat lambat 0 10 0 %

Untuk Pertanyaan No 4

“Bagaimana informasi yang disajikan oleh perangkat lunak yang dibangun”


(3)

80

Tabel 4.6 Hasil Pengujian Betha Pertanyaan No 4

Kategori Jawaban

Frekuensi Jawaban

Jumlah Populasi Sampel

Jumlah Persentase Sangat akurat 1 10 10 %

Akurat 8 10 80 %

Cukup akurat 1 10 10 % Biasa-biasa saja 0 10 0 % Kurang akurat 0 10 0 % Tidak akurat 0 10 0 % Sangat tidak akurat 0 10 0 %

2. Kesimpulan Pengujian Betha

Berdasarkan hasil pengujian betha dapat disimpulkan bahwa Aplikasi permainan ini cukup mudah untuk dimainkan, memiliki tampilan yang bagus, permainan yg cukup cepat dan informasi yang dihasilan lebih akurat.


(4)

80

BAB V

KESIMPULAN DAN SARAN

Pada bagian terakhir ini akan dikemukakan kesimpulan sistem informasi yang dapat diperoleh dari pembahasan bab-bab sebelumnya serta saran yang bersifat membangun.

5.1Kesimpulan

1.Permainan checkers merupakan permainan yang dimainkan oleh dua orang dengan tujuan untuk menghabiskan kepingan yang dimiliki lawan.

2. Dalam pembuatannya dengan AI, permainan ini menerapkan algoritma Minimax. Algoritma Minimax memiliki dasar berupa zero-sum game, dimana jika pemain mendapatkan nilai tertentu maka pemain lain akan kehilangan nilai yang sama dengan pemain tersebut.

3. Dengan menambahkan nilai alpha-beta algoritma Minimax akan memiliki pohon pencarian yang lebih singkat sehingga akan membutuhkan waktu singkat untuk melakukan aksinya.


(5)

81

5.2 Saran

Permainan checkers ini masih dapat dikembangkan lebih lanjut dengan perkembangan spesifikasi kebutuhan pengguna sistem yang harus dipenuhi dalam mencapai tahap yang lebih tinggi dan kinerja sistem yang lebih baik. Berikut adalah beberapa saran untuk pengembangan lebih lanjut :

1. Diharapkan untuk pengembangan selanjutnya, aplikasi ini bersifat client-server tidak bersifat stand alone.

2. Diharapkan untuk pengembangan selanjutnya tampilan antarmuka dibuat lebih menarik.


(6)

82

DAFTAR PUSTAKA

1. Chinook, world Man-machine checkers champion.2007. http://www.cs.ualberta.ca/~chinook

Tanggal akses : 19 Mei 2008, pukul 14.35 2. Hillier, Frederick S. dan Gerald J. Lieberman.

Introduction to Mathematical Programming.McGraw-Hill. 1995. 3. Kevin McGee, “Advance Game Programming : AI”,

Desember 9, 2005.

4. Liem, Inggriani. Catatan Kuliah Algoritma dan Pemrograman. Departemen Teknik Informatika, Institut Teknologi Bandung. 2003.

5. Munir,Rinaldi, “Diktat Kuliah IF2251 Strategi Algoritmik”, Program Studi Teknik Informatika STEI ITB, 2006.

6. Wikimedia Foundation, Inc. “A * Search Algorithm”. http://en.wikipedia.org/wiki/Astar_search_algorithm.

Tangal akses 17Mei 2008 pukul 10.45 7. Wikipedia.2008.

http://en.wikipedia.org/wiki/ Checkers tanggal akses : 19 Mei 2008, pukul 20.00