Automatisasi perintah suara sebagai kendali formasi pada permainan futsal menggunakan codebook

AUTOMATISASI PERINTAH SUARA SEBAGAI KENDALI
FORMASI PADA PERMAINAN FUTSAL MENGGUNAKAN
CODEBOOK

ACHMAD RIFAI

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2011

 

AUTOMATISASI PERINTAH SUARA SEBAGAI KENDALI
FORMASI PADA PERMAINAN FUTSAL MENGGUNAKAN
CODEBOOK

ACHMAD RIFAI

Skripsi

Skripsi sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2011

 

ABSTRACT
ACHMAD RIFAI. Automation of Voice Command for Formation Control of Futsal Game Using
Codebook. Supervised by AGUS BUONO.
Game development today is very advanced. Game Industry has been developing games in
terms of graphics, storyline, and artificial intelligence. Artificial intelligence existing in current
games development are getting smarter. The problem is, most game consoles are still using
controllers such as joystick, keyboards and the other tools. In this research, has been developed a
futsal game as artificial intelligence simulation, has been developed a futsal game as artificial

intelligence simulation, by implementing some steering behaviors and finite state machine for
modeling their movement. This futsal game controlled by voice command for the formation
transition.
The artificial intelligence of this futsal games are implemented using object oriented
programming language. They consist of 4 steering behaviors and 7 field player states for their
movement and 4 goal keeper states. Voice command are implemented using mel frequency
cepstrum coefficients (MFCC) as feature extraction and modeling codebook as pattern recognition.
The best frames for voice command system is 125 and 256 with value of K is 32. The accuracy of
integration of two system (artificial intelligence system and voice command system) is testing of
frame 128 for offence formation is 92,75% and for defence formation is 73%. Testing of frame
256 for offence formation is 93% and for defence formation is 73,5%

Keywords: AI, Futsal, Codebook, MFCC, Agent, Game.


 

Judul Penelitian : Automatisasi Perintah Suara Sebagai Kendali Formasi Pada Permainan Futsal
Menggunakan Codebook
Nama

: Achmad Rifai
NRP
: G64070104

 
 
 
 
 
Menyetujui:
Pembimbing

Dr. Ir. Agus Buono, M.Si, M.Kom.
NIP. 19660702 199302 1 001

Mengetahui:
Ketua Departeman Ilmu Komputer

Dr. Ir. Sri Nurdiati, M.Sc.
NIP 19601126 198601 2 001


 
 
 
 
Tanggal Lulus:

RIWAYAT HIDUP
Penulis dilahirkan di Bekasi pada tanggal 26 Agustus 1989 dari pasangan H. Lili Rochili dan
Hj. Eneng Hafsah. Penulis merupakan anak keempat dari empat bersaudara.
Tahun 2007 penulis lulus dari SMA Bani Saleh Bekasi dan pada tahun yang sama, penulis
diterima Institut Pertanian Bogor (IPB) melalui jalur Seleksi Penerimaan Mahasiswa Baru
(SPMB). Penulis masuk S1 Ilmu Komputer. Departemen Ilmu Komputer, Fakultas Matematika
dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
Pada bulan Juli-Agustus 2010 penulis berkesempatan melaksanakan kegiatan praktik kerja
lapangan di PT. Interlab Sentra Solution Indonesia (ISSI) Depok. Selama menjadi mahasiswa,
penulis juga pernah menjadi asisten praktikum struktur data, organisasi komputer dan
pengembangan sistem berorientasi objek untuk mahasiswa Ilmu Komputer, FMIPA IPB.



 

PRAKATA
Puji dan syukur penulis panjatkan kehadirat Allah SWT yang senantiasa memberikan rahmat
sehat, iman dan islam sehingga penulis dapat menyelesaikan tulisan ini dengan judul:
Automatisasi Perintah Suara Untuk Kendali Formasi Pada Permainan Futsal Menggunakan
Codebook. Shalawat serta salam senantiasa tercurahkan kepada nabi besar Muhammad SAW yang
telah memberikan penerangan dari zaman jahiliyah sampai pada zaman yang terang benderang
seperti sekarang ini.
Penulis mengucapkan terima kasih yang sebesar-besarnya kepada Bapak Dr. Ir. Agus Buono,
M.Si, M.Kom selaku pembimbing atas segala saran, kritik, motivasi dan bimbinganya selama
penelitian dan penyusunan tulisan ini.. Ucapan terima kasih yang selalu penulis ucapkan sampai
akhir hayat nanti kepada kedua orang tua atas nasihat, doa dan bimbingannya. Penulis juga
mengucapkan terima kasih kepada Ahmad Fauzy sebagai kakak dan sekaligus memberikan
bimbingan tentang kuliah dan akademik. Penulis juga mengucapkan terima kasih kepada temanteman Ilmu Komputer 44, terutama kepada anak warkop. Terima kasih juga kepada Nicholas
Bertoa yang telah membantu penulis selama pengerjaan AI. Semoga tulisan ini bermanfaat dan
dapat menambah wawasan ilmu pengetahuan bagi penulis khususnya dan pembaca umumnya.
Bogor, Oktober 2011

Achmad Rifai


. DAFTAR ISI
Halaman
DAFTAR GAMBAR ......................................................................................................................... viii
DAFTAR TABEL .............................................................................................................................. viii
DAFTAR LAMPIRAN ...................................................................................................................... viii
PENDAHULUAN ................................................................................................................................ 1
Latar Belakang ................................................................................................................................. 1
Tujuan Penelitian ............................................................................................................................. 1
Ruang Lingkup ............................................................................................................................... 1
Manfaat Penelitian ........................................................................................................................... 1
TINJAUAN PUSTAKA........................................................................................................................ 1
Artificial Intelligence (AI) ............................................................................................................... 1
Steering Behavior ............................................................................................................................ 1
Ekstraksi Ciri Sinyal Suara .............................................................................................................. 2
Codebook ......................................................................................................................................... 3
Speech Recognition ......................................................................................................................... 4
Finite State Machine (FSM) ............................................................................................................ 4
Pemrograman Berorientasi Objek .................................................................................................... 4
Digitasi Sinyal ................................................................................................................................. 4

