PERBANDINGAN ALGORITMA ALPHA BETA DAN GREEDY PADA PERMAINAN OTHELLO BERBASIS DESKTOP SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika

Gratis

0
0
104
1 month ago
Preview
Full text
(1)PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI PERBANDINGAN ALGORITMA ALPHA BETA DAN GREEDY PADA PERMAINAN OTHELLO BERBASIS DESKTOP SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Oleh: Damian Arif Pradana 135314047 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2019

(2) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ALPHA BETA AND GREEDY ALGORITHM COMPARISM ON OTHELLO-BASED DESKTOP GAME THESIS Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree Informatics Engineering Study Program By: Damian Arif Pradana 135314047 DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2019

(3) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

(4) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

(5) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI HALAMAN PERSEMBAHAN Hadapilah rasa pesimismu dengan selalu optimis. Skripsi ini saya persembahkan kepada: Yesus Kristus Ibu Theresia Parinah, adik, dan ayahku Keluarga komunitas Teman-teman tercinta v

(6) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

(7) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ABSTRAK Permainan papan memiliki beberapa algoritma yang berjalan di dalamnya, antara lain Minimax, Minimax dengan Alpha-Beta, serta Greedy. Algoritma Alpha-Beta merupakan turunan dari algoritma Minimax dengan mengasumsikan pada langkah algoritma ini mengembil langkah terbaik di setiap posisi serta membuat lawan membuat kerugian maksimum, algoritma Greedy yang mengambil solusi dengan langkah yang mendekati optimum. Perbandingan algoritma ini dapat dilakukan dengan cara membuat kedua algoritma beradu misalnya algoritma A melawan algoritma B. Perbandingan ini bertujuan untuk menetahui algoritma yang paling baik digunakan dalam permainan papan terutama dalam permainan Othello. Maka, diharapkan dengan adanya penelitian ini, dapat diketahui algoritma mana yang baik dalam permainan Othello. Kata Kunci : Perbandingan Algoritma, Minimax, Alpha-Beta, Greedy. vii

(8) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI ABSTRACT Board games have several algorithms running in them, including Minimax, Minimax with Alpha-Beta, and Greedy. Alpha-Beta Algorithm is a derivative of the Minimax algorithm by assuming that in the algorithm steps that take the best steps in making a decision that makes a loss, the Greedy algorithm takes the solution with optimal steps. This comparison algorithm can be done by making the second algorithm collide through algorithm A against algorithm B. This comparison aims to find the best algorithm in Othello's game. Therefore, it is expected that with this research, which algorithm can be good in Othello's game. Keywords : Algorithm Comparison, Minimax, Alpha-Beta, Greedy. viii

(9) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

(10) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI KATA PENGANTAR Puji syukur atas Tuhan Yang Maha Esa yang telah memberikan rahmat dan berkahNya sehingga penulis dapat menyelesaikan laporan penelitian dengan judul “Algoritma Minimax Pada Permainan Othello Berbasis Desktop” ini dengan baik. Tujuan dari penulisan skripsi ini guna memenuhi salah satu syarat untuk menempuh sarjana komputer pada Fakultas Sains dan Teknologi (FST) Program Studi Teknik Informatika. Dalam penulisan skripsi ini tentunya tidak lepas dari hambatan dan kesulitan, namun berkat bimbingan, bantuan, nasihat dan saran serta kerjasama dari berbagai pihak, segala hambatan tersebut akhirnya dapat diatasi. Dalam kesempatan ini, penulis juga berterima kasih atas dukungannya yaitu kepada : 1. Tuhan Yang Maha Esa, karena diberikan rahmat dan berkahnya dalam pengerjaan skripsi ini. 2. Bapak Alb. Agung Hadhiatma, M.T., selaku dosen pembimbing skripsi pertama, dan Ibu Anastasia Rita sebagai dosen pembimbing selanjutnya yang mendampingi penulis selama pengerjaan skripsi ini. 3. Teman-teman dari Komunitas Sakura Blossom Sanata Dharma (Ara, Fina, Ani, Ume, Niar) yang memberikan dukungan dan hiburan selama pengerjaan skripsi ini. 4. Teman-teman dari ‘Dermaga’ (Yanuar Rizki, Gayuh, Aat, Dhalin, Liza) yang memberikan tempat serta dukungan bagi penulis. x

(11) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

(12) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR ISI HALAMAN JUDUL ...................................................................................... i TITLE PAGE .................................................................................................. ii HALAMAN PERSETUJUAN ...................................................................... iii HALAMAN PENGESAHAN SKRIPSI ....................................................... iv HALAMAN PERSEMBAHAN .................................................................... v PERNYATAAN KEASLIAN KARYA ........................................................ vi ABSTRAK ...................................................................................................... vii ABSTRACT ..................................................................................................... viii PERSETUJUAN PUBLIKASI KARYA ILMIAH .................................... ix KATA PENGANTAR .................................................................................... x DAFTAR ISI ................................................................................................... xii 1. BAB I PENDAHULUAN ..................................................................... 1 1.1. Latar Belakang ............................................................................ 1 1.2. Rumusan Masalah ....................................................................... 2 1.3. Tujuan ......................................................................................... 3 1.4. Batasan Masalah ......................................................................... 3 1.5. Sistematika Penulisan ................................................................. 3 2. BAB II TINJAUAN PUSTAKA.............................................................. 5 2.1. Landasan Teori............................................................................ 5 2.1.1. Game ................................................................................ 5 2.1.2. Aplikasi Desktop ............................................................... 5 xii

(13) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.1.3. Java .................................................................................... 7 2.1.4. Netbeans ............................................................................ 8 2.1.5. Teori Graf .......................................................................... 9 2.1.6. Depth-First Search (DFS) ................................................. 10 2.2. Othello .......................................................................................... 11 2.2.1. Peraturan Othello ............................................................... 12 2.2.2. Tujuan Permainan dan Penilaian ....................................... 14 2.2.3. Posisi dan Stabilitas ........................................................... 15 2.2.4. Evaluasi Posisi Othello ...................................................... 16 2.3. Algoritma yang Digunakan ........................................................ 18 2.3.1. Algoritma Minimax ........................................................... 18 2.3.1.1. Alpha-Beta Pruning ............................................. 23 2.3.2. Algoritma Greedy .............................................................. 25 2.4. Kompleksitas Algoritma ............................................................. 27 3. BAB III PERANCANGAN DAN DESAIN ............................................ 29 3.1. Kebutuhan Sistem ....................................................................... 29 3.1.1. Perangkat Keras ................................................................. 29 3.1.2. Perangkat Lunak ................................................................ 29 3.1.3. Data ................................................................................... 29 3.2.Perancangan Proses .................................................................... 31 3.2.1. Diagram dan Skenario Use Case ...................................... 31 3.2.2. Diagram alur (Flowchart) ................................................. 33 xiii

(14) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3.3. Desain Antarmuka ...................................................................... 42 3.3.1. Menu ‘Single Play’ ........................................................... 42 3.3.2. Menu ‘AI vs. AI’ .............................................................. 43 4. BAB IV IMPLEMENTASI DAN ANALISIS HASIL .......................... 44 4.1. Implementasi Antarmuka Pemakai ........................................... 44 4.1.1. Implementasi Antarmuka Menu ‘Single Play’ .................. 45 4.1.2. Implementasi Antarmuka Menu ‘AI vs. AI’ ..................... 46 4.2. Implementasi Algoritma pada Sistem ....................................... 47 4.2.1. Algoritma Alpha-Beta Pruning ......................................... 47 4.2.2. Algoritma Greedy .............................................................. 48 4.3. Hasil Uji Algoritma ..................................................................... 49 4.3.1. Algoritma Alpha-Beta dengan Greedy .............................. 49 4.3.2. Perbandingan Skor dan Grafik Waktu............................... 51 5. BAB V KESIMPULAN DAN SARAN ................................................... 87 5.1.Kesimpulan .................................................................................. 87 5.2.Saran ............................................................................................ 88 DAFTAR PUSTAKA ..................................................................................... 89 xiv

(15) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB I PENDAHULUAN 1.1. Latar Belakang Game telah menjadi suatu hal yang ada di dalam keseharian kita, bahkan menjadi bagian dari gaya hidup manusia. Dulu, game hanya dijadikan sarana hiburan semata namun sekarang game telah menjadi luas fungsinya, misalnya game dijadikan sarana pembelajaran, lahan bisnis, dan dipertandingkan sebagai salah satu dari cabang olahraga oleh para profesional, yang sekarang dinamakan e-sports. Perkembangan game juga dapat dilihat secara langsung oleh masyarakat, pada mulanya game hanya dapat dimainkan di komputer dan console tetapi sekarang sudah memasuki era mobile game. Dalam hal ini, penulis tidak akan membahas mengenai mobile game, namun mengenai algoritma yang digunakan untuk mengiplementasikan game berbasis desktop dalam suatu Personal Computer (PC). Seperti yang kita ketahui bahwa aplikasi berbasis Desktop (Desktop Application) adalah suatu aplikasi yang dapat berjalan tanpa adanya koneksi internet. Selain itu kelebihan dari Desktop Application adalah pada bagian pengaturannya yang lebih mudah dimodifikasi, serta prosesnya lebih cepat dibanding dengan aplikasi yang membutuhkan koneksi internet, terutama untuk aplikasi game online. Namun perlu diketahui bahwa game yang berbasis Desktop juga butuh perancangan serta pemrograman untuk menjalankannya sehingga game dapat berfungsi sebagaimana mestinya. Serta sistem kerja dalam suatu game untuk memecahkan suatu masalah juga dibutuhkan, yang pada umumnya disebut algoritma. Algoritma juga dapat digunakan untuk mencapai tujuan tertentu. Bahkan untuk game yang sederhana seperti Tetris juga membutuhkan algoritma untuk mencapai suatu tujuan tertentu misalnya menghibur pemain dengan game yang sederhana. Kadang-kadang suatu algoritma juga diujicobakan dalam suatu game untuk mengetahui apakah algoritma tersebut berfungsi dengan baik. 1

(16) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Saat ini banyak algoritma yang digunakan untuk memecahkan berbagai masalah, salah satunya adalah memecahkan permasalahan dalam suatu permainan papan atau board games, maka dari itu penulis ingin membandingkan antara 2 algoritma yang nantinya diujikan dalam tugas akhir ini, serta penulis dari skripsi ini juga ingin membuat suatu game yang cukup terkenal dalam kalangan tertentu terutama untuk pemain yang mengetahui permainan jenis permainan papan yaitu Othello. Algoritmanya dalam permainan ini menggunakan algoritma Alpha-Beta dan Greedy. Penulis mengambil kedua algoritma ini karena kedua algoritma ini paling umum digunakan dalam permainan papan seperti Catur maupun Tic-Tac-Toe. Permainan Othello atau Reversi merupakan permainan yang menggunakan papan sebanyak 8 x 8 blok yang berbentuk kotak. Dalam permainan awal papan Othello diletakkan 2 kepingan warna hitam dan 2 kepingan warna putih di atas papan untuk menandakan mulai permainan sehingga Othello hanya dapat dimainkan oleh 2 pemain saja. Alasan dibuatnya tugas akhir ini adalah penulis ingin berfokus pada algoritma yang biasa digunakan dalam permainan Othello, yaitu Alpha-Beta dan Greedy. Kedua algoritma ini memiliki keunikannya sendiri-sendiri dalam menentukan langkah dalam Othello, serta cara kedua algoritma ini dalam menentukan langkah yang diambil dalam suatu permainan yang akan dijelaskan pada bab berikutnya. 1.2. Rumusan Masalah Dalam skripsi ini penulis merumuskan beberapa masalah yaitu sebagai berikut: 1. Bagaimana cara merancang game Othello berbasis desktop? 2. Bagaimana perbandingan antara algoritma Alpha-Beta dan Greedy apabila diimplementasikan dalam permainan Othello? 2

(17) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 1.3. Tujuan Dalam skripsi ini, penulis memiliki beberapa tujuan, yaitu sebagai berikut: 1. Mengimplementasikan algoritma Alpha-Beta dan Greedy dalam game Othello. 2. Merancang aplikasi game Othello berbasis dekstop. 3. Mengetahui perbandingan algoritma Alpha-Beta dan Greedy dalam permainan othello. 1.4. Batasan Masalah Dalam penelitian ini, ditentukan beberapa batasan masalah, yaitu sebagai berikut : 1. Game menggunakan platform desktop dengan pemrograman basis java. 2. Tidak ada level permainan. 3. Penghilangan (block) pada bagian pojok-pojok (corner) papan. 1.5. Sistematika Penulisan Sistem penulisan skripsi ini adalah sebagai berikut: KATA PENGANTAR DAFTAR ISI DAFTAR TABEL DAFTAR GAMBAR BAB I PENDAHULUAN Bab ini berisi latar belakang dilakukannya suatu penelitian, rumusan masalah yang diselesaikan, tujuan serta sistematika penulisan penelitian. BAB II TINJAUAN PUSTAKA Bab ini menjelaskan beberapa istilah-istilah yang digunakan oleh penulis. 3

(18) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB III PERANCANGAN DAN DESAIN Bab ini akan membahas dan menjelaskan tentang perancangan implementasi algoritma serta langkah program dalam pembuatan game ini. Selain itu juga akan dijelaskan tentang fitur – fitur yang ada di dalam aplikasi game ini. BAB IV IMPLEMENTASI DAN ANALISIS HASIL Bab ini menjelaskan mengenai implementasi algoritma yang digunakan penulis melalui permainan Othello. BAB V KESIMPULAN DAN SARAN Di dalam bab ini akan dibahas dan dijelaskan tentang kesimpulan yang didapat dari hasil analisis dan perancangan aplikasi game. Selain itu akan disajikan saran yang diharapkan dapat membantu user dalam mengembangkan aplikasi game ini lebih lanjut. 4

(19) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB II TINJAUAN PUSTAKA 2.1. Landasan Teori 2.1.1. Game “Game” diartikan sebagai permainan. Permainan merupakan bagian dari bermain dan bermain juga bagian dari permainan yang keduanya saling berhubungan. Permainan dalam hal ini merujuk pada pengertian kelincahan intelektual (Intellectual Playability Game) yang dapat juga diartikan sebagai area keputusan dan aksi dari pemain tersebut. Dalam game, ada beberapa target yang ingin atau harus dicapai oleh pemain. Game juga mempunyai peraturan untuk membatasi perilaku pemain dan menentukan sebuah permainan itu sendiri. Permainan adalah kegiatan yang kompleks yang didalamnya terdapat peraturan, play dan budaya. Sebuah permainan merupakan sebuah sistem dimana pemain terlibat dalam konflik buatan, disini pemain berinteraksi dengan sistem dan konflik dalam permainan merupakan rekayasa atau buatan, dalam permainan terdapat peraturan yang bertujuan untuk membatasi perilaku pemain dan menentukan permainan. Game bertujuan untuk menghibur, biasanya game banyak disukai oleh anak-anak hingga orang dewasa (Tim Pusat Bahasa DEPDIKNAS, 2008). Permainan secara umum dapat juga diartikan sebagai aktivitas rekreasi dengan tujuan bersenang-senang, mengisi waktu luang, atau berolahraga ringan. Permainan biasanya dapat dilakukan sendiri atau bersama-sama, yang pada umumnya disebut multiplayer atau multi pemain. 2.1.2. Aplikasi Desktop Aplikasi Desktop atau lebih dikenal dengan Desktop Application adalah suatu aplikasi yang dapat berjalan sendiri atau independen tanpa menggunakan browser maupun koneksi internet dalam suatu komputer 5

(20) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI dengan sistem operasi atau platform tertentu, misalnya Windows Media Player, Winamp, Photoshop, dan lain-lain. Aplikasi Desktop ini juga dapat mempermudah pengguna dalam memodifikasi pengaturan dalam aplikasi sehingga dapat sesuai dengan keinginan pengguna baik secara efektif dan efisien. Keuntungan yang dapat diperoleh dengan membangun Aplikasi Dekstop adalah sebagai berikut: 1. Tidak memerlukan koneksi internet. 2. Proses berjalannya aplikasi lebih cepat dibanding aplikasi yang menggunakan koneksi internet, karena mungkin saja koneksi internet yang berjalan lebih lambat dibanding dengan Aplikasi Desktop. 3. Tidak bergantung pada konektivitas. Aplikasi Web bergantung pada konektivitas, maka kemungkinan adanya gangguan koneksi akan lebih besar semisal ada gangguan koneksi seperti Denial of Service atau gangguan listrik. Berikut ini adalah tahap-tahap dalam pelaksanaan pembuatan suatu aplikasi: 1. Perencanaan, dalam proses ini terjadi pemilihan desain suatu aplikasi hingga pembuatan dasar basis data (bila diperlukan). Tahap ini memerlukan pengumpulan beberapa data yang akan ditampilkan pada aplikasi yang akan direncanakan. Data yang sudah diperoleh lalu dianalisa berdasarkan kebutuhan (cepat tidaknya perubahan data, tingkat kerumitan penampilan, dan bagaimana data akan ditampilkan). 2. Pembuatan, dari tahap sebelumnya akan terjadi proses desain dengan data-data yang sudah diperoleh. Yang dilakukan dalam proses ini adalah mengatur tata letak, proses aplikasi, dan navigasi penyajian informasi. 6

(21) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3. Penempatan, dari tahap ini suatu aplikasi akan diinstal ke komputer yang bersangkutan. Apabila ada desain dan pembuatan basis data maka akan diinstal juga ke dalam komputer server, dan selain itu dilakukan juga uji coba kelayakan aplikasi tersebut. 4. Perawatan, tahap ini dilakukan untuk menjamin apakah aplikasi masih layak dijalankan atau tidak, dan hal ini juga diperlukan untuk mengatasi kerusakan-kerusakan. 2.1.3. Java Java merupakan teknologi yang diperkenalkan oleh Sun Microsystems pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada komputer stand alone ataupun pada lingkungan jaringan. Kita lebih menyukai Java sebagai sebuah teknologi dibanding hanya sebuah bahasa pemrograman, karena Java lebih lengkap dibanding sebuah bahasa pemrograman konvensional. Teknologi Java memiliki tiga komponen penting, yaitu: programming Programming-language interface, Virtual-machine specification, specification ApplicationJDK (Java Development Kit). Java Development Kit (JDK) adalah produk dari Sun Microsystems yang ditujukan untuk pengembang Java. Sejak diperkenalkannya Java, SDK Java yang paling banyak digunakan. NetBeans mengacu pada kedua kerangka platform untuk aplikasi desktop Java, dan sebuah lingkungan pengembangan terpadu (IDE) untuk pengembangan dengan Java, JavaScript, PHP, Python, Ruby, Groovy, C, C++, Scala, Clojure, dan lain-lain. NetBeans IDE ditulis dalam bahasa pemrograman Java dan dapat dijalankan jika terinstal JVM, termasuk Windows, Mac OS, Linux, dan Solaris. JDK diperlukan untuk pengembangan fungsionalitas Java, tetapi tidak diperlukan untuk pembangunan di bahasa pemrograman lain. Aplikasi berbasis platform NetBeans (termasuk IDE NetBeans) dapat diperpanjang oleh pengembang pihak ketiga. 7

(22) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Sintaks bahasa pemograman java merupakan pengembangan dari bahasa pemograman C/C++, sehingga dengan mereka yang sudah terbiasa dengan C/C++ tidak akan mengalami kesulitan mempelajari bahasa pemograman Java. Java adalah bahasa pemograman yang sederhana dan tangguh. Berikut ini adalah beberapa karakteristik dari Java sesuai dengan white paper dari Sun: 1. Berorientasi objek. Java mendorong pemograman yang bebas dengan kesalahan yang bersifat strongly typed dan memiliki run time checking. 2. Portable. Pemograman Java dapat berjalan pada sistem operasi apapun yang memiliki Java Virtual Machine. 3. Multithreading. Java mendukung pemograman multitreading dan terintegrasi secara langsung dalam bahasa Java. 4. Dinamis. Program Java dapat melakukan sesuatu tindakan yang ditentukan pada saat eksekusi program dan pada saat kompilasi. 5. Sederhana. Java menggunakan bahasa yang sederhana dan mudah dipelajari. 6. Terdistribusi. Java didesain untuk berjalan pada lingkungan yang terdistribusi seperti halnya internet. 7. Aman. aplikasi yang dibuat dengan bahasa Java lebih dapat dijamin keamanannya terutama untul aplikasi internet. 8. Netral secara arsitektur. Java tidak terkait pada suatu mesin atau mesin operasi tertentu. 2.1.4. Netbeans Netbeans merupakan software open-source yang ditujukan kepada developer, pengguna, maupun pengusaha yang ingin mengembangkan produk mereka, terutama untuk mengembangkan produk secara cepat, efisien, dan mudah dengan memanfaatkan platform Java yang sesuai dengan standar industri. 8

(23) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.1.5. Teori Graf Graf merupakan himpunan atau kumpulan titik yang dihubungkan dengan garis. Banyak persoalan yang menggunakan graf, misalnya dalam switching network, teori coding, kimia, maupun pemetaan. Penerapan graf adalah sebagai berikut: suatu graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan titik-titik yang tidak kosong dengan simbol V(G) dan himpunan garis dengan simbol E(G) yang ditulis dengan notasi G = (V,E). Beberapa istilah yang berkaitan dengan graf adalah sebagai berikut: 1. Derajat (Degree) Yaitu suatu simpul pada graf tak berarah yang memiliki jumlah sisi yang bersisian dengan simpul tersebut. Pada graf berarah, derajat simpul v dinyatakan dengan derajat masuk (in-degree), yaitu jumlah simpul yang masuk dalam simpul v atau disimbolkan dengan d v , dan derajat keluar (out-degree), yaitu jumlah simpul yang keluar dalam simpul v d(v)=d v +d atau 2. Vertex atau Node disimbolkan dengan v . d v , dimana Adalah simpul atau titik 3. Edge Biasa disebut garis dan menghubungkan kedua titik. 4. Lintasan (Path) Adalah barisan node dan edge secara berselang-seling dimana garisnya (edge) berbeda. 5. Siklus/Sirkuit (Cycle/Circuit) Sebuah lintasan yang mempunyai awal dan akhir di titik yang sama. 6. Jarak (Distance) Panjang garis antara kedua titik. 7. Graf Berbobot (Weighted Graph) Graf yang setiap sisinya diberi nilai/bobot. 9

