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 1
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 2
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.
3
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.
5
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
1
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
2
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]) dimana,
t=1 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.
3
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.
4
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
Pengujian
Desain State
Desain Diagram Class
Implementasi
Gambar 7 Alur pengembangan sistem automatisasi perintah suara pada AI.
5
∑ 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
6
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.
7
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.
8
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.
9
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 dapat mengakses class tersebut, hal ini diperlukan untuk membuat resource memory tidak terlalu berat. Class Formation Class Formation adalah penurunan dari class State. Class Formation mempunyai method yang sama dengan class State hanya pada tiap-tiap method Enter dilakukan perubahan region. Desain diagram class dapat dilihat pada Lampiran 3. 5.
Pengujian sistem AI
Pengujian dilakukan dengan mencatat pergerakan state pemain dan state keeper selama 15 menit. Hasil pencatatan kesesuaian state pemain dapat dilihat pada Lampiran 4. Sedangkan hasil pencatatan kesesuaian state keeper dapat dilihat pada Lampiran 5. Untuk pencatatan kesesuaian state tim dapat dilihat pada Tabel 8. Tabel 8 Hasil pengujian kesesuaian state tim State Kick off 2-2 Defence 2-2 Offence 1-2-1 Offence 1-2-1 Defence 4-0 Defence 4-0 Offence 1-3 Offence 1-3 Defence
Jumlah Transisi 5 5 5 5
Kesesuaian
5
Sesuai
5 5 0 0
Sesuai Tidak sesuai Error Error
Sesuai Sesuai Sesuai Sesuai
Dari hasil pencatatan untuk pergerakan state pemain pada Lampiran 4, terlihat bahwa rentang waktu 1-5 menit dan 5-10 menit ada dua state yang pergerakannya tidak sesuai, sedangkan pada rentang waktu 10-15 menit ada tiga state yang pergerakannya tidak sesuai. Kesalahan dapat terjadi karena ketidaksesuaian agent dalam mengeksekusi state. Akurasi dari pengujian
pergerakan state pemain adalah sebesar 71%. Sedangkan untuk pencatatan state keeper akurasi mencapai 100%. Dari hasil pencatatan terlihat bahwa ada state formasi yang ternyata error, hal ini dapat disebabkan region untuk agent tidak terdefinisi yang menyebabkan overflow pada sistem (looping forever). Akurasi pengujian pergerakan state tim terhadap formasi mencapai 75%. Integrasi Langkah terakhir dari penelitian ini adalah pengintegrasian sistem AI dan sistem pengenalan suara agar kedua sistem dapat berinteraksi. Pengintegrasian dilakukan dengan cara menuliskan output pada sistem pengenalan suara yang dibuat dengan MATLAB ke dalam format text (.txt). File text akan dibaca oleh C++ sebagai input yang akan menjadi kondisi pada sistem. Daftar perintah suara untuk formasi offence dapat dilihat pada Lampiran 6. Sedangkan untuk formasi defence dapat dilihat pada Lampiran 7. Hasil Uji Sistem Automatisasi Perintah Suara Pengujian program dimulai dengan memberikan perintah sebanyak 10 kali transisi untuk setiap perintah pada formasi offence dan defence. Frame adalah 128 dan 256 dengan nilai k sebesar 32, dimana seperti yang telah diketahui bahwa frame dan nilai k tersebut selalu mencapai akurasi yang tinggi pada pengujian sistem pengenalan suara. Grafik hasil pengujian untuk perintah suara formasi offence pada frame 128 dapat dilihat pada Gambar 20. Sedangkan grafik akurasi perintah suara formasi defence pada frame 256 dapat dilihat pada Gambar 21. Akurasi 100% 80% 60% 40% 20% 0% .
100% 95%
89%
87%
Satu
Tiga
Empat
Dua
Perintah Gambar 20 Grafik akurasi pergerakan state formasi offence pada frame 128.
13
Akurasi 100% 100% 100% 80% 60% 40% 20% 0% 0%
92%
Perintah Gambar 21 Grafik akurasi pergerakan state formasi defence pada frame 128. Pada hasil pengujian untuk pergerakan formasi offence, perintah yang menghasilkan akurasi tertinggi adalah perintah ‘Satu’ pada formasi offence sebesar 100%, kata ‘Lima’ dan ‘Enam’ untuk formasi defence sebesar 100%. Artinya dalam 10 kali percobaan transisi dengan menyebut kata ‘Satu’ semuanya berhasil. Total akurasi perintah suara terhadap formasi offence pada frame 128 adalah 92,75%. Sedangkan total akurasi perintah suara terhadap formasi defence pada frame 128 adalah 73%. Pada hasil pengujian dengan frame 256 dengan nilai k sebesar 32 untuk formasi offence dapat dilihat pada Gambar 22. Sedangkan untuk formasi defence dapat dilihat pada Gambar 23. Akurasi 100% 100%
95%
89%
88%
50% 0% Satu
Dua Tiga Perintah
Empat
Gambar 22 Grafik akurasi pergerakan state formasi offence pada frame 256. Akurasi 100% 100% 100% 80% 60% 40% 20% 0%
94%
0%
Perintah Gambar 23 Grafik akurasi pergerakan formasi defence pada frame 256.
Pada hasil pengujian untuk pergerakan formasi offence, perintah yang menghasilkan akurasi tertinggi adalah perintah ‘Satu’ sebesar 100%. Artinya dalam 10 kali percobaan transisi dengan menyebut kata ‘Satu’ semuanya berhasil. Total akurasi perintah suara terhadap formasi offence pada frame 256 adalah 93%. Sedangkan total akurasi perintah suara terhadap formasi defence pada frame 256 adalah 73,5%. Dari hasil pengujian pada saat frame128 dan frame 256, ternyata akurasi tertinggi dihasilkan pada saat frame 256 dengan akurasi pada formasi offence 93% dan pada formasi defence 73,5%. Dapat disimpulkan bahwa frame yang baik untuk digunakan pada sistem automatisasi perintah suara untuk kendali formasi pada permainan futsal adalah pada saat frame 256 KESIMPULAN DAN SARAN Kesimpulan Penelitian ini telah berhasil mengimplementasikan pemodelan agent dalam permainan futsal, serta dapat mengontrol agent tersebut melalui suara. Pada sistem pengenalan suara akurasi tertinggi adalah pada saat frame 128 dan 256 dengan masing-masing akurasi sebesar 93,74% dan 92% sedangkan untuk frame 512 akurasi mencapai 75%. Dengan hasil akurasi pada percobaan ini maka dapat disimpulkan frame yang baik untuk memodelkan codebook adalah 128 dan 256. Untuk pengujian masing-masing frame telah dihitung akurasi berdasarkan nilai k. Akurasi tertinggi pada frame 128 adalah pada saat nilai k 32 sebesar 93,75%, sedangkan akurasi tertinggi pada frame 256 adalah pada saat nilai k 32 sebesar 92%. Pada frame 512 akurasi tertinggi pada saat nilai k 15 sebesar 92%. Dengan hasil akurasi pada percobaan ini dapat disimpulkan frame yang baik untuk digunakan dalam sistem automatisasi perintah suara adalah 128 dan 256 dengan nilai k sebesar 32 jika dilihat dari akurasi tertinggi. Pada sistem AI akurasi untuk pergerakan state pemain adalah sebesar 71% , akurasi untuk pergerakan state keeper adalah sebesar 100%. Hasil akurasi untuk sistem yang telah diintegrasikan adalah pada frame 128
14 14
dengan nilai k sebesar 32 untuk pengujian formasi offence sebesar 92,75% dan untuk pengujian formasi defence sebesar 78%. Sedangkan hasil akurasi pada frame 256 dengan nilai k sebesar 32 untuk pengujian formasi offence sebesar 93% dan untuk pengujian formasi defence sebesar 73,5%. Nilai akurasi tertinggi berdasarkan perintah suara adalah pada frame 128 dengan nilai k sebesar 32 adalah pada saat perintah ‘Satu’, ‘Lima’, dan ‘Enam’ sebesar 100%, sedangkan pada frame 256 dengan nilai k sebesar 32 pada saat perintah ‘Satu’, ‘Lima’, dan ‘Enam’ sebesar 100%. Saran Agent yang dimodelkan masih dapat dikembangkan lagi dengan cara menambah steering behaviornya dan menambah statenya. Perintah suara dalam penelitian ini hanya sampai penggerakan state formasi dan masih dapat dikembangkan lebih lanjut. Saran-saran yang dapat diberikan untuk penelitian lebih lanjut adalah: 1. 2.
3.
4. 5.
Permainan dapat dikembangkan dari futsal menjadi sepak bola. Agent dapat dikembangkan agar menjadi lebih cerdas dengan menambah steering behaviornya dan menambah pergerakan statenya. Pada sistem ini harus menggunakan dua sistem, pada penelitian selanjutnya dapat dikembangkan dengan hanya menggunakan satu sistem saja. Perintah suara dapat dikembangkan bukan hanya menggerakkan state formasi, tetapi juga state agent. Formasi yang diwakili oleh perintah ‘Tujuh’ masih terdapat error, hal ini disebabkan karena kurangnya jumlah region pada lapangan. Jumlah region harus ditambah agar agent tidak keluar batas lapangan dalam pergerakannya. Dengan adanya penambahan region maka diperlukan pengaturan posisi awal agent.
Do MN.1994. Digital Signal Processing Mini-Project: An Automatic Speaker Recognition System. Audio Visual Communication Labolatory, Swiss Federal Institute of Technology, Lausanne, Switzerland.http://www.ifp.illinois.edu/~ minhdo/teaching/speaker_recognition/ [19 Januari 2011]. Jurafsky D, Martin JH. 2000. Speech and Languange Processing An Introduction to Natural Languange Processing, Computational Linguistic and Speech Recognition. New Jersey: Prentice Hall. Moore, D.W. 1994. Automatic speech recognition for electronic warfare verbal reports. Unpublished master’s thesis, Virginia Polytechnic Institute and State University, Blacksburg, VA. Oberteuffer, J.A. 1995. Commercial applications of speech interface technology: An industry at the threshold. In Proceedings of the National Academy of Science. Vol. 92, pp. 10007-10010. Pelton GE. 1993. Voice Processing. United State: McGraw-Hill, Inc. Rich E, Knight K. Intelligence Second State: McGraw-Hill.
1991. Artificial Edition. United
DAFTAR PUSTAKA Braude, Eric. 2004. Software Design: From Programming To Architecture. Boston University: John Willey & Sons, Inc. Buckland, Mat. 2005. Programming Game AI by Example. United State: Wordware Publishing, Inc.
15
LAMPIRAN
16
Lampiran 1 Hasil visual rancangan sistem AI futsal
Lampiran 2 Daftar state tim dan formasi serta regionnya State Kick Off 2-2 Offence 2-2 Offence 1-2-1 Offence 1-2-1 Offence 4-0 Offence 4-0 Offence 2-2 Defence 2-2 Defence 1-2-1 Defence 1-2-1 Defence 4-0 Defence 4-0 Defence 1-3 Offence 1-3 Offence 1-3 Defence 1-3 Defence
Region Tidak ada {16, 9, 11, 6, 4} {1,14,12,9,11} {16,4,9,11,13} {1,4,9,11,13} {1, 12,13, 14, 10} {16, 3, 4, 5, 7} {1, 3, 5, 0, 2} {16, 12, 14, 15, 17} {16, 7, 9, 11, 14} {1, 10, 6, 8, 4} {16, 12, 14, 13, 10} {1, 3, 4, 5, 7} {16, 4, 6, 7, 8} {1, 13,9, 10, 11} {16, 10, 12, 13, 14} {1, 7, 3,4,5}
Tim KOM, MAT KOM MAT KOM MAT KOM MAT MAT KOM KOM MAT KOM MAT KOM MAT KOM MAT
17
Lampiran 3 Desain diagram class
LapanganFutsal +Update(): void +Render(): void
Gawang +Scored(Bola*): bool
TeamFutsal +Update(): void +Render(): void +CanShoot(From, To, Heading, Power): bool +RequestPass(BasisPemain*): void
<Parameters> Bola +Update(): void +Render(): void +Kick(Direction, Force): void +FuturePosition(time): Vector2D +Trap(): void +TimeToCove
18
Lampiran 3 Lanjutan
MovingEntity +Update(): void +Render(): void +HandleMessage(telegram): bool
BasisPemain
SteeringBehaviors
-m_pSteering:SteeringBehaviors* -m_pTeam: TeamFutsal* -m_iHomeRegion:int
-m_pBall: Bola* -m_pPitch : LapanganFutsal* -m_pPlayer : BasisPemain*
+CanPassForward(): bool +CanPassBackward(): bool +IsThreatened(): bool +BallWithinPlayerRange():bool +BallWithinKickRange():bool +BallWithinReceiveRange():bool +InHomeRegion():bool +isWithinSupportSpotRange():bool +isWithinTargetRange():bool +isClosestTeamMemberToBall():bool +isClosestPlayerOnPitchToBall():bool +AtTarget():bool +isControllingPlayer():bool
+Calculate(): Vector2D +ArriveOn() +ArriveOff() +SeekOn() +SeekOff() +PursuitOn() +PursuitOff() +InterposeOn() +InterposeOff() +SeparationOn() +SeparationOff()
Keeper +Update(): void +Render(): void +HandleMessage(telegram): bool
StateMachine
Formation
MessageDispatcher
Pemain +Update(): void +Render(): void +HandleMessage(telegram): bool
TeamFutsal +Update(): void +Render(): void +CanShoot(From, To, Heading, Power): bool +RequestPass(BasisPemain*): void +GetSupportSpot(): Vector2D +InControl(): bool +Receiver(): BasisPemain* +SetReceiver(): +SupportingPlayer() +ControllingPlayer(): BasisPemain* +SetControllingPlayer() +PlayerClosestToBall():BasisPemain*
19
Lampiran 4 Hasil pencatatan kesesuaian state pemain State
Waktu
Kesesuaian
Chase ball
1-5 menit
Sesuai
Chase ball
5-10 menit
Sesuai
Chase ball
10-15 menit
Support attacker
1-5 menit
Tidak sesuai Tidak sesuai
Support attacker
5-10 menit
Sesuai
Support attacker
10-15 menit
Tidak sesuai
Return to home region Return to home region Return to home region Wait
1-5 menit
Sesuai
5-10 menit
Sesuai
10-15 menit
Sesuai
1-5 menit
Sesuai
Wait
5-10 menit
Sesuai
Wait
10-15 menit
Sesuai
Mark supporting opponents Mark supporting opponents
1-5 menit
Sesuai
5-10 menit
Tidak sesuai
Mark supporting opponents Kick ball
10-15 menit
Tidak sesuai
1-5 menit
Sesuai
Kick ball
5-10 menit
Sesuai
Kick ball
10-15 menit
Receive ball Receive ball Receive ball
1-5 menit
Tidak sesuai Sesuai
5-10 menit
Sesuai
10-15 menit
Sesuai
20
Lampiran 5 Hasil pencatatan kesesuaian state keeper State Tend goal Tend goal Tend goal Intercept ball Intercept ball Intercept ball Return home Return home Return home Put ball back Put ball back Put ball back
Waktu 1-5 menit 5-10 menit 10-15 menit 1-5 menit 5-10 menit 10-15 menit 1-5 menit 5-10 menit 10-15 menit 1-5 menit 5-10 menit 10-15 menit
Kesesuaian Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai Sesuai
Lampiran 6 Daftar perintah suara untuk formasi offence Perintah satu dua tiga empat satu dua tiga empat satu dua tiga empat satu dua tiga empat lima enam tujuh delapan
Previous state 2-2 Offence 2-2 Offence 2-2 Offence 2-2 Offence 1-2-1 Offence 1-2-1 Offence 1-2-1 Offence 1-2-1 Offence 1-3 Offence 1-3 Offence 1-3 Offence 1-3 Offence 4-0 Offence 4-0 Offence 4-0 Offence 4-0 Offence Defending Defending Defending Defending
Next state 1-2-1 Offence 1-3 Offence 4-0 Offence 2-2 Offence 1-3 Offence 4-0 Offence 2-2 Offence 1-2-1 Offence 4-0 Offence 2-2 Offence 1-2-1 Offence 1-3 Offence 2-2 Defence 1-2-1 Defence 1-3 Defence 4-0 Defence
Lampiran 7 Daftar perintah suara untuk formasi defence Perintah lima enam tujuh delapan lima enam tujuh delapan lima enam tujuh delapan
Previous state 2-2 Defence 2-2 Defence 2-2 Defence 2-2 Defence 1-2-1 Defence 1-2-1 Defence 1-2-1 Defence 1-2-1 Defence 1-3 Defence 1-3 Defemce 1-3 Defence 1-3 Defence
Next state 1-2-1 Defence 1-3 Defence 4-0 Defence 2-2 Defence 1-3 Defence 4-0 Defence 2-2 Defence 1-2-1 Defence 4-0 Defence
21
Lampiran 7 Lanjutan Perintah lima enam tujuh delapan Satu Dua Tiga empat
Previous state 4-0 Defence 4-0 Defence 4-0 Defence 4-0 Defence Attacking Attacking Attacking Attacking
Next state 2-2 Defence 1-2-1 Defence 1-3 Defence 2-2 Offence 1-2-1 Offence 1-3 Offence 4-0 Offence
22