Automatic Speech Recognition (ASR) ............................................................................................. 4
METODE PENELITIAN ...................................................................................................................... 4
Kerangka Pemikiran ........................................................................................................................ 4
Studi Literatur ................................................................................................................................. 4 
Rumusan Masalah ............................................................................................................................ 4
Pengembangan Sistem Pengenalan Suara ....................................................................................... 5
Pengembangan Sistem AI ................................................................................................................ 5
Integrasi ........................................................................................................................................... 6
Uji Sistem Automatisassi Perintah Suara ........................................................................................ 7
HASIL DAN PEMBAHASAN ............................................................................................................. 7
Pengembangan Sistem Pengenalan Suara ........................................................................................ 7
Pengenmbangan Sistem AI .............................................................................................................. 9
Integrasi ......................................................................................................................................... 13
Hasil Uji Sistem Automatisasi Perintah Suara ............................................................................... 13
KESIMPULAN DAN SARAN ........................................................................................................... 14
Kesimpulan .................................................................................................................................... 14
Saran .............................................................................................................................................. 15
DAFTAR PUSTAKA ......................................................................................................................... 15

vii 

 

DAFTAR GAMBAR
Halaman
1 Ilustrasi steering behavior seek................................................................................................... 1
2 Ilustrasi steering behavior flee .................................................................................................... 2
3 Ilustrasi steering behavior arrive ................................................................................................ 2
4 Ilustrasi steering behavior pursuit ............................................................................................. 2
5 Diagram proses MFCC .............................................................................................................. 2
6 Ilustrasi prinsip dasar penggunaan codebook ............................................................................. 3
7 Alur pengembangan sistem automatisasi perintah suara pada AI .............................................. 5
8 Grafik akurasi perintah suara untuk setiap nilai frame. ............................................................. 7
9 Akurasi setiap nilai k pada frame 128. ........................................................................................ 8
10 Akurasi setiap nilai k pada frame 256 ......................................................................................... 8
11 Akurasi setiap nilai k pada frame 512 ......................................................................................... 9
12 Rancangan objek sistem AI futsal............................................................................................... 9
13 Region pada lapangan futsal .................................................................................................... 10
14 Hasil desain steering behavior seek. ......................................................................................... 10
15 Hasil desain steering behavior flee. .......................................................................................... 10
16 Hasil desain steering behavior arrive. ...................................................................................... 10

17 Hasil desain steering behavior pursuit...................................................................................... 11
18 Diagram state pemain ............................................................................................................... 11
19 Diagram state keeper ................................................................................................................ 12
20 Grafik akurasi pergerakan state formasi offence pada frame 128 ............................................. 13
21 Grafik akurasi pergerakan state formasi defence pada frame 128 ........................................... 14
22 Grafik akurasi pergerakan state formasi offence pada frame 256 ............................................ 14
23 Grafik akurasi pergerakan state formasi defence pada frame 256 ........................................... 14

DAFTAR TABEL
Halaman
1
2
3
4
5
6
7
8

Rataan nilai akurasi perintah suara pada frame 128................................................................... 8

Rataan nilai akurasi perintah suara pada frame 256................................................................... 8
Rataan nilai akurasi perintah suara pada frame 512................................................................... 9
Rataan nilai akurasi dengan input suara secara langsung .......................................................... 9
Daftar state pemain dan steering behavior-nya ...................................................................... 11
Penjelasan inisialisasi trigger state pemain ............................................................................ 11
Daftar state keeper dan steering behavior-nya ...................................................................... 12
Hasil pengujian kesesuaian state tim  ...................................................................................... 13

DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
6
7

Hasil visual rancangan sistem AI ............................................................................................ 17
Daftar state tim, formasi, dan regionnya.................................................................................. 17

Desain diagram class ............................................................................................................... 18
Hasil pencatatan kesesuaian state pemain .............................................................................. 20
Hasil pencatatan kesesuaian state keeper................................................................................. 21
Daftar perintah suara untuk formasi offence ............................................................................ 23
Daftar perintah suara untuk formasi defence ........................................................................... 23

viii 
 

PENDAHULUAN

2.

Latar Belakang
Perkembangan teknologi pada masa
sekarang ini sudah sangat pesat salah satu
dalam bidang automatisasi. Automatisasi
adalah sebuah proses untuk menjadikan suatu
pekerjaan lebih mudah dengan bantuan
komputer. Automatisasi sudah dikembangkan
sejak komputer pertama diciptakan salah
satunya adalah automatisasi perintah suara.
Sudah
banyak
aplikasi
yang
mengimplementasikan perintah suara sebagai
kendali untuk mengerjakan sesuatu. Walaupun
aplikasi automatisasi perintah suara sudah
banyak dikembangkan tetapi jarang ada yang
mengembangkan automatisasi perintah suara
pada sebuah game. Game yang ada sekarang
ini masih menggunakan alat kendali seperti
joy stick, keyboard, mouse dan alat kendali
lainnya. Padahal game adalah objek yang
sangat mungkin untuk mengaplikasikan
automatisasi perintah suara.
Beberapa konsol game yang sudah
mengembangkan
automatisasi
adalah
Nintendo Wii dengan automatisasi pengenalan
gerakan benda (tongkat) lalu Xbox 360 kinect
dengan automatisasi gerakan tangan.
Pada penelitian ini akan dikembangkan
sebuah aplikasi automatisasi perintah suara
pada game futsal. Ide dasarnya adalah seorang
pelatih. Pelatih pada permainan futsal, sepak
bola atau basket dapat memberikan perintah
kepada para pemainnya yang bertujuan untuk
memenangkan pertandingan. Sering kali
seorang pelatih berteriak di pinggir lapangan
pada saat memberikan perintah. Sama halnya
dengan sistem ini, perintah dapat diberikan
langsung melalui suara agar dapat seperti
seorang pelatih di pinggir lapangan.

3.
4.

Permainan tidak mengikuti peraturan
FIFA, yaitu pelanggaran, out, tendangan
bebas, penalty, dan tendangan penjuru.
Tidak melibatkan wasit dan waktu.
Perintah suara hanya untuk merubah
formasi.

TINJAUAN PUSTAKA
Artificial Intelligence (AI)
Artificial intelligence (AI) adalah ilmu
tentang bagaimana membuat computer
melakukan sesuatu, dimana pada sewaktuwaktu manusia dapat melakukannya lebih
baik, karena AI hanya diciptakan untuk
menyerupai
manusia
bukan
untuk
menciptakan manusia baru (Rich & Knight
1991).
Steering Behavior
Menurut Buckland (2005), steering
behavior adalah pergerakan agent yang mana
pada sewaktu-waktu agent tersebut akan
melakukan improvisasi tertentu terhadap
pergerakannya tergantung pada kondisi.
Steering behavior yang umumnya dipakai
untuk memodelkan agent yaitu:
1.

Steering behavior seek

Prinsip dasar steering behavior seek adalah
agent bergerak lurus ke arah target. Steering
behavior seek adalah steering behavior yang
paling baku untuk setiap pemodelan agent
karena
memang
behavior-nya
hanya
berpindah posisi dari posisi satu ke posisi lain
dengan lurus. Ilustrasi steering behavior dapat
dilihat pada Gambar 1.

Tujuan Penelitian
Tujuan penelitian ini adalah untuk
mengimplementasikan state pada agent,
mengimplementasikan steering behavior
sederhana pada agent dan memodelkan fitur
automatisasi perintah suara pada sebuah
game.
Ruang Lingkup Penelitian
Adapun ruang lingkup dari penelitian ini
adalah :
1.

Agent yang dimodelkan hanya meliputi
pergerakan agent, komunikasi antar
agent dan state agent.

Gambar 1 Ilustrasi steering behavior seek.
2.

Steering behavior flee

Prinsip dasar steering behavior flee adalah
agent bergerak lurus dari target satu ke target
yang lain dengan maksud menghindari target
satu. Ilustrasi steering behavior flee dapat
dilihat pada Gambar 2. Pada Gambar 2 terlihat


 

ada dua targget, agent akaan menghindarri target
1 menuju tarrget 2.

Gambar 2 Ilustrasi steerring behavior flee.
3.

Steeringg behavior arrrive

Prinsip dasar steerinng behavior arrive
adalah ageent bergerakk mendekati target
dengan perggerakan yang tidak lurus. Berbeda
B
dengan steeering behavioor seek, padaa arrive
ditambahkann
sedikkit
perlaambatan
(deceleratioon) saat menddekati target. Ilustrasi
I
steering behavior arrivee dapat dilihat pada
Gambar 3. Pada Gambbar 3 terdapaat garis
putus-putus yang mengggambarkan adanya
perlambatann (deceleratioon) pada perrgerakan
agent, dengan kata laain, agent bergerak
b
dengan lembbut ke arah tarrget.

pergerakannyya. Sedangkaan pada Ageent X
tidak terdapatt perlambatan.

Gambar 4 Iluustrasi steeringg behavior purrsuit.
Ekstraksi Ciiri Sinyal Suaara
Ekstraksi ciri dilakukann untuk menen
ntukan
unakan
satu nilai ataau vektor yanng dapat digu
sebagai penciiri objek/indivvidu. Mel Freq
quency
Cepstral Cooefficients (M
MFCC) meru
upakan
salah satu tekknik yang dappat digunakan
n untuk
ekstraksi cirii suara. Tekn
knik ini meru
upakan
teknik yang umumnya dippakai dan meemiliki
kinerja palingg baik.
Cara keerja MFCC didasarkan atas
pendengaran manusia. Prroses MFCC dapat
G
5.
dilihat pada Gambar

Gambar 5 Diagram prosess MFCC (Do 1994).
Tahapan-tahaapan yang dilakukan
MFCC (Do 1994) adalah:
Gambar 3 Ilustrasi steerring behavior arrive.
4.

Steeringg behavior puursuit

Prinsip dasar steerinng behavior pursuit
adalah ageent bergerak seperti perrgerakan
memotong
(interceptt), yang diimaksud
motong disinni adalah agent akan
dengan mem
memotong pergerakan dari
d
agent laiin yang
bergerak kee arah target yang sama. Ilustrasi
I
steering behavior arrivee dapat dilihat pada
a dua
Gambar 4. Pada Gambaar 4 terlihat ada
A
X
agent yaitu Agent X dann Agent Y. Agent
akan bergeraak ke arah tarrget, sedangkaan Agent
Y akan memotong
m
peergerakan Aggent X
dengan makksud agar Ageent Y dapat dihadang
d
sebelum maasuk ke targeet. Garis putuus-putus
pada Agennt X mengggambarkan adanya
perlambatann
(deceeleration)
pada

proses

1. Frame Bloccking
Pada tahappan ini sinyall suara yang dibaca,
d
dibagi ke dalam bentuk fframe. Setiap frame
memiliki N sample yangg direpresenttasikan
Setiap frame yang
dalam bentuuk frame. S
bersebelahan saling tum
mpang tindih
h atau
overlap. Hall ini ditujukaan agar tidaak ada
informasi yanng hilang.
2. Windowingg
Setiap fram
me dari sinyall suara mengaandung
satu unit info
formasi. Oleh karena itu distorsi
d
antar frame tersebut haarus diminim
malkan
dowing
dengan teknik windowing. Proses wind
dilakukan pada setiapp frame untuk
meminimalkaan diskontinuuitas sinyal pada
awal dan akhhir setiap fram
me. Metodenyaa yaitu


 

dengan mengalikan tiap frame dengan fungsi
window. Jika kita mendefinisikan fungsi
window sebagai w, dan x(i) sebagai sinyal
digital pada frame ke i, maka hasil dari
windowing pada frame ke i adalah y(i) =
x(i)w, yaitu perkalian skalar antara vektor
x(i) dengan w.
3. FFT (Fast Fourier Transform)
FFT akan mengonversi setiap frame
dengan N sample dari domain waktu ke
domain frekuensi. Konversi ini dilakukan
karena pendengaran manusia didasarkan atas
domain frekuensi. FFT merupakan fast
algorithm
yang
mengimplementasikan
Discreate Fourier Transform (DFT) yang
didefinisikan pada himpunan N samples { }
sebagai berikut:
(1)
digunakan untuk menunjukan bilangan
imajiner, seperti j =
Secara umum
adalah bilangan kompleks.
4. Mel-frequency Wrapping
Persepsi manusia dalam frekuensi sinyal
suara tidak mengikuti skala linear. Untuk
setiap bunyi dengan frekuensi actual , dalam
satuan Hertz, nilai subjektif dari pitch-nya
diukur menggunakan skala ‘mel’. Skala melfrequency adalah selang frekuensi linear di
bawah 1000 Hz dan selang logaritmik untuk
frekuensi di atas 1000 Hz. Mel-Frequency
Wrapping umumnya digunakan menggunakan
filterbank. Pendekatan yang dapat digunakan
untuk menghitung mel-frequency untuk
frekuensi dalam Hertz:

5. Cepstrum
Pada tahap ini akan dikonversi melfrequency ke dalam domain waktu dengan
menggunakan Discreate Cosine Transform
(DCT). Hasilnya disebut dengan melfrequency cepstrum coefficient (MFCC).
Seanjutnya MFCC dapat dihitung sebagai
dengan persamaan:

Codebook
Codebook adalah sekumpulan titik (vektor)
yang mewakili distribusi dari individu
maupun objek tertentu dalam ruang suara.
Titik-titik pada codebook disebut codeword.
Codebook merupakan cetakan yang dihasilkan
suara setalah melalui proses training. Dalam
pengenalan suara, masing-masing suara yang
akan dikenali harus dibuatkan codebook-nya.
Codebook dibentuk dengan cara membentuk
kluster semua vektor ciri yang dijadikan
sebagai training set dengan menggunakan
algoritme klustering. Algoritme klustering
yang dipakai adalah algoritme K-means.
Ilustrasi prinsip dasar penggunaan
codebook dapat dilihat pada Gambar 6.
Seperti yang telah diilustrasikan pada Gambar
6, prinsip dasar dalam penggunaan codebook
adalah setiap suara yang masuk akan dihitung
jaraknya ke setiap codebook yang telah dibuat.
Kemudian jarak setiap sinyal suara ke
codebook dihitung sebagai jumlah jarak setiap
frame sinyal suara tersebut ke setiap
codeword yang ada pada codebook. Kemudian
dipilih codeword dengan jarak minimum.
Setelah itu setiap sinyal suara yang masuk
akan diidentifikasi berdasarkan jumlah dari
jarak minimum tersebut.
Xn
X2
X1
1 2
2 2
3 3
min

2 1
2 2
2 3
min

…….

Codewordk

Codeword1 Codeword2
1 2
2 3
3 1

2
2
2

1
2
3

1 1
2 1
2 3
min

…….

1
2
3

2
2
3

Gambar 6 Ilustrasi prinsip dasar penggunaan
codebook.
Jika dalam sinyal suara input X terdapat T
frame dan codewordk adalah masing-masing
codeword yang ada pada codebook, maka
jarak X dengan codebook dapat dirumuskan:
T

Jarak(X, Codebook) =∑min(D[X, Codewordt])
t=1

dimana,
d

D(x,y) = ∑(xi – yi)2
i=1

dengan K adalah banyaknya koefisien
cepstral, k= 0,1,…, K-1 dan n = 0,1,…,K-1.

Dengan x dan y adalah vektor yang akan
dihitung jaraknya sebanyak d dimensi.


 

dimana x dan y adalah vektor yang akan
dihitung jaraknya dengan d dimensi. Jarak
akan dihitung sebanyak n frame
Speech Recognition
Speech recognition adalah konversi dari
suara ke teks, dimana sistem akan mendeteksi
sinyal analog menjadi digital lalu mencari
pola sinyalnya dan mengeluarkan output
berupa teks (Pelton 1993). Speech recognition
terjadi sesuai urutan unit diskrit (kata atau
kalimat) yang diturunkan dari gelombang
suara atau bentuk gelombang akustik (Moore
1994).
Finite State Machine (FSM)
Finite state machine (FSM) adalah model
perilaku (behavioral model) yang digunakan
untuk merancang sebuah program computer.
Terdiri dari sejumlah state yang terkait
dengan jumlah yang terbatas untuk transisi.
Transisi adalah serangkaian tindakan yang
dimulai dari satu state dan berakhir di state
lain (atau sama). Sebuah transisi dimulai
dengan pemicu (trigger), dan pemicu bias
menjadi peristiwa atau kondisi (Buckland
2005), Dalam permainan futsal, trigger adalah
berupa kondisi lingkunga yang terjadi pada
saat itu (actual condition).
Pemrograman Berorientasi Objek
Pemrograman berorientasi objek adalah
suatu paradigma pemrograman yang membagi
kode-kode program menjadi beberapa modul.
Setiap modul berisi beberapa fungsi. Modul
dalam sebuah aplikasi yang besar akan
dipecah menjadi beberapa submodul, atau
mendekomposisikan fungsi-fungsi yang ada di
dalam sebuah modul (Braude 2004).
Digitasi Sinyal
Gelombang yang dihasilkan oleh suara
adalah gelombang analog. Agar suara dapat
diolah
dengan
peralatan
elektronik,
gelombang suara harus direpresentasikan
dalam bentuk digital. Proses mengubah suara
dari gelombang analog menjadi representasi
data digital dinamakan digitalisasi suara.
Tahapan pada digitalisasi suara ada dua,
yaitu sampling dan kuantisasi (Jurafsky &
Martin 2000). Sampling adalah proses
pengambilan nilai dalam jangka waktu
tertentu. Nilai yang dinyatakan adalah
amplitudo suara saat itu. Hasilnya adalah
sebuah vektor yang menyatakan nilai-nilai
hasil sampling. Panjang vektor data
bergantung pada panjang/lamanya suara yang

didigitalisasikan serta sampling rate yang
digunakan. Sampling rate merupakan
banyaknya nilai yang nilai yang diambil setiap
detik. Sampling rate yang biasa digunakan
adalah 8000 Hz dan 16000 Hz (Jurafsky &
Martin 2000).
Automation Speech Recognition (ASR)
Teknologi seperti automatic speech
recognition (ASR) dan text-to-speech telah
dikembangkan
sejak
awal
berdirinya
teknologi komputer. Automatic speech
recognition telah membuat kemajuan yang
signifikan dari tahun 1980 dan telah dapat
membuat sistem entri data dengan speechdriven secara praktis (Oberteuffer, 1995).
Pengembangan automatic speech recognition
telah diteruskan oleh beberapa perusahaan dan
universitas.
METODE PENELITIAN
Kerangka Pemikiran
Secara umum penelitian ini dikembangkan
oleh metode yang terdiri dari dua tahap yaitu
studi literatur dan rumusan masalah, rumusan
masalah terbagi menjadi dua bagian yaitu
pengembangan sistem pengenalan suara dan
pengembangan
sistem
AI.
Pada
pengembangan sistem pengenalan suara
terdiri dari beberapa tahap yaitu: (1)
pengumpulan
sampel
suara,
(2)
preprocessing, (3) pemodelan codebook, (4)
uji suara. Pengembangan sistem AI terdiri dari
beberapa tahap yaitu: (1) analisis objek, (2)
desain steering behavior, (3) desain state, (5)
desain diagram class, (6) implementasi, (7)
uji AI. Setelah sistem pengenalan suara dan
AI dibuat maka kedua sistem tersebut akan
diintegrasikan lalu dilakukan pengujian
terhadap sistem yang telah diintegrasikan.
Alur metode pengembangan ini dapat dilihat
pada Gambar 7.
Studi Literatur
Pada tahap ini dilakukan studi literatur
tentang permainan futsal, pemodelan agent,
dan prinsip pengenalan suara. Studi literatur
dilakukan dengan membaca buku referensi
dan paper.
Rumusan Masalah
Penelitian ini terbagi menjadi dua sistem
yaitu pengembangan sistem pengenalan suara
dan pengembangan sistem AI. Dua sistem ini
memiliki
teknik
pengembangan
dan
paradigma yang berbeda.


 

Mulai

Studi Literatur

Rumusan
Masalah

1.
2.
3.

Permainan futsal
Pengembangan sistem pengenalan
suara
Pengembangan sistem AI

1.
2.
3.

Paradigma program
Implementasi
Akurasi