(24) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.1.6. Depth-First Search (DFS) Merupakan salah satu dari algoritma traversal dalam graf. Algoritma traversal bekerja dengan cara menelusuri simpul-simpul yang ada secara sistematis. Berbeda dengan Breadth-First Search yang menelusuri seluruh simpul dalam graf, DFS menelusuri simpulnya secara mendalam. Jadi tidak semua simpul ditelusuri, hanya simpul yang menuju ke solusinya saja. Berikut merupakan penelusuran graf G dalam algoritma DFS: 1. Penelusuran secara traversal dimulai dari simpul x. 2. Mengunjungi simpul t yang merupakan anak dari simpul s dan bertetangga dengan simpul u. 3. Penelusuran mendalam dimulai lagi secara rekursif dari simpul t. 4. Penelusuran mendalam dilakukan hingga mencapai simpul v, sesuai dengan kedalaman maksimum pohon ruang status yang telah ditentukan. 5. Penelusuran dirunut-balik ke simpul akhir yang dikunjungi sebelumnya dan mempunyai simpul t yang belum dikunjungi. 6. Penelusuran dihentikan bila tidak ada lagi simpul yang belum dikunjungi, yang dapat dicapai dari simpul yang telah dikunjungi. Gambar 2.1. Graf G 10

(25) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Diambil sebuah ilustrasi seperti di atas, maka urutan simpul yang dikunjungi dengan algoritma DFS adalah : 1, 2, 4, 5, 8, 3, 6, 9, 7, 10. 2.2. Othello Othello adalah permainan strategi game yang abstrak yang dimainkan oleh dua orang pemain pada sebuah papan berkukuran 8 kolom dan 8 baris dengan satu set disc berwarna berbeda pada kedua sisinya (yang biasanya berwarna gelap dan terang). masing-masing warna pada disk tersebut dikuasai oleh setiap pemain. Permainan ini pertama kali diciptakan di jepang oleh Goro Hasegawa bersama dengan James R Becker pada tahun 1971 yang terinspirasi dari game China GO dengan nama Othello. Hasegawa menginginkan suatu permainan yang kaya akan strategi namun tetap dapat dimainkan oleh pemain umum atau pemain awam. Becker menyebut permainan othello dengan tag “a minutes to learn, a lifetime to master”, mudah untuk dimainkan tetapi sangat sulit untuk menguasainya. Othello kemudian diperkenalkan kepada publik melalui Tsukada Original Co. pada tahun 1973 yang kemudian mengelola Japanese Othello Association. Ada beberapa hal mendasar tentang reversi sebelum melangkah ke strategi yang lebih dalam. Beberapa dasar-dasar dari permainan sebelum masuk ke inti dari permainan ini ditujukan bagi yang belum pernah sama sekali bermain reversi sebagai dasar untuk melangkah ke tahap selanjutnya yang seharusnya dipahami dari awal sampai dengan akhir adalah sebagai berikut: 11

(26) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2.2.1. Peraturan Othello Gambar 2.3. Awalan permainan Othello 1. Othello dimainkan oleh dua orang pemain diatas papan permainan berukuran 8x8 yang terdiri atas 64 kotak. 2. Permainan dimulai dengan dua kepingan hitam dan dua kepingan putih seperti pada gambar di atas. 3. Pemain hitam selalu mendapat giliran pertama dan setelah itu bermain bergantian. 4. Pada setiap giliran, pemain menaruh kepingannya pada papan tepat disebelah kepingan lawan pada kotak papan yang kosong sehingga membentuk suatu garis lurus dimana pada kedua ujung garis yang terbentuk terdapat disc pemain tersebut. Kepingan lawan berada ditengah-tengah garis yang terbentuk. 12

(27) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.4. Langkah legal yang memenuhi kriteria untuk pemain hitam yang diarsir warna abu-abu 5. Setiap kepingan lawan yang berada ditengah garis yang terbentuk akan dimiliki oleh pemain tersebut. 6. Setiap kepingan yang telah diletakkan diatas papan bisa berubah warna berkali-kali, namun tidak bisa bergeser atau dipindahkan dari papan permainan. 7. Pemain bisa memiliki kepingan lawan lebih dari satu garis lurus pada setiap giliran selama memenuhi kriteria pada poin 4. 13

(28) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.5. Giliran putih bermain memiliki kepingan lawan pada 2 garis lurus. 8. Pemain tidak boleh melewati gilirannya (Pass), kecuali tidak ada lagi jalan yang legal. 9. Permainan berakhir jika tidak ada lagi jalan legal untuk kedua pemain atau seluruh papan telah terisi penuh oleh kepingan . 2.2.2. Tujuan Permainan dan Penilaian Tujuan dari permainan ini adalah memperoleh sebanyak-banyaknya warna kepingan yang dimainkan oleh pemain tersebut. Pemain dengan jumlah kepingan terbanyak menjadi pemenang dari permainan reversi ini. Penilaian atau skoring adalah menghitung seluruh jumlah warna yang didapatkan oleh setiap pemain. Seperti yang telah disebutkan diatas tentang tujuan permainan, maka pemain dengan jumlah skor terbanyak menjadi pemenang permainan. Permainan akan berakhir apabila memenuhi salah satu syarat di bawah ini: 1. Kotak pada papan penuh dengan kepingan tanpa ada ruang kosong yang tersisa 2. Dalam papan hanya terdapat satu warna koin 3. Sudah tidak ada lagi langkah yang valid 14

(29) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.6. Pemain hitam memenangkan pertandingan dengan skor 33-31. Dalam hal ini terdapat pengecualian yaitu apabila permainan menggunakan timer atau interval waktu tertentu, maka pemain yang kehabisan waktunya dinyatakan kalah tidak perduli bagaimana keadaan dan jumlah disc pada papan permainan. 2.2.3. Posisi dan Stabilitas Begitu pentingnya posisi sudut membuat setiap pemain berusaha untuk mendapatkannya. Setiap kepingan yang diletakkan diatas papan permainan bisa jadi merupakan batu loncatan bagi lawan untuk memperoleh posisi sudut membuat setiap pemain harus berhati-hati dalam menentukan langkah nya. Dalam Othello, ada faktor penting dalam peletakkan kepingan berdasarkan letak blok atau kotak pada papan Othello, yang disebut stabilitas. Stabilitas diukur dari seberapa rentannya kepingan tersebut 15

(30) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI diapit oleh kepingan yang berbeda warna. Ada 3 klasifikasi stabilitas kepingan: Stabil, semi-stabil, dan tidak stabil. Kepingan yang stabil adalah kepingan yang tidak dapat diapit saat permainan berlangsung, kepingan yang tidak stabil adalah kepingan yang dapat diapit oleh kepingan lain dalam langkah selanjutnya, sementara kepingan yang semi-stabil adalah kepingan yang berpotensi diapit oleh kepingan lain pada saat tertentu, namun kepingan tersebut berbeda dengan kepingan tidak stabil yang rentan diapit oleh kepingan lain. 2.2.4. Evaluasi Posisi Othello Permainan Othello memiliki algoritma dan dalam suatu program, hal ini merupakan bagian yang penting. Pengaruh dari evaluasi ini memang kecil apabila algoritma yang digunakan memang sudah baik. Evaluasi ini dibagi menjadi 3 macam dan sebagian besar algoritma untuk Othello dapat ditempatkan pada salah satu kategori ini: a. Disk-square tables Ide dari evaluasi posisi ini adalah dari kotak yang berbeda memiliki nilai yang berbeda, dalam hal ini kotak/blok papan paling pojok memiliki nilai yang lebih tinggi daripada kotak di sebelahnya. ada 3 nilai juga untuk kotak/blok papan, yaitu kepingan hitam, kepingan putih, dan kosong. Pendekatan tertentu akan memiliki nilai yang berbeda untuk setiap posisi dalam tahap permainan yang berbeda, misalnya sudut lebih penting dalam awal permainan dan saat dimulainya pertengahan jalan permainan dibandingkan dengan akhir permainan. Program dengan tipe evaluasi posisi permainan ini umumnya mudah untuk dimodifikasi sehingga banyak yang menggunakan pendekatan evaluasi ini untuk membuat permainan Othello yang sederhana. 16

(31) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI b. Mobility-based evaluation Pendekatan ini lebih baik dibanding pendekatan sebelumnya yang menggunakan tabel dari blok papan Othello. Kunci dari pendekatan ini adalah pemain berusaha untuk memaksimalkan mobilitas (jumlah kemungkinan langkah yang tersedia) dan meminimalkan disk frontier (kepingan yang berdekatan dengan blok kosong). Langkah atau pendekatan ini dapat berjalan dengan efisien apabila pemrogramannya juga efisien, serta dapat meningkatkan level kesulitan yang lebih tinggi. Kebanyakan program dengan fungsi evaluasi berbasis mobilitas juga memiliki fungsi mengenai konfigurasi tepi dan sudut serta berusaha untuk meminimalkan jumlah kepingan selama awal midgame, strategi ini juga digunakan oleh manusia. c. Pattern-based evaluation Seperti yang disebutkan di atas, evaluasi ini fokus pada pattern atau pola dalam papan Othello dengan cara menggabungkan konfigurasi tepi da sudut papan. Umumnya dengan memaksimalkan mobilitas dan meminimalisasi kepingan yang berdekatan dengan blok kosong. Evaluasi ini meminimalisir kepingan papan dengan cara yang sama seperti evaluasi sebelumnya. Implementasinya dilakukan dengan cara mengevaluasi setiap baris, kolom, diagonal dan konfigurasi sudut secara terpisah serta menambahkan nilai dalam evaluasi tersebut. Proses penentuan nilai untuk semua konfigurasi harus dilakukan secara otomatis, hal ini dilakukan dengan mengambil data permainan yang dimainkan antara pemain kuat dan menghitung statistik untuk setiap konfigurasi di setiap tahap permainan dari semua kemungkinan permainan. 17

