Implementasi Algoritma Alpha Beta Pruning Untuk Mencari Posisi Agent Dalam Menentukan Keputusan Passing Pada Simulator Robot Soccer Dua Dimensi
IMPLEMENTASI ALGORITMA ALPHA BETA PRUNING
UNTUK MENCARI POSISI AGENT DALAM MENENTUKAN
KEPUTUSAN PASSING PADA SIMULATOR ROBOT
SOCCER DUA DIMENSI
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
RIKO MARTA PUTRA
10110133
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2016
KATA PENGANTAR
Puji syukur kami panjatkan ke hadirat Allah SWT, atas limpahan rahmat
dan hidayahnya penulis dapat menyelesaikan laporan skripsi ini yang berjudul
“IMPLEMENTASI
MENCARI
POSISI
ALGORITMA
AGENT
ALPHA
DALAM
BETA
PRUNING
MENENTUKAN
UNTUK
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
Penulis
iii
DAFTAR ISI
ABSTRAK…………………………………………………………………………i
ABSTRACT.............................................................................................................ii
KATA PENGANTAR............................................................................................iii
DAFTAR ISI .......................................................................................................... iv
DAFTAR GAMBAR ............................................................................................ vii
DAFTAR TABEL .................................................................................................. ix
DAFTAR SIMBOL................................................................................................ xi
DAFTAR LAMPIRAN ........................................................................................ xix
DAFTAR ISTILAH .............................................................................................. xx
BAB I PENDAHULUAN ...................................................................................... 1
1.1
Latar belakang .......................................................................................... 1
1.2
Rumusan Masalah .................................................................................... 2
1.3
Maksud dan Tujuan .................................................................................. 3
1.4
Batasan Masalah ....................................................................................... 3
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
2.6.2
Posisi Pemain Sepakbola ................................................................ 19
iv
2.7
Object Oriented ...................................................................................... 20
2.8
UML ....................................................................................................... 21
2.9
C++ ......................................................................................................... 25
2.10
Linux Ubuntu ......................................................................................... 25
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
BAB 4 IMPLEMENTASI DAN PENGUJIAN .................................................... 67
v
4.1
Implementasi .......................................................................................... 67
4.1.1
Implementasi Perangkat Keras ........................................................ 67
4.1.2
Sistem Operasi dan File Library ..................................................... 67
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
DAFTAR PUSTAKA ........................................................................................... 96
vi
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/aboutrobocup/a-brief-history-of-robocup/ Dipetik March, 17, 2014
[9] J. R. Kok. (2007) jellekok.nl. [Online].
http://www.jellekok.nl/index.php?cat=robocup Dipetik March, 29, 2014
[10] FIFA. Federation Internationale de Football Association(FIFA). [Online].
http://www.fifa.com/classicfootball/history/the-game/origins.html Dipetik
March, 30, 2014
[11] L. Michael and B. Greg, Soccer Rules & Positions. New Jersey, United
States of America: John Wiley & Sons, Inc., 2012.
97
[12] H. Bambang, Rekayasa Sistem Berorientasi Objek. Bandung, Indonesia:
Informatika , 2004.
[13] Ubuntu. (2015) Ubuntu. [Online]. http://www.ubuntu.com/about/aboutubuntu Dipetik August, 10, 2015
[14] N. Edi and A. Pulung.N, Mengenal Dunia Komputer. Jakarta, Indonesia: PT
Elex Media Komputindo, 2010.
98
BAB I
PENDAHULUAN
1.1 Latar belakang
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. 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.
Penelitian yang pernah dilakukan pada robocup soccer simulator dua dimensi
antara lain seperti sebuah chapter dari buku Robotic Soccer [2]. Membahas
tentang penggunaan algoritma untuk passing bola, mencari solusi passing bola
untuk membuat keputusan dengan pareto set. Pada bagian penggunaan algoritma
1
2
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
Berdasarkan latar belakang yang telah diuraikan sebelumnya. Maka
perumusan masalahnya adalah bagaimana mengimplementasikan algoritma alphabeta pruning pada simulator RoboCup soccer dua dimensi.
3
1.3 Maksud 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
Metodologi penelitian yang digunakan dalam mengerjakan laporan penelitian
ini menggunakan metode deskriptif. Dimana setiap objek digambarkan secara
jelas dan nyata sesuai dengan fakta. Metode yang digunakan pada saat
mengumpulkan data dan pengembangan perangkat lunak sebagai berikut :
4
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
Pada tahap ini pertemuan dilakukan dengan dosen pembimbing untuk
mendefinisikan kebutuhan yang diperlukan, meliputi perencanaan
kecerdasan buatan yang akan diterapkan berdasarkan deinisi, analisis dan
kebutuhan.
5
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.6 Sistematika Penulisan
Sistematika penulisan skripsi ini disusun untuk memberikan gambaran
umum tentang tugas akhir yang dijalankan. Sistematika penulisan tugas akhir ini
adalah sebagai berikut :
6
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
Berisi kesimpulan hasil dan pengujian dan implementasi Algoritma Alpha
Beta Pruning berdasarkan tujuan yang ingin dicapai sebelumnya dan
memberikan masukan atau saran dari masalah – masalah yang ditemukan
selama proses penelitian terhadap Algoritma Alpha Beta Pruning.
BAB II
TINJAUAN PUSTAKA
2.1
Kecerdasan Buatan
Kecerdasan 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 :
1. Logic : digunakan untuk mempelajari logika dari sebuah argument
dengan menerapkan aturan logika standar.
7
8
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)
Walaupun dengan menggunakan algoritma pencarian buta, banyak
permasalahan dapat dipecahkan, namun tidak semuanya dari algoritma
tersebut dapat menyelesaikan masalah dengan efisien.
9
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.
Gambar 2.1 Pseudocode Alpha Beta Pruning
10
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.
Dimana :
H = ( 1 − 2)2 + ( 1 − 2)2 ……………(2.1)
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].
RoboCup adalah sebuah federasi untuk mengakomodasi para peneliti
utamanya pada robot sepak bola. Salah satu kegiatannya adalah dengan cara
11
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 perusahaanperusahaan 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,
b. 3D Simulation League,
c. 3D Development.
2. Small Size Robot League
3. Middle Size Robot League
4. Standard Platform 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,
3. Rescue A Challenge,
12
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 aturanaturan 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.
Soccer Server adalah sebuah file executable yang mengatur
hubungan antara klien-klien (monitor, klien kesebelasan), dan
menghasilkan lingkungan virtual bagi klien-klien. Soccer
Server juga mengatur semua peraturan permainan dan protocolprotokol komunikasi antar klien. Soccer Server ini adalah
properti RoboCup, dan konfigurasinya tidak dapat diubah lagi.
Pada penelitian ini Soccer Server yang digunakan adalah versi
15.0.1 dikarenakan pada saat menginstallkan Soccer Server
13
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.
Soccer
Monitor
adalah
sebuah
file
executable
yang
menyediakan tampilan visual yang berupa grafis lapangan
sepak bola dan tampilan visual para agent / pemain di atas
lapangan. Informasi-informasi mengenai posisi dan aksi yang
dilakukan oleh pemain berasal dari Soccer Server. Seperti
halnya Soccer Server, Soccer Monitor ini adalah properti
RoboCup, dimana konfigurasinya sudah permanen dan tidak
dapat diubah-ubah lagi. Tampilan soccer monitor dapat dilihat
pada gambar 2.3.
14
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.
Soccer Client adalah sebuah file executable yang menghadirkan
satu set pemain sepakbola (soccer players) untuk bermain
sepakbola dalam lingkungan Soccer Server. 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 supa sehingga para agent dapat
memainkan pertandingan sepakbola melawan agent dari Soccer
Client lain secara autonomous. Soccer Client adalah properti
dari
masing-masing
pengembang,
dan
bukan
properti
RoboCup. Pengembang dapat dengan bebas mengembangkan
sistem kliennya masing-masing selama sistem tersebut dapat
terhubung dan berkomunikasi dengan Soccer Server. Soccer
Client yang dikembangkan adalah Uva Trilearn pertama kali
15
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.5 UvA 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.
Gambar 2.4 Arsitektur Agent Uva Trilearn
16
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
kulit yang diisi bulu atau rambut dengan ukuran bola yang hanya 30-40cm, dan
terdapat sebuah jarring kecil dengan tongkat bambu panjang. Bentuk lain dari
permainan sepakbola berasal dari jepang yang disebut kemari. Di yunani kuno
juga ada permainan yang disebut Episkyros, di yunani permainan sepakbola
dimainkan oleh dua tim dilapangan persegi panjang dengan ditandai oleh garis
batas dan garis tengah. Tujuan dari permainan adalah untuk memenangkan
pertandingan dengan berbagai strategi atau taktik.
17
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.
Gambar 2.5 Lapangan Sepakbola
18
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.
6. Offside : pemain berada pada posisi offside jika, pada saat
rekan satu tim memainkan bola, dia berada dekat dengan
gawang dari pada bola dan dua pemain lawan. Jika pemain
melakukan offside, pemain lawan mendapatkan tendangan
bebas dari tempat dimana offside itu terjadi.
19
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.
4. Pemain depan : tugas utama mereka adalah untuk mencetak gol
sebanyak mungkin. Ada beberapa jenis penyerang, penyerang
sayap bermain di kedua sisi kiri atau kanan dan biasanya berlari
20
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
Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak
dari objek akan mewarisi data / atribut dan metoda dari induknya
langsung. Atribut dan metoda dari objek induk diturunkan kepada anak
objek, demikian seterusnya. Pendefinisian objek dipergunaan untuk
membangun suatu hirarki dari objek turunannya, sehingga tidak perlu
membuat atribut dan metoda lagi pada anaknya, karena telah mewarisi
sifat indunya. Inheritance mempunyai arti bahwa atribut dan operasi yang
21
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
Diagram ini menunjukkan sekumpulan kasus fungsional dan aktor
(jenis kelas khusus) dan keterhubungannya. Berikut ini adalah contoh use
case diagram.
22
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.
Gambar 2.7 Contoh Activity Diagram
23
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.
Gambar 2.9 Contoh Class Diagram
24
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.
Gambar 2.11 Contoh Deployment Diagram
25
2.9 C++
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 19831984, 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.
Penulis disini menggunakan system operasi linux ubuntu untuk
menjalankan simulator robocup soccer dengan alasan lebih mudah untuk
menginstall library yang dibutuhkan untuk menjalankan robocup soccer simulator.
26
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dilakukan implementasi dan pengujian terhadap soccer
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.1 Implementasi
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
RoboCup Soccer Simulator dapat dijalankan pada semua sistem
operasi yang berbasis Linux, seperti Fedora, Redhat, Debian, Ubuntu,
Blankon, dan masih banyak lagi. Selain pada sistem operasi yang berbasis
linux, RoboCup Soccer Simulator juga bisa dijalankan diatas sistem operasi
67
68
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 diinstallkan. Setelah linux Ubuntu
terinstall, senjautnya adalah menginstall-kan
library-library yang diperlukan untuk menjalankan RoboCup Soccer
Simulator, diantaranya adalah :
1. Build-essential
2. Libtool
3. Libboost-dev
4. Libboost-filesystem-dev
5. Flex
6. Bison
7. Libx11-dev
8. Libxpm-dev
9. qt4-dev-tools
10. librcrc
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
Untuk menginstall RoboCup Soccer Simulator dibutuhkan file
installan komponen RoboCup Soccer Simulator. Adapun file yang dibutuhkan
adalah rcssserver, rcssmonitor, rcsslogplayer. Pada penelitian ini komponen
69
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
$ sudo make install
70
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.1 Menjalankan Soccer Server
71
Gambar 4.2 Menjalankan Soccer Monitor
Gambar 4.3 Soccer Monitor dan Soccer Server terhubung
4.1.4
Simulasi Pertandingan
Untuk menjalankan simulasi pertandingan pertama jalankan
terlebih dahulu soccer server dan soccer monitor. Selanjutnya buka terminal
72
dan arahkan ke folder tempat penyimpanan source code atau binary tim yang
akan digunakan untuk simulasi pertandingan. Ketikkan perintah ./start.sh
pada terminal dan lakukan perintah yang sama untuk tim yang akan
digunakan untuk simulasi pertandingan, setelah kedua tim yang akan
melakukkan simulasi telah terlihat pada monitor seperti yang ditujukkan pada
gambar 4.4, simulasi dapat dilakukkan dengan menekan tombol kick off (ctrl
+ k) pada soccer monitor atau soccerwindow. Pertandingan dilakukan dalam
komputer yang sama yaitu local server (local host). Waktu yang dibutuhkan
untuk simulasi pertandingan dalam satu babak adalah 3000 time cycle. Dalam
setiap satu babak pertandingan sepakbola biasanya
UNTUK MENCARI POSISI AGENT DALAM MENENTUKAN
KEPUTUSAN PASSING PADA SIMULATOR ROBOT
SOCCER DUA DIMENSI
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
RIKO MARTA PUTRA
10110133
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2016
KATA PENGANTAR
Puji syukur kami panjatkan ke hadirat Allah SWT, atas limpahan rahmat
dan hidayahnya penulis dapat menyelesaikan laporan skripsi ini yang berjudul
“IMPLEMENTASI
MENCARI
POSISI
ALGORITMA
AGENT
ALPHA
DALAM
BETA
PRUNING
MENENTUKAN
UNTUK
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
Penulis
iii
DAFTAR ISI
ABSTRAK…………………………………………………………………………i
ABSTRACT.............................................................................................................ii
KATA PENGANTAR............................................................................................iii
DAFTAR ISI .......................................................................................................... iv
DAFTAR GAMBAR ............................................................................................ vii
DAFTAR TABEL .................................................................................................. ix
DAFTAR SIMBOL................................................................................................ xi
DAFTAR LAMPIRAN ........................................................................................ xix
DAFTAR ISTILAH .............................................................................................. xx
BAB I PENDAHULUAN ...................................................................................... 1
1.1
Latar belakang .......................................................................................... 1
1.2
Rumusan Masalah .................................................................................... 2
1.3
Maksud dan Tujuan .................................................................................. 3
1.4
Batasan Masalah ....................................................................................... 3
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
2.6.2
Posisi Pemain Sepakbola ................................................................ 19
iv
2.7
Object Oriented ...................................................................................... 20
2.8
UML ....................................................................................................... 21
2.9
C++ ......................................................................................................... 25
2.10
Linux Ubuntu ......................................................................................... 25
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
BAB 4 IMPLEMENTASI DAN PENGUJIAN .................................................... 67
v
4.1
Implementasi .......................................................................................... 67
4.1.1
Implementasi Perangkat Keras ........................................................ 67
4.1.2
Sistem Operasi dan File Library ..................................................... 67
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
DAFTAR PUSTAKA ........................................................................................... 96
vi
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/aboutrobocup/a-brief-history-of-robocup/ Dipetik March, 17, 2014
[9] J. R. Kok. (2007) jellekok.nl. [Online].
http://www.jellekok.nl/index.php?cat=robocup Dipetik March, 29, 2014
[10] FIFA. Federation Internationale de Football Association(FIFA). [Online].
http://www.fifa.com/classicfootball/history/the-game/origins.html Dipetik
March, 30, 2014
[11] L. Michael and B. Greg, Soccer Rules & Positions. New Jersey, United
States of America: John Wiley & Sons, Inc., 2012.
97
[12] H. Bambang, Rekayasa Sistem Berorientasi Objek. Bandung, Indonesia:
Informatika , 2004.
[13] Ubuntu. (2015) Ubuntu. [Online]. http://www.ubuntu.com/about/aboutubuntu Dipetik August, 10, 2015
[14] N. Edi and A. Pulung.N, Mengenal Dunia Komputer. Jakarta, Indonesia: PT
Elex Media Komputindo, 2010.
98
BAB I
PENDAHULUAN
1.1 Latar belakang
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. 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.
Penelitian yang pernah dilakukan pada robocup soccer simulator dua dimensi
antara lain seperti sebuah chapter dari buku Robotic Soccer [2]. Membahas
tentang penggunaan algoritma untuk passing bola, mencari solusi passing bola
untuk membuat keputusan dengan pareto set. Pada bagian penggunaan algoritma
1
2
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
Berdasarkan latar belakang yang telah diuraikan sebelumnya. Maka
perumusan masalahnya adalah bagaimana mengimplementasikan algoritma alphabeta pruning pada simulator RoboCup soccer dua dimensi.
3
1.3 Maksud 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
Metodologi penelitian yang digunakan dalam mengerjakan laporan penelitian
ini menggunakan metode deskriptif. Dimana setiap objek digambarkan secara
jelas dan nyata sesuai dengan fakta. Metode yang digunakan pada saat
mengumpulkan data dan pengembangan perangkat lunak sebagai berikut :
4
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
Pada tahap ini pertemuan dilakukan dengan dosen pembimbing untuk
mendefinisikan kebutuhan yang diperlukan, meliputi perencanaan
kecerdasan buatan yang akan diterapkan berdasarkan deinisi, analisis dan
kebutuhan.
5
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.6 Sistematika Penulisan
Sistematika penulisan skripsi ini disusun untuk memberikan gambaran
umum tentang tugas akhir yang dijalankan. Sistematika penulisan tugas akhir ini
adalah sebagai berikut :
6
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
Berisi kesimpulan hasil dan pengujian dan implementasi Algoritma Alpha
Beta Pruning berdasarkan tujuan yang ingin dicapai sebelumnya dan
memberikan masukan atau saran dari masalah – masalah yang ditemukan
selama proses penelitian terhadap Algoritma Alpha Beta Pruning.
BAB II
TINJAUAN PUSTAKA
2.1
Kecerdasan Buatan
Kecerdasan 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 :
1. Logic : digunakan untuk mempelajari logika dari sebuah argument
dengan menerapkan aturan logika standar.
7
8
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)
Walaupun dengan menggunakan algoritma pencarian buta, banyak
permasalahan dapat dipecahkan, namun tidak semuanya dari algoritma
tersebut dapat menyelesaikan masalah dengan efisien.
9
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.
Gambar 2.1 Pseudocode Alpha Beta Pruning
10
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.
Dimana :
H = ( 1 − 2)2 + ( 1 − 2)2 ……………(2.1)
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].
RoboCup adalah sebuah federasi untuk mengakomodasi para peneliti
utamanya pada robot sepak bola. Salah satu kegiatannya adalah dengan cara
11
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 perusahaanperusahaan 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,
b. 3D Simulation League,
c. 3D Development.
2. Small Size Robot League
3. Middle Size Robot League
4. Standard Platform 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,
3. Rescue A Challenge,
12
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 aturanaturan 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.
Soccer Server adalah sebuah file executable yang mengatur
hubungan antara klien-klien (monitor, klien kesebelasan), dan
menghasilkan lingkungan virtual bagi klien-klien. Soccer
Server juga mengatur semua peraturan permainan dan protocolprotokol komunikasi antar klien. Soccer Server ini adalah
properti RoboCup, dan konfigurasinya tidak dapat diubah lagi.
Pada penelitian ini Soccer Server yang digunakan adalah versi
15.0.1 dikarenakan pada saat menginstallkan Soccer Server
13
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.
Soccer
Monitor
adalah
sebuah
file
executable
yang
menyediakan tampilan visual yang berupa grafis lapangan
sepak bola dan tampilan visual para agent / pemain di atas
lapangan. Informasi-informasi mengenai posisi dan aksi yang
dilakukan oleh pemain berasal dari Soccer Server. Seperti
halnya Soccer Server, Soccer Monitor ini adalah properti
RoboCup, dimana konfigurasinya sudah permanen dan tidak
dapat diubah-ubah lagi. Tampilan soccer monitor dapat dilihat
pada gambar 2.3.
14
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.
Soccer Client adalah sebuah file executable yang menghadirkan
satu set pemain sepakbola (soccer players) untuk bermain
sepakbola dalam lingkungan Soccer Server. 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 supa sehingga para agent dapat
memainkan pertandingan sepakbola melawan agent dari Soccer
Client lain secara autonomous. Soccer Client adalah properti
dari
masing-masing
pengembang,
dan
bukan
properti
RoboCup. Pengembang dapat dengan bebas mengembangkan
sistem kliennya masing-masing selama sistem tersebut dapat
terhubung dan berkomunikasi dengan Soccer Server. Soccer
Client yang dikembangkan adalah Uva Trilearn pertama kali
15
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.5 UvA 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.
Gambar 2.4 Arsitektur Agent Uva Trilearn
16
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
kulit yang diisi bulu atau rambut dengan ukuran bola yang hanya 30-40cm, dan
terdapat sebuah jarring kecil dengan tongkat bambu panjang. Bentuk lain dari
permainan sepakbola berasal dari jepang yang disebut kemari. Di yunani kuno
juga ada permainan yang disebut Episkyros, di yunani permainan sepakbola
dimainkan oleh dua tim dilapangan persegi panjang dengan ditandai oleh garis
batas dan garis tengah. Tujuan dari permainan adalah untuk memenangkan
pertandingan dengan berbagai strategi atau taktik.
17
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.
Gambar 2.5 Lapangan Sepakbola
18
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.
6. Offside : pemain berada pada posisi offside jika, pada saat
rekan satu tim memainkan bola, dia berada dekat dengan
gawang dari pada bola dan dua pemain lawan. Jika pemain
melakukan offside, pemain lawan mendapatkan tendangan
bebas dari tempat dimana offside itu terjadi.
19
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.
4. Pemain depan : tugas utama mereka adalah untuk mencetak gol
sebanyak mungkin. Ada beberapa jenis penyerang, penyerang
sayap bermain di kedua sisi kiri atau kanan dan biasanya berlari
20
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
Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak
dari objek akan mewarisi data / atribut dan metoda dari induknya
langsung. Atribut dan metoda dari objek induk diturunkan kepada anak
objek, demikian seterusnya. Pendefinisian objek dipergunaan untuk
membangun suatu hirarki dari objek turunannya, sehingga tidak perlu
membuat atribut dan metoda lagi pada anaknya, karena telah mewarisi
sifat indunya. Inheritance mempunyai arti bahwa atribut dan operasi yang
21
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
Diagram ini menunjukkan sekumpulan kasus fungsional dan aktor
(jenis kelas khusus) dan keterhubungannya. Berikut ini adalah contoh use
case diagram.
22
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.
Gambar 2.7 Contoh Activity Diagram
23
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.
Gambar 2.9 Contoh Class Diagram
24
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.
Gambar 2.11 Contoh Deployment Diagram
25
2.9 C++
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 19831984, 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.
Penulis disini menggunakan system operasi linux ubuntu untuk
menjalankan simulator robocup soccer dengan alasan lebih mudah untuk
menginstall library yang dibutuhkan untuk menjalankan robocup soccer simulator.
26
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dilakukan implementasi dan pengujian terhadap soccer
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.1 Implementasi
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
RoboCup Soccer Simulator dapat dijalankan pada semua sistem
operasi yang berbasis Linux, seperti Fedora, Redhat, Debian, Ubuntu,
Blankon, dan masih banyak lagi. Selain pada sistem operasi yang berbasis
linux, RoboCup Soccer Simulator juga bisa dijalankan diatas sistem operasi
67
68
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 diinstallkan. Setelah linux Ubuntu
terinstall, senjautnya adalah menginstall-kan
library-library yang diperlukan untuk menjalankan RoboCup Soccer
Simulator, diantaranya adalah :
1. Build-essential
2. Libtool
3. Libboost-dev
4. Libboost-filesystem-dev
5. Flex
6. Bison
7. Libx11-dev
8. Libxpm-dev
9. qt4-dev-tools
10. librcrc
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
Untuk menginstall RoboCup Soccer Simulator dibutuhkan file
installan komponen RoboCup Soccer Simulator. Adapun file yang dibutuhkan
adalah rcssserver, rcssmonitor, rcsslogplayer. Pada penelitian ini komponen
69
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
$ sudo make install
70
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.1 Menjalankan Soccer Server
71
Gambar 4.2 Menjalankan Soccer Monitor
Gambar 4.3 Soccer Monitor dan Soccer Server terhubung
4.1.4
Simulasi Pertandingan
Untuk menjalankan simulasi pertandingan pertama jalankan
terlebih dahulu soccer server dan soccer monitor. Selanjutnya buka terminal
72
dan arahkan ke folder tempat penyimpanan source code atau binary tim yang
akan digunakan untuk simulasi pertandingan. Ketikkan perintah ./start.sh
pada terminal dan lakukan perintah yang sama untuk tim yang akan
digunakan untuk simulasi pertandingan, setelah kedua tim yang akan
melakukkan simulasi telah terlihat pada monitor seperti yang ditujukkan pada
gambar 4.4, simulasi dapat dilakukkan dengan menekan tombol kick off (ctrl
+ k) pada soccer monitor atau soccerwindow. Pertandingan dilakukan dalam
komputer yang sama yaitu local server (local host). Waktu yang dibutuhkan
untuk simulasi pertandingan dalam satu babak adalah 3000 time cycle. Dalam
setiap satu babak pertandingan sepakbola biasanya