SISTEM PENGENALAN SUARA
Pengumpulan
Sampel Suara
(Berupa Perintah)

10 Data Training
Preprocessing:
Pemotongan Silence
Ekstraksi ciri (MFCC)

1.
2.
8 Data Testing

Hasil Preprocessing
Data Training

Hasil Preprocessing
Data Testing

Pemodelan
Codebook

Codebook Data
Training

Pencocokan Data
Tiap Perintah

Integrasi

Pengujian

Hasil
Pengenalan
Suara

Pengujian

.
SISTEM AI
Dokumentasi
Analisis Objek
Selesai
Desain Steering
Behavior

1. Steering behavior seek
2. Steering behavior flee
3. Steering behavior
arrive
4. Steering behavior
pursuit

Desain State

Desain Diagram
Class

Pengujian

Implementasi

Gambar 7 Alur pengembangan sistem automatisasi perintah suara pada AI.


 

∑ Percobaan yang benar

Pengembangan Sistem Perintah Suara
Pengembangan sistem pengenalan suara
terbagi menjadi beberapa tahap yaitu:
1.

Pengumpulan sampel suara

Suara yang direkam adalah perintah yang
akan digunakan untuk mengendalikan
formasi pada AI. Perintah yang digunakan
adalah sebanyak 8 perintah yaitu ‘Satu’,
‘Dua’, ‘Tiga’, ‘Empat’, ‘Lima’, ‘Enam’,
‘Tujuh’, dan ‘Delapan’. Setiap perintah
direkam sebanyak 144 kali (setiap perintah
direkam sebanyak 18 kali), dari 144 sampel
suara, dibagi menjadi 80 sampel untuk data
training dan 64 sampel untuk data testing
(data training sebanyak 10 data dan data
testing sebanyak 8 data untuk masingmasing perintah). Data direkam dengan
menggunakan software MATLAB selama 1
detik, disimpan dalam format WAV dengan
sampling rate sebesar 11 kHz (11000 Hz).
2.

Preprocessing

Pada tahap ini setiap sampel suara akan
dilakukan
pemotongan
silence
dan
dilanjutkan
dengan
ekstraksi
ciri
menggunakan MFCC. Pada penelitian ini
lebar frame yang digunakan sebesar 128,
256, dan 512, dengan overlap sebesar 50%
(0,5), dan jumlah koefisien cepstral
sebanyak 13 koefisien.
3.

Pemodelan codebook

Setiap sampel suara pada masing-masing
perintah yang telah melalui tahap
preprocessing akan dimodelkan codebooknya. Hasil dari ekstraksi ciri MFCC adalah
sebuah matriks ciri untuk setiap sampel pada
suatu perintah yang berisi vektor ciri. Setiap
matriks ciri pada suatu perintah akan
digabungkan menjadi satu matriks dan
dilakukan klustering dengan menggunakan
K-means. Setelah gabungan matriks ciri
dikluster akan dihasilkan vektor centroid
sebagai codeword dari suatu perintah.
Kumpulan dari codeword pada suatu
perintah disebut codebook untuk suatu
perintah.
4.

Pengujian sistem pengenalan suara

Pada tahap ini akan dilakukan dua
pengujian,
yang
pertama
dengan
menggunakan data training yang telah
disiapkan pada tahap pengumpulan sampel
suara dan yang kedua dengan menggunakan
input suara secara langsung dengan jenis

akurasi =

suara
dihitung
berikut:

∑ Banyaknya percobaan

X 100%

yang berbeda. Nilai akurasi
dengan menggunakan rumus

Pengujian ini berguna untuk menentukan
frame dan nilai k yang baik, parameter baik
disini adalah akurasi yang paling tinggi.
Frame dan nilai k yang terbaik akan
digunakan untuk sistem automatisasi
perintah suara pada AI.
Pengembangan Sistem AI
Pengembangan sistem AI terbagi menjadi
beberapa tahap yaitu:
1.

Analisis objek

Pada tahap ini akan dianalisis apa saja
objek yang terlibat dalam pembuatan AI
futsal, hasil analisis objek akan digunakan
untuk desain diagram class.
2.

Desain steering behavior

Steering behavior digunakan untuk
memberikan perilaku (behavior) agent pada
AI agar agent dapat melakukan improvisasi
pada gerakannya, karena perilaku agent
dapat berubah tergantung dari kondisi pada
lingkungan. Pada sistem ini terdapat empat
steering behavior yang digunakan yaitu:
steering behavior seek, steering behavior
flee, steering behavior arrive, dan steering
behavior pursuit.
3.

Desain state

Pergerakan agent yang dihasilkan oleh
steering behavior tidak akan dapat
dieksekusi tanpa adanya state. Pada sistem
ini, akan ditentukan penggunaan steering
behavior
pada
suatu
state
agar
pergerakannya sesuai dengan kondisi pada
saat itu (actual condition). Pada sistem ini
akan didesain state untuk pemain, keeper,
dan tim.
4.

Desain diagram class

Data yang telah ditetapkan pada tahap
analisis objek akan dimodelkan diagram
class-nya. Desain diagram class pada sistem
ini berguna untuk implementasi sistem.
5.

Implementasi

Implementasi
dilakukan
dengan
menggunakan bahasa pemrograman C++
dengan paradigma pemrograman berorientasi


 

objek (OOP). C++ memberikan dukungan
penuh terhadap paradigma OOP sehingga
dalam implementasi sistem ini tidak
membutuhkan waktu yang terlalu lama.
6.

Uji AI

Pengujian dilakukan dengan cara
mencatat kesesuaian pergerakan dari pemain
dan keeper selama 15 menit dengan
membagi pencatatan setiap 5 menit.
Parameter kesesuaian gerakan adalah jika
agent memasuki state dan mengeksekusi
behavior yang tepat pada state yang telah
didesain sebelumnya. Sebelum pengujian
sistem AI, harus dilakukan restart pada
computer agar tidak terjadi leak memory
yang dapat menggangu eksekusi program
pada sistem AI.
Integrasi
Sistem AI akan diintegrasikan oleh
sistem pengenalan suara agar kedua sistem
ini dapat berinteraksi. Cara pengintegrasian
kedua
sistem
ini
adalah
dengan
menggunakan fitur input output handling (IO
handling).
Uji Sistem Automatisasi Perintah Suara
Sistem pengenalan suara dan sistem AI
yang telah diintegrasikan akan diuji dengan
menggunakan rumus berikut:
∑ Percobaan yang benar
akurasi =

∑ Banyaknya percobaan

X 100%

Uji sistem berguna untuk mengetahui
apakah sistem pengenalan suara sudah siap
diintegrasikan atau belum. Pengujian
dilakukan sebanyak 20 kali untuk setiap
perintah. Pengujian ini dilakukan dengan
menggunakan frame dan nilai K yang
terbaik, frame dan nilai K yang baik akan
ditentukan pada tahap pengujian sistem
pengenalan suara

HASIL DAN PEMBAHASAN
Pengembangan Sistem Pengenalan Suara
1.

Preprocessing

Dari data yang telah direkam yaitu 80
data training dan 64 data testing, terlebih
dahulu dilakukan pemotongan silence pada
bagian depan dan belakang sinyal,
pemotongan
silence
berguna
untuk
memfokuskan sinyal sehingga ukuran

matriks untuk setiap data suara akan sama.
Setelah pemotongan silence, data suara
diekstraksi ciri dengan menggunakan
MFCC. Dalam pemakaiannya terdapat lima
parameter yang harus digunakan yaitu input
suara, sampling rate, frame, overlap, dan
cepstral coefficient berturut-turut adalah
11000 Hz, 50% dan 13. Untuk nilai frame
yang akan diuji adalah 128, 256 dan 512.
Hasil dari ekstraksi ciri adalah berupa
matriks ciri yang berisi vektor ciri untuk
setiap perintah.
2.

Pemodelan codebook

Setiap matriks ciri pada suatu perintah
akan digabung menjadi satu matriks dan
dikluster dengan menggunakan K-means
yang menghasilkan vektor centroid sebagai
codeword dari suatu perintah. Proses ini
berlaku untuk setiap perintah. Hasil dari
tahap ini adalah kumpulan codebook
sebanyak 8 dimana setiap codebook
mewakili perintah yang akan dikenali
suaranya.
3.

Pengujian

Pengujian akan dilakukan dengan data
testing yang telah direkam dengan sampling
rate 11000 Hz. Banyaknya data testing
adalah 64 data dengan data untuk masingmasing perintah sebanyak 8. Setiap data
testing akan melewati tahap preprocessing
dan akan dikenali dengan menghitung jarak
terdekat menggunakan jarak euclid terhadap
model codebook yang telah dibuat
sebelumnya. Dari hasil pengujian dapat
dilihat bahwa akurasi paling tinggi adalah
93,75% pada saat frame 128. Untuk akurasi
setiap frame dapat dilihat pada Gambar 8.
Frame yang diuji adalah 128, 256, dan 512
untuk setiap nilai k dan dihitung akurasinya.
Akurasi
93,75%
100%
80%
60%
40%
20%
0%
128

92 %
75%

256

512

Frame
Gambar 8 Grafik akurasi perintah suara
untuk setiap nilai frame.


 

Percobaan dengan frame 128
Pada percobaan ini overlap dan
koefisien yang dipakai untuk setiap perintah
dan codebook masing-masing adalah 50%
dan 13. Setiap perintah pada data testing
akan diuji dengan mencari jarak terdekat
dengan model codebook dengan nilai k
sebesar 5, 10, 15, dan 32. Rataan tingkat
akurasi untuk setiap perintah pada saat frame
128 dapat dilihat pada Tabel 1. Nilai akurasi
tersebut didapatkan dengan merata-ratakan
total dari nilai akurasi yang dihasilkan oleh
setiap perintah untuk nilai k.
Tabel 1 Rataan nilai akurasi perintah suara
pada frame 128
Perintah

Akurasi

Tiga, Lima, Enam

100%

Delapan

96,75%

Satu

96,75%

Tujuh

87,5%

Empat

65,62%

Dua

61,65%

Pada percobaan saat frame 128, nilai k
yang diuji yaitu 5, 10, 15, dan 32. Untuk
grafik akurasi setiap nilai k dapat dilihat
pada Gambar 9. Dari hasil percobaan
tersebut didapatkan akurasi tertinggi saat
nilai k sebesar 32 dengan akurasi sebesar
93,75%. Dari Gambar 9 dapat disimpulkan
bahwa nilai k yang optimum dalam
memodelkan codebook pada frame 128
adalah saat k bernilai 32.
Akurasi
100% 87,7% 91% 91% 93,75%
80%
60%
40%
20%
0%
5

10
15
Kluster

32

Gambar 9 Akurasi setiap nilai k pada frame
128.
Percobaan dengan frame 256
Pada percobaan ini overlap dan
koefisien yang dipakai untuk setiap perintah
dan codebook masing-masing adalah 50%
dan 13. Setiap perintah pada data testing
akan diuji dengan mencari jarak terdekat

dengan model codebook dengan nilai k
sebesar 5, 10, 15, dan 32. Rataan tingkat
akurasi untuk setiap perintah pada saat frame
256 dapat dilihat pada Tabel 2. Nilai akurasi
tersebut didapatkan dengan merata-ratakan
total dari nilai akurasi yang dihasilkan oleh
setiap perintah untuk nilai k.
Tabel 2 Rataan nilai akurasi perintah suara
pada frame 256
Perintah

Akurasi

Satu, Lima, Enam, Tujuh

100%

Tiga, Delapan

96,75%

Dua

68,75%

Empat

62,75%

Pada percobaan saat frame 256, nilai k
yang diuji yaitu 5, 10, 15, dan 32. Untuk
grafik akurasi setiap nilai k dapat dilihat
pada Gambar 10. Dari hasil percobaan
tersebut didapatkan akurasi tertinggi saat
nilai k sebesar 32 dengan akurasi sebesar
92,70%. Dari Gambar 10 dapat disimpulkan
bahwa nilai k yang optimum dalam
memodelkan codebook pada frame 256
adalah saat k bernilai 32.
Akurasi
100% 87,7% 90% 91% 92,7%
80%
60%
40%
20%
0%
5

10
15
Kluster

32

Gambar 10 Akurasi setiap nilai k pada frame
256.
Percobaan dengan frame 512
Pada percobaan ini overlap dan
koefisien yang dipakai untuk setiap perintah
dan codebook masing-masing adalah 50%
dan 13. Setiap perintah pada data testing
akan diuji dengan mencari jarak terdekat
dengan model codebook dengan nilai k
sebesar 5, 10, 15, dan 32. Rataan tingkat
akurasi untuk setiap perintah pada saat frame
512 dapat dilihat pada Tabel 3. Nilai akurasi
tersebut didapatkan dengan merata-ratakan
total dari nilai akurasi yang dihasilkan oleh
setiap perintah untuk nilai k.


 

Tabel 3 Rataan nilai akurasi perintah suara
pada frame 512
Perintah

Akurasi

Tiga, Lima, Enam, Delapan

100%

Tujuh

96,75%

Satu

87,5%

Dua

84,34%

Empat

56,25%

