5 serta fungsi-fungsi yang mendukung kelas
tersebut saat menjalankan state yang sedang aktif.
Gambar 6 Diagram Metodologi Penelitian yang digunakan.
Perancangan
Tahap perancangan sistem ini mencakup dua hal berikut:
1 Perancangan Kelas-kelas Utama
Untuk memudahkan implementasi dengan menggunakan pemrograman berorientasi objek akan ditentukan kelas-kelas dari objek yang ada pada simulasi tersebut. Fungsi-fungsi yang ada pun disesuaikan dengan kebutuhan yang sebelumnya telah didefinisikan.
2 Perancangan Finite State Machine
Proses yang terjadi pada tahap ini yaitu merancang state machine dari agen kecerdasan buatan pada objek-objek yang ada agar sesuai dengan peraturan yang telah ditentukan. Mulai dari penentuan state-state hingga pergerakan objek saat kondisi state berubah.
Implementasi
Simulasi permainan ini akan diimplementasikan ke dalam bentuk aplikasi prototipe berdasarkan hasil analisa dan
perancangan yang telah diperoleh dari tahapan sebelumnya. Untuk ilustrasinya, dapat dilihat pada Gambar 7. Implementasi ini berupa pengkodean dengan menggunakan bahasa pemrograman C++.
Gambar 7 Ilustrasi pada tahap implementasi (Murray 2000).
Pengujian
Jika implementasi yang telah dilakukan belum menyelesaikan masalah yang ada, maka akan dilakukan pengujian untuk menyempurnakan kembali sistem tersebut hingga masalah yang ada telah terselesaikan. Pengujian sistem dilakukan menggunakan metode black-box. Pengujian ini bertujuan untuk mengetahui apakah state-state yang ada dalam sistem telah berjalan dan memeriksa error pada sistem.
HASIL DAN PEMBAHASAN Identifikasi Masalah
Tujuan dari permainan futsal adalah mencetak gol sebanyak-banyaknya karena tim yang skornya lebih tinggi lah yang akan memenangkan permainan. Pada kasus ini masalah yang harus diselesaikan adalah perilaku pemain-pemain dalam tim ketika mencoba mencapai tujuan tersebut. Jika dipandang dari sisi permainan futsal itu sendiri, masalah yang ada antara lain: pendefinisian batas dari lapangan dimana pemain dapat berinteraksi, pendefinisian peran dari pemain dalam tim (pemain lapangan, pemain bertahan, penjaga gawang), reaksi tiap pemain maupun tim jika berada pada kondisi tertentu, perubahan kondisi permainan sesuai dengan keputusan wasit, dan memperkirakan kejadian yang mungkin terjadi selanjutnya (menduga gerakan lawan).
Untuk simulasinya, masalah yang ada antara lain: merender permainan dalam bentuk aplikasi, menggerakkan pemain sesuai dengan aksi yang dilakukannya, dan mengubah kondisi
6 (state) pemain maupun tim sesuai perubahan
lingkungan di sekitarnya.
Sesuai dengan ruang lingkup penelitian ini, perancangan akan difokuskan pada implementasi metode FSM untuk pergerakan dasar pertandingan. Untuk permasalahan mengenai perubahan kondisi permainan sesuai dengan keputusan wasit jika terjadi pelanggaran atau pencatatan waktu, serta kebijakan pelatih dalam mengatur tim tidak akan dirancang karena bersifat subjektif. Subjektif yang dimaksud di sini adalah bergantung pada penglihatan wasit ataupun pelatih.
Analisis
a. Analisis Kelas
Beberapa objek yang berpengaruh pada olahraga futsal ini adalah:
• lapangan
• dua buah gawang • satu bola
• dua tim
• delapan pemain lapangan • dua penjaga gawang
Dari objek-objek tersebut dapat diidentifikasi kelas-kelas yang ada, yaitu:
• FutsalPitch
Merupakan kelas utama pada sistem yang menginstansiasi kelas-kelas lain yang dibutuhkan agar simulasi dapat dijalankan. • FutsalGoal
Kelas yang akan mendefinisikan kedua gawang pada FutsalPitch.
• FutsalBall
Kelas yang mendefinisikan bola yang digunakan saat simulasi berjalan.
• FutsalTeam
Kelas yang mendefinisikan tim-tim yang ada pada simulasi. Terdapat 2 tim yang akan dibuat, yaitu tim A yang daerahnya berada di sebelah kiri lapangan, dan tim B yang daerahnya berada di sebelah kanan lapangan.
• FutsalPlayer
Kelas ini mendefinisikan pemain dalam tim yang ada pada simulasi. Pemain-pemain ini lah yang akan menjadi agen kecerdasan buatan.
• FieldPlayer
Merupakan kelas turunan dari FutsalPlayer yang akan mendefinisikan pemain lapangan dalam tim.
• GoalKeeper
Sama halnya dengan FieldPlayer, kelas ini merupakan kelas turunan dari FutsalPlayer yang akan mendefinisikan penjaga gawang (kiper) dalam tim.
b. Analisis States
Pada simulasi ini states yang ada dapat dibedakan menjadi tiga bagian, yaitu states untuk tim, states untuk pemain lapangan, dan states untuk penjaga gawang. States yang dimiliki oleh tim dapat dilihat pada Tabel 1. Tabel 1 States untuk tim
Formasi
Dasar State Deskripsi
Kick Off KickOff State saat awal permainan dan pada saat memulai kembali permainan setelah terjadi gol. Menyerang Attack State saat tim sedang
menguasai bola dan melakukan penyerangan.
Bertahan Defense State saat tim sedang tidak menguasai bola dan bertahan dari serangan lawan. Serangan
Penuh
FullAttack State saat tim sedang melakukan tendangan sudut di daerah gawang lawan agar dapat menyerang sepenuhnya. Bertahan
Penuh FullDefense State saat tim lawan sedang melakukan tendangan sudut di daerah gawang agar dapat bertahan sepenuhnya.
Sesuai dengan gerakan dasar pemain pada olahraga futsal, dapat didefinisikan beberapa state yang dimiliki oleh pemain lapangan yang dapat dilihat pada Tabel 2.
Tabel 2 States untuk pemain lapangan Gerakan
Dasar State Deskripsi
Kembali ke formasi
BackTo Formation
State untuk menginstruksi pemain agar kembali ke formasi yang sedang dijalankan. Menunggu
instruksi
Idle State saat pemain tidak sedang mengontrol bola dan menunggu instruksi dari pemain lain. Mengejar
bola
Chase State saat pemain sedang mengejar bola yang dijalankan oleh pemain yang paling dekat dengan bola dan pemain bertahan saat daerah tim sedang diserang oleh lawan.
Menendang bola
Kick State saat pemain akan menendang bola, baik itu melakukan operan ataupun tendangan langsung ke gawang.
7 Menerima
bola
Receive State saat pemain akan menerima operan bola dari pemain lain.
Tendangan ke dalam
OutKick State saat pemain akan menendang bola kembali ke lapangan setelah lawan menendang bola keluar melewati garis samping.
Tendangan sudut
CornerKick State saat pemain melakukan tendangan sudut ketika lawan menendang bola keluar melewati garis gawang daerah lawan tersebut.
Menggiring bola
Dribble State saat pemain sedang menggiring bola. Mendukung
penyerang Support State yang mendukung penyerang saat pemain mencari posisi pada saat tim sedang menyerang daerah musuh.
- GlobalFP State ini merupakan state global yang akan dieksekusi terlebih dahulu sebelum mengeksekusi state yang dimiliki FieldPlayer yang bersangkutan.
Untuk states kiper dapat dilihat pada Tabel 3. Tabel 3 States untuk kiper
Gerakan Dasar State Deskripsi
Kembali ke gawang
BackTo Goal
State saat penjaga gawang keluar dari garis batas gawang dan akan kembali menjaga gawangnya. Melindungi
gawang
Cover Goal
State saat penjaga gawang sedang melindungi gawang. Mencegat
bola
Intercept State yang dijalankan ketika bola memasuki jangkauan penjaga gawang untuk menghentikan atau mencegat bola.
Mengembali-kan bola
Bring BallBack
State untuk mengembalikan bola kembali ke lapangan setelah sebelumnya bola dihentikan oleh penjaga gawang, atau saat pemain lawan menendang bola melewati garis gawang di daerah penjaga gawang.
- Global
GK State global dari penjaga gawang, yang akan dieksekusi terlebih dahulu sebelum mengeksekusi state yang dimilikinya.
c. Pembagian Area Menjadi Subarea
Untuk mengidentifikasi formasi atau posisi pemain ketika permainan akan dimulai atau pada saat sedang berlangsung, akan dilakukan pembagian area pada lapangan futsal menjadi beberapa subarea seperti yang terlihat pada Gambar 8.
Gambar 8 Pembagian area menjadi beberapa subarea pada lapangan futsal. d. Estimasi Posisi Bola
Untuk menentukan posisi bola saat bergerak, dibutuhkan fungsi yang dapat mengestimasi posisi bola setelah dikenai aksi. Ilustrasinya dapat dilihat pada Gambar 9. Untuk menghasilkan estimasi yang lebih nyata, dibutuhkan suatu parameter gesekan dengan permukaan lapangan agar bola yang sedang bergerak kecepatannya dapat berkurang perlahan-lahan. Hal ini dapat dilakukan dengan memberikan kecepatan negatif atau berlawanan dengan kecepatan bola saat bergerak sehingga untuk menentukan posisi bola selanjutnya setelah t waktu dapat menggunakan rumus berikut:
∆𝑥 = 𝑢∆𝑡 + 𝑎 ∆𝑡 ,
dengan ∆𝑥 adalah jarak yang ditempuh u adalah kecepatan bola saat ditendang, dan a adalah pengurangan kecepatan karena pergeseran.
Gambar 9 Estimasi posisi bola setelah dikenai aksi.
Selain itu juga diperlukan penghitungan waktu yang diperlukan bola menuju target sesuai dengan jarak yang ditempuhnya sehingga jika dilakukan tendangan dengan tenaga yang relatif kecil sedangkan target tendangan berada di titik yang jauh dari pemain, dapat dihitung bahwa bola tidak akan dapat menempuh jarak tersebut. Rumus yang digunakan yaitu:
𝑣 = 𝑢 + 2𝑎∆𝑥 , ∆𝑡 = ,
dengan 𝑣 adalah kecepatan bola saat mencapai tujuan, u adalah kecepatan bola saat ditendang, a adalah pengurangan kecepatan karena pergeseran, ∆𝑥 adalah jarak yang ditempuh, dan ∆𝑡 adalah interval waktu (Buckland 2005).
8 e. Pergerakan Pemain
Seluruh pemain hampir setiap saat harus melihat dan mengikuti posisi bola. Pergerakan yang dilakukan bergantung pada formasi tim dan peran pemain dalam tim tersebut, apakah menjadi penyerang, pemain bertahan, atau penjaga gawang.
Pada saat tim sedang melakukan penyerangan, pemain penyerang akan berusaha mencetak angka dengan memasuki daerah musuh, sedangkan pemain bertahan akan menjaga daerah timnya dari serangan lawan. Pada saat tim sedang bertahan, seluruh pemain akan kembali ke posisi awal untuk menjaga daerah timnya. Berbeda dengan pemain lapangan, penjaga gawang akan tetap berada di posisinya baik tim dalam formasi menyerang ataupun bertahan.
Setiap aksi yang dilakukan oleh pemain dalam simulasi ini akan mempengaruhi pergerakan pemain lainnya. Baik itu pemain dalam satu tim maupun pemain lawan. Aksi tersebut direpresentasikan dalam bentuk state. Transisi perubahan aksi tersebut akan dilakukan oleh state machine.
f. Sustain Dot Analyzer
Jika penyerang memasuki daerah musuh, maka akan dicari pemain lain yang akan menjadi pendukung penyerang tersebut. Pencarian ini dilakukan dengan membagi daerah musuh tersebut menjadi titik-titik, dan menghitung nilai setiap titik tersebut berdasarkan parameter tertentu. Penghitungan ini akan dinamakan Sustain Dot Analyzer. Parameter yang akan dihitung antara lain: • Keamanan titik jika pemain yang sedang
mengontrol bola melakukan operan ke titik tersebut
• Kemungkinan menendang bola langsung menuju gawang untuk mencetak angka dari titik tersebut
• Menghitung jarak titik tersebut dari pemain yang sedang mengontrol bola, semakin jauh nilainya akan semakin tinggi. Namun, jika melewati batas jarak optimal yang telah ditentukan, titik tersebut tidak akan diberi nilai.
Nilai akhir pada tiap titik merupakan jumlah nilai dari tiap parameter. Jika nilai akhir tersebut merupakan nilai tertinggi, maka pemain
yang akan mendukung penyerang akan bergerak ke titik tersebut. Untuk ilustrasi dari Sustain Dot Analyzer ini dapat dilihat pada Gambar 10.
Gambar 10 Ilustrasi dari Sustain Dot Analyzer.
Perancangan
Dari hasil analisis kelas yang telah dilakukan sebelumnya, dapat dirancang relasi antar kelas tersebut dengan menggunakan diagram kelas. Karena modul simulasi ini dapat dibagi menjadi dua bagian yang terpisah, maka tiap bagian tersebut akan direpresentasikan dalam bentuk package-package.
a. Perancangan Kelas-kelas Utama
Package FutsalClass membutuhkan beberapa kelas tambahan untuk membantu perancangan simulasi permainan olahraga futsal ini. Kelas-kelas tambahan tersebut diambil dari sample code yang terdapat pada buku Programming Game AI by Example yang ditulis oleh Mat Buckland. Kelas-kelas tambahan ini direpresentasikan dalam package Common. Diagram kelas dari package FutsalClass ini dapat dilihat pada Lampiran 1.
Pada saat pergantian state, objek-objek dapat bergerak sesuai dengan pesan yang dikirimkan. Dalam simulasi ini FutsalPlayer dan FutsalBall merupakan objek yang bergerak, sehingga didefinisikan sebagai turunan dari kelas MovingEntity yang membantu dalam menentukan koordinat lokal dari objek tersebut dan merotasi arah dari pemain agar sesuai dengan tujuan gerakannya. Selain itu FutsalPlayer memiliki hubungan composition dengan kelas SteeringBehaviors yang digunakan untuk menggerakkan objek tersebut sesuai instruksi yang dikirimkan. Walaupun FutsalBall merupakan objek yang bergerak, tetapi kelas ini tidak memerlukan SteeringBehaviors karena gerakannya hanya dipengaruhi oleh pemain (tidak dapat bergerak sendiri). FutsalPlayer juga merupakan turunan dari kelas AutoList dimana kelas ini berfungsi untuk membuat sebuah list dari beberapa objek yang sama secara otomatis.
9 b. Perancangan Finite State Machine
Package FSM ini akan dibuat sesuai dengan struktur State Design Pattern dengan mendefinisikan aspek-aspek yang terdapat di dalam simulasi. Diagram kelas dari package FSM ini dapat dilihat pada Lampiran 2.
1 State
Kelas ini merupakan kelas abstrak yang berfungsi sebagai interface bagi state-state yang akan diidentifikasi. Sehingga setiap state yang ada dapat mengimplementasi kelas ini sesuai dengan aksi yang akan dilakukan saat memasuki state, saat di dalam state, saat keluar dari state, dan saat menerima pesan.
2 StateMachine
Fungsi utama dari state machine adalah memisahkan antara kelas state dengan kelas yang mengimplementasi transisi logika. Kelas inilah yang digunakan oleh objek untuk bertransisi agar dapat berinteraksi dengan kelas state yang dimiliki objek tersebut.
3 FutsalTeamStates
Merupakan kumpulan kelas-kelas state untuk mendefinisikan aksi tiap FutsalPlayer dalam satu tim pada saat berganti formasi. State-state yang ada di sini merupakan state yang dimiliki oleh tim. Aliran state pada FutsalTeamStates diilustrasikan dalam bentuk diagram state pada Lampiran 3.
4 FieldPlayerStates
Merupakan kumpulan kelas-kelas state yang dimiliki oleh pemain lapangan (FieldPlayer). Diagram state dari FieldPlayerStates dapat dilihat pada Lampiran 4.
5 GoalKeeperStates
Merupakan kelas-kelas state yang dimiliki oleh kiper (GoalKeeper). Diagram state dari GoalKeeperStates dapat dilihat pada Lampiran 5.
Kelas-kelas di atas dapat didefinisikan sebagai aspek-aspek yang terdapat di dalam struktur State design pattern. Dimulai dari StateMachine yang berfungsi sama halnya dengan aspek Context, State yang berfungsi sama halnya dengan aspek State, serta state-state yang terdapat pada FutsalTeamStates, FieldPlayerStates, dan GoalKeeperStates yang berfungsi sama dengan aspek ConcreteState.
Implementasi
Lingkungan pengembangan simulasi ini menggunakan bahasa pemrograman C++ dengan Microsoft Visual Studio 2008 sebagai kompilator serta seperti yang sebelumnya telah disebutkan, bahwa dalam perancangan simulasi ini juga akan digunakan library tambahan dari buku Programming Game AI by Example yang ditulis oleh Mat Buckland.
Simulasi permainan olahraga futsal ini akan diimplementasikan dalam bentuk Windows Application dengan nama Futsal Agent SimulaTion (FAST). Pengguna bisa melihat jalannya simulasi dan memilih menu yang tersedia untuk mengaktifkan beberapa pilihan yang membantu pengguna dalam melihat aliran perubahan state dari tiap objek yang ada. a. Implementasi Kelas-kelas Utama
Lapangan akan dienkapsulasi pada kelas FutsalPitch yang dimana instansiasi dari kelas ini akan dilakukan saat aplikasi dijalankan. Pada kelas inilah terdapat fungsi untuk membagi area lapangan menjadi beberapa subarea agar objek mengetahui dimana mereka berada saat menjalankan formasi tertentu. Pada simulasi ini area dibagi secara horizontal menjadi 5 bagian dan secara vertikal menjadi 10 bagian, sehingga total subarea yang terbentuk ada 50. Di awal simulasi setiap objek akan diposisikan pada suatu subarea tertentu, yang kemudian akan berubah sesuai dengan formasi yang sedang dijalankan. Kelas ini selanjutnya akan menginstansiasi FutsalBall, FutsalGoal, dan FutsalTeam.
Hal yang diperhatikan saat mengimplemen-tasi FutsalGoal hanyalah identifikasi titik tepi kiri dan kanan dari gawang sehingga jika bola melewati garis yang menghubungkan kedua titik tersebut, akan tercipta gol.
FutsalTeam akan menginstansiasi setiap pemain dalam tim dan pointer-pointer yang mengacu pada lapangan, tim lawan, gawang tim, dan gawang lawan. Selain itu juga terdapat pointer yang mengacu kepada pemain-pemain penting yang terdapat dalam tim, yaitu:
• Control Player
Pemain yang sedang membawa bola yang berguna juga sebagai indikasi bahwa timnya sedang menguasai bola.
• Support Player
Pemain yang mendukung penyerang untuk mencetak gol.
10 • Receive Player
Penerima bola yang dimana hanya akan ada satu penerima bola saja pada satu waktu. • Closest To Ball Player
Pemain yang paling dekat dengan bola (Buckland 2005).
Selain itu dibuat beberapa fungsi yang dapat mendukung state-state saat dieksekusi. Fungsi-fungsi tersebut antara lain:
• Mengganti state semua pemain lapangan untuk kembali ke posisi awal (sering digunakan pada saat penjaga gawang sedang menguasai bola)
• Mengecek apakah terdapat lawan dalam radius posisi pemain saat ini
• Memeriksa apakah operan dapat dilakukan • Memeriksa beberapa strategi operan yang
mungkin dapat dilakukan dan menentukan penerima operan terbaik yang berada pada jangkauan operan
• Mengecek apakah operan yang akan dilakukan bebas dari lawan
• Mengecek apakah pemain dapat melakukan tendangan ke gawang
Selain itu juga dibuat fungsi pendukung yang akan dienkapsulasi bersama pemain dalam tim, yaitu pada kelas FutsalPlayer. Fungsi-fungsi tersebut antara lain:
• Mengecek apakah pemain berada pada areanya
• Mengecek apakah suatu objek berada di depan pemain
• Mengecek apakah ada lawan yang mengancam posisi pemain
• Mengecek apakah pemain berada di daerah gawang lawan
• Mengecek apakah pemain merupakan pemain yang paling dekat dengan bola
• Memberitahukan support player untuk mendukung pemain ketika sedang menyerang
• Mengecek apakah bola terdapat pada jangkauan penjaga gawang
• Mengecek apakah bola berada pada jangkauan tendangan
• Mengecek apakah bola terdapat pada jangkauan penerima bola
• Menghitung jarak ke gawang tim • Menghitung jarak ke gawang lawan
Pada FutsalPlayer ini juga terdapat enumerasi yang mendefinisikan peranan pemain dalam tim sehingga dapat menentukan apakah pemain akan menjadi penyerang (attacker), pemain bertahan (defender), atau kiper
(goalkeeper). Untuk penyerang dan pemain bertahan akan diinisialisasi sebagai FieldPlayer, dan kiper sebagai GoalKeeper, dimana keduanya merupakan turunan dari FutsalPlayer. b. Implementasi Finite State Machine
Kelas State hanya memuat fungsi-fungsi abstrak yang kemudian akan diturunkan ke setiap state-state yang ada agar dapat diimplementasi sesuai dengan perilaku dari state-state tersebut. Kode dari kelas State tersebut adalah sebagai berikut:
template <class data_model> class State
{ public:
virtual ~State(){};
virtual void Enter(data_model*)=0; virtual void Execute(data_model*)= 0; virtual void Exit(data_model*)=0; virtual bool ReceiveMessage(data_model*, const Telegram&)=0;
};
Kelas State Machine pada sistem ini memiliki atribut yang menyimpan objek yang diacu, kondisi state saat ini, kondisi state sebelumnya, dan kondisi state global. Pada saat memperbaharui state, state global akan dieksekusi terlebih dahulu sebelum state saat ini. Hal ini diperlukan untuk memberikan kondisi yang sama pada semua pemain, misalnya pada saat bola keluar garis lapangan dimana setiap pemain harus dapat mengetahui peristiwa tersebut. Penggalan kode dari state machine ini adalah sebagai berikut:
template <class data_model> class StateMachine { private: data_model* sm_holder; State<data_model>* sm_current; State<data_model>* sm_previous; State<data_model>* sm_global; … void ChangeState(State<data_model>* NewState){ sm_previous = sm_current; sm_current->Exit(sm_holder); sm_current = NewState; sm_current->Enter(sm_holder); } void Update()const{ if(sm_global) sm_global->Execute(sm_holder); if(sm_current) sm_current->Execute(sm_holder); } … };
Setelah mengimplementasi kelas State dan State Machine, kelas state-state yang berupa concrete state akan dibuat sesuai dengan perancangan yang sebelumnya telah dijelaskan.
pe me pe sa 7, a. me 11 ya da ma De ya me se sta 12 se sta Selanjutnya erubahan s engimplemen emain ataupun aat dijalankan 8 dan 9. Memulai Pe Aliran stat emulai perma 1. Gambar 11 D m Setiap tim m ang sama yai alam tim tela asing, maka efense. Pada ang akan mel engejar bola d bagai tanda p ate pada pema 2. Tim dari telah permai ate-nya menja Gambar 12 D melaku akan d state yang ntasi gerakan n tim. Untuk dapat dilihat ermainan te dari Futs ainan dapat di Diagram Futsa memulai perma memulai perm tu KickOff. J ah berada di state akan kondisi ini, akukan tenda dan mengoper permainan tel ain ini dapat d pemain yang inan dimulai adi Attack. Diagram FieldP ukan tendang dijelaskan g terjadi n dasar dari k tampilan sim t pada Lampi salTeamStates ilihat pada G alTeamStates s ainan. mainan dengan Jika semua p posisinya m berubah m pemain dalam angan kick off
r ke pemain la lah dimulai. A dilihat pada G g mengontrol i akan men dPlayerStates s an kick off aliran saat i tiap mulasi iran 6, s saat ambar saat n state emain masing-menjadi m tim ff akan ainnya Aliran ambar l bola ngubah saat b. pe da se ap de op da pe pe te R m c. pa te te m pe de st se at lin d. Ba di m te pe m da pe te . Mengoper B Aliran stat emain melaku alam satu tim
Gambar 13 D Sebelum m edang meng pakah operan engan mempe peran, dan pos apat dilakukan esan kepada enerima opera ersebut akan eceive dan m masuk ke dalam Mengejar B Mengejar b ada saat tim ti ersebut akan erdekat denga menjadi Chas emain lain da engan bola, m tate-nya me ebelumnya ak tau BackToFo ngkungannya. . Kembali ke Jika pemai ackToFormat iharuskan, m menjadi Idle. J
ersebut tim tid emain merupa maka state-nya Pada saat p an pemain te emain bertaha ersebut sedang Bola te dari Fiel ukan operan dapat dilihat p Diagram Field mengoper bo melakukan op ontrol bola n dapat dila ertimbangkan sisi penerima n, pemain ini pemain yang an. Pemain ya n merubah mengejar bola m jangkauan p Bola
ola yang dima idak sedang m menentukan p an bola lalu
e. Jika sela alam satu tim maka pemain t
enjadi Chas kan diubah sta
ormation sesu .
e Posisi Awal in yang seda tion telah ber maka state-n
Jika pada saa dak sedang m akan yang te a akan diubah pemain telah b
ersebut memi an, akan dicek g diserang ole ldPlayerStates ke pemain l pada Gambar dPlayerStates ola. peran, pemain akan mem akukan atau posisi musuh operan. Jika o i akan mengir g menjadi ka ang menerima state-nya m a yang diope penerima bola aksud di sini menguasai bol pemain mana merubah sta anjutnya ditem m yang lebih ersebut akan d se dan p ate-nya menja uai dengan k ang dalam k rada di posisi nya akan d at kembali ke menguasai bo rdekat dengan menjadi Chas berada di pos iliki peran s k apakah daer eh lawan atau 11 s saat ainnya 13. saat n yang meriksa tidak h, jarak operan rimkan andidat a pesan menjadi er saat a. adalah a. Tim a yang ate-nya mukan dekat diubah pemain di Idle kondisi kondisi i yang diubah posisi la dan n bola se. sisinya sebagai rah tim u tidak.
Jik sta law ak Ga e. ten Ga ya ap de law dil ten me ten ter pe f. ten ara ya sa Pe ka ya, maka ate-nya menj wan. Aliran s kan kembali k ambar 14. Gambar 14 D Menendang Aliran sta ndangan ke ambar 15. Gambar 15 D menenda Sebelum m ang sedang m pakah tendang engan mempe wan dan pos lakukan, pe ndangan lalu enjadi pend ndangan berh rsebut aka enyerangan. Menggiring Pemain men ndangan kecil ah dari pema ang telah dite aat bola berad emain akan t
a pemain ters adi Chase un state dari Fie ke posisi awal Diagram FieldP mengoper bo Bola ke Gaw ate saat pe gawang da Diagram FieldP ang bola ke ga melakukan te mengontrol bo
gan dapat dil ertimbangkan sisi kiper. Jik emain ini u mencari pe dukung peny hasil ditepis an langsun Bola nggiring bola l ke depan pem ain tersebut l endang dan m da dalam jan terus menggi sebut akan d ntuk menghen eldPlayerState l dapat dilihat dPlayerStates s ola. wang Lawan emain mela apat dilihat dPlayerStates s awang lawan. endangan, p la akan mem lakukan atau jarak ke ga ka tendangan akan mela emain yang yerang agar oleh kiper p ng melanj dengan mela main sesuai d lalu mengejar menendangny ngkauan tenda iring bola ke diubah ntikan es saat t pada saat akukan pada saat emain meriksa tidak awang dapat akukan dapat jika emain jutkan akukan dengan r bola ya lagi angan. e arah ga la m A bo g. pe da m fu di m m pa R m op op da ke ny awang lawan awan sambil mendukungnya Aliran state s ola dapat dilih
Gambar 16 D . Mendukung Aliran state emain lain d aerah lawan d Gambar 17 D akan men Pemain yan mencari posisi ungsi Sustain itemukan, m mengirim pesa membawa bo adanya dan eceive. Pema mengecek apa peran ke pem peran akan lan Pada saat b ari pemain p embali ke pos ya menjadi Ba selama tidak mencari pe a dalam melak saat pemain hat pada Gamb
Diagram Field menggiring b g Penyerang e saat pemain dalam tim s dapat dilihat pa Diagram Field ndukung pema ng mendukun yang tepat d nDotAnalyzer. maka pemai an kepada pe ola agar m mengubah ain yang men akah memang main tersebut
ngsung dilaku bola tidak lag pendukung, m sisi awal deng ackToFormati k ada ancama emain yang kukan penyer sedang meng bar 16. dPlayerStates bola. n akan mend saat menyeran ada Gambar 1 dPlayerStates ain penyerang ng penyerang dengan menja Jika posisi in tersebut emain yang s memberikan o state-nya m nerima pesan g dapat dila atau tidak. Ji ukan. gi dikuasai ol maka pemain gan mengubah ion. 12 an dari dapat rangan. ggiring saat dukung ng ke 7. saat g g akan lankan telah akan sedang operan menjadi n akan akukan ika ya, eh tim n akan h