(32) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Dalam proses penentuan nilai relatif dari konfigurasi yang berbeda, seseorang harus memutuskan apa yang seharusnya diprediksi oleh fungsi evaluasi. Pilihan paling umum untuk memprediksi perbedaan kepingan akhir. 2.3. Algoritma yang Digunakan 2.3.1. Algoritma Minimax Pencarian Minimax umumnya menggunakan depth-first search dalam suatu pohon permainan (tree). Hal ini didukung dengan mencari ke kedalaman pohon tertentu tergantung itu node min atau max. Algoritma ini digunakan untuk menemukan nilai akurat untuk sebuah posisi papan. Diasumsikan bahwa kedua pemain selalu mengambil langkah terbaik pada setiap posisi. Algoritma ini bekerja secara rekursif dengan mencari langkah yang membuat lawan mengalami kerugian maksimum. Ini berarti, pada langkah yang pertama komputer menganalisa seluruh pohon permainan dan untuk setiap langkahnya komputer akan memilih langkah yang membat lawan mendapatkan keuntungan minimum (dalam hal ini pemain disebut ‘max’ dalam pohon permainan, sedangkan komputer akan bekerja sebagai ‘min’). Berikut ini merupakan pseudocode algoritma Minimax: 1. Jika node merupakan leaf atau root maka mengembalikan nilai heuristik dari node tersebut. 2. Jika masuk ke node tersebut, deklarasikan alpha sebagai negatif infiniti, untuk setiap child node deklarasikan alpha sebagai max dengan node child dan kedalaman dikurangi satu dan mengembalikan nilai alpha. 3. Jika tidak maka saat musuh bermain di node tersebut, deklarasikan beta sebagai plus infinity, untuk setiap child node deklarasikan beta sebagai min dengan node child dan kedalaman dikurangi satu dan mengembalikan nilai beta. 18

(33) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.7. Pseudo-code Algoritma Minimax. Pada pohon permainan, setiap simpul melambangkan posisi papan. Anak dari setiap simpul S merupakan posisi yang berbeda-beda yang dihasilkan dari satu langkah S, yang dilakukan pemain yang mendapat giliran saat S. Akar (root) dari pohon permainan ini dimulai saat permainan dimulai, yang dalam hal ini adalah posisi awal permainan, atau saat posisi program akan mencari langkah selanjutnya. Algoritma ini dijalankan secara rekursif. Setiap simpul yang bukan daun merupakan keputusan yang diambil oleh pemain yang mendapat giliran pada simpul tersebut. Pemilihan posisi selanjutnya oleh program ditentukan dengan langkah pemain tersebut, misalnya dalam suatu pohon yang sudah diberi nilai, pemain (dalam hal ini dilambangkan dengan simbol persegi) harus memilih anak dengan nilai yang besar, kemudian pemain selanjutnya (dalam hal ini adalah komputer) harus memilih posisi yang dapat meminimasi nilai simpulnya, lalu dengan demikian dapat ditemukan langkah terbaik dari setiap simpul (Prabawa, 2009). 19

(34) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.8. Contoh pohon dengan nilai di tiap node. Diasumsikan ada permainan yang melibatkan 2 pemain dan permainan dilakukan secara bergilir. Pemain selalu memilih langkah yang terbaik di tiap gilirannya. Pohon kemungkinan permainan akan terbentuk. Node root merupakan node awal permainan. Setiap node mempunyai anak/child untuk setiap posisi 1 langkah yang dilakukan oleh pemain. Pohon terbentuk dengan kedalaman tertentu (berdasarkan komputasi atau pemrograman). Node leaf akan menggunakan fungsi evaluasi untuk menentukan seberapa baik atau buruk posisi/langkah tersebut. Semakin tinggi angka yang didapat dalam langkah pemain tersebut, maka semakin kecil pula kemungkinan terburuk yang dialami pemain itu. Angka positif bisa digunakan untuk mengetahui posisi yang sering digunakan pemain, dan angka negatif untuk musuh agar mendapat keuntungannya. Misalnya, disediakan sebuah langkah dalam tree dengan beberapa nilai di node leaf dengan node berbentuk lingkaran adalah langkah dari pemain dan kotak adalah nilai yang didapat oleh langkah musuh. 20

(35) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.9. Contoh pengaplikasian algoritma Minimax pada pohon bagian awal. Pada bagian node lingkaran di atas node leaf diberi nilai dengan asumsi kedua pemain memilih langkah terbaik, maka dalam node tersebut akan bernilai maksimum. Misalnya kita ambil pada bagian paling kiri akan ada pilihan node yang bernilai -8 dan node yang bernilai 12. Pemain memilih langkah yang terbaik sehingga dia mengambil node yang bernilai 12, dan nilai 12 ini mengisi node lingkaran tersebut. Gambar 2.10. Contoh pengaplikasian algoritma Minimax pada pohon setelah pemain mengambil langkah terbaik. 21

(36) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Node di tingkat berikutnya merupakan node kotak sebagai langkah musuh. Pemain musuh juga mempunyai pilihan dengan asumsi menggunakan langkah terbaik, maka musuh akan menelusuri node dengan nilai minimum. Contohnya di node paling kiri akan diberikan pilihan node dengan nilai 12 dan 5. Pilihan terbaik adalah dengan node 5 (minimum), jadi diasumsikan musuh akan mengambil node tersebut. Otomatis node yang terisi adalah 5, dan secara lengkap digambarkan sebagai berikut. Gambar 2.11. Contoh pengaplikasian algoritma Minimax pada pohon dalam mode minimum. Node selanjutnya adalah bagian node root, node ini adalah node untuk langkah awal bagi pemain. Tersedia 2 node dengan 2 nilai dari hasil langkah sebelumnya yaitu 5, 17. Diasumsikan pemain memilih langkah terbaik, maka dipilihlah node dengan nilai 17. Pemain akan melangkah ke pilihan berdasar node child maksimum (sebelah kanan) yang dilanjutkan degan langkah milik lawan. Algoritma ini meminimalisir dan memaksimalkan nilai di tingkat tertentu tergantung pada tree sehingga dinamakan algoritma Minimax. 22

(37) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.12. Hasil akhir dari pohon algoritma Minimax. 2.3.1.1.Alpha-Beta Pruning Alpha-Beta Prunning adalah sebuah algoritma yang sistemnya adalah dengan cara mengurangi jumlah simpul yang dieksplorasi dalam algoritma minimax. Dengan algoritma tersebut, waktu yang diperlukan dalam pencarian akan berkurang dengan membatasi waktu yang terbuang untuk mengevaluasi pohon permainan. Implementasi algoritma ini akan memberikan jalur terbaik dalam setiap kemungkinan permainan dalam pohon permainan (Prabawa, 2009). Dalam algoritma alpha-beta pruning, urutan jalannya algoritma akan dimulai sama seperti algoritma minimax. Nilai yang dihitung dimulai dengan positif infiniti (+∞) dan akan menurun seiring jalannya permainan. Untuk simpul Max, nilai dihitung dari negatif infiniti (-∞) dan akan naik seiring berjalannya permainan. Efisiensi algoritma ini bergantung pada simpul berikutnya dari simpul yang sudah dijelajahi. Kondisi terbaik dari alpha-beta adalah algoritma ini akan membuka jalan ke node yang sama dengan minimax dalam pohon permainan, dengan dua kali lipat tingkat kedalaman pohon. 23

(38) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.13. Pseudo-code Algoritma Alpha-Beta Pruning (Anggraeni, 2013). Untuk menggambarkan proses dari pencarian Alpha-beta ditunjukkan pada gambar berikut: Gambar 2.14. Pohon pencarian dengan Alpha-Beta Pruning (Anggraeni, 2013). 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. 24

(39) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 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 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 2.11. Gambar 2.15. Pohon pencarian dengan Alpha-Beta Pruning (Anggraeni, 2013). 2.3.2. Algoritma Greedy Algoritma greedy merupakan jenis algoritma yang menggunakan penyelesaian masalah dengan mencari nilai maksimum sementara pada setiap langkahnya. Nilai maksimum sementara ini dikenal dengan istilah local maximum. Pada kebanyakan kasus, algoritma ini tidak akan menghasilkan solusi paling optimal, namun algoritma ini memberikan solusi yang mendekati nilai optimum dalam waktu yang cukup cepat. Sesuai dengan namanya, yang artinya merupakan rakus atau tamak, algoritma ini menerapkan prinsip ‘ambil yang bisa kau dapat sekarang’ yag artinya algoritma tersebut mengambil pilihan terbaik yang dapat diperoleh saat itu tanpa memperhatikan konsekuensi ke depan. Greedy membentuk solusi langkah per langkah, dan pada setiap langkah, terdapat 25

(40) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI banyak pilihan yang perlu dieksplorasi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Sebagai contoh mudah dalam mempelajari algoritma ini adalah kasus memasukan barang ke dalam ransel. Misal ada sebuah ransel yang dapat memuat barang seberat 20 kilogram, dan ada 3 barang yang akan dimasukkan dalam ransel tersebut, barang A seberat 15 kilogram, barang B dan C seberat 10 kilogram. Normalnya orang akan memilih untuk memasukkan barang B dan C yang masing-masing seberat 10 kilogram karena totalnya sama dengan muatan ransel yaitu sebanyak 20 kilogram, namun dalam algoritma Greedy ini menggunakan cara pemecahan masalah dengan cara memasukkan barang terberat terlebih dahulu ke dalam ransel. Dalam hal ini, ia akan memilih berat 15 kg terlebih dahulu tanpa mempertimbangkan barang yang lain. Persoalan optimasi algoritma greedy disusun oleh elemen-elemen berikut: 1. Himpunan kandidat, berisi elemen pembentuk solusi. 2. Himpunan solusi, berisi kandidat-kandidat yang terpilih sebagai solusi persoalan. 3. Fungsi seleksi, dinyatakan dengan predikat seleksi memilih kandidat yang paling memungkinkan mencapai solusi optimal pada setiap langkah. 4. Fungsi kelayakan, dinyatakan dengan predikat layak dengan memeriksa apakah kandidat yang dipilih dapat memberikan solusi yang layak dengan tidak melanggar constrains yang ada. 5. Fungsi objektif, yang memaksimalkan atau meminimalkan nilai solusi. 26

(41) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 2.16. Pseudo-code Algoritma Greedy. Dalam hal ini S yang terdiri dari himpunan kandidat yang berisi elemen pembentuk solusi, saat himpunan kandidat itu tidak kosong maka himpunan tersebut akan diseleksi dan menghapus nilai kandidat dan mengembalikan nilai, jika solusi tersebut layak maka solusi tersebut tidak melanggar constraint yang ada dan mengembalikan nilai solusi. 2.4. Kompleksitas Algoritma Kompleksitas yang ada dalam dua algoritma yang ada dalam skripsi ini dijelaskan sebagai berikut: 1. Algoritma Alpha-Beta O( ) merupakan kompleksitas waktu terbaik untuk algoritma Alpha-Beta. Dengan rata-rata konstan faktor branching b, dan dengan kedalaman pencarian sebanyak d tingkat, nilai maksimum dari posisi node leaf yang sudah dievaluasi adalah O(bb...*b)= O( ) – sama seperti algoritma pencarian minimax, jika langkah pencarian merupakan pencarian optimal (yang artinya algoritma menggunakan langkah terbaik), posisi jumlah node yang dievaluasi adalah O(b*1*b*1*...*b) untuk kedalaman sementara dan O(b*1*b*1*...*1) untuk kedalaman yang paling dalam, atau O( ). Dalam kasus selanjutnya, saat tingkatan pencarian makin dalam, efektivitas faktor percabangan akan berkurang ke akar kuadratnya atau setara, pencarian dapat dilakukan dua kali lebih dalam dengan jumlah komputasi yang sama. 27