Pada percobaan saat frame 512, nilai k
yang diuji yaitu 5, 10, 15, dan 32. Untuk
grafik akurasi setiap nilai k dapat dilihat
pada Gambar 11. Dari hasil percobaan
tersebut didapatkan akurasi tertinggi saat
nilai k sebesar 32 dengan akurasi sebesar
92,70%. Dari Gambar 11 dapat disimpulkan
bahwa nilai k yang optimum dalam
memodelkan codebook pada frame 512
adalah saat k bernilai 15.
Akurasi
91% 90% 92% 90%
100%
80%
60%
40%
20%
0%
5

10
15
Kluster

32

Gambar 11 Akurasi setiap nilai k pada frame
512.
Percobaan dengan input suara secara
langsung
Telah diuji untuk input suara secara
langsung dengan menggunakan jenis suara
yang berbeda dengan data testing. Percobaan
ini dilakukan sebanyak tiga kali dengan
frame 128, 256, dan 512 dengan nilai k
sebanyak 5, 10, 15, dan 32. Rataan akurasi
keseluruhan dapat dilihat pada Tabel 4. Nilai
akurasi tersebut didapatkan dengan merataratakan total dari nilai akurasi yang
dihasilkan oleh setiap nilai k dan untuk
setiap frame.

Perintah

Akurasi

Enam

85,5%

Tiga

65,34%

Empat

56,25%

Pada percobaan menggunakan input
secara langsung kata yang paling sering
dikenali adalah kata ‘Satu’, ‘Dua’, ‘Tujuh’,
dan ‘Delapan’. Sedangkan kata yang jarang
dikenali adalah kata ‘Lima’ dan ‘Enam’ dan
kata yang hampir tidak dikenali adalah kata
‘Tiga’ dan ‘Empat’.
Pengembangan Sistem AI
1.

Analisis objek

Dari hasil analisis, objek dibagi menjadi
dua yaitu lingkungan dan agent. Lingkungan
adalah objek yang berinteraksi secara tidak
langsung terhadap agent (objek mati)
sedangkan agent objek utama yang yang
berinteraksi dengan lingkungan dan agent
lain (objek hidup). Hasil analisis objek yang
terlibat pada pembuata AI futsal yaitu:









Lapangan futsal,
Dua gawang,
Satu bola,
Delapan pemain,
Dua keeper,
Dua tim,
Empat formasi menyerang,
Empat formasi bertahan.

Lingkungan pada sistem AI futsal
adalah lapangan futsal, dua gawang dan satu
bola. Sedangkan agent pada sistem AI futsal
adalah delapan pemain, dua keeper, dan dua
tim. Sedangkan empat formasi menyerang
dan empat formasi bertahan adalah sebagai
objek pelengkap. Objek-objek tersebut akan
dirancang ke dalam suatu gambar.
Rancangan objek sistem AI futsal dapat
dilihat pada Gambar 12.

Tabel 4 Rataan nilai akurasi dengan input
suara secara langsung
Perintah

Akurasi

Satu, Dua, Tujuh, Delapan

100%

Lima

87,75%

Gambar 12 Rancangan objek sistem AI
futsal.


 

Pada Gambar 12 terlihat para agent
menempati posisi masing-masing, posisi
tersebut dapat berubah jika permainan sudah
dimulai, untuk mengetahui posisi agent
maka lapangan akan dibagi menjadi 18
region, Region tersebut dapat memonitori
posisi agent pada saat agent bergerak.
Pembagian region dapat dilihat pada Gambar
13.

Gambar 13 Region pada lapangan futsal.
Region dapat diperluas atau dipersempit,
tetapi harus diperhatikan juga posisi pemain
jika region diperluas atau dipersempit, pada
penelitian ini hanyak memakai luas region
sebesar 6x3 atau 18 region. Setiap pemain
dapat menjelajahi setiap region tergantung
dari kondisi pada saat memasuki suatu state.
Desain visual rancangan sistem AI futsal
dapat dilihat pada Lampiran 1.
2.

Desain steering behavior flee
Pada desain steering behavior flee, agent
dapat menghindari suatu target dan
berpindah ke posisi lain, hal ini serupa
dengan seorang pemain futsal yang
menghindari lawan pada saat dihadang.
Agent dapat menghindari agent lain atau
menghidari suatu posisi yang menurutnya
berbahaya. Ilustrasi pada saat agent
menggunakan steering behavior flee dapat
dilihat pada Gambar 15. Pada Gambar 15
terdapat dua garis putus-putus, yang pertama
garis putus-putus ke arah Spot Z, yang kedua
adalah garis putus-putus ke arah Clear Spot.
Skenario pada ilustrasi ini adalah ketika
Agent X mendekati Agent Y dia akan
menghindar ke arah Spot Z, ternyata Spot Z
adalah posisi yang berbahaya, maka dia akan
berpindah ke Clear Spot.

Steering behavior

Steering behavior berguna untuk
menjadikan perilaku agent seperti pemain
futsal yang sebenarnya, dalam permainan
futsal pergerakan setiap pemain tidak dapat
diprediksi, untuk mengatasi hal ini perlu
didesain steering behavior yang tepat. Dalam
penelitian ini, steering behavior yang
digunakan adalah seek, flee, arrive, dan
pursuit.
Desain steering behavior seek
Pada desain steering behavior seek, agent
akan dapat berpindah dari suatu posisi ke
posisi lain dengan lurus, hal ini serupa
dengan pergerakan manusia yang berpindah
dari posisi asal ke posisi target. Ilustrasi pada
saat agent menggunakan steering behavior
seek dapat dilihat pada Gambar 14.

Gambar 15 Hasil desain steering behavior
flee.
Desain steering behavior arrive
Pada desain steering behavior arrive,
agent akan berpindah dari suatu posisi ke
posisi lain dengan berbelok atau gerakan
membentuk lingkaran, hal ini serupa dengan
pemain futsal yang sedang mencari spot
yang bagus agar mendapat passing dari
temannya. Ilustrasi pada saat agent
menggunakan steering behavior arrive dapat
dilihat pada Gambar 16.

Gambar 16 Hasil desain steering behavior
arrive.

Gambar 14 Hasil desain steering behavior
seek.

Pada Gambar 16 terdapat garis putusputus ke arah Clear Spot, garis putus-putus
menggambarkan pergerakan yang disertai
dengan perlambatan (deceleration) ke arah
Clear Spot.

10 
 

