SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
RIKO MARTA PUTRA
10110133
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
dan hidayahnya penulis dapat menyelesaikan laporan skripsi ini yang berjudul
“IMPLEMENTASI ALGORITMA ALPHA BETA PRUNING UNTUK
MENCARI POSISI AGENT DALAM MENENTUKAN KEPUTUSAN PASSING PADA SIMULATOR ROBOT SOCCER DUA DIMENSI”. Penulis menyadari sepenuhnya bahwa dalam tugas akhir yang penulis buat masih sangat jauh dari kesempurnaan. Dalam kesempatan ini penulis mengucapkan terimakasih yang sedalam-dalamnya kepada Yth :
1. Pak Galih Hermawan, S.kom, M.T , yang telah membimbing dan memberikan masukan-masukan dalam penulisan skripsi ini.
2. Pak Erick Wijaya, S.Kom yang telah memberikan saran serta kritiknya dalam penyusunan skripsi ini.
3. Kepada teman - teman, seluruh mahasiswa Teknik Informatika khusunya IF – 3, terima kasih atas doa dan dukungannya.
4. Kepada Orang Tua tercinta yang mana telah membantu kami dalam Do’a, material maupun dalam segi motivasi selama dalam penyusunan laporan skripsi ini.
5. Kepada pihak – pihak yang tidak sempat disebutkan satu persatu, semua memiliki andil yang sangat besar atas perjuangan penulis. Terima kasih yang sebesar – besarnya.
Akhir kata, penulis mohon maaf yang sebesar-besarnya apabila dalam penyusunan laporan ini terdapat banyak kesalahan. Semoga laporan ini dapat bermanfaat khususnya bagi penulis dan pada umumnya bagi para pembaca.
Bandung, 27 Februari 2016
iv
1.5 Metodologi Penelitian ... 3
1.6 Sistematika Penulisan ... 5
BAB II TINJAUAN PUSTAKA ... 7
2.1 Kecerdasan Buatan ... 7
2.2 Searching ... 8
2.2.1 Alpha Beta Pruning ... 9
2.3 Formula ... 10
2.4 RoboCup ... 10
2.4.1 Simulator RoboCup Soccer ... 12
2.5 UvA Trilearn ... 15
2.6 Soccer ... 16
2.6.1 Aturan Sepakbola ... 17
v
BAB III ANALISIS DAN KEBUTUHAN ALGORITMA ... 27
3.1 Analisis Masalah ... 27
3.2 Analisis Algoritma ... 27
3.2.1 Pohon Permainan ... 27
3.2.2 Flowchart ... 28
3.2.3 Pseudocode Umpan Bola ... 29
3.2.4 Contoh Kasus ... 30
3.3 Kebutuhan Perangkat Lunak ... 42
3.3.1 Kebutuhan Non Fungsional... 42
3.3.1.1 Kebutuhan Perangkat Keras ... 42
3.3.1.2 Kebutuhan Perangkat Lunak ... 42
3.3.2 Kebutuhan Fungsional ... 43
3.3.2.1 Use Case Diagram ... 43
3.3.2.1.1 Definisi Aktor ... 44
3.3.2.1.2 Definisi Use Case... 45
3.3.2.1.3 Skenario Use Case ... 45
3.3.2.2 Activity Diagram ... 50
3.3.2.3 Sequence Diagram ... 53
3.3.2.4 Class Diagram ... 56
3.4 Perancangan Sistem ... 57
3.4.1 Komponen ABsoccer ... 58
3.4.2 Perancangan Method ... 59
vi
4.1.3 Instalasi RoboCup Soccer Simulator ... 68
4.1.4 Simulasi Pertandingan ... 71
4.1.5 Implementasi Antarmuka ... 73
4.1 Pengujian dan Evaluasi ... 74
4.2.1.1 Skenario Pengujian Aplikasi ... 75
4.2.1.2 Kasus dan Pengujian ... 75
4.2.2 Skenario I ( UvA Riko VS UvA Trilearn) ... 83
4.2.2.1 Hasil Percobaan Skenario I ... 83
4.2.2.2 Analisa Skenario I ... 84
4.2.3 Skenario II(UvA Riko VS WEBASE) ... 86
4.2.3.1 Hasil Percobaan Skenario II ... 87
4.2.3.2 Analisa Skenario II ... 88
4.2.4 Pengujian Alpha Beta Pruning ... 89
BAB 5 KESIMPULAN DAN SARAN ... 95
5.1 Kesimpulan ... 95
5.2 Saran ... 95
97
DAFTAR PUSTAKA
[1] H. Galih, "Implementasi Algoritma Particle Swarm Optimization untuk penentuan posisi trategis agent pada simulasi Robot Sepak Bola Dua Dimensi," Jurnal Ilmiah Komputer dan Informatika (KOMPUTA), vol. I, p. 64, 2012.
[2] K. Vadim, "A Robust and Scalable Pareto Optimal Ball Passing Algorithm for the Robotic Soccer," in Robotic Soccer, l. Pedro, Ed. Vienna, Austria: Itech Education and Publishing, 2007, ch. 8, p. 154.
[3] M. Ian, Artificial Intelligence For Games, C. Tim, C. Rick, and E. Jessie, Eds. San Francisco, United States of America: Morgan Kaufmann, 2006.
[4] P. R S., Software Engineering : A Practitioner's Approach , 7th ed., M. ,. Faye, Ed. New York, United States Of America: McGraw-Hill, 2010.
[5] Siswanto, Kecerdasan Tiruan. Yogyakarta: Graha Ilmu, 2005.
[6] Suparman, Mengenal Artificial Intelligence. Yogyakarta, Indonesia: Andi Offset, 2004.
[7] Suryanto, Artificial Intelligence. Yogyakarta, Indonesia: Informatika Bandung, 2014.
[8] T. R. Federation. Robocup. [Online]. http://www.robocup.org/about-robocup/a-brief-history-of-robocup/Dipetik March, 17, 2014
[9] J. R. Kok. (2007) jellekok.nl. [Online].
http://www.jellekok.nl/index.php?cat=robocupDipetik March, 29, 2014
[10] FIFA. Federation Internationale de Football Association(FIFA). [Online].
http://www.fifa.com/classicfootball/history/the-game/origins.htmlDipetik March, 30, 2014
98
1
BAB I
PENDAHULUAN
1.1 Latar belakangSepakbola merupakan salah satu cabang olahraga yang sangat populer di seluruh dunia. Hal tersebut dapat dilihat dari perkembangan sepakbola yang semakin maju dan memiliki jumlah penggemar paling banyak di dunia dibandingkan dengan cabang olahraga lainnya. Permainan sepakbola sendiri dimainkan oleh dua tim dan satu tim terdiri dari sebelas pemain, untuk dapat memainkan permainan ini dengan baik dibutuhkan kerjasama tim dan teknik dalam bermain sepakbola. Pada saat ini telah banyak dikembangkan simulasi permainan sepakbola, diantaranya adalah Simulator Robo Soccer, Pro Evolution Soccer dan Football Manager.
Simulator RoboCup Soccer merupakan simulator yang telah disediakan untuk liga RoboCup Soccer yang terdiri dari 3 komponen utama, yaitu: Soccer Server, Soccer Monitor dan Log Player. Sebuah simulasi pertandingan sepakbola dilakukan dalam bentuk client-server (komputer sebagai server dan file executable sebagai client). Soccer Server menyediakan sebuah domain (sebuah lapangan sepakbola virtual) yang mensimulasikan semua gerakan-gerakan obyek dalam domain ini, dan mengontrol sebuah game sepak bola sesuai aturan-aturan tertentu [1]. Soccer client telah banyak dikembangkan oleh banyak universitas. Misalnya: Carnegie Melon University, Tsing Hua University, Universiteit van Amsterdam, dan lain-lain. Masing-masing universitas tersebut telah mengimplementasikan berbagai kecakapan pada agent-agentnya, sedemikian rupa sehingga para agent dapat memainkan pertandingan sepakbola melawan agent dari soccer client secara autonomous.
terdapat beberapa fungsi yang digunakan antara lain fungsi evaluasi menggunakan indikator heuristik dan estimasi fuzzy. Dan pada bagian mencari solusi passing bola untuk membuat keputusan dengan pareto set metode yang digunakan adalah sequential elimination of the poorest alternative. Kesimpulan yang didapat dari penelitian tersebut adalah metode yang digunakan memberikan cara yang mudah untuk menerapkan semua kisaran dalam mengambil keputusan dengan menyeimbangkan keuntungan, resiko dan biaya dengan cara yang fleksibel. Metode pendekatan baru yang diusulkan untuk general optimasi, selain passing bola, dan juga mengoptimalkan pengambil keputusan tingkat rendah lainnya dalam robot sepak bola, seperti positioning pemain, dribbling, dan mencetak gol.
Alpha beta pruning merupakan sebuah cara untuk mengurangi jumlah simpul yang dieksplorasi dari algoritma MinMax. Dengan adanya alpha beta, waktu yang dibutuhkan dalam pencarian bisa berkurang dengan cara membatasi waktu yang terbuang percuma pada saat mengevaluasi pohon permainan. Implementasi alpha beta akan memberikan jalur terbaik dalam setiap kemungkinan permainan dalam pohon permainan yang terbentuk [3]. Dalam alpha beta pruning, urutan jalannya algoritma akan dimulai sama seperti algoritma minimax. Untuk simpul MIN, nilai yang dihitung dimulai dengan +infinity dan akan menurun seiring jalannya permainan. Untuk simpul MAX, nilai akan dihitung dimulai dengan -infinity dan akan menaik seiring berjalannya waktu permainan.
Proses yang sangat penting dalam permainan sepakbola adalah mengoper bola terutama dalam proses menyerang. Memastikan bola sampai pada teman yang tepat sehingga dapat melakukan serangan dan tekanan yang lebih baik terhadap lawan. Implementasikan algoritma alpha-beta pruning pada agent simulation RoboCup soccer. Dengan harapan agent dapat menemukan posisi agent kawan yang terbaik untuk menentukan keputusan passing maupun umpan bola.
1.2 Rumusan Masalah
1.3Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk mengimplementasikan algoritma alpha-beta pruning pada simulator RoboCup soccer dua dimensi. Sedangkan tujuan yang ingin dicapai dari pengimplementasian tersebut adalah :
1. Membantu mengoptimalkan pencarian posisi agent untuk menentukan keputusan passing bola maupun umpan bola.
2. Membantu meningkatkan akurasi umpan bola untuk dapat
mengoptimalkan serangan dan menambah kemungkinan mencetak gol.
1.4 Batasan Masalah
Berdasarkan latar belakang yang telah diuraikan sebelumnya, maka batasan masalah yang dibuat adalah sebagai berikut :
1. Pencarian posisi strategis agent menggunakan algoritma alpha-beta pruning.
2. Simulator yang digunakan dengan spesifikasi: soccer server versi 15.0.1, soccer monitor versi 15.0.0 dan log player versi 15.0.0. 3. Perancangan yang digunakan dalam pengembangan Soccer Client
ini adalah pendekatan berbasis objek.
4. Simulator dijalankan diatas komputer dengan sistem operasi linux ubuntu versi 12.0.4.
5. Pengembangan soccer client menggunakan bahasa pemograman C++.
6. Tim sepak bola yang dijadikan base code adalah Uva Trilearn yang dikembangkan oleh Remco de Boer dan Jelle Kok
7. Pada penelitian ini hanya di fokuskan pada pengembangan skill passing bola.
1.5 Metodologi Penelitian
1. Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :
a. Studi literatur
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, e-book, paper dan bahan bacaan-bacaan yang berkaitan dengan permainan yang akan dikembangkan, meliputi algoritma yang akan dipakai, tool dan juga pemodelan dengan UML.
b. Observasi
Teknik pengumpulan data dengan mengadakan pengamatan lansung dan mengindra terhadap objek atau proses yang akan dijadikan objek permasalahan seputar permainan yang akan dibangun antara lain masalah algoritma, tools dan pemodelan dengan UML.
2. Metode Pembangunan Perangkat Lunak
Metode pengembangan perangkat lunak yang digunakan dalam pengembangan game ini akan menggunakan prototype model [4]. Fase yang terdapat pada prototype ini sebagai berikut :
a. Communication
Pada tahap ini komunikasi dilakukan dengan dosen pembimbing terkait dengan penelitian yang dilakukan serta membahas beberapa hal seperti batasan dari penelitian dan metode kecerdasan buatan yang akan diimplementasikan kedalam robot soccer simulator.
b. Quick Plan
c. Modeling Quick Desain
Pada tahap ini dilakukan pemodelan alpha beta pruning yang akan diterapkan pada robot soccer simulator berikut dengan pemodelan perangkat lunak sesuai batasan-batasan dalam perancangannya.
d. Construction of Prototype
Pada tahap ini dilakukan pembangunan prototype dan prototype tersebut akan dievaluasi oleh dosen pembimbing dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak.
e. Deployment Delivery & Feedback
Pada tahap ini dilakukan peluncuran perangkat lunak secara lengkap beserta laporan setelah melalui proses tahap-tahap sebelumnya. Perangkat lunak robot soccer simulator dan laporannya didokumentasikan dengan melalui proses revisi sebelumnya.
Gambar 1.1 Siklus Hidup Perangkat Lunak.
1.6Sistematika Penulisan
BAB 1 PENDAHULUAN
Bab ini menguraikan tentang latar belakang masalah, rumusan masalah, maksud dan tujuan, metodologi penelitian, dan sistematika penulisan dari tugas akhir yang dibuat.
BAB 2 LANDASAN TEORI
Bab ini menguraikan tentang teori-teori yang berkaitan dengan topik penelitian yaitu Kecerdasan Buatan, Searching, Algoritma Alpha Beta Pruning, RoboCup, Fungsi Evaluasi, Soccer, Object Oriented, UML(unified modeling language), C++, Linux ubuntu.
BAB 3 ANALISIS DAN PERANCANGAN
Bab ini berisi tentang analisis sistem yang meliputi perancangan dengan pemodelan UML, merancang tampilan permainan, serta analisis bagaimana penerapan Algoritma Alpha Beta Pruning pada simulator robo soccer yang akan diterapkan pada agent atau NPC (Non Playable Character).
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Berisi tentang tahapan – tahapan yang dilakukan untuk menerapkan implementasi dari soccer client yang dikembangkan. Implementasi soccer client dilakukan berdasarkan kebutuhan analisis pada Algoritma Alpha Beta Pruning dan perancangan permainan yang sudah dilakukan.
BAB 5 KESIMPULAN DAN SARAN
7
BAB II
TINJAUAN PUSTAKA
2.1 Kecerdasan BuatanKecerdasan buatan (artificial intelligence) merupakan salah satu bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (komputer) dapat berfikir dan melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia bahkan lebih baik dari pada yang dilakukan manusia [3].
Beberapa hal yang dapat dikerjakan dalam bagian-bagian AI berikut [5] :
1. Sistem pakar (expert system) : komputer sebagai sarana untuk menyimpan pengetahuan para pakar sehingga komputer memiliki keahlian menyelesaikan permasalahan dengan meniru keahlian yang dimiliki pakar.
2. Pengelolahan bahasa alami (natural language processing) : user dapat berkomunikasi dengan komputer menggunakan bahasa sehari-hari, misalnya bahasa inggris, bahasa Indonesia, dan lain-lain.
3. Pengenalan ucapan (speech recognition) : manusia dapat berkomunikasi dengan komputer menggunakan suara.
4. Robotika dan sistem sensor : difokuskan pada produksi alat-alat mekanik yang dapat mengendalikan gerak.
5. Komputer vision : menginterpretasikan gambar atau objek-objek tampak melalui komputer.
6. Intelligent computer-aided instruction : komputer dapat digunakan sebagai tutor yang dapat melatih dan mengajar.
7. Game playing : pembuatan program-program bermain permainan.
Area dari Artificial Intelligence adalah gabungan beberapa area study [6], Yaitu :
2. Searching :diterapkan pada AI mengacu pada metode pencarian untuk penyelesaian suatu masalah.
3. Vision recognition dan pattern matching : penting untuk beberapa aplikasi, termasuk robotic dan pengolah citra (image processing).
4. Natural language processing : digunakan untuk membangun
kemampuan komputer berbahasa manusia secara lansung. 5. Robotic : digunakan untuk mengontrol gerakan.
6. Learning : program yang dapat belajar dari kesalahan dengan observasi (atau permintaan komputer) serta mempunyai kemampuan untuk
mengambil „benefit‟ dari pengalaman.
7. Uncertainty dan fuzzy logic : komputer dapat berfikir dengan
menggunakan pengetahuan yang tidak lengkap dengan menerapkan penggunaan fuzzy logic.
2.2 Searching
Searching atau pencarian adalah mekanisme pemecahan masalah yang paling umum di dalam kecerdasan buatan. Di dalam permasalahan-permasalahan kecerdasan buatan, urutan langkah-langkah yang dibutuhkan untuk memperoleh solusi merupakan suatu isu yang penting untuk diformulasikan. Hal ini harus dilakukan dengan mengidentifikasikan proses try and error secara sistematis pada eksplorasi setiap alternative jalur yang ada [7].
Algoritma searching di dalam kecerdasan buatan yang umumnya dikenal adalah :
1. Pencarian Buta (Blind search)
Algoritma yang tidak memberikan informasi tentang permasalahan yang ada, hanya sebatas definisi dari algoritma tersebut.
2. Pencarian Heuristik (Heuristik search)
Selain dari kedua algoritma searching diatas ada juga algoritma yang dikenal dengan adversarial search, dimana didalamnya terdapat beberapa algoritma pencarian seperti algoritma MiniMax, Alpha beta Pruning, NegaMax, dan lain sebagainya.
2.2.1 Alpha Beta Pruning
Alpha beta pruning merupakan sebuah cara untuk mengurangi jumlah simpul yang dieksplorasi dari algoritma MinMax. Dengan adanya alpha beta, waktu yang dibutuhkan dalam pencarian bisa berkurang dengan cara membatasi waktu yang terbuang percuma pada saat mengevaluasi pohon permainan. Implementasi alpha beta akan memberikan jalur terbaik dalam setiap kemungkinan permainan dalam pohon permainan yang terbentuk [3]. Dalam alpha beta pruning, urutan jalannya algoritma akan dimulai sama seperti algoritma minimax. Untuk simpul MIN, nilai yang dihitung dimulai dengan +infinity dan akan menurun seiring jalannya permainan. Untuk simpul MAX, nilai akan dihitung dimulai dengan -infinity dan akan menaik seiring berjalannya waktu permainan. Pseudocode Alpha Beta Pruning dapat dilihat pada gambar 2.1.
Pada penelitian ini, nilai-nilai yang terdapat pada simpul atau node didapat setelah melakukan perhitungan menggunakan sebuah formula atau rumus.
2.3 Formula
Formula merupakan rumus yang digunakan untuk mencari nilai-nilai yang nantinya nilai tersebut dimasukkan kedalam simpul atau node untuk setiap posisi pemain. Berikut ini merupakan rumus yang digunakan pada penelitian ini.
H = ( 1− 2)2+ ( 1− 2)2………(2.1)
Dimana :
H = total nilai
X1 = koordinat x pemain
X2 = koordinat x bola
Y1 = koordinat y pemain
Y2 = koordinat y bola
2.4 RoboCup
Robot bermain sepakbola pertama kali disebutkan oleh professor Alan Mackworth (University of British Columbia, Kanada) dalam sebuah makalah
yang berjudul “On seeing Robots” pada tahun 1992 dan kemudian diterbitkan dalam sebuah buku Computer Vision : System, Theory, and Applications. Pada bulan juni 1993, beberapa peneliti seperti Minoru Asada, Yasuo Kuniyoshi, dan Hiroaki Kitono memutuskan untuk meluncurkan sebuah kompetisi robot yang diberi nama J-League. Dalam sebulan J-League mendapat reaksi yang luar biasa dari para peneliti diluar Jepang, dan meminta inisiatif untuk diperpanjang menjadi proyek internasional. Oleh karena itu J-League berganti nama menjadi Robot World Cup disingkat RoboCup [8].
menyelenggarakan turnamen piala dunia setiap tahun. Anggota-anggota Federasi RoboCup adalah para peneliti yang aktif melakukan penelitian dalam bidang ini dan mereka adalah wakil-wakil dari universitas-universitas atau perusahaan-perusahaan yang berkepentingan dan berkontribusi di bidang ini.
Federasi RoboCup telah menetapkan tujuan-tujuan dan suatu jadwal penelitian. Penetapan tujuan ini dimaksudkan untuk mendesak perkembangan terkini (the state-of-the-art) selanjutnya, sehubungan dengan test-beds yang telah diformalkan. Artinya bahwa sebenarnya tujuan utama yang paling penting dari RoboCup adalah memajukan tingkat teknologi masyarakat di segala bidang.
Hingga saat ini, federasi RoboCup internasional telah mempromosikan kompetisi atau liga robot sepak bola sebagai berikut.
a. RoboCup Soccer, terdiri atas :
1. Simulation League, terdiri dari :
a. 2D Simulation League,
5. Humanoid League, terdiri dari : a. Kid Size (30-60 cm height), b. Teen Size (100-160 cm height). b. RoboCup Rescue, terdiri atas :
1. Rescue Simulation League,
2. Rescue Robot League.
c. RoboCup Junior, terdiri atas :
1. Soccer Challenge,
2. Dance Challenge,
4. Rescue B Challenge.
d. RoboCup @Home
Pada penelitian ini lebih difokuskan pada RoboCup 2D Simulation League. Simulasi robot sepak bola dalam RoboCup yang menggunakan simulator yang disebut dengan Soccer Server. Simulator ini merupakan sebuah simulasi pertandingan sepak bola yang divisualisasikan dengan menunjukan lapangan simulator pada layar monitor komputer.
2.4.1 Simulator RoboCup Soccer
Simulator yang telah disediakan untuk liga RoboCup Soccer terdiri dari 3 komponen utama, yaitu: Soccer Server, Soccer Monitor dan Log Player. Sebuah simulasi pertandingan sepak bola dilakukan dalam bentuk client-server. Soccer server menyediakan sebuah domain (sebuah lapangan sepak bola virtual) yang mensimulasikan semua gerakan-gerakan obyek dalam domain ini, dan mengontrol sebuah game sepak bola sesuai aturan-aturan tertentu.
Sebuah pertandingan sepak bola virtual melibatkan 3 komponen yaitu Sistem Soccer Server, Sistem Soccer Monitor, dan Sistem Soccer Client.
Selanjutnya tiga kompenen utama tersebut, dijabarkan sebagai berikut:
a. Soccer Server.
versi yang terbaru terdapat error, dikarenakan ada beberapa library yang tidak mendukung. Connection antara client dengan server dapat dilihat pada gambar 2.2.
Gambar 2.2 Connection antara Client dengan Server
b. Soccer monitor.
Gambar 1.3 Tampilan Soccer Monitor
Soccer monitor yang digunakan adalah versi 15.0.0 . soccer monitor juga tidak menggunakan versi yang terbaru karena ada library yang tidak mendukung.
c. Soccer Client.
dikembangkan pada tahun 2001 oleh Jelle R. Kok. Uva Trilearn bersifat open source.
Selain tiga komponen utama diatas, ada sebuah komponen yang berfungsi sebagai pemutar video yang disebut dengan log player. Log player yang digunakan adalah versi 15.0.0, log player juga tidak menggunakan versi terbaru karena ada library yang tida mendukung. Fungsi dari log player adalah untuk memutar kembali sebuah pertandingan sepak bola.
2.5UvA Trilearn
Uva trilean pertama kali dikembangkan pada tahun 2001 oleh Jelle R. Kok [9]. Dan pertamakalinya ikut kompetisi pada jerman terbuka 2001 di Paderborn dan di kejuaraan dunia 2001 di seattle (USA). Pada tahun 2003 Jelle R. Kok mengembangkan lebih lanjut UvA Trlearn sebelumnya dengan memperbaiki keahlian merebut bola dengan mempertimbangkan kemampuan tim lawan untuk aksi yang sama, memperbaiki teknik passing dengan mempertimbangkan berbagai piilihan aksi passing yang dapat dilakukan, dan perbaikan terakhir adalah pengunaan coordination graph untuk untuk menentukan koordinasi antar agen. Dan hasilnya yaitu UvA Trilearn menjadi juara pada Robocup-2003. Berikut ini merupakan struktur dari soccer client UvA Trilearn dapat dilihat pada gambar 2.4.
2.6 Soccer
Soccer atau sepakbola merupakan salah satu cabang olahraga yang sangat populer di seluruh dunia. Hal tersebut dapat dilihat dari perkembangan sepakbola yang semakin maju dan memiliki jumlah penggemar paling banyak di dunia dibandingkan dengan cabang olahraga lainnya. Permainan sepakbola sendiri dimainkan oleh dua tim dan satu tim terdiri dari sebelas pemain, untuk dapat memainkan permainan ini dengan baik dibutuhkan kerjasama tim dan teknik dalam bermain sepakbola.
Menurut sejarah kontemporer permainan favorit dunia berkembang lebih dari 100 didunia. Semuanya dimulai pada tahun 1863 di inggris. Ketika rugby dan sepakbola berada pada cabang olahraga yang berbeda. Asosiasi sepakbola di inggris dibentuk menjadi badan pertama yang mengatur olahraga [10].
Kedua olahraga tersebut berasal dari cabang yang sama. Sebuah pencarian selama berabat-abat mengungkapkan bahwa setidaknya ada enam permainna yang berbeda, bervariasi untuk derajat yang berbeda, dan sejarah perkembangan sepakbola telah diteliti kembali. Apakah ini dapat dibenarkan dalam beberapa kasus yang diperdebatkan. Namun demikian, faktanya tetap bahwa orang telah menikmati sepakbola selama ribuan tahun dan sama sekali tidak ada alasan untuk menganggapnya sebagai penyimpangan terhadap permainan yang menggunakan tangan.
Pada dinasti han sepakbola disebut Tsu‟Chu dengan cara menendang bola
2.6.1 Aturan Sepakbola
Sepakbola dimainkan dalam sebuah lapangan oleh sebelas pemain. Permainan biasanya dilakukan dalam waktu 2 X 45 menit dengan jeda istirahat lima belas menit yang dilakukan oleh para pemainnya. Kalau dalam waktu 2 X 45 menit masih dalam keadaan seri maka akan di adakan babak perpanjangan waktu selama 2 X 15 menit. Setelah perpanjangan waktu masih seri maka akan dilakukan adu pinalti. Pemimpin atau pengadil pertandingan dalam sepakbola adalah wasit. Biasanya dia dibantu oleh dua orang hakim garis dan dua orang wasit cadangan yang bertugas ketika terjadi pergantian pemain. Ukuran lapangan sepakbola adalah 91,4 m dan 54,8 m dengan ukuran gawang 7,32 x 2,44 meter [11]. Lapangan sepakbola dapat dilihat pada gambar 2.5.
Ada beberapa kondisi khusus dalam sepakbola yang umumnya terjadi, yaitu [11]:
1. Kickoff : pada permulaan permainan dan setelah gol, tim melakukan kockoff dari tengah untuk memulai permainan. 2. Penalty kick : ketika pemain melakukan pelanggaran di area
penaltinya sendiri, tim yang mendapatkan tendangan penalty ini adalah tendangan berhadapan lansung dengan kipper yang berjarak 12 yard.
3. Throw-ins : jika bola keluar dari batas garis samping kiri atau kanan maka lemparan bebas ke dalam lapangan diberikan kepada tim yang terakhir tidak menyentuh bola. Jika bola keluar dari batas garis belakang, tendangan goal kick diberikan jika tim penyerang yang menyentuh bola bola terakhir, dan tendangan sudut diberikan jika tim bertahan yang menyentuh bola terakhir.
4. Goal kick : ketika penyerang menendang bola keluar dari garis gawang, tim yang bertahan diberikan goal kick, bola dapat ditempatkan di manapun di dalam area gawang dan setiap pemain ( termasuk kipper) dapat melakkan tendangan.
5. Corner kick : jika bola keluar melewati garis gawang dan terakhir tersentuh oleh pemain tim bertahan, tendangan sudut diberikan kepada penyerang. Bola ditempatkan disudut lingkaran samping area gawang dimana bola itu keluar dan seperti halnya tendangan bebas, pemain bertahan harus berdiri setidaknya 10 meter dari bola.
2.6.2 Posisi Pemain Sepakbola
Setiap tim sepakbola memiliki 11 pemain yang terdiri dari 1 kiper dan 10 pemain. Tujuan dari permainan sepakbola adalah untuk memasukkan bola ke gawang lawan. Tim yang menang adalah tim yang paling banyak mencetak gol. Berikut ini peran setiap posisi pemain [11]:
1. Kiper : hanya kiper yang diperbolehkan menggunakan tangannya, selama masih dalam area 18 x 44 yard yang disebut area penalty. Jika seorang penjaga gawang memegang bola diluar kotak dia akan mendapatkan kartu dan tim penyerang diberikan tendangan bebas dari tempat itu.
2. Pemain belakang : mereka bermain didepan kipper dan tugas utama mereka adalah untuk menghentikan serangan lawan. Tugas mereka dan tanggung jawab mereka dapat bervariasi dari jangkauan zona pertahanan mereka dimana mereka membela daerah tertentu. Pemain sayap belakang yang ada dikiri dan kanan, umumnya jarang bergerak dari sisi mereka di lapangan, dan pemain belakang tengah bermain ditengan lapangan dan biasanya menjaga terhadap pencetak gol atau penyerang tengah.
3. Pemian tengah : para pemain ini adalah penghubung antara pertahanan dan penyerangan. Gelandang harus memiliki fisik yang baik karena diharapkan untuk menjalankan sebagian besar permainan. Mereka harus mampu menembus jauh di dalam wilayah musuh untuk menyerang dan membuat transisi ke pertahanan ketika lawan berhasil mengambil bola. Gelandang bisa mengkhususkan diri sebagai pemain gelandang menyerang atau bertahan.
dari atas ke bawah pada sisi lapangan. Mereka dapat membawa bola ke area penalty untuk menembak atau tetap di sisi dan mencoba untuk mengoper kepada temannya di daerah tersebut. Penyerang tengah bermain di tengah lapangan, tapi mereka dibolehkan berkeliling jika ada ruang terbuka disana, penyerang tengah juga dikenal sebagai strike, harus menjadi pemimpin tim dalam mencetak gold an menjadi pemain paling berbahaya yang berada didepan.
2.7 Object Oriented
Pendekatan berorientasi objek adalah cara memandang persoalan menggunakan model – model yang diorganisasikan seputar konsep objek yang mengkombinasikan struktur data dan perilaku suatu entitas [12]. Pada pendekatan ini, organisasi perangkat lunak adalah sebagai kumpulan objek diskrit yang saling bekerja sama, berkomunikasi dan berinteraksi menuju sasaran tertentu. Pendekatan berorientasi objek mempunyai tiga karakteristik utama, yaitu :
1. Encaptulation
Encaptulation (pengkapsulan) merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. Data dan prosedur atau fungsi dikemas bersama – sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. Data terlindung dari prosedur atau objek lain kecuali prosedur yang berada dalam objek itu sendiri.
2. Inheritance
dimiliki bersama diantara kelas yang mempunyai hubungan secara hirarki. Suatu kelas dapat ditentukan secara umum, kemudian ditentukan secara spesifik mejadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya.
3. Polymorphism
Polymorphism (polimorfisme) yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. Suatu implementasi yang spesifik dari suatu operasi dari kelas tertentu disebut metoda, karena operator berorientasi objek adalah bersifat polimorfisme, mungkin dapat mempunyai lebih dari satu metoda.
2.8 UML
UML (Unified Modeling Language) adalah bahasa grafis untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML berorientasi objek, menerapkan banyak level abstraksi, tidak bergantung proses pengembangan, tidak bergantung bahasa dan teknologi. Ada beberapa diagram yang disediakan dalam UML antara lain [12]:
1. Use case diagram
Gambar 2.6 Contoh Use Case Diagram
2. Activity diagram
Diagram ini untuk menunjukkan aliran aktifitas di sistem. Diagram ini adalah pandangan dinamis terhadap sistem. Diagram ini penting untuk memodelkan fungsi sistem dan menekankan pada aliran kendali diantara objek – objek. Berikut ini adalah contoh activity diagram.
3. Sequence diagram
Diagram ini menunjukkan interaksi yang terjadi antar objek. Diagram ini merupakan pandangan dinamis terhadap sistem. Diagram ini menekankan pada basis keberurutan waktu dari pesan – pesan yang terjadi. Berikut ini adalah contoh dari sequence diagram.
Gambar 2.8 Contoh Sequence Diagram
4. Class diagram
Diagram ini menunjukkan sekumpulan kelas, interface dan kolaborasi keterhubugannnya. Diagram kelas ditunjukkan untuk pandangan statik terhadap sistem. Berikut ini adalah contoh dari class diagram.
5. Statechart diagram
Diagram ini adalah state machine diagram, berisi state, transisi, kejadian dan aktifitas. Statechart merupakan pandangan dinamis dari sistem. Diagram ini penting dalam memodelkan perilaku antarmuka, kelas, kolaborasi dan menekankan pada urutan kejadian. Penting untuk sistem reaktif yang dipicu di dunia nyata. Berikut ini adalah contoh dari statechart diagram.
Gambar 2.10 Contoh Statechart Diagram
6. Deployment diagram
Diagram ini menunjukkan konfigurasi pemrosesan saat jalan dan komponen – komponen yang terdapat didalamnya. Diagram ini merupakan pandangan statik dari arsitektur. Berikut ini adalah contoh dari deployment diagram.
2.9C++
Bahasa C++ diciptakan oleh Bjarne Stroudtrup di AT & T Bell laboratories awal tahun 1980-an berdasarkan C ANSI (American National Standard Institute). Pertama kali prototype C++ muncul sebagai C yang dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut dengan nama C with Class. Selama tahun 1983-1984, bahasa C dengan kelas disempurnakan dengan menambahkan fasilitas operator dan fungsi yang kemudian melahirkan apa yang disebut C++. Simbol ++ merupakan operator C untuk operasi penaikan, simbol itu muncul untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.
2.10 Linux Ubuntu
Ubuntu adalah salah satu distribusi linux yang berbasiskan pada Debian dan memiliki interface desktop. Nama ubuntu diambil dari nama sebuah konsep ideology di Afrika Selatan. Ubuntu berasal dari bahasa kuno afrika yang berarti
“rasa perikemanusiaan terhadap sesama manusia” [13]. Ubuntu sendiri bersifat open source, dan siap untuk dipergunakan dalam kondisi yang stabil. Ubuntu didukung oleh perusahaan bernama Canonical, Ltd yang memiliki tujuan untuk membantu perkembangan, distribusi, dan promosi dari produk-produk yang bersifat open source.
67
client yang dikembangkan dan aplikasi yang dibangun untuk menguji algoritma yang diterapkan pada soccer client, yaitu soccer client Uva Trilearn dan aplikasi yang digunakan untuk menguji algoritma yaitu ABsoccer. Hasil perancangan pada tahap sebelumnya kemudian diimplementasikan kedalam bahasa pemograman. Setelah tahap implementasi selesai, maka dilakukan tahap pengujian terhadap soccer client yang dikembangkan dan aplikasi pengujian algoritma.
4.1Implementasi
Tahap implementasi merupakan tahap penciptaan perangkat lunak dan juga tahap kelanjutan dari kegiatan perancangan aplikasi yang dibangun maupun di kembangkan. Tahap ini dimana aplikasi siap untuk dioperasikan, yang terdiri dari penjelasan mengenai lingkungan implementasi, baik itu lingkungan perangkat keras, maupun lingkungan perangkat lunak.
4.1.1 Implementasi Perangkat Keras
Perangkat keras yang digunakan untuk menjalankan simulator RoboCup Soccer dengan spesifikasi sebagai berikut:
1. Processor AMD A8-6410 APU 2.0 Ghz
2. RAM 4 GB
3. VGA 4 GB
4. Harddisk 500 GB 5. Monitor
6. Mouse dan Keyboard
4.1.2 Sistem Operasi dan File Library
Windows. Saat ini sudah tersedia beberapa versi Soccer Server, Soccer Monitor dan Log Player untuk sistem operasi Windows. Pada penelitian ini penulis menggunakan sistem operasi Linux Ubuntu versi 12.0.4. Dengan alasan Linux Ubuntu dapat dengan mudah digunakan dan juga untuk kebutuhan Library RoboCup Soccer Simulator dapat dengan mudah diinstall-kan. Setelah linux Ubuntu terinstall, senjautnya adalah menginstall-kan
library-library yang diperlukan untuk menjalankan RoboCup Soccer
Simulator, diantaranya adalah :
1. Build-essential
Untuk menginstall-kan library tersebut dibutuhkan koneksi internet. Setelah terhubung dengan internet, buka Terminal, ketikkan perintah sudo apt-get install build-essential untuk menginstall library build-essential. Perintah yang sama juga dilakukan untuk menginstallkan library-library yang lainnya. Setelah semua library terinstall, selanjutnya adalah menginstall RoboCup Soccer Simulator. Sedangkan untuk aplikasi pengujian dibagun pada system operasi windows dengan menggunakan tools visual studio.
4.1.3 Instalasi RoboCup Soccer Simulator
RoboCup Soccer Simulator yang digunakan adalah rcssserver versi 15.0.1, rcssmonitor versi 15.0.0, dan rcsslogplayer versi 15.0.0. file-file tersebut dapat di download dari website http://sourceforge.net/projects/sserver/. Setelah file komponen RoboCup Soccer Simulator di download, selanjutnya adalah menginstalkan file-file tersebut melalui terminal. Berikut adalah perintah untuk menginstalkan-nya :
1. Instalasi rcssserver:
Pertama ekstrak terlebih dahulu file rcssserver, kemudian buka terminal dan arahkan ke folder rcssserver untuk perintah instalasinya seperti berikut ini :
$ cd ~/rcssserver-15.0.1
$ ./configure
$ make
$ sudo make install
2. Instalasi rcssmonitor:
Pertama ekstrak terlebih dahulu file rcssmonitor, kemudian buka terminal dan arahkan ke folder rcssmonitor untuk perintah instalasinya seperti berikut ini :
$ cd ~/rcssmonitor-15.0.0
$ ./configure
$ make
$ sudo make install
3. Instalasi soccerwindow:
Pertama ekstrak terlebih dahulu file soccerwindow, kemudian buka terminal dan arahkan ke folder soccerwindow untuk perintah instalasinya seperti berikut ini :
$ cd ~/soccerwindow2-4.1.1
$ ./configure
$ make
4. Instalasi rcsslogplayer:
Pertama ekstrak terlebih dahulu file rcsslogplayer, kemudian buka terminal dan arahkan ke folder rcsslogplayer untuk perintah instalasinya seperti berikut ini :
$ cd ~/rcsslogplayer-15.0.0
$ ./configure
$ make
$ sudo make install
Setelah instalasi komponen-komponen yang dibutuhkan untuk menjalankan soccer simulator sudah selesai, untuk menjalankan soccer server, soccer monitor atau soccerwindow dengan mengetikkan perintah: $rcssserver, $soccerwindow, $rcssmonitor pada terminal. Untuk lebih jelasnya dapat dilihat pada gambar 4.1 yang menunjukkan soccer server yang sedang berjalan, gambar 4.2 menunjukkan soccer monitor yang sedang berjalan, gambar 4.3 menunjukkan soccer monitor terhubung dengan soccer server.
Gambar 4.2 Menjalankan Soccer Monitor
Gambar 4.3 Soccer Monitor dan Soccer Server terhubung
4.1.4 Simulasi Pertandingan
dan arahkan ke folder tempat penyimpanan source code atau binary tim yang akan digunakan untuk simulasi pertandingan. Ketikkan perintah ./start.sh
Gambar 4.4 Tampilan simulasi pertandingan di Soccerwindow
4.1.5 Implementasi Antarmuka
Implementasi antarmuka pada aplikasi pengujian algoritma Alpha Beta Pruning adalah sebagai berikut:
1. Tampilan Awal.
Gambar 4.5 Tampilan Awal Aplikasi
2. Tampilan agent beserta bola
Antarmuka tampilan agent dan bola merupakan tampilan antarmuka setelah pemain menekan tombol create dan player. Tampilan agent dan bola dapat dilihat pada gambar 4.6.
Gambar 4.6 Tampilan Agent dan bola
4.1Pengujian dan Evaluasi
algoritma yang diterapkan bertujuan untuk melakukan pencarian terhadap posisi Teammate untuk diberikan bola atau passing bola terhadap posisi Teammate tersebut.
4.2.1 Pengujian Aplikasi
Pada tahap ini, pegujian dilakukan terhadap fungsionalitas pada aplikasi yang dibangun yaitu ABsoccer. Apakah sudah sesuai dengan kebutuhan yang di inginkan.
4.2.1.1 Skenario Pengujian Aplikasi
Skenario pengujian menjelaskan pengujian terhadap sistem yang ada pada aplikasi pengujian algoritma yaitu ABsoccer. Skenario pengujian dari aplikasi dapat dilihat pada tabel 4.1.
Tabel 4.1 Skenario pengujian Aplikasi
No Komponen yang diuji Skenario pengujian Jenis pengujian
1 Create lapangan Membuat lapangan Black Box
2 Create player Membuat player Black Box
3 Kick Menendang bola Black Box
4 Reset Mengembalikan ke posisi
awal
Black Box
5 ABpuring Mencari nilai terbesar White Box
4.2.1.2 Kasus dan Pengujian
1. Pengujian Create lapangan
Pengujian Create lapangan dengan kasus dan hasil uji, kemudian diamati dan menghasilkan kesimpulan dapat dilihat pada tabel 4.2.
Tabel 4.2 Pengujian create lapangan
Kasus dan Hasil Uji
Masukan Keluaran yang
diharapkan Pengamatan Kesimpulan
Pemain membuat lapangan
Lapangan tercipta Player dapat membuat lapangan
[√ ] Diterima
[ ] Ditolak
2. Pengujian Player
Pengujian Create Player dengan kasus dan hasil uji, kemudian diamati dan menghasilkan kesimpulan dapat dilihat pada tabel 4.3.
Tabel 4.3 Pengujian Create Player
Kasus dan Hasil Uji
Masukan Keluaran yang
diharapkan Pengamatan Kesimpulan
Pemain membuat agent
agent tercipta Pemain dapat
membuat agent
[√ ] Diterima
[ ] Ditolak
3. Pengujian Kick
Tabel 4.4 Pengujian Kick
Kasus dan Hasil Uji
Masukan Keluaran yang
diharapkan Pengamatan Kesimpulan
Pemain memulai kemudian diamati dan menghasilkan kesimpulan dapat dilihat pada tabel 4.5.
Tabel 4.5 Pengujian reset
Kasus dan Hasil Uji
Masukan Keluaran yang
diharapkan Pengamatan Kesimpulan
Pemain
4.2.1.3 Kasus dan Pengujian (White box)
Dibawah ini merupakan kasus Alpha Beta Pruning untuk menguji perangkat lunak yang sudah dibangun menggunakan metode white box, berdasarkan skenario pengujian aplikasi yang sudah dijabarkan.
1. Mencari nilai terbesar.
1 : while(first != NULL) 2 : if(first->value > max)
3 : max = first->value;
4 : best_cost = first->player;
5 : alpha = max;
6 : if(beta > alpha)
7 : return best_cost;
8 : endif
9 : first = first->next; 10 : endwhile
1
2
3
4
5
6
8
10 7
9
Gambar 4.7 Flowchart prosedur ABmax
1
2
3,4,5
6
7
8
9
10
Gambar 4.8 Flowgraph ABmax
1
2
3
4
5
6
7
8
Gambar 4.9 Penyederhanaan Flowgraph ABmax
Jumlah dari cyclomatic complexity atau V(G) dari flowgraph pada gambar 4.9 adalah sebagai berikut : Edge = 9 , Node = 8
V(G) = Edge –Node + 2 V(G) = 9 – 8 + 2
Dari gambar 4.9 didapat independent path sebagai berikut :
Path 1 = 1,2,3,4,5,6,7,8 Path 2 = 1,2,3,4,6,7,8 Path 3= 1,2,6,7,8
Dengan menggunakan rumus predicate node didapatkan hasil sebagai berikut:
V(G) = jumlah node yang memiliki lebih dari 1 jalur + 1
V(G) = 2 + 1 V(G) = 3
Graph Matriks pengujian dapat dilihat pada table 4.6
Tabel 4.6 Graph Matriks Prosedur ABmax
1 2 3 4 5 6 7 8 9 10 11 12 n(E)-1
1 1 1-1=0
2 1 1 2-1=1
3 1 1-1=0
4 1 1 2-1=1
5 1 1-1=0
6 1 1-1=0
7 1 1-1=0
Hasil = 2
V(G)= jumlah Graph Matriks + 1 V(G)= 2+1
V(G) = 3
Kesimpulan yang didapat berdasarkan hasil pengujian dihasilkan Cyclomatic Complexity yang sama yaitu 3, maka dapat disimpulkan bahwa pada prosedur ABmax berjalan dengan baik, karena setiap pengujian menghasilkan nilai yang sama.
4.2.2 Skenario I ( UvA Riko VS UvA Trilearn)
Adapun skenario yang dilakukan adalah dengan melakukan simulasi pertandingan antara tim UvA Riko dengan tim UvA Trilearn. Dimana tim UvA Riko adalah tim yang dikembangkan dengan menggunakan algoritma Alpha Beta Pruning. Dimana simulasi pertandingan akan dilakukan sebanyak 5 kali dengan sistem kandang dan tandang, pertandingan tandang adalah tim berada disebelah kiri sedangkan untuk tandang tim berada di sebelah kanan. Satu pertandingan membutuhkan waktu 2 x 3000 time cycle. Time cycle merupakan waktu pada simulator Robocup Soccer, sedangkan dalam waktu nyata satu pertandingan adalah 10 menit.
4.2.2.1Hasil Percobaan Skenario I
Tabel 4.8 Hasil pertandingan kandang UvA riko VS UvA Trilearn
Tim Gol pada setiap pertandingan
1 2 3 4 5
UvA Riko 3 2 5 2 5
Tabel 4.9 Statistik pertandingan kandang
Tabel 4.10 Hasil pertandingan tandang UvA Riko VS UvA Trilearn
Tim Gol pada setiap pertandingan
1 2 3 4 5
UvA Trilearn 0 1 2 1 1
UvA Riko 2 2 2 5 2
Tabel 4.11 Statistik pertandingan tandang
Keterangan : M = Menang, S = Seri, K = Kalah
Berdasarkan table 4.12 dapat dilihat bahwa tim UvA riko yang dikembangkan dari 10 pertandingan memenangkan 7 pertandingan dan 3 kali seri dan tidak pernah kalah dari UvA trilearn. UvA riko mencetak 30 gol dari 10 pertandingan dan kemasukan 14 gol, sedangkan UvA Trilearn mencetak 14 gol dan kemasukan 30 gol. Dari hasil tersebut tim yang dikembangkan sudah bisa dikatakan lebih baik dibandingkan dengan UvA Trilean yang dijadikan Base Code. Untuk gambar pertandingannya dapat dilihat pada lampiran A. Berikut ini merupakan grafik pertandingan Uva riko vs Uva base dapat dilihat pada gambar 4.10.
Gambar 4.10 Statistik Uva Riko VS Uva Base
adalah agent penerima dengan radius 5 grid koordinat. Sedangkan passing yang gagal sebanyak 34 kali, dimana kategori gagal adalah setelah bola di tendang oleh agent pertama bola berhasil dipotong oleh agent lawan.dengan demikian passing bola yang sukses dilakukan adalah sebesar 71.43% dan passing bola yang gagal adalah 28.57%. berikut ini adalah statistik passing bola yang dilakukan agent Uva riko dapat dilihat pada gambar 4.11.
Gambar 4.11 Statistik Passing Bola UvA Riko
4.2.3 Skenario II(UvA Riko VS WEBASE)
Adapun skenario yang dilakukan adalah dengan melakukan simulasi pertandingan antara tim UvA Riko dengan tim WEBase. Dimana simulasi pertandingan akan dilakukan sebanyak 5 kali dengan sistem kandang dan tandang, pertandingan tandang adalah tim berada disebelah kiri sedangkan untuk tandang tim berada di sebelah kanan. Satu pertandingan membutuhkan waktu 2 x 3000 time cycle. Time cycle merupakan waktu pada simulator Robocup Soccer, sedangkan dalam waktu nyata satu pertandingan adalah 10 menit.
Passing Bola UvA Riko
Passing Sukses
4.2.3.1 Hasil Percobaan Skenario II
Tabel 4.13 Hasil Pertandingan Kandang UvA Riko VS WEBase
Tim Gol pada setiap pertandingan
1 2 3 4 5
UvA Riko 5 5 5 6 3
WEBase 0 0 1 1 0
Tabel 4.14 Statistik Pertandingan Kandang
Tim Jumlah
Tabel 4.15 Hasil Pertandingan tandang UvA Riko VS WEBase
Tim Gol pada setiap pertandingan
1 2 3 4 5
WEBase 2 3 3 1 1
UvA Riko 1 8 5 4 1
Tabel 4.16 Statistik Pertandingan tandang
4.2.3.2 Analisa Skenario II dari 10 pertandingan memenangkan 8 pertandingan dan 1 kali seri dan 1 kali kalah. UvA riko mencetak 43 gol dari 10 pertandingan dan kemasukan 12 gol, sedangkan WEBase mencetak 12 gol dan kemasukan 43 gol. Untuk gambar pertandingannya dapat dilihat di lampiran A. Berikut ini merupakan grafik pertandingan Uva riko vs WEBase dapat dilihat pada gambar 4.12.
Gambar 4.13 Statistik Uva riko vs WEBase
4.2.4 Pengujian Alpha Beta Pruning
Pengujian dilakukan dengan membuat sebuah skenario dimana agent di tempatkan dalam sebuah posisi, dimana penempatan tersebut bertujuan untuk melihat apakah algoritma yang digunakan memilih posisi agent yang memiliki nilai paling tinggi diantara agent lainnya. Nilai-nilai untuk setiap posisi agent telah di hitung terlebih dahulu, sehingga terdapat beberapa tabel seperti tabel jarak bola, tabel jarak gawang lawan, tabel jarak musuh dan tabel nilai area. Untuk lebih jelasnya skenario posisi agent dapat dilihat pada gambar 4.14.
Gambar 4.14 Skenario posisi agent
1. Tabel jarak bola
Tabel 4.18 Nilai 1
P1 P2 P3 P4 P5 P7 P8 P9 P10 P11
2. Tabel jarak gawang lawan
Tabel 4.19 Nilai 2
P1 P2 P3 P4 P5 P7 P8 P9 P10 P11
-1 -1 -1 -1 -1 1 -1 1 1 1
3. Tabel jarak musuh
Tabel 4.20 Nilai 3
P1 P2 P3 P4 P5 P7 P8 P9 P10 P11
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
4. Tabel nilai area
Tabel 4.21 Nillai 4
P1 P2 P3 P4 P5 P7 P8 P9 P10 P11
-2 1 1 -2 -2 4 2 5 3 6
5. Total nilai
Tabel 4.22 Total
P1 P2 P3 P4 P5 P7 P8 P9 P10 P11
-5 0 -2 -5 -5 3 1 4 4 5
Gambar 4.15 Agent nomor 6 menuju bola
Berikut ini dapat dilihat agent 6 menendang bola ke arah agent 11. Untuk lebih jelasnya dapat dilihat pada gambar 4.16.
Gambar 4.16 Bola menuju agent 11
Gambar 4.17 Bola menuju agent 11 lanjutan
Berikut ini merupakan pergerakan bola menuju posisi agent 11. Untuk lebih jelasnya dapat dilihat pada gambar 4.18.
Gambar 4.18 Bola Menuju Agent 11 lanjutan
Gambar 4.19 Bola Menuju Agent 11 Lanjutan
Berikut ini merupakan pergerakan bola menuju posisi agent 11. Untuk lebih jelasnya dapat dilihat pada gambar 4.20.
95
Berdasarkan hasil dari pengujian dan implementasi Alpha beta Pruning pada soccer client Uva Trilearn, maka dapat diambil kesimpulan sebagai berikut :
1. Tim yang dikembangkan sudah mampu melakukan passing terhadap posisi teammate, dibandingkan Base code yang hanya melakukan tendangan kearah gawang lawan.
2. Dari 10 kali percobaan tim yang di kembangkan memenangkan sebanyak 7 pertandingan melawan tim base code dengan jumlah gol 30 dan jumlah gol tim base code 14. Dan akurasi passing yang dilakukan oleh agent UvA Riko, untuk umpan bola yang berhasil 71,42% dari 119 kali umpan bola dan umpan bola yang gagal adalah 28,57% dari 119 kali umpan bola.
5.2Saran
Saran-saran yang dapat ditemukan agar menjadi bahan masukan dan pertimbangan adalah sebagai berikut :
1. Pengembangan terhadap soccer client Uva Trilearn dengan algoritma
Alpha Beta pruning untuk menambahkan menghitung waktu tempuh bola
ketujuan, supaya bola tidak bisa di intercept.
Nama Lengkap : Riko Marta Putra
NIM : 10110133
Tempat/Tanggal Lahir : Padang, 17 MEI 1991
Jenis Kelamin : Laki-Laki
Agama : Islam
Alamat Lengkap : Jalan Semarang No 70 Antapani Bandung
Nomor Telepon : 081220844095
Pendidikan Formal
1997-2003 : SD Negeri Taratak XII Atar
2003-2006 : SMP Negeri 2 Padang Ganting
2006-2008 : SMK Negeri 1 Lintau Buo
2010-2016 : Program Strata 1 (S1) Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia