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
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
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.
vi
2.14 Penerapan Algoritma Minimax Pada Permainan Checkers………... 33
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
viii
DAFTAR LAMPIRAN
Lampiran A Tampilan Antar Muka ... 83
Lampiran B Listing Program ... 45
Lampiran C Hasil Kuesioner ... 55
i
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.
ii
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.
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
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
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
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
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
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisikan hasil pengujian dari aplikasi yg dibuat
BAB V KESIMPULAN DAN SARAN
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
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
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
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
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
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
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",
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
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
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,
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
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.
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
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,
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.
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
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
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
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
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.
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
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.
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
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
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
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
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 :
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
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
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 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
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,.
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
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
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
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
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.
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.
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
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
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
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.
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.
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
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.
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
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
Gambar 3.2 DFD Level 1 permainan checkers
Gambar 3.3 DFD Level 2 permainan checkers
Spesifikasi proses digunakan untuk menggambarkan proses model aliran
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
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
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.
Untuk lebih detail , berikut kode Alpha Beta :
cutoffs dilakukan, dan melihat bagaimana Alpha-Beta konstruksi minimal pohon .
Dalam contoh ini Alpha-Beta akan menemukan beberapa cutoffs, akan tetapi lebih