(42) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Penjelasan dari b*1*b*1*... adalah langkah pemain pertama yang ditelusuri agar mendapat yang terbaik, tapi untuk satu sama lain, hanya langkah pemain kedua yang terbaik diperlukan untuk mengakali penelusuran tersebut, namun dalam hal ini alpha-beta memastikan pergerakan pemain kedua yang perlu dipertimbangkan. 2. Algoritma Greedy Bicara mengenai algoritma Greedy, algoritma ini lebih menekankan pada kebenaran algoritmanya dibanding dengan kompleksitasnya. Algoritma dengan output n yang secara individu memiliki nilai yang terbaik, ada beberapa penyelesaian kompleksitas algoritma Greedy, namun yang akan digunakan adalah O(n), karena nantinya algoritma ini akan mencari nilai tertinggi terlebih dahulu. 28

(43) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB III PERANCANGAN DAN DESAIN Dalam bab ini penulisan Tugas Akhir ini dibagi dalam beberapa sub bab. Pertama adalah kebutuhan sistem yang berisi tentang kebutuhan perangkat keras maupun perangkat lunak yang digunakan. Kedua adalah data yang dipakai dalam implementasi algoritma ke dalam game. 3.1.Kebutuhan Sistem Dalam penelitian ini penulis menggunakan spesifikasi perangkat keras dan perangkat lunak sebagai berikut: 3.1.1. Perangkat Keras Perangkat keras yang dibutuhkan dalam proses implementasi algoritma untuk game adalah sebagai berikut: • Laptop : Processor minimum Intel Celeron, RAM minimum 1 GB, penyimpanan berukuran 512 MB, keyboard dan mouse. 3.1.2. Perangkat Lunak Untuk perangkat lunak yang digunakan terutama untuk proses implementasi algoritma ke dalam game menggunakan sistem operasi Windows 7. Sedangkan untuk membangun aplikasi game yang berbasis desktop akan menggunakan aplikasi Netbeans, serta untuk bahasa pemrogramannya menggunakan Java. 3.1.3. Data Pada penelitian ini akan menggunakan data berupa koordinat dari papan yang telah diletakkan kepingan Othello, serta kepingan hitam dan putih dan jumlah kepingan yang sudah diletakkan. Kemudian untuk papan permainan 29

(44) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI akan dibuat seperti papan Othello pada umumnya, namun dengan papan yang berukuran 8 x 8 blok. Gambar 3.1. Koordinat papan Othello Untuk objek utamanya hanya menggunakan kepingan hitam dan putih, kemudian untuk penerapan algoritma minimax adalah saat menelusuri kemungkinan pengguna kehilangan kepingan terbanyak. Misalnya kepingan hitam adalah kepingan milik pemain (kita yang memainkannya) lalu kepingan putih adalah milik lawan, dalam game disebut komputer, akan terjadi beberapa kemungkinan yang memerlukan algoritma Minimax agar pemain dikenakan nilai minimum. 30

(45) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 3.2. Keadaan permainan Othello saat ini (kiri) dan kemungkinan komputer/pemain lawan untuk meletakkan kepingan putih yang diarsir (kanan). 3.2. Perancangan Proses 3.2.1. Diagram dan Skenario Use Case Dalam permainan Othello ini akan dirancang use case sebagai berikut: Gambar 3.3. Diagram use case permainan Othello a. Nama Use Case : Memulai permainan Aktor : Pengguna Kondisi Awal : Aktor sudah berada di menu utama permainan Skenario : 31

(46) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Aksi Aktor 1. Aktor memilih Reaksi Sistem menu ‘Mulai Baru’. 2. Sistem masuk ke permainan Othello. b. Nama Use Case : Memilih info Aktor : Pengguna Kondisi Awal : Aktor sudah berada di menu utama permainan Skenario : Aksi Aktor 1. Aktor memilih Reaksi Sistem menu ‘Bantuan dan Info’. 2. Sistem bantuan menampilkan dan Info permainan Othello. c. Nama Use Case : Keluar dari permainan Aktor : Pengguna Kondisi Awal : Aktor sudah berada di menu utama permainan Skenario : Aksi Aktor Reaksi Sistem 1. Aktor menekan tombol X (keluar). 2. Sistem keluar dari menu utama permainan Othello. 32

(47) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3.2.2. Diagram Alur (Flowchart) Gambar di bawah ini menunjukkan alur yang terjadi pada sistem. Sistem menunjukkan peran yang terjadi serta mengecek perbandingan algoritma dalam suatu permainan. 1. Diagram alur algoritma Greedy Diagram alur untuk algoritma Greedy ditunjukkan dalam gambar berikut: Gambar 3.4. Diagram alur algoritma Greedy. 33

(48) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Diagram alur tersebut menggambarkan mulainya algoritma Greedy dengan inisialisasi awal papan Othello dengan nilai awal null serta nilai maksimum sama dengan nilai minimum, lalu dilanjutkan dengan membuat ukuran baris dan kolom pada papan Othello. Menuju percabangan apakah langkah pada Othello memang valid, bila iya maka langkah tersebut masuk sebagai poin, bila tidak maka akan mengembalikan nilai terbaik. Menuju percabangan apakah jika nilai lebih dari nilai maksimum, jika ya maka maxScore diinisialisasikan sebagai score tipe integer dan best dengan Point baru dan mengembalikan nilai terbaik, jika tidak maka membuat papan baru seperti sebelumnya dan mengembalikan nilai terbaik. 2. Diagram alur algoritma Alpha-Beta Diagram alur untuk algoritma Alpha-Beta ditunjukkan dalam gambar berikut: a. Method GenerateMoves 34

(49) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 3.5. Diagram alur method generateMoves algoritma Alpha-Beta. Diagram alur tersebut menjelaskan mengenai inisialisasi Vector baru dengan List yang berdasar Point, yang kemudian membuat baris dan kolom papan Othello dan membuat bagian papan baru. Masuk ke langkah kepingan, jika kepingan berada pada baris i dan kolom j maka akan akan menambah titik pada pointList dan mengembalikan pointList, jika tidak maka hanya akan mengembalikan pointList. 35

(50) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI b. Method minimax Gambar 3.6. Diagram alur method minimax algoritma Alpha-Beta. Diagram alur tersebut dijelaskan mulai dari pernyataan jika kedalaman node kurang dari atau sama dengan 0 atau keadaan permainan sudah selesai (Game Over) jika ya maka program tidak mengembalikan nilai 36

(51) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI apapun dan akan selesai dengan sendirinya, jika tidak maka inisialisasi nilai saat ini dengan nilai minimum tipe integer, langkah saat ini dengan tipe point yang berisi null, dan status generateMoves dengan List array Point. Dilanjutkan dengan untuk setiap langkah tipe Point buat papan sementara dengan status saat ini, kemudian buat langkah x dan y di papan sementara tersebut dan inisialisasi moveScore tipe double dengan nilai minimum yang berisi papan sementara, depth, dan nilai minimum negatif infiniti. Menuju ke penyataan apakah moveScore lebih besar dari currentScore, jika iya maka currentScore akan disamakan dengan moveScore dan currentMove sama dengan move dan mengembalikan currentMove, jika tidak maka hanya mengembalikan curentMove. 37

(52) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI c. Method maxValue Gambar 3.7. Diagram alur method maxValue algoritma Alpha-Beta. 38

(53) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Dalam diagram ini menunjukkan program ini dimulai dengan inisialisasi a1 tipe double yang bernilai negatif infiniti, kemudian dilanjutkan dengan pernyataan bila kedalaman pencarian kurang dari atau sama dengan 0 atau status permainan telah berakhir, bila ya maka akan mengembalikan skor yang diperoleh dari status permainan terakhir dan menyelesaikan program tersebut, bila tidak maka inisialisasi bestScore tipe double dengan nilai minimum tipe integer, dan status generateMoves dengan List array Point. Dilanjutkan dengan untuk setiap langkah tipe Point buat papan sementara dengan status saat ini dengan langkah kloning dan inisialisasi s tipe double dengan nilai minimum yang berisi status langkah, kedalaman dikurang 1. Masuk ke pernyataan apabila s lebih dari pass, jika iya maka mengembalikan nilai infiniti, jika tidak maka pass sama dengan s. Masuk ke pernyataan bila s lebih besar dari bestScore, jika ya maka s menggantikan bestScore, jika tidak maka mengembalikan bestScore dan program selesai. 39

(54) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI d. Method minValue Gambar 3.8. Diagram alur method minValue algoritma Alpha-Beta. Dalam diagram ini menunjukkan program ini dimulai dengan inisialisasi a1 tipe double yang bernilai positif infiniti, kemudian 40

(55) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI dilanjutkan dengan pernyataan bila kedalaman pencarian kurang dari atau sama dengan 0 atau status permainan telah berakhir, bila ya maka akan mengembalikan skor yang diperoleh dari status permainan terakhir dan menyelesaikan program tersebut, bila tidak maka inisialisasi bestScore tipe double dengan nilai maksimum tipe integer, dan status generateMoves dengan List array Point. Dilanjutkan dengan untuk setiap langkah tipe Point buat papan sementara dengan status saat ini dengan langkah kloning dan inisialisasi s tipe double dengan nilai maksimum yang berisi status langkah, kedalaman dikurang 1. Masuk ke pernyataan apabila s lebih dari pass, jika iya maka mengembalikan nilai ngeatif infiniti, jika tidak maka pass sama dengan s. Masuk ke pernyataan bila s lebih besar dari bestScore, jika ya maka s menggantikan bestScore, jika tidak maka mengembalikan bestScore dan program selesai. 41

(56) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3.3. Desain Antarmuka 3.3.1. Menu ‘Single Play’ Gambar 3.10. Menu ‘Single Play’ permainan Othello. Bagian atas pada desain antarmuka menunjukkan warna kepingan milik pemain, yang dalam hal ini pemain menggunakan warna hitam, dan dibawahnya menunjukkan jumlah kepingan milik pemain dengan jumlah kepingan milik AI yang dihubungkan dengan tanda setrip, serta papan Othello yang berjumlah 8 x 8 blok. 42

(57) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3.3.2. Menu ‘AI vs AI’ Gambar 3.11. Menu ‘AI vs AI’ permainan Othello. Bagian ini menunjukkan perbandingan algoritma yang satu dengan yang lain pada permainan Othello. 43

(58) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB IV IMPLEMENTASI DAN ANALISIS HASIL Bab ini berisi tentang hasil penelitian mengenai sistem yang telah dibuat dari analisis serta perancangan yang dibahas pada bab-bab sebelumnya serta analisa mengenai hasil yang telah didapatkan. Aplikasi ini dibuat dengan perangkat lunak Netbeans IDE 8.0.2 pada laptop dengan RAM 4 GB dengan sistem operasi Windows 7. Berikut ini adalah pembahasan pada bagian antarmuka serta implementasi Othello dengan algoritma Alpha-Beta Pruning dan Greedy. 4.1. Implementasi Antarmuka Pemakai Bagian ini menjelaskan mengenai implementasi dari perancangan antarmuka pemakai (interface) yang telah di buat pada bab sebelumnya. 44

(59) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4.1.1. Implementasi Antarmuka Menu ‘Single Play’ Gambar 4.1. Implementasi antarmuka menu ‘Single Play’. Antarmuka ‘Single Play’ ini akan mengarah ke permainan Othello dengan sistem pemain melawan komputer, pemain menggunakan kepingan berwarna hitam dan dapat dilihat di gambar yang bertuliskan “Hitam mulai” yang artinya itu adalah giliran kepingan hitam, sedangkan komputer menggunakan kepingan berwarna putih. Bagian bawahnya merupakan skor yang berdasarkan jumlah kepingan pemain dengan jumlah kepingan milik 45

(60) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI lawan, lalu ada tombol “Mulai Baru” yang mengulang permainan dari awal serta “Keluar” yang keluar dari permainan Othello. 4.1.2. Implementasi Antarmuka Menu ‘AI vs. AI’ Gambar 4.2. Implementasi antarmuka menu ‘AI vs. AI’. Antarmuka ‘AI vs. AI’ ini akan membandingkan algoritma yang dipakai dalam permainan Othello, diantaranya adalah Greedy dan AlphaBeta Pruning yang telah dibahas di bab-bab sebelumnya. 46

(61) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4.2. Implementasi Algoritma pada Sistem Dalam subbab ini akan dijelaskan mengenai implementasi 3 algoritma dalam permainan Othello, yaitu algoritma Alpha-Beta Pruning, algoritma Greedy, dan perbandingan antara kedua algoritma berdasarkan jumlah kepingan dalam Othello. 4.2.1. Algoritma Alpha-Beta Pruning Dalam algoritma ini akan dijelaskan mengenai proses dalam pencarian node yang pada dasarnya menggunakan algoritma Minimax. Berikut ini merupakan proses jalannya algoritma Alpha-Beta Pruning: Pertama adalah membuat papan yang berukuran 8 x 8 yang mengambil dari method Board agar kepingan dapat melangkah. Berikut adalah algoritma Alpha-Beta Pruning yang diimplementasikan dalam permainan Othello: 1. Menentukan koordinat papan dengan ListPoint. 2. Untuk setiap baris j sama dengan 0 dan j kurang dari size (yang sebelumnya size diinisialisasi sebanyak 8), dan j bertambah, maka lakukan langkah selanjutnya. 3. Untuk setiap kolom i sama dengan 0 dan i kurang dari size (yang sebelumnya size diinisialisasi sebanyak 8), dan j bertambah, maka lakukan langkah selanjutnya. 4. Perbarui papan pemainan dan tambahkan posisi kepingan yang sudah ditandai. Masuk ke method Minimax, jika kedalaman langkah kurang dari atau sama dengan 0 atau game over maka tidak mengembalikan nilai apapun. Jika tidak maka lakukan langkah selanjutnya. 1. Inisialisasi jumlah kepingan yang sedang berlangsung dengan nilai minimum untuk mencari nilai terbaik, dan menggunakan nilai tak terhingga untuk nilai maksimum. 47

(62) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2. Inisialisasi langkah current dan semua langkah yang telah dilakukan. 3. Untuk setiap langkah yang dilakukan di tiap titik, inisialisasikan di papan Othello dan buat langkah sementara (clone) dalam suatu baris dan kolom papan, dan buat hasil langkah tersebut minimum. Masuk ke method minValue dan maxValue yang dal hal ini kedua method mengecek kedalaman langkah sampai akhir permainan yang kemudian diberlakukan algoritma Alpha-Beta Pruning yaitu pada nilai terbaik untuk simpul Max adalah negatif infiniti dan akan naik seiring berjalannya permainan sedangkan untuk simpul Min adalah positif infiniti dan akan menurun seiring berjalannya permainan. 4.2.2. Algoritma Greedy Dalam algoritma ini akan dijelaskan mengenai proses dalam pencarian node yang menggunakan algoritma Greedy. Berikut ini merupakan proses jalannya algoritma: 1. Inisialisasi papan permainan yang digunakan (Othello menggunakan papan berukuran 8x8). 2. Inisialisasi nilai maksimum merupakan nilai minimum. 3. Untuk setiap baris papan dengan nilai awal 0 dan kurang dari 8 serta kolom papan dengan nilai awal 0 dan kurang dari 8 maka lakukan langkah selanjutnya. 4. Jika kepingan Othello dalam suatu baris dan kolom papan merupakan langkah yang valid maka hitung jumlah kepingan yang bewarna tertentu dalam papan tersebut dan lakukan langkah selanjutnya. 5. Ulangi langkah ketiga sampai papan tidak ada yang kosong atau sudah tidak ada langkah valid. 48

(63) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4.3. Hasil Uji Algoritma 4.3.1. Algoritma Alpha-Beta dengan Greedy Kondisi permainan pertama adalah algoritma Alpha-Beta menggunakan kepingan hitam dan Greedy menggunakan kepingan putih. Gambar 4.3. Perbandingan algoritma Alpha-Beta dengan Greedy. Pada gambar diatas menunjukkan bahwa Greedy sebagai kepingan putih lebih mendominasi dalam permainan Othello karena algoritma ini lebih memilih langkah yang efektif tanpa melihat langkah yang lebih dalam, sedangkan untuk algoritma Alpha-Beta ini memiliki langkah 49

(64) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI maksimum dan minimum sehingga semua papan terisi dengan jumlah kepingan 17 banding 43. Gambar 4.4. Perbandingan algoritma Alpha-Beta dengan Greedy. Namun pada gambar di atas, ketika algoritma Greedy menggunakan kepingan hitam dan algoritma Alpha-Beta menggunakan kepingan putih, Alpha-beta lebih mendominasi dengan kepingan putihnya sehingga Greedy tidak mempunyai langkah valid lagi, dikarenakan kepingan hitam memulai langkah pertama dan langkah pertama dilakukan oleh algoritma Greedy maka dalam langkahnya, Greedy mengabaikan konsekuensi yang 50

(65) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI didapat saat melangkah sehingga Alpha-Beta benar-benar mendominasi papan Othello. 4.3.2. Perbandingan Skor dan Grafik Waktu Dalam bagian ini akan dijelaskan mengenai perbandingan algoritma dengan pengujian sebanyak 50 kali. Berikut ini merupakan hasil skor yang telah diujikan dalam permainan Othello: 1) Perbandingan algoritma Alpha-Beta Pruning sebagai kepingan hitam dan Greedy sebagai kepingan putih Tabel 4.1. Pengujian algoritma Alpha-Beta dengan Greedy. Percobaan ke Alpha-Beta Pruning (Kepingan Hitam) Greedy (Kepingan Putih) 1 17 43 2 17 43 3 17 43 4 17 43 5 17 43 6 17 43 7 17 43 8 17 43 9 17 43 10 17 43 11 18 42 12 18 42 13 18 42 14 18 42 15 17 43 51

(66) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16 17 43 17 17 43 18 17 43 19 17 43 20 17 43 21 17 43 22 17 43 23 17 43 24 17 43 25 17 43 26 17 43 27 17 43 28 17 43 29 17 43 30 17 43 31 18 42 32 18 42 33 18 42 34 18 42 35 18 42 36 17 43 37 17 43 38 17 43 39 17 43 40 17 43 41 17 43 52

(67) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42 17 43 43 17 43 44 17 43 45 17 43 46 17 43 47 17 43 48 17 43 49 17 43 50 17 43 Dalam beberapa percobaan tersebut dengan kepingan hitam yang pertama jalan, Greedy lebih menguasai permainan dengan mengambil daerah pojok dari papan Othello yang mempunyai pengaruh besar dalam papan tersebut. Alpha-Beta tidak mempunyai kesempatan untuk mengambil daerah sisi papan Othello dalam hal ini walaupun langkah pertama sudah diambil oleh algoritma Alpha-Beta. Berikut ini merupakan urutan langkah percobaan 1-5 yang dilakukan oleh kedua algoritma dengan kepingan hitam yang maju pertama dalam letak papan Othello dengan letak papan sebagai berikut : 53

(68) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Gambar 4.4. Letak papan Othello. Sedangkan untuk langkah percobaan yang dilakukan oleh kedua kepingan adalah sebagai berikut : Tabel 4.2. Urutan langkah percobaan pertama algoritma Alpha-Beta dengan Greedy. Langkah ke- Alpha-Beta Pruning (Kepingan Hitam) Greedy (Kepingan Putih) 1 d4 c3 2 b2 e3 3 f3 e2 4 d1 a3 5 e1 f1 6 d6 c1 7 b1 f2 54

(69) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8 g3 h3 9 b2 g1 10 g2 a4 11 a5 c4 12 g4 h5 13 b5 a2 14 f5 c6 15 a6 d6 16 g6 h6 17 b7 b8 18 a7 d7 19 e7 d8 20 f7 e8 21 - f8 22 h7 g8 23 - c3 Tabel 4.3. Urutan langkah percobaan kedua algoritma Alpha-Beta dengan Greedy. Langkah ke- Alpha-Beta Pruning (Kepingan Hitam) Greedy (Kepingan Putih) 1 d4 c3 2 b2 e3 3 f3 e2 4 d1 a3 5 e1 f1 6 d6 c1 55

(70) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7 b1 f2 8 g3 h3 9 b2 g1 10 g2 a4 11 a5 c4 12 g4 h5 13 b5 a2 14 f5 c6 15 a6 d6 16 g6 h6 17 b7 b8 18 a7 d7 19 e7 d8 20 f7 e8 21 - f8 22 h7 g8 23 - c3 Tabel 4.4. Urutan langkah percobaan ketiga algoritma Alpha-Beta dengan Greedy. Langkah ke- Alpha-Beta Pruning (Kepingan Hitam) Greedy (Kepingan Putih) 1 d4 c3 2 b2 e3 3 f3 e2 4 d1 a3 5 e1 f1 56

(71) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6 d6 c1 7 b1 f2 8 g3 h3 9 b2 g1 10 g2 a4 11 a5 c4 12 g4 h5 13 b5 a2 14 f5 c6 15 a6 d6 16 g6 h6 17 b7 b8 18 a7 d7 19 e7 d8 20 f7 e8 21 - f8 22 h7 g8 23 - c3 Tabel 4.5. Urutan langkah percobaan keempat algoritma Alpha-Beta dengan Greedy. Langkah ke- Alpha-Beta Pruning (Kepingan Hitam) Greedy (Kepingan Putih) 1 d4 c3 2 b2 e3 3 f3 e2 4 d1 a3 57