Desain steering behavior pursuit
Pada desain steering behavior pursuit,
agent akan berpindah dari suatu posisi ke
posisi lain dengan maksud menghadang
agent lain yang bergerak ke arah yang sama,
hal ini serupa dengan seorang pemain yang
sedang memotong (intercept) pergerakan
lawan.
Ilustrasi
pada
saat
agent
menggunakan steering behavior pursuit
dapat dilihat pada Gambar 17. Pada Gambar
17 terdapat dua agent yaitu Agent T dan
Agent Y yang bersebrangan. Agent T ingin
berlari ke arah Spot Z sedangkan Agent Y
ingin memotong pergerakan Agent T, dalam
hal ini agent yang menggunakan steering
behavior pursuit adalah Agent Y. Pada
Agent T terdapat garis putus-putus yang
menggambarkan perlambatan (deceleration)
sedangkan pada Agent Y tidak ada
perlambatan.

Tabel 5 Daftar state pemain dan steering
behavior-nya.
State

Steering behavior

Chase ball

Seek, Arrive

Wait

Tidak ada

Support Attacker

Arrive

Return to home
region

Seek, Arrive

Kick ball

Tidak ada

Receive ball

Pursuit

Mark supporting
opponent

Interpose, pursuit
(pendukung)

Sedangkan untuk state pemain dapat
dilihat pada Gambar 18.

Gambar 17 Hasil desain steering behavior
pursuit.
3.

Desain state

Desain state terbagi menjadi tiga bagian
yaitu desain state untuk agent, desain state
untuk keeper, dan desain state untuk tim.
Pada state tim terdapat dua sub state yaitu,
sub state general dan sub state formasi.
Desain state berguna untuk menentukan apa
yang harus dilakukan oleh agent terhadap
kondisi yang ada (trigger). Setiap state yang
didesain dapat menggunakan steering
behavior. Sebuah state dapat menggunakan
banyak steering behavior atau tidak
menggunakannya sama sekali.
Desain state pemain
Dalam permainan futsal sederhana,
pemain hanya dapat melakukan beberapa
state yaitu, chase ball, kick ball, wait,
support attacker, mark supporting opponent,
return to home region, dan receive ball.
Daftar penggunaan steering behavior pada
setiap state dapat dilihat pada Tabel 5.

Gambar 18 Diagram state pemain.
Pada Gambar 18 terdapat inisialisasi
trigger yaitu A1, A2, A3, A4, A5, A6, A7,
A8, A9, dan A10 Penjelasan mengenai
inisialisasi trigger dapat dilihat pada Tabel 6.
Tabel 6 Penjelasan inisialisasi trigger state
pemain
Trigger

Penjelasan

A1

Dalam kontrol

A2

Tidak dalam kontrol

A3

Dekat jarak tembak

A4

Bola masuk ke
gawang

A5

Tim tidak dalam
kontrol

11 
 

Trigger

Penjelasan

A6

Tim dalam kontrol

A8

Dalam posisi bagus

A9

Jauh dari jarak
tembak

A10

Setelah terjadi goal

Pada Gambar 18 state Kickoff dilingkari
tebal, ini menandakan bahwa state Kickoff
adalah sebagai start state.
Desain state keeper
Dalam permainan futsal sederhana,
keeper hanya dapat melakukan beberapa
state yaitu, tend goal, put ball bak, return to
home region,dan intercept ball. Daftar
penggunaan steering behavior pada state
keeper dapat dilihat pada Tabel 7.
Tabel 7 Daftar state keeper dan steering
behavior-nya
State
Tend goal
Intercept ball
Return home
Put ball back

Steering behavior
Interpose
Pursuit
Arrive
Arrive

Sedangkan diagram state keeper dapat
dilihat pada Gambar 19.

Gambar 19 Diagram state keeper.
Pada Gambar 19 terdapat inisial kondisi
yaitu B1, B2, B3, B4 dan B5 . B1 adalah
bola sedang ditangkap, B2 adalah dalam
jarak intercept, B3 adalah jauh dari gawang,
B4 adalah tidak dalam kontrol dan B5 adalah
bola tidak tertangkap. Daftar state tim dan
formasi serta regionnya dapat dilihat pada
Lampiran 2.
4.

Desain diagram class

Dari hasil desain objek terdapat 6 class
untuk lingkungan dan 10 class untuk agent.
Dari desain class yang dihasilkan, terdapat
class untuk lingkungan meliputi untuk

LapanganFutsal, Gawang, TeamFutsal,
Bola, StateMachine, dan Formation.
Class LapanganFutsal
Class LapanganFutsal adalah class
parent dari lingkungan, karena semua
komponen (bola, gawang, dan tim) akan
menempati lapangan dan automatis akan
mewarisi semua sifat pada lapangan. Pada
class LapanganFutsal terdapat dua fungsi
(method) utama, yaitu render dan update.
Render berfungsi untuk menggambar
lapangan dan komponen lain yang ada pada
lapangan dengan menggunakan library
CGDI yang terdapat dari buku Programming
AI by Example.
Class Gawang
Class Gawang hanya mempunyai satu
fungsi (method) utama yaitu Scored. Method
ini untuk memeriksa apakah bola masuk ke
gawang atau tidak, pada kondisi class seperti
ini maka class Gawang membutuhkan
passing parameter dari class Bola.
Class Bola
Class Bola mempunyai enam fungsi
(method) utama yaitu Update, Render, Kick,
FuturePosition,
Trap,
dan
TimeToCoverDistance. Update berfungsi
untuk menggambar bentuk bola sedangkan
render berfungsi untuk memproses aliran
bola dari frame ke frame. Method Kick
berfungsi untuk memproses arah dan gaya
(force) pada saat bola ditendang. Sedangkan
method FuturePosition berfungsi untuk
memproses waktu (time) pergerakan bola
pada saat ditendang. Method Trap berfungsi
untuk memproses bola yang akan melewati
garis untuk persiapan collision pada dinding.
Method TimeToCoverDistance berguna
untuk kondisi bola yang baru ditendang agar
tidak dapat ditendang oleh pemain lain.
Class TeamFutsal
Class TeamFutsal mempunyai empat
method utama yaitu Update, Render,
CanShoot, dan RequestPass. Method Render
berfungsi untuk menggambar pemain yang
nantinya akan dilakukan oleh class Pemain
dan Keeper. Sedangkan method Update
berfungsi untuk memproses pergerakan
agent secara keseluruhan dari frame ke
frame. Method CanShoot berfungsi untuk
memeriksa apakah agent dapat menendang
bola atau tidak. Method RequestPass
berfungsi untuk meminta bola kepada agent
lain,
pada
penggunaannya
method

12 
 

RequestPass
BasisPemain.

mempunyai

parameter

Class StateMachine
Class StateMachine mempunyai banyak
method untuk masing-masing state yaitu,
Enter, Execute, Exit, dan onMessage. Pada
penggunaannya class ini memakai design
pattern singleton. Design pattern singleton
berguna untuk memastikan bahwa hanya ada
satu instance yang dapa