(72) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5 e1 f1 6 d6 c1 7 b1 f2 8 g3 h3 9 b2 g1 10 g2 a4 11 a5 c4 12 g4 h5 13 b5 a2 14 f5 c6 15 a6 d6 16 g6 h6 17 b7 b8 18 a7 d7 19 e7 d8 20 f7 e8 21 - f8 22 h7 g8 23 - c3 Tabel 4.6. Urutan langkah percobaan kelima algoritma Alpha-Beta dengan Greedy. Langkah ke- Alpha-Beta Pruning (Kepingan Hitam) Greedy (Kepingan Putih) 1 d4 c3 2 b2 e3 3 f3 e2 58

(73) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4 d1 a3 5 e1 f1 6 d6 c1 7 b1 f2 8 g3 h3 9 b2 g1 10 g2 a4 11 a5 c4 12 g4 h5 13 b5 a2 14 f5 c6 15 a6 d6 16 g6 h6 17 b7 b8 18 a7 d7 19 e7 d8 20 f7 e8 21 - f8 22 h7 g8 23 - c3 Kesimpulan dari kelima percobaan tersebut adalah pada langkah pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di tiap percobaan. 59

(74) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2) Perbandingan algoritma Greedy sebagai kepingan hitam dan AlphaBeta Pruning sebagai kepingan putih Apabila kondisi kepingan kedua algoritma dibalik, maka akan diperoleh hasil berikut: Tabel 4.7. Pengujian Algoritma Greedy dengan Alpha-Beta Percobaan ke Greedy (Kepingan Hitam) Alpha-Beta Pruning (Kepingan Putih) 1 0 44 2 0 44 3 0 44 4 0 44 5 0 44 6 0 44 7 0 44 8 0 44 9 0 44 10 0 44 11 0 42 12 0 42 13 0 42 14 0 42 15 0 42 16 0 42 17 0 42 18 0 42 19 0 42 60

(75) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20 0 42 21 0 44 22 0 44 23 0 44 24 0 44 25 0 44 26 0 44 27 0 44 28 0 44 29 0 44 30 0 44 31 0 42 32 0 42 33 0 42 34 0 42 35 0 42 36 0 44 37 0 44 38 0 44 39 0 44 40 0 44 41 0 44 42 0 44 43 0 44 44 0 44 45 0 44 61

(76) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46 0 44 47 0 44 48 0 44 49 0 44 50 0 44 Dalam percobaan ini, algoritma Greedy sempat mengambil beberapa bagian sisi papan Othello, namun dengan penelusuran dari algoritma Alpha-Beta, serta pengambilan keputusan di tiap node, maka kepingan pada papan Othello dikuasai oleh kepingan putih (Alpha-Beta), sehingga permainan dimenangkan oleh Alpha-Beta secara mutlak. Berikut ini merupakan urutan langkah percobaan 1-5 yang dilakukan oleh kedua algoritma dengan kepingan hitam yang maju pertama. Tabel 4.8. Urutan langkah percobaan pertama algoritma Greedy dengan Alpha-Beta. Langkah ke- Greedy (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 b4 4 b2 c3 5 d4 a2 6 f4 d4 7 b4 a2 8 c1 c3 9 f1 g1 10 a4 a3 62

(77) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11 e2 f2 12 f3 h2 13 a5 g4 14 c6 b6 15 b7 f5 16 b5 f1 17 - d6 18 - f7 Tabel 4.9. Urutan langkah percobaan kedua algoritma Greedy dengan Alpha-Beta. Langkah ke- Greedy (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 b4 4 b2 c3 5 d4 a2 6 f4 d4 7 b4 a2 8 c1 c3 9 f1 g1 10 a4 a3 11 e2 f2 12 f3 h2 13 a5 g4 14 c6 b6 63

(78) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15 b7 f5 16 b5 f1 17 - d6 18 - f7 Tabel 4.10. Urutan langkah percobaan ketiga algoritma Greedy dengan Alpha-Beta. Langkah ke- Greedy (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 b4 4 b2 c3 5 d4 a2 6 f4 d4 7 b4 a2 8 c1 c3 9 f1 g1 10 a4 a3 11 e2 f2 12 f3 h2 13 a5 g4 14 c6 b6 15 b7 f5 16 b5 f1 17 - d6 18 - f7 64

(79) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 4.11. Urutan langkah percobaan keempat algoritma Greedy dengan Alpha-Beta. Langkah ke- Greedy (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 b4 4 b2 c3 5 d4 a2 6 f4 d4 7 b4 a2 8 c1 c3 9 f1 g1 10 a4 a3 11 e2 f2 12 f3 h2 13 a5 g4 14 c6 b6 15 b7 f5 16 b5 f1 17 - d6 18 - f7 65

(80) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 4.12. Urutan langkah percobaan kelima algoritma Greedy dengan Alpha-Beta. Langkah ke- Greedy (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 b4 4 b2 c3 5 d4 a2 6 f4 d4 7 b4 a2 8 c1 c3 9 f1 g1 10 a4 a3 11 e2 f2 12 f3 h2 13 a5 g4 14 c6 b6 15 b7 f5 16 b5 f1 17 - d6 18 - f7 Kesimpulan dari kelima percobaan tersebut adalah pada langkah pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di tiap percobaan dan berakhir dengan kepingan hitam yang tidak mendapat giliran karena langkahnya tidak valid. 66

(81) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3) Perbandingan algoritma Alpha-Beta Pruning sebagai kepingan hitam dan kepingan putih Tabel 4.13. Pengujian Algoritma Alpha-Beta dengan Alpha-Beta Percobaan ke Alpha-Beta Pruning (Kepingan Hitam) Alpha-Beta Pruning (Kepingan Putih) 1 28 32 2 28 32 3 28 32 4 28 32 5 28 32 6 28 32 7 28 32 8 28 32 9 26 34 10 26 34 11 26 34 12 26 34 13 26 34 14 28 32 15 28 32 16 28 32 17 28 32 18 28 32 19 28 32 20 28 32 21 28 32 67

(82) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22 28 32 23 28 32 24 28 32 25 28 32 26 28 32 27 28 32 28 28 32 29 28 32 30 28 32 31 26 34 32 26 34 33 26 34 34 26 34 35 26 34 36 28 32 37 28 32 38 28 32 39 28 32 40 28 32 41 28 32 42 28 32 43 28 32 44 28 32 45 28 32 46 28 32 47 28 32 68

(83) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48 28 32 49 28 32 50 28 32 Dalam tabel tersebut ditunjukkan perbandingan algoritma Alpha-Beta dengan memakai kedua kepingan hitam dan putih. Mulai dengan kepingan hitam dengan algoritma Alpha-Beta Pruning hingga akhir permainan dimenangkan oleh kepingan putih. Berikut ini merupakan grafik waktu yang dibutuhkan oleh Alpha-Beta saat eksekusi perbandingan algoritma. 120 100 Waktu (ms) 80 60 Kepingan Hitam Kepingan Putih 40 20 0 2 3 4 5 6 7 8 9 10 Kedalaman Gambar 4.5. Grafik waktu jalannya algoritma Alpha-Beta dalam Othello. Grafik ini menunjukkan waktu yang dikerjakan kedua algoritma yang dalam hal ini sama-sama algoritma Alpha-Beta Pruning, karena kepingan hitam maju pertama maka dia tidak terlalu banyak memakan waktu dalam mengambil keputusan, sedangkan pada kepingan putih memakan banyak waktu karena percabangan pilihan yang mulai banyak, kemudian disusul dengan kepingan hitam yang lama-lama juga memerlukan waktu yang banyak untuk menelusuri cabang dalam Othello hingga pada hasil akhir 69

(84) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI papan karena daerah kosong yang tinggal sedikit, maka penelusurannya juga memakan waktu yang cukup singkat, berikut ini merupakan salah satu hasil eksekusi algoritma Alpha-Beta yang diimplementasikan dalam kedua kepingan dalam papan Othello. Gambar 4.6. Perbandingan algoritma Alpha-Beta dalam Othello. Berikut ini merupakan urutan langkah percobaan 1-5 yang dilakukan oleh kedua algoritma dengan kepingan hitam yang maju pertama. 70

(85) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 4.14. Urutan langkah percobaan pertama algoritma Alpha-Beta dengan Alpha-Beta. Langkah ke- Alpha-Beta (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 b3 b2 3 b1 d2 4 d1 e1 5 f1 c3 6 b4 c1 7 f5 g1 8 c2 e3 9 a2 a5 10 e2 c5 11 g2 f3 12 g3 h2 13 a4 f3 14 b4 b5 15 f5 g4 16 h4 g5 17 a6 c6 18 b6 e6 19 d6 f6 20 g6 a7 21 b7 h6 22 d7 g7 23 h7 - 71

(86) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24 c8 d8 25 e8 f8 26 g8 - Tabel 4.15. Urutan langkah percobaan kedua algoritma Alpha-Beta dengan Alpha-Beta. Langkah ke- Alpha-Beta (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 b3 b2 3 b1 d2 4 d1 e1 5 f1 c3 6 b4 c1 7 f5 g1 8 c2 e3 9 a2 a5 10 e2 c5 11 g2 f3 12 g3 h2 13 a4 f3 14 b4 b5 15 f5 g4 16 h4 g5 17 a6 c6 18 b6 e6 19 d6 f6 72

(87) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20 g6 a7 21 b7 h6 22 d7 g7 23 h7 - 24 c8 d8 25 e8 f8 26 g8 - Tabel 4.16. Urutan langkah percobaan ketiga algoritma Alpha-Beta dengan Alpha-Beta. Langkah ke- Alpha-Beta (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 b3 b2 3 b1 d2 4 d1 e1 5 f1 c3 6 b4 c1 7 f5 g1 8 c2 e3 9 a2 a5 10 e2 c5 11 g2 f3 12 g3 h2 13 a4 f3 14 b4 b5 15 f5 g4 73

(88) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16 h4 g5 17 a6 c6 18 b6 e6 19 d6 f6 20 g6 a7 21 b7 h6 22 d7 g7 23 h7 - 24 c8 d8 25 e8 f8 26 g8 - Tabel 4.17. Urutan langkah percobaan keempat algoritma Alpha-Beta dengan Alpha-Beta. Langkah ke- Alpha-Beta (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 b3 b2 3 b1 d2 4 d1 e1 5 f1 c3 6 b4 c1 7 f5 g1 8 c2 e3 9 a2 a5 10 e2 c5 11 g2 f3 74

(89) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12 g3 h2 13 a4 f3 14 b4 b5 15 f5 g4 16 h4 g5 17 a6 c6 18 b6 e6 19 d6 f6 20 g6 a7 21 b7 h6 22 d7 g7 23 h7 - 24 c8 d8 25 e8 f8 26 g8 - Tabel 4.18. Urutan langkah percobaan kelima algoritma Alpha-Beta dengan Alpha-Beta. Langkah ke- Alpha-Beta (Kepingan Hitam) Alpha-Beta (Kepingan Putih) 1 d3 c3 2 b3 b2 3 b1 d2 4 d1 e1 5 f1 c3 6 b4 c1 7 f5 g1 75

(90) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8 c2 e3 9 a2 a5 10 e2 c5 11 g2 f3 12 g3 h2 13 a4 f3 14 b4 b5 15 f5 g4 16 h4 g5 17 a6 c6 18 b6 e6 19 d6 f6 20 g6 a7 21 b7 h6 22 d7 g7 23 h7 - 24 c8 d8 25 e8 f8 26 g8 - Kesimpulan dari kelima percobaan tersebut adalah pada langkah pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di tiap percobaan dan ada beberapa langkah yang tidak valid atau tidak bisa dijalankan oleh kepingan putih. 76

(91) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4) Perbandingan algoritma Greedy sebagai kepingan hitam dan kepingan putih Tabel 4.19. Pengujian Algoritma Greedy dengan Greedy Percobaan ke Greedy (Kepingan Hitam) Greedy (Kepingan Putih) 1 35 25 2 35 25 3 35 25 4 35 25 5 35 25 6 35 25 7 35 25 8 35 25 9 35 25 10 35 25 11 35 25 12 35 25 13 35 25 14 35 25 15 35 25 16 33 27 17 33 27 18 33 27 19 35 25 20 35 25 21 35 25 77

(92) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22 35 25 23 35 25 24 35 25 25 35 25 26 33 27 27 33 27 28 35 25 29 35 25 30 35 25 31 35 25 32 35 25 33 35 25 34 35 25 35 35 25 36 33 27 37 33 27 38 33 27 39 33 27 40 33 27 41 35 25 42 35 25 43 35 25 44 35 25 45 35 25 46 35 25 47 35 25 78

(93) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48 35 25 49 35 25 50 35 25 Dalam tabel tersebut ditunjukkan perbandingan algoritma Greedy dengan memakai kedua kepingan hitam dan putih. Mulai dengan kepingan hitam dengan algoritma Greedy hingga akhir permainan dimenangkan oleh kepingan hitam. Berikut ini merupakan grafik waktu yang dibutuhkan oleh Greedy saat eksekusi perbandingan algoritma. 35 30 Waktu (ms) 25 20 Kepingan Hitam 15 Kepingan Putih 10 5 0 2 3 4 5 6 7 8 9 10 Kedalaman Gambar 4.7. Grafik waktu jalannya algoritma Greedy dalam Othello. Grafik ini menunjukkan waktu yang dikerjakan kedua algoritma yang dalam hal ini sama-sama algoritma Greedy, berbeda dengan Alpha-Beta, algoritma ini membuat waktu yang lebih singkat dan lebih stabil karena algoritma ini mencari lebih banyak kemenangan dengan mengambil kemungkinan papan yang mendapatkan kepingan lebih banyak dari yang lain sehingga tidak diperlukan pencarian lebih lanjut dalam algoritma ini, 79

(94) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI berikut ini merupakan salah satu hasil eksekusi algoritma Greedy yang diimplementasikan dalam kedua kepingan dalam papan Othello. Gambar 4.8. Perbandingan algoritma Greedy dalam Othello. Berikut ini merupakan urutan langkah percobaan 1-5 yang dilakukan oleh kedua algoritma dengan kepingan hitam yang maju pertama. 80

(95) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI Tabel 4.20. Urutan langkah percobaan pertama algoritma Greedy dengan Greedy. Langkah ke- Greedy (Kepingan Hitam) Greedy (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 g7 4 d2 c5 5 d6 e7 6 f5 d1 7 b4 g6 8 e2 f3 9 e1 b2 10 d7 d8 11 f8 b5 12 a6 c2 13 c1 a5 14 h7 b3 15 a4 f2 16 g3 g1 17 c6 f6 18 g4 g1 19 h3 b7 20 c7 a2 21 b8 a7 22 f8 g8 23 h5 e6 81

(96) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24 e8 e1 25 h2 c8 Tabel 4.21. Urutan langkah percobaan kedua algoritma Greedy dengan Greedy. Langkah ke- Greedy (Kepingan Hitam) Greedy (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 g7 4 d2 c5 5 d6 e7 6 f5 d1 7 b4 g6 8 e2 f3 9 e1 b2 10 d7 d8 11 f8 b5 12 a6 c2 13 c1 a5 14 h7 b3 15 a4 f2 16 g3 g1 17 c6 f6 18 g4 g1 19 h3 b7 20 c7 a2 82

(97) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21 b8 a7 22 f8 g8 23 h5 e6 24 e8 e1 25 h2 c8 Tabel 4.22. Urutan langkah percobaan ketiga algoritma Greedy dengan Greedy. Langkah ke- Greedy (Kepingan Hitam) Greedy (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 g7 4 d2 c5 5 d6 e7 6 f5 d1 7 b4 g6 8 e2 f3 9 e1 b2 10 d7 d8 11 f8 b5 12 a6 c2 13 c1 a5 14 h7 b3 15 a4 f2 16 g3 g1 17 c6 f6 83

(98) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18 g4 g1 19 h3 b7 20 c7 a2 21 b8 a7 22 f8 g8 23 h5 e6 24 e8 e1 25 h2 c8 Tabel 4.23. Urutan langkah percobaan keempat algoritma Greedy dengan Greedy. Langkah ke- Greedy (Kepingan Hitam) Greedy (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 g7 4 d2 c5 5 d6 e7 6 f5 d1 7 b4 g6 8 e2 f3 9 e1 b2 10 d7 d8 11 f8 b5 12 a6 c2 13 c1 a5 14 h7 b3 84

(99) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15 a4 f2 16 g3 g1 17 c6 f6 18 g4 g1 19 h3 b7 20 c7 a2 21 b8 a7 22 f8 g8 23 h5 e6 24 e8 e1 25 h2 c8 Tabel 4.24. Urutan langkah percobaan kelima algoritma Greedy dengan Greedy. Langkah ke- Greedy (Kepingan Hitam) Greedy (Kepingan Putih) 1 d3 c3 2 c4 e3 3 f6 g7 4 d2 c5 5 d6 e7 6 f5 d1 7 b4 g6 8 e2 f3 9 e1 b2 10 d7 d8 11 f8 b5 85

(100) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12 a6 c2 13 c1 a5 14 h7 b3 15 a4 f2 16 g3 g1 17 c6 f6 18 g4 g1 19 h3 b7 20 c7 a2 21 b8 a7 22 f8 g8 23 h5 e6 24 e8 e1 25 h2 c8 Kesimpulan dari kelima percobaan tersebut adalah pada langkah pertama yang dilakukan oleh kepingan hitam adalah sama, dan hal tersebut yang menyebabkan hasil jumlah kepingan Othello yang hampir sama di tiap percobaan. 86

(101) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan Kesimpulan yang dapat diambil dari penelitian analisa perbandingan algoritma Alpha-Beta dan Greedy pada permainan Othello adalah: 1. Dalam hal waktu, Greedy lebih cepat dalam memproses eksekusi permainan Othello terutama bila dibandingkan dengan Alpha-Beta karena disamping kompleksitas waktu yang tidak begitu rumit serta dari grafik yang menunjukkan waktu prosesnya algoritma tersebut. 2. Algoritma Alpha-Beta dalam hal waktu tidak begitu baik di awal karena proses pencarian cabang pohon permainan Othello pada kedalaman tertentu yang memerlukan waktu yang cukup lama, karena kemungkinan percabangan permainan Othello lebih banyak pada saat pertengahan permainan. Algoritma ini cukup efisien karena pencarian kemungkinan permainannya dibanding dengan algoritma Greedy yang sifatnya tamak. Langkah-langkah yang menjepit keping lawan terbanyak akan dievaluasi terlebih dahulu dan langkah yang kurang menguntungkan akan dibuang. 3. Berdasarkan hasil percobaan tersebut, langkah awal juga dapat menentukan kemenangan, karena langkah awal yang berbeda akan menghasilkan langkah akhir yang berbeda pula, namun karena langkah awal pada saat pengujian kedua algoritma hampir sama, maka hasil akhirnya juga hampir sama. Penelitian ini mungkin dapat menjadi dasar bagi pengembangan penelitian lain dengan dasar permainan Othello dengan menambahkan algoritma atau dengan perbandingan lainnya. 87

(102) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5.2. Saran Peneliti ingin menyampaikan beberapa saran yang mungkin nantinya dapat berguna bagi kepentingan pihak-pihak yang peneliti sebutkan. Saran ini ditujukan bagi mahasiswa dan peneliti lain, yaitu: 1. Bagi mahasiswa Diharapkan dari penelitian ini dapat membantu mahasiswa bahkan dapat menunjang pembelajaran maupun tugas akhir dengan topik yang relevan dengan tugas akhir ini. 2. Bagi peneliti lain Diharapkan agar peneliti dapat menggunakan algoritma lain sebagai perbandingan dari kedua algoritma yang telah diteliti dalam tugas akhir ini serta dapat menemukan faktor pembanding lain apabila ingin memakai algoritma ini. 88

(103) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DAFTAR PUSTAKA Anggraeni, D. 2012. Reversi Othello. http://reversi- othello.blogspot.co.id/p/reversi.html, diakses 05 Januari 2017. Anggraeni, D. R. 2013. Alpha-Beta Pruning. https://blog.ub.ac.id/dinaarizky/ 2013/10/22/alpha-beta-pruning, diakses 20 Maret 2018. Kosasi, S. 2014. Permainan Papan Strategi Menggunakan Algoritma Minimax. Seminar Nasional Teknologi Informasi, Komunikasi dan Industri (SNTIKI) 6. Pekanbaru, 24 September 2014. Leouski, A. 1995. Learning of Position Evaluation in the Game of Othello. Department of Computer Science University of Massachusetts. Prabawa, A. E. 2009. KOMBINASI GREEDY, MINIMAX, DAN ALPHA-BETA PRUNING UNTUK PERMAINAN REVERSI. Makalah IF3051 Strategi Algoritma tahun 2009. Tommy, L., & Perkasa, E. B. 2016. Analisis Efisiensi Algoritma Alpha Beta Pruning dan MTD(f) pada Connect4. Jurnal SISFOKOM. Vol. 5(1): 15-20. Sabri, A. 2016. Pengantar Teori Game. Universitas Gunadharma. Warno. 2012. Pembelajaran Pemrograman Bahasa Java Dan Arti Keyword. Jurnal Komputer. Vol. 8(1): 40-44. 89

(104) PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI _______. 2012. Minimax. http://wiki.bethanycrane.com/minimax, diakses 27 September 2017. _______. 2007. Writing an Othello Program. http://radagast.se/othello/howto.html, diakses 1 Juli 2018 90

(105)

Dokumen baru

Download (104 Halaman)
Gratis

Tags

Dokumen yang terkait

Tugas Akhir Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
125
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
98
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
113
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
1
76
TUGAS AKHIR Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
117
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
198
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
110
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
128
KLASIFIKASI POLA BATIK YOGYAKARTA DENGAN ALGORITMA ID3 SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
0
0
122
Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
126
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
184
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
1
56
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
0
0
129
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
0
0
87
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Jurusan Teknik Informatika
0
0
129
Show more