1
1.1
Latar Belakang
Game DoTA 2 adalah permainan berjenis multilplayer online battle arena
MOBA). MOBA adalah jenis permainan yang berorientasi kerja sama yang
melibatkan dua regu untuk saling bertanding, setiap regu masing-masing
beranggotakan lima pemain yang harus saling menghancurkan tower dan benteng
utama lawan untuk memenangkan pertandingan. Setiap pemain mengendalikan satu
karakter yang disebut Hero dan bersifat unik, maka antara satu pemain dan pemain
lainnya harus memilih Hero yang berbeda [1].
Hero yang dimainkan memiliki kemampuan dan peran yang berbeda-beda
dengan Hero lainnya. Karena setiap Hero mempunyai kemampuan dan peran yang
berbeda maka kombinasi dari Hero yang dipilih oleh kedua regu akan berpengaruh
pada hasil pertandingan dan memungkinkan untuk dilakukan prediksi. Dengan
memprediksi hasil pertandingan berdasarkan kombinasi
Hero, pemain dapat
memilih
Hero yang sesuai untuk melawan kombinasi dari
Hero lawan dan
meningkatkan peluang memenangkan pertandingan.
Selain pertandingan biasa dalam game DoTA 2 juga terdapat pertandingan
turnamen, banyak turnamen yang diadakan resmi di dalam game ataupun turnamen
tidak resmi yang diadakan pihak ketiga. Pemenang dari turnamen-turnamen
tersebut mendapatkan hadiah yang biasanya tidak sedikit dan cukup menggiurkan
[1]. Karena itu dengan memprediksi hasil kemenangan dari satu pertandingan dapat
membantu pemain menentukan langkah demi mencapai kemenangan.
berdasarkan kombinasi
Hero yang dipilih. Pola tersebut dapat dijadikan acuan
untuk melakukan prediksi kemenangan, namun pola yang dihasilkan sangat banyak.
Algoritma
Neural Network merupakan algoritma yang sering dipakai dalam
mempelajari dan mengenali pola pada data. Algoritma Neural Network mempunyai
kemampuan memorisasi dan generalisasi. Kemampuan memorisasi adalah
kemampuan Neural Network untuk memanggil kembali secara sempurna pola yang
telah dipelajari, dengan kemampuan ini
Neural Network dapat mengenali pola
pertandingan
game DoTA 2 yang telah ada untuk menebak hasil pertandingan
dengan pola yang serupa pada masa yang akan datang. Kemampuan generalisasi
adalah kemampuan
Neural Network untuk menghasilkan respons yang bisa
diterima terhadap pola input yang serupa (namun tidak identik) dengan
pola-pola sebelumnya yang telah dipelajari [2].
Backpropagation merupakan salah satu arsitektur
Neural Network yang
memiliki proses pembelajaran maju dan koreksi kesalahan secara mundur. Model
ini banyak digunakan baik itu untuk proses pengenalan maupun prediksi dengan
tingkat akurasi yang cukup baik [3].
Sandro Radovanović
and Milan Radojičić
melakukan penelitian menggunakan metode Backpropagation untuk memprediksi
kemenangan pertandingan sepakbola berdasarkan pemain yang dimainkan dalam
pertandingan tersebut. Dari penelitian tersebut dapat disimpulkan metode
Backpropagation
dapat digunakan untuk memprediksi hasil suatu pertandingan
berdasarkan kombinasi variabel yang dipilih [4]. Pada tugas akhir ini akan dibangun
simulator prediksi kemenangan berdasarkan kombinasi hero pada gamei
DoTA 2
menggunakan algoritma Neural Network Backpropagation.
1.2
Rumusan Masalah
1.3
Maksud dan Tujuan
Maksud dari penelitian ini adalah untuk memprediksi kemenangan
berdasarkan kombinasi karakter yang dipilih menggunakan algoritma
Neural
Network dengan metode Backpropagation.
Adapun tujuan dari penelitian ini adalah sebagai berikut:
1.
Untuk membantu pemain untuk memprediksi hasil dari satu pertandingan
berdasarkan kombinasi hero yang dipilih oleh kedua regu.
2.
Untuk mengetahui performansi berupa akurasi dan parameter yang optimal
metode Backpropagation untuk memprediksi kemenangan.
1.4
Batasan Masalah
Adapun batasan masalah dalam penelitian ini sebagai berikut:
1.
Data pertandingan untuk data pelatihan dan uji dikumpulkan menggunakan
aplikasi web yang disediakan oleh DoTA 2 yaitu Steam Web API.
2.
Data pertandingan yang dikumpulkan dibagi menjadi data pelatihan dan data
uji.
3.
Pembangunan perangkat lunak menggunakan bahasa pemrograman C#.
4.
Data pertandingan disimpan menggunakan DBMS MySQL.
5.
Data pertandingan dikumpulkan selama bulan Maret sampai dengan April
2015.
6.
Proses pengujian menggunakan data uji dilakukan dengan metode
cross
validation.
1.5
Metodologi Penelitian
1.5.1
Metode Pengumpulan Data
Metode pengumpulan data yang digunakan dalam membantu penelitian ini
menggunakan dua cara, yaitu :
1.
Studi Pustaka
Studi pustaka ditelusuri dari buku, jurnal, hasil penelitian berupa tesis atau
skripsi dan pencarian informasi dari internet.
2.
Pengumpulan Data Pertandingan
Data penelitian bersumber dari
server
permainan DoTA 2 dan dikumpulkan
menggunakan aplikasi yand disediakan pihak pengembang yaitu Steam Web
API. Data pertandingan yang dikumpulkan adalah data pertandingan yang
terjadi selama bulan Maret sampai dengan April 2015.
1.5.2
Metode Lanjutan
Metode Lanjutan yaitu metode yang digunakan setelah metode
pengumpulan data, metode yang digunakan dalam penelitian ini adalah sebagai
berikut :
1.
Pembangunan Sistem
Sistem yang dibangun merupakan suatu alat yang akan diimplementasikannya
mengenai tahapan-tahapan metode yang dilakukan pada proses algoritma
Neural Network Backpropagation untuk memprediksi hasil pertandingan game
DoTA 2.
2.
Pengujian dan Kesimpulan
1.5.3
Alur Penelitian
Alur penelitian pada gambar 1.1 merupakan langkah-langkah yang diambil
untuk mendukung proses penelitian yang akan dibuat agar penelitian dapat berjalan
lebih terarah dan sistematis :
1.6
Sistematika Penulisan
Sistematika laporan ini disusun untuk memberikan gambaran umum tentang
penelitian yang dilakukan dengan membaginya kedalam beberapa bab dengan
pokok pembahasan secara umum sebagai berikut:
BAB I PENDAHULUAN
Bab ini membahas mengenai latar belakang, rumusan masalah, maksud dan tujuan,
batasan masalah, metodologi penelitian serta sistematikan penulisan laporan
penelitian ini.
BAB II LANDASAN TEORI
Bab ini membahas mengenai teori-teori pendekatan yang digunakan untuk
menganalisis masalah dan teori yang dipakai dalam mengolah data penelitian yaitu
teori mengenai prediksi, teori mengenai game dan teori mengenai algoritma Neural
Network. Dibahas pula mengenai beberapa teori-teori pendukung dalam penelitian
ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas mengenai tahapan analisis prediksi menggunakan algoritma
Neural Network pada game DoTA 2 dan perancangan pembangunan sistem sesuai
dengan metode dan pendekatan pembangunan perangkat lunak yang digunakan.
BAB IV IMPLEMENTASI DAN PENGUJIAN
BAB V KESIMPULAN DAN SARAN
9
BAB II
LANDASAN TEORI
2
2.1
Pengertian Prediksi
Prediksi adalah proses untuk meramalkan suatu variable di masa mendatang
dengan berdasarkan pertimbangan data pada masa lampau. Data yang sering
digunakan untuk melakukan prediksi adalah data yang berupa data kuantitatif.
Prediksi tidak harus memberikan jawaban secara pasti kejadian yang akan terjadi,
melainkan berusaha untuk mencari jawaban sedekat mungkin yang akan terjadi [5].
2.2
Pengertian
Game
Game atau permainan merupakan media hiburan yang sudah dikenal sejak
lama. Game dapat dimainkan berbagai umur tua maupun muda. Game juga sudah
berkembang dengan pesat sesuai dengan perkembangan teknologi, dari
game
sederhana sampai
game
modern saat ini. Hal ini terbukti dengan adanya
perkembangan jenis, produk, serta alat yang digunakan.
2.3
Game
DoTA 2
2.4
Kecerdasan Buatan
Kecerdasan buatan atau
Artificial Intelegence
adalah suatu ilmu yang
mempelajari tentang bagaimana membuat computer melakukan hal-hal yang pada
saat ini dilakukan manusia lebih baik. Dengan adanya kecerdasan buatan
diharapkan computer menjadi lebih cerdas, mengerti tentang kecerdasan dan
membuat mesin lebih berguna [6].
2.4.1
Neural Network
Neural Network
atau Jaringan syaraf tiruan adalah salah satu kajian pada
kecerdasan buatan.
Neural Network
digunakan untuk menyelesaikan
masalah-masalah yang kompleks dan sulit dipahami, dimanan sejumlah besar data mengenai
masalah tersebut telah dikumpulkan. Neural Network mencari pola dan hubungan
dalam data yang sangat besar yang terlalu rumit dan sulit dianalisis manusia
menggunakan perangkat keras dan piranti lunak yang menyerupai pola-pola
pemrosesan dalam otak manusia.
Komponen Neural Network terdiri dari
neuron-neuron
yang saling
berhubungan.
Neuron
–
neuron
ini akan mentransformasikan informasi yang
diterima melalui sambungan keluarannya menuju
neuron-neuron
yang lain. Pada
Neural Network hubungan neuron-neuron tersebut dikenal dengan nama bobot [7].
Komponen Neural Network seperti terlihar pada gambar 2.1 terdiri dari input
(informasi) bobot (nilai- nilai tertentu), fungsi aktivasi berfungsi apabila input yang
dimasukan sesuai dengan nilai ambang
( threshold )
yang ditentukan jika tidak
sesuai maka fungsi aktivasi tidak diaktifkan, dan apabila neuron
–
neuron tersebut
diaktifkan maka neuron akan mengirimkan output melalui bobot
–
bobot.
Karakterisitik yang dimiliki Neural Network adalah sebagai berikut:
a.
Arsitektur Jaringan
Merupakan gambaran pola hubungan antara neuron. Pada algoritma Neural
Network neuron-neuron disusun pada suatu lapisan (layer), umumnya
lapisan-lapisan tersebut terdiri dari lapisan masukan (input layer), lapisan
tersembunyi (hidden layer) dan lapisan keluaran (output layer).
Neuron-neuron yang terletak pada lapisan yang sama akan memiliki keadaan yang
sama. Factor terpenting dalam menentukan kelakuan suatu neuron adalah
fungsi aktivasi dan pola bobotnya. Pada setiap lapisan yang sama,
neuron-neuron akan memiliki fungsi aktivasi yang sama. Arsitektur Jaringan Neural
Network yang digunakan pada penelitian ini adalah arsitektur jaringan
dengan banyak lapisan (multilayer net) yang memiliki satu lapisan
tersembunyi (hidden layer) diantara lapisan masukan dan lapisan keluaran.
Arsitektur yang akan digunakan dapat dilihat pada gambar 2.1 berikut:
Gambar 2.2 Arsitektur Neural Network [7]
Dimana :
O = output neuron, merupakan output dari lapisan tersembunyi
V
ij= bobot yang menghubungkan lapisan masukan menuju lapisan
tersembunyi
W
jk= bobot yang menghubungkan lapisan tersembunyi menuju lapisan
Keluaran
b.
Pembelajaran
Algoritma Neural Network mempuyai dua macam proses pembelajaran
yaitu pembelajaran terawasi (supervised learning) dan pembelajaran tidak
terawasi (unsupervised learning).
1.
Pembelajaran terawasi (supervised learning)
Pada Pembelajaran terawasi output yang diharapakan telah
diketahui sebelumnya. Pada proses pembelajaran, satu pola input
akan diberikan ke satu neuron pada lapisan input. Pola ini akan
dirambatkan di sepanjang jaringan syaraf hingga sampai ke neuron
pada lapisan output. Lapisan output ini akan membangkitkan pola
output yang nantinya akan dicocokkan dengan pola output
targetnya. Apabila terjadi perbedaan antara pola output hasil
pembelajaran dengan pola target, maka disini akan muncul error.
Apabila nilai error ini masih cukup besar, mengindikasikan bahwa
masih perlu dilakukan lebih banyak pembelajaran lagi. Metode
pembelajaran terawasi diantaranya
Hebb Rule, Perceptron, Delta
Rule, Backpropagation, Learning Vektor Quantization,
Heteroassociative Memory [7].
2.
Pembelajaran tak terawasi (unsupervised learning)
adalah mengelompokkan unit-unit yang hampir sama dalam suatu
area tertentu [7].
c.
Fungsi aktivasi
Fungsi aktivasi yang mentranformasikan total input Neural Network pada
suatu
neuron
untuk menghasilkan sinyal keluaran (outgoing activity).
Fungsi aktivasi yang digunakan pada penelitian ini adalah fungsi
sigmoid.
Fungsi ini digunakan untuk Neural Network yang dilatih dengan
menggunakan metode
backpropagation. Fungsi sigmoid memiliki nilai
pada range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan yang
membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun,
fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0
atau 1. Fungsi sigmoid terlihat pada persamaan 2.1 berikut [7].
�
=
1+�1−�(2.1)
2.4.1.1
Backpropagation Neural Network
Backpropagation neural network merupakan tipe jaringan saraf tiruan yang
menggunakan metode pembelajaran terawasi (supervised learning). Pada
supervised learning terdapat pasangan data input dan
output yang dipakai untuk
melatih Neural Network hingga diperoleh bobot yang diinginkan. Metode
Backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya
dalam arah mundur (backward).
Untuk mendapatkan error ini, tahap perambatan
maju (
forward
) harus dikerjakan terlebih dahulu. Pada saat perambatan maju,
neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid, seperti
terlihat pada persamaan 2.1.
Gambar 2.3 Arsitektur Backpropagation
Jumlah lapis tersembunyi dan jumlah neuron tiap lapisan tidak ada rumus
tertentu untuk menghitungnya, namun terdapat aturan yang sering dipakai baik
untuk menentukan jumlah lapis tersembunyi maupun jumlah neuron tersembunyi
didalamnya. Permasalahan yang membutuhkan dua lapis tersembunyi jarang
ditemukan, meskipun neural network yang terdiri dari dua lapis tersembunyi dapat
merepresentasikan segala jenis bentuk fungsi. Tidak terdapat alasan teoritis untuk
menggunakan
neural network lebih dari dua lapis tersembunyi. Faktanya untuk
berbagai macam permasalahan tidak terdapat alasan untuk menggunakan lebih dari
satu lapis tersembunyi [8]. Kemudian untuk menentukan jumlah neuron pada lapis
tersembunyi sangat penting dalam membangun arsitektur jaringan. Menggunakan
terlalu sedikit neuron pada lapis tersembunyi kemungkinan akan menghasilkan
underfittin, sebaliknya menggunakan terlalu banyak neuron pada lapis tersembunyi
mungkin akan menghasilkan overfitting dan apabila data latih sangat banyak akan
sangat lama untuk melakukan pelatihan [8].
Aturan yang sering dipakai dalam menentukan jumlah
neuron
pada lapis
tersembunyi adalah sebagai berikut:
2.
Jumlah
neuron
pada lapis tersembunyi adalah 2/3 jumlah neuron lapis
masukan, ditambah jumlah neuron lapis keluaran [8].
3.
Jumlah neuron
pada lapis tersembunyi harus lebih sedikit dari dua kali lipat
jumlah neuron lapis tersembunyi [8].
4.
Jumlah
neuron pada lapis tersembunyi dipengaruhi jumlah data latih [9].
Persamaan yang digunakan untuk aturan ini adalah sebagai berikut :
�
ℎ=
� � + �
�ℎ �� � � ℎ
Keterangan:
N
h= jumlah neuron lapis tersembunyi
N
i= jumlah neuron lapis masukan
N
o= jumlah neuron lapis keluaran
α
= skala nomor antara 2
–
10
Untuk melatih
Backpropagation, Neural Network diberi pola masukan
sebagai pola pelatihan kemudian pola tersebut akan menuju ke unit pada lapis
tersembunyi untuk diterusan pada unit yang berada pada lapis keluaran. Keluaran
sementara pada lapis tersembunyi
akan diteruskan pada lapis keluaran dan lapis
keluaran akan memberikan tanggapan yang disebut sebagai keluaran sementara y
k.
ketika y
k≠ t
kdimana t
kadalah keluaran yang diharapkan, maka selisih (error)
keluaran sementara u’
kakan disebarkan mundur (backward) pada lapis tersembunyi
dan diteruskan ke unit pada lapis masukan. Oleh karena itu proses tersebut disebut
propagasi balik (backpropagation) [10].
Pada metode Backpropagation terdapat dua tahapan proses, yaitu :
1.
Tahapan pelatihan, dimana pada tahap ini metode backpropagation diberikan
sejumlah data pelatihan dan target.
Kondisi pelatihan berhenti atau stopping condition dapat menggunakan dua
cara yang biasa dipakai, yaitu:
1.
Membatasi iterasi yang ingin dilakukan.
Misalnya jaringan akan dilatih sampai iterasi yang ke-500.
2.
Membatasi error.
Misalnya menentukan besar Mean Square Error.
Secara umum langkah dalam pelatihan Neural Network menggunakan
Backpropagation adalah sebagai berikut :
1.
Menentukan jumlah input (pola masukan), hidden layer, dan output (target
pelatihan).
2.
Memberi nilai awal secara random bagi seluruh bobot antara input-hidden
layer dan hidden-output layer.
3.
Melakukan feedforward
a.
Tiap unit input (x
i) menerima sinyal input dan sinyal tersebut
dikirimkan pada seluruh unit pada hidden layer.
b.
Tiap unit pada
hidden layer
(Z_in
j) menjumlahkan sinyal-sinyal
input terbobot:
z_in
j= v
0j+
∑
=1(2.2)
gunakan fungsi aktivasi untuk menghitung sinyal outputnya:
z
j= f(z_in
j)
(2.3)
kirimkan sinyal tersebut ke semua unit di output layer
c.
Tiap unit pada
output layer
(Y_in
k) menjumlahkan sinyal-sinya
input terbobot:
y_in
k= w
0j+
∑
=1�
(2.4)
gunakan fungsi aktivasi untuk menghitung sinyal outputnya:
y
k= f(y_in
k)
(2.5)
4.
Melakukan Backpropagation
δ
k= (t
k- y
k)
f’
(y_in
k)
(2.6)
Kemudian hitung koreksi bobot (yang nantinya akan digunakan
untuk memperbaiki nilai w
jk):
Δw
jk= α δ
kz
j(2.7)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk
memperbaiki nilai w
0k)
Δw
0k= α δ
k(2.8)
Kirimkan δ
kke unit yang berada dilapisan bawahnya.
b.
Tiap unit pada
hidden layer
(Z_in
j) menjumlahkan delta inputnya
(dari unit yang berada pada lapisan atasnya):
δ_in
j=
∑
=1�
(2.9)
kalikan nilai ini dengan turunan dari fungsi aktivasinya untu
menghitung informasi error:
δ
j= δ_in
jf’
(z_in
j)
(2.10)
kemudian hitung koreksi bobot (yang nantinya akan digunakan
untuk memperbaiki nilai v
ij):
Δv
ij= α δ
jx
i(2.11)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk
memperbaiki nilai v
0j):
Δv
0j= α δ
j(2.12)
c.
Tiap unit output (y_in
k) memperbaiki bias dan bobotnya:
w
jk(baru) = w
jk(lama
) + Δw
jk(2.13)
tiap unit tersembunyi (z_in
j) memperbaiki bias dan bobotnya:
v
ij(baru) = v
ij(lama
) + Δv
ij(2.14)
5.
Tes Kondisi berhenti
Keterangan Persamaan :
z_in
: Bobot sinyal unit tersembunyi
z
: Keluaran unit tersembunyi
y_in
: Bobot sinyal lapisan keluaran
y
: Keluaran unit keluaran
δ
: Kesalahan
Δw
: Koreksi bobot unit keluaran
Δv
: Koreksi bobot unit tersembunyi
x
i: Unit ( neuron ) pada lapisan input
n
: Jumlah neuron (unit) pada lapisan input
v
: Bobot awal masuk ke hidden
v
0: Bobot bias yang menuju ke hidden
w
: Bobot awal hidden ke output
w
0: Bobot bias yang menuju ke output
α
: Learning rate / rasio pembelajaran
2.5
C#
Bahasa C# dikembangkan oleh tim kecil di Microsoft di bawah pimpinan
Anders Hejlsberg dan Scott Wiltamuth. Anders juga dikenal sebagai pernbuat
Turbo Pascal dan pimpinan tim yang mengembangkan Borland Delphi salah satu
IDE (Integrated Development Environment) yang cukup populer untuk
pengembangan aplikasi client/server.
C# adalah pengembangan dari bahasa pemrograman sebelumnya, yaitu
C/C++, Java, dan Visual Basic. C# memiliki kehandalan yang dimiliki C/C++,
mendukung pemrograman berbasis objek, seperti Java, serta kemudahan rapid
application development, seperti Visual Basic.
2.6
MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
atau yang dikenai dengan DBMS(database management system), database ini
multithread, multi-user. MySQL AB membuat MySQL tersedia sebagai perangkat
lunak gratis di bawah lisensi GNU General Public License (GPL), tetapi juga dijual
di bawah lisensi komersial untuk kasus-kasus yang bersifat khusus.
MySQL adalah Relational Database Management System (RDBMS) yang
didistribusikan secara gratis di bawah lisensi GPL (General Public License). Di
mana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan
produk turunan yang bersifat
closed source atau komersial. MySQL sebenarnya
merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL
(Structured Query Language}. SQL adalah sebuah konsep pengoperasian database,
terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan
pengoprasian data dikerjakan dengan mudah secara otomatis.
Sebagai database server, MySQL dapat dikatakan lebih unggul
dlbandingkan database server lainnya, terutama dalam kecepatan. Berikut ini
beberapa keunggulan MySQL, antara lain:
1.
Portability
MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows,
Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2.
Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan
tanpa mengalami masalah atau konflik.
3.
Security
4.
Scalability dan limits
MySQL mampu menangani database dalam skala besar, dengan jumlah
records lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu
batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya
[12].
2.7
Ufield Modelling Language
Unified Modelling Language (UML) merupakan satu kumpulan konvensi
pemodelan yang digunakan untuk menemukan atau menggambarkan sebuah system
software yang terkait dengan objek.
UML merupakan salah satu alat bantu yang sangat handal dalam bidang
pengembangan sistem berorientasi objek karena UML menyediakan bahasa
pemodelan visual yang memungkinkan pengembang sistem membuat
blue print
atas visinya dalam bentuk baku [11].
2.7.1
Use Case Diagram
Use case diagram digunakan untuk memodelkan aspek dinamis dari sistem.
Fungsi diagram Use Case adalah untuk menggambarkan fungsionalitas yang
disediakan oleh sebuah sistem dan interaksi user atau actor dengan sistem dengan
menggunakan fungsionalitas yang tersedia. Yang ditekankan adalah “apa” yang
diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merupakan sekumpulan
2.7.2
Activity Diagram
Activity Diagram menunjukkan flow aktifitas ke aktifitas (bukan status ke
status). Activity diagram memodelkan workflow proses bisnis dan urutan aktifitas
dalam sebuah prose. Diagram ini sangat mirip dengan flowchart. Membuat activity
diagram pada awal pemodelan proses sangat membantu memahami keseluruhan
proses. Activity diagram juga bermanfaat untuk menggambarkan paralel behavior
atau menggambarkan interaksi antara beberapa use case [11].
2.7.3
Class Diagram
Class adalah deskripsi sekumpulan object yang memiliki kesamaan atribut,
operasi,
relationship
dan
semantics.
Dengan kata lain, sebuah
class
merupakan
blueprint atau
template cetakan dari satu atau lebih
object.
Class Diagram dapat
membantu dalam memvisualkan struktur kelas-kelas dari suatu sistem dan
merupakan tipe diagram yang paling banyak ditemui dalam pemodelan system
berbasis orientasi objek. Pada UML, class digambarkan dengan segi empat yang
dibagimenjadi 3 bagian. Bagian yang pertama merupakan 2 nama dari kelas. Bagian
yang tengah merupakan strukur dari class (atribut) dan bagian ketiga merupakan
behaviour operasi dari class tersebut [13].
Class diagram mempunyai beberapa macam hubungan sebagai berikut :
a.
Asosiasi, yaitu hubungan statis antar
class. Umumnya menggambarkan
class yang memilikiatribut berupa
class lain, atau
class yang harus
mengetahui eksistensi
class lain. Panah
navigability menunjukkan arah
query antar class.
b.
Agregasi, yaitu hubungan yang menyatakan bagian.
d.
Komposisi, Jika sebuah class tidak bisa berdiri sendiri dan harus merupakan
bagian dari class yang lain, maka class tersebut memiliki relasi
Composition
terhadap class tempat dia bergantung tersebut.
2.7.4
Squence Diagram
Sequence diagram menggambarkan interaksi antara sejumlah objek dalam
urutan waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi
horizontal (objek-objek yang terkait). Umumnya sebuah sequence diagram
menangkap behavior dari suatu skenario (best case) sebagai respons dari sebuah
event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger
aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan
output apa yang dihasilkan [11].
2.8
K-Fold Cross Validation
89
5.1
Kesimpulan
Berdasarkan dari hasil penelitian, analisis, perancangan sistem, dan
implementasi serta pengujian, maka diperoleh kesimpulan bahwa Simulator
prediksi kemenangan bersarkan kombinasi hero pada game DoTA 2 menggunakan
algoritma Neural Network Backpropagation :
1.
Simulator kurang membatu pemain dalam memprediksi kemenangan
game
DoTA 2.
2.
Dapat mengetahui performansi dan parameter optimal algoritma
Neural
Network Backpropagation dalam mengolah data pertandingan untuk dijadikan
prediksi.
5.2
Saran
Berdasarkan hasil penelitian dan implementasi akurasi dari algoritma
Neural Network Backpropagation pada penelitian ini belum mencapai keakuratan
yang tinggi. Untuk meningkatkan kinerja dan hasil yang lebih baik, maka diusulkan
beberapa saran sebagai berikut :
1.
Data pertandingan yang dikumpulkan harus banyak agar algoritma
Neural
Network dapat mempelajari pola lebih banyak mengingat kombinasi hero yang
mungkin terjadi sangat besar.
BIODATA PENULIS
1.
Data Pribadi
Nama Lengkap
: Jaka Septian
NIM
: 10111193
Tempat/Tanggal Lahir
: Bandung, 01-05-1992
Jenis Kelamin
: Laki
–
Laki
Agama
: Islam
Alamat Lengkap
: Kp. Bojongsalak RT.01/22 Kec.Katapang
Kab.Bandung
Nomor Telepon
: 08996032992
2.
Riwayat Pendidikan
1999
–
2005
: SD Negeri Ciwidey Kota
2005
–
2008
: SMP Negeri 1 Ciwidey
2008
–
2011
: SMK Bandung Selatan 1
2011 s/d 2015
: Program Strata 1 (S1) Program Studi Teknik
Informatika, Falkultas Teknik dan Ilmu Komputer
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
JAKA SEPTIAN
10111193
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iv
KATA PENGANTAR………...……….iii
DAFTAR ISI………..……iv
v
vi
90
Tersedia: http://www.dota2.com/international/overview/. [Diakses 12
Februari 2015]
[2] D. Puspitaningrum,
Pengantar Jaringan Saraf Tiruan, Yogyakarta: Andi,
2006.
[3] C. Dewi dan M. Muslikh, Perbandingan Akurasi Backpropagation Neural
Network dan ANFIS Untuk Memprediksi Cuaca, Journal of Scientific
Modeling & Computation, vol. 1, no. 1, pp. 7 - 13, 2013.
[4]
S. Radovanović and M. Radojičić,
Premiere League Prediction Using
Neural Network, Neuroph Java Neural Network Framework, 2013. [Online].
Tersedia:
http://neuroph.sourceforge.net/tutorials/SportsPrediction/Premier%20Leagu
e%20Prediction.html. [Diakses 20 Juni 2015].
[5] D. S. Mulyono,
Peramalan Bisnis dan Ekonometri, Yogyakarta: BPFE,
2000.
[6] Kusrini, Sistem Pakar Teori dan Aplikasi, Yogyakarta: Andi, 2010.
[7] S. Kusumadewi,
Artificial Intellegence (Teknik dan Aplikasinya),
Yogyakarta: Graha Ilmu, 2003.
[8] J. Heaton,
Introduction to Neural Networks for C#, 2nd Edition,
Chesterfield: Heaton Research, Inc, 2008.
[9] M. Leo, "Automatic Inspection of Aircraft Components Using
Thermographic and Ultrasonic Techniques," in Recent Advances in Aircraft
Technology, Intech, 2012, pp. 384-398.
[10] W. Anggraeni,
Aplikasi Jaringan Syaraf Tiruan Untuk Peramalan
Permintaan Barang, JUTI, vol. 5, no. 2, pp. 99 - 105, 2006.
91
[14] E. Alpaydn, Introduction to Machine Learning, Second Edition, Cambridge:
MIT Press, 2010.
NETWORK BACKPROPAGATION
Jaka Septian
Teknik Informatika
–
Universitas Komputer Indonesia
Jl. Dipatiukur 112-114 Bandung
E-mail : jksptn@gmail.com
ABSTRAK
DoTA 2 merupakan permainan yang berorientasi kerja sama yang melibatkan dua regu untuk saling bertanding, setiap regu masing-masing beranggotakan lima pemain. Setiap pemain mengendalikan satu karakter yang disebut Hero dan bersifat unik. Berdasarkan kombinasi Hero yang dipilih hasil pertandingan dapat diprediksi. Namun memprediksi hasil setiap pertandingan tidaklah mudah, karena Hero yang dapat dipilih berjumlah 110 Hero, maka terdapat sekitar 4,689 x 1013 kemungkinan kombinasi Hero yang dapat terjadi pada satu pertandingan.
Algoritma Neural network mempunyai kemampuan memorisasi dan generalisasi. Kemampuan memorisasi adalah kemampuan Neural network untuk memanggil kembali secara sempurna pola yang telah dipelajari, dengan kemampuan ini
Neural network dapat mengenali pola pertandingan game DoTA 2 yang telah ada untuk menebak hasil pertandingan dengan pola yang serupa pada masa yang akan datang. Kemampuan generalisasi adalah kemampuan Neural network untuk menghasilkan respons yang bisa diterima terhadap pola-pola input
yang serupa (namun tidak identik) dengan pola-pola sebelumnya yang telah dipelajari. Berdasarkan hal diatas maka dibangunlah simulator yang mampu memprediksi kemenangan berdasarkan kombinasi hero pada game DoTA 2 menggunakan algoritma
Neural network.
Kata kunci : Neural network, Jaringan Syaraf Tiruan, Backpropagation, Prediksi.
1.
PENDAHULUAN
Game DoTA 2 adalah permainan berjenis multilplayer online battle arena MOBA). MOBA adalah jenis permainan yang berorientasi kerja sama yang melibatkan dua regu untuk saling bertanding, setiap regu masing-masing beranggotakan lima pemain yang harus saling menghancurkan tower dan benteng utama lawan untuk memenangkan pertandingan. Setiap pemain mengendalikan satu karakter yang disebut Hero dan bersifat unik, maka
antara satu pemain dan pemain lainnya harus memilih Hero yang berbeda [1].
Hero yang dimainkan memiliki kemampuan dan peran yang berbeda-beda dengan Hero lainnya. Karena setiap Hero mempunyai kemampuan dan peran yang berbeda maka kombinasi dari Hero yang dipilih oleh kedua regu akan berpengaruh pada hasil pertandingan dan memungkinkan untuk dilakukan prediksi. Dengan memprediksi hasil pertandingan berdasarkan kombinasi Hero, pemain dapat memilih Hero yang sesuai untuk melawan kombinasi dari Hero lawan dan meningkatkan peluang memenangkan pertandingan.
Selain pertandingan biasa dalam game DoTA 2 juga terdapat pertandingan turnamen, banyak turnamen yang diadakan resmi di dalam game ataupun turnamen tidak resmi yang diadakan pihak ketiga. Pemenang dari turnamen-turnamen tersebut mendapatkan hadiah yang biasanya tidak sedikit dan cukup menggiurkan [1]. Karena itu dengan memprediksi hasil kemenangan dari satu pertandingan dapat membantu pemain menentukan langkah demi mencapai kemenangan.
Pemain dalam memprediksi hasil setiap pertandingan tidaklah mudah, karena Hero yang dapat dipilih berjumlah 110 Hero, maka terdapat sekitar 4,689 x 1013 kemungkinan kombinasi Hero yang dapat terjadi pada satu pertandingan. Setiap pertandingan yang telah dilakukan akan membentuk pola kemenangan berdasarkan kombinasi Hero yang dipilih. Pola tersebut dapat dijadikan acuan untuk melakukan prediksi kemenangan, namun pola yang dihasilkan sangat banyak. Algoritma Neural network
merupakan algoritma yang sering dipakai dalam mempelajari dan mengenali pola pada data. Algoritma Neural network mempunyai kemampuan memorisasi dan generalisasi. Kemampuan memorisasi adalah kemampuan Neural network
Backpropagation merupakan salah satu arsitektur Neural network yang memiliki proses pembelajaran maju dan koreksi kesalahan secara mundur. Model ini banyak digunakan baik itu untuk proses pengenalan maupun prediksi dengan tingkat
akurasi yang cukup baik [3]. Sandro Radovanović and Milan Radojičić melakukan penelitian
menggunakan metode Backpropagation untuk memprediksi kemenangan pertandingan sepakbola berdasarkan pemain yang dimainkan dalam pertandingan tersebut. Dari penelitian tersebut dapat disimpulkan metode Backpropagation dapat digunakan untuk memprediksi hasil suatu pertandingan berdasarkan kombinasi variabel yang dipilih [4]. Pada tugas akhir ini akan dibangun simulator prediksi kemenangan berdasarkan kombinasi hero pada gamei DoTA 2 menggunakan algoritma Neural networkBackpropagation.
Tujuan dari penelitian ini adalah untuk membantu pemain untuk memprediksi hasil dari satu pertandingan berdasarkan kombinasi hero yang dipilih oleh kedua regu dan untuk mengetahui performansi berupa akurasi dan parameter yang optimal metode Backpropagation untuk memprediksi kemenangan.
1.1 Neural network
Neural network atau Jaringan syaraf tiruan adalah salah satu kajian pada kecerdasan buatan.
Neural network digunakan untuk menyelesaikan masalah-masalah yang kompleks dan sulit dipahami, dimanan sejumlah besar data mengenai masalah tersebut telah dikumpulkan. Neural network mencari pola dan hubungan dalam data yang sangat besar yang terlalu rumit dan sulit dianalisis manusia menggunakan perangkat keras dan piranti lunak yang menyerupai pola-pola pemrosesan dalam otak manusia.
Komponen Neural network terdiri dari
neuron-neuron yang saling berhubungan. Neuron – neuron ini akan mentransformasikan informasi yang diterima melalui sambungan keluarannya menuju
neuron-neuron yang lain. Pada Neural network
hubungan neuron-neuron tersebut dikenal dengan nama bobot [5]. Komponen Neural network seperti terlihar pada gambar 1 terdiri dari input (informasi) bobot (nilai- nilai tertentu), fungsi aktivasi berfungsi apabila input yang dimasukan sesuai dengan nilai ambang ( threshold ) yang ditentukan jika tidak sesuai maka fungsi aktivasi tidak diaktifkan, dan apabila
neuron – neuron tersebut diaktifkan maka neuron
[image:32.595.314.528.84.134.2]akan mengirimkan output melalui bobot – bobot.
Gambar 1. Komponen Neural network
1.1 Backpropagation
Backpropagation neural network
merupakan tipe jaringan saraf tiruan yang menggunakan metode pembelajaran terawasi (supervised learning). Pada supervised learning terdapat pasangan data input dan output yang dipakai untuk melatih Neural network hingga diperoleh bobot yang diinginkan. Metode Backpropagation
menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan error ini, tahap perambatan maju ( forward ) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid, seperti terlihat pada persamaan 1.
Fungsi aktivasi yang mentranformasikan total input Neural Network pada suatu neuron untuk menghasilkan sinyal keluaran (outgoing activity). Fungsi aktivasi yang digunakan pada penelitian ini adalah fungsi sigmoid. Fungsi ini digunakan untuk Neural Network yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid memiliki nilai pada range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1.
� = 1+�1−� (1)
Arsitektur BackpropagationNeural network
terdiri atas tiga lapis (layer) yaitu lapis masukan (input layer) xi, lapis tersembunyi (hidden layer) zj, dan lapis keluaran (output keluaran) yk. Lapis masukan dan lapis tersembunyi dihubungkan dengan bobot vij dan antara lapis tersembunyi dan lapis
keluaran dihubungkan oleh bobot w’jk.. Arsitektur dapat dilihat pada gambar 2.
[image:32.595.319.510.621.757.2]menghitungnya, namun terdapat aturan yang sering dipakai baik untuk menentukan jumlah lapis tersembunyi maupun jumlah neuron tersembunyi didalamnya. Permasalahan yang membutuhkan dua lapis tersembunyi jarang ditemukan, meskipun neural network yang terdiri dari dua lapis tersembunyi dapat merepresentasikan segala jenis bentuk fungsi. Tidak terdapat alasan teoritis untuk menggunakan neural network lebih dari dua lapis tersembunyi. Faktanya untuk berbagai macam permasalahan tidak terdapat alasan untuk menggunakan lebih dari satu lapis tersembunyi [7]. Kemudian untuk menentukan jumlah neuron pada lapis tersembunyi sangat penting dalam membangun arsitektur jaringan. Menggunakan terlalu sedikit neuron pada lapis tersembunyi kemungkinan akan menghasilkan underfittin, sebaliknya menggunakan terlalu banyak neuron pada lapis tersembunyi mungkin akan menghasilkan overfitting dan apabila data latih sangat banyak akan sangat lama untuk melakukan pelatihan [7].
Aturan yang sering dipakai dalam menentukan jumlah neuron pada lapis tersembunyi adalah sebagai berikut:
1. Jumlah neuron pada lapis tersembunyi adalah antara jumlah neuron lapis masukan dan neuron
lapis keluaran [7].
2. Jumlah neuron pada lapis tersembunyi adalah 2/3 jumlah neuron lapis masukan, ditambah jumlah neuron lapis keluaran [7].
3. Jumlah neuron pada lapis tersembunyi harus lebih sedikit dari dua kali lipat jumlah neuron
lapis tersembunyi [7].
4. Jumlah neuron pada lapis tersembunyi dipengaruhi jumlah data latih [8].
Untuk melatih Backpropagation, Neural network diberi pola masukan sebagai pola pelatihan kemudian pola tersebut akan menuju ke unit pada lapis tersembunyi untuk diterusan pada unit yang berada pada lapis keluaran. Keluaran sementara pada lapis tersembunyi akan diteruskan pada lapis keluaran dan lapis keluaran akan memberikan tanggapan yang
disebut sebagai keluaran sementara yk. ketika yk ≠ tk
dimana tk adalah keluaran yang diharapkan, maka
selisih (error) keluaran sementara u’k akan
disebarkan mundur (backward) pada lapis tersembunyi dan diteruskan ke unit pada lapis masukan. Oleh karena itu proses tersebut disebut propagasi balik (backpropagation) [6].
2.
ISI PENELITIAN
2.1 Metode yang digunakan.Pada penelitian ini metode yang digunakan adalah Algoritma Neural networkBackpropagation.
1. Tahapan pelatihan, dimana pada tahap ini metode backpropagation diberikan sejumlah data pelatihan dan target.
2. Tahap pengujian atau penggunaan, pengujian dilakukan setelah melakukan tahap belajar atau tahap pelatihan
Kondisi pelatihan berhenti atau stopping condition dapat menggunakan dua cara yang biasa dipakai, yaitu:
1. Membatasi iterasi yang ingin dilakukan. Misalnya jaringan akan dilatih sampai iterasi yang ke-500.
2. Membatasi error.
Misalnya menentukan besar Mean Square Error.
Secara umum langkah dalam pelatihan Neural network menggunakan Backpropagation adalah sebagai berikut :
1. Menentukan jumlah input (pola masukan),
hidden layer, dan output (target pelatihan). 2. Memberi nilai awal secara random bagi seluruh
bobot antara input-hidden layer dan hidden
-output layer.
3. Melakukan feedforward
a. Tiap unit input (xi) menerima sinyal input
dan sinyal tersebut dikirimkan pada seluruh unit pada hidden layer.
b. Tiap unit pada hidden layer (Z_inj) menjumlahkan sinyal-sinyal input
terbobot:
z_inj = v0j + ∑=1 (2)
gunakan fungsi aktivasi untuk menghitung sinyal outputnya:
zj = f(z_inj) (3)
c. Tiap unit pada output layer (Y_ink) menjumlahkan sinyal-sinya input terbobot:
y_ink = w0j + ∑ �=1 (4)
gunakan fungsi aktivasi untuk menghitung sinyal outputnya:
yk = f(y_ink) (5)
4. Melakukan backpropagation
δk = (tk - yk) f’(y_ink) (6)
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai wjk):
Δwjk = α δk zj (7)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k)
Δw0k = α δk (8)
Kirimkan δk ke unit yang berada dilapisan bawahnya.
b. Tiap unit pada hidden layer (Z_inj)
menjumlahkan delta inputnya (dari unit yang berada pada lapisan atasnya):
` δ_inj = ∑ =1� (9)
kalikan nilai ini dengan turunan dari fungsi aktivasinya untu menghitung informasi error:
δj= δ_inj f’(z_inj) (10)
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):
Δvij = α δj xi (11)
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai v0j):
Δv0j = α δj (12)
c. Tiap unit output (y_ink) memperbaiki bias
dan bobotnya:
wjk(baru) = wjk(lama) + Δwjk (13)
tiap unit tersembunyi (z_inj) memperbaiki
bias dan bobotnya:
vij(baru) = vij(lama) + Δvij (14)
5. Tes kondisi berhenti
a. Apakah batas error minimum telah tercapai.
b. Apakah batas iterasi maksimum telah tercapai.
Steam Web API yang berbentuk file .xml yang selanjutnya dikonversi dan disimpan kedalam sebuah basis data.
2.2.2 Data Masukan
[image:34.595.320.517.281.344.2]Data yang digunakan dalam memprediksi kemenangan adalah data seluruh data hero yang berjumlah 110 hero. Data Hero tersebut disusun menjadi variabel X1 hingga X110 yang menjadi data masukan pada sistem. Masing - masing variabel dapat memiliki nilai -1 jika dipilih oleh regu lawan, 0 jika tidak dipilih kedua regu dan 1 jika dipilih oleh regu kawan seperti yang terlihat pada tabel 1
Tabel 1. Data Masukan. Nilai Keterangan
-1 Variabel Hero yang dipilih regu lawan 0 Variabel Hero yang tidak dipilih 1 Variabel Hero yang dpilih regu kawan
2.2.3 Data Keluaran
Data keluaran atau output yang dihasilkan oleh sistem berupa nilai representasi dari dua keadaan yang mungkin terjadi sebagai hasil akhir dari suatu pertandingan. Data keluaran dapat dilihat pada tabel 2 berikut.
Tabel 2. Data Keluaran. Nilai Keterangan
1 Menang 0 Tidak Menang
2.3 Pelatihan Metode Backpropagation
Masukan pada proses pelatihan adalah history
pertandingan dengan melihat data hero yang dipilih dan regu pemenang dari pertandingan tersebut. Bentuk masukan berupa signal-signal input berdasar
[image:34.595.315.524.564.686.2]hero yang dipilih kedua regu seperti pada tabel 3.
Tabel 3. Hero yang dipilih
No Hero Regu Kawan
Hero Regu Lawan
1 Juggernaut (X8) Anti-Mage (X1)
2 Kunkka (X60) Dark Seer (X55)
3 Slardar (X65) Weaver (X88)
4
Ancient Apparation
(X68) Gyrocopter (X72)
5 Nyx Assasin (X88) Troll Warlord (X95)
Dengan target output adalah 1 (regu kawan menang)
sedangkan pada lapisan keluara mempunyai 1 node. Arsitektur jaringan dapat dilihat pada gambar 3.
Gambar 3. Arsitektur Jaringan Metode
Backpropagation
Langkah-langkah proses pelatihan adalah sebagai berikut:
1. Tentukan nilai iterasi maksimum dan learning rate. Pada contoh perhitungan ini digunakan batasan sebagai berikut:
Iterasi maksimum = 1000
Learning rate = 0.05
2. Memberi nilai awal secara random bagi seluruh bobot antara input-hidden layer dan hidden
-output layer.
3. Selama iterasi maksimum belum tercapai lakukan :
a. feedforward
b. backpropagation
Pada data kedua, juga dilakukan operasi-operasi yang sama dengan menggunakan bobot-bobot akhir hasil pengolahan data pertama sebagai bobot awalnya. Proses ini dilakukan secara berulang sampai pada iterasi maksimum.
2.4 Pengujian Metode Backpropagation
Pengujian dilakukan untuk menguji jaringan yang bobot-bobotnya sudah diberikan proses pelatihan menggunakan data latih. Proses pengujian hanya melakukan feedforward dan membandingkan hasilnya dengan nilai ambang (threshold) yang ditentukan.
Hasil dari fungsi aktivasi pada lapis keluaran dibandingkan dengan nilai ambang tertentu. Misalkan diambil nilai ambang (threshold) = 0.5, artinya jika nilai yk 0.5 maka output yang diberikan adalah 1,
2.5 Hasil Penelitian
Berikut adalah hasil penelitian yang terlebih dahulu dilakukan pengujian terhadap hasil akhir.
2.5.1 Performansi
Pengujian performansi bertujuan untuk mengetahui performansi dan parameter optimal dari metode backpropagation yang diimplementasikan pada simulator prediksi kemenangan game DoTA 2. Pengujian metode ini menggunakan cross validation dengan 10 fold, data keseluruhan dibagi menjadi 10 subset dimana setiap subset memiliki data yang berbeda. Data yang digunakan dalam pengujian ini merupakan data pertandingan selama bulan Maret sampai dengan April 2015. Jumlah keseluruhan data yang digunakan adalah 1440 data, data ini dibagi menjadi 10 subset data yang terdiri dari 140 data pertandingan untuk setiap subset. Setiap subset akan diuji dengan menggunakan subset lainnya sebagai data pelatihan, sehingga setiap pengujian dilakukan sebanyak 10 kali. Pengujian ini menghasilkan besaran akurasi dari metode backpropagation berdasarkan jumlah data keluaran yang sangat mendekati atau sesuai dengan target keluaran. Pengujian ini dilakukan menggunakan simulator prediksi kemenangan game DoTA 2 yang sudah dibuat.
Pada metode backpropagation yang diimplementasikan terdapat tiga buah variabel yang dapat dirubah yaitu jumlah hidden layer, learning rate, dan iterasi maksimum. Perubahan nilai iterasi maksimum dilakukan untuk membatasi proses pelatihan metode backpropagation, sedangkan perubahan dari jumlah hidden layer dan learning rate mempengaruhi laju pembelajaran dan akurasi dari metode backpropagation.
Akurasi dari metode ini dapat dilihat dari banyaknya hasil prediksi simulator yang mendekati atau sesuai dengan hasil aslinya. Jumlah hasil prediksi yang akurat nilai persen untuk memudahkan dalam mengetahui nilai akurasi dari sistem.
1. Skenario pengujian 1
Pada pengujian skenario 1, pengujian metode
backpropagation dilakukan dengan mengubah batas epoch dari 100 hingga 1000, sedangkan kedua variabel lainnya diisi dengan nilai yang sama. Hasil dari skenario pengujian 1 dapat dilihat pada tabel 4.
Tabel 4. Hasil skenario pengujian 2 Epoch Learning
Rate
Jumlah Hidden Neuron
Akurasi
100 0.05 5 49.93 %
200 0.05 5 48.82 %
300 0.05 5 49.52 %
[image:35.595.315.524.680.769.2]700 0.05 5 50.35 %
800 0.05 5 50.56 %
900 0.05 5 50.97 %
1000 0.05 5 49.17 %
[image:36.595.72.284.78.181.2]Batas epoch yang dipilih berdasarkan nilai akurasi yang terbesar. Berdasarkan pengujian diatas, dipilih batas epoch sebesar 900 karena memiliki akurasi terbesar yaitu 50.97 %. Nilai 900 ini selanjutnya dipakai untuk melakukan pengujian dalam menentukan nilai learning rate. Hasil dari skenario pengujian 2 dapat dilihat pada tabel 5.
Tabel 5. Hasil skenario pengujian 1 Epoch Learning
Rate
Jumlah Hidden Neuron
Akurasi
900 0.05 5 50.97 %
900 0.1 5 47.92 %
900 0.15 5 50.59 %
900 0.2 5 50.42 %
900 0.25 5 50.28 %
900 0.35 5 48.54 %
900 0.3 5 49.24 %
900 0.4 5 48.54 %
900 0.45 5 50 %
900 0.5 5 49.52 % .
2. Skenario pengujian 2
Pada pengujian skenario 2, pengujian metode
backpropagation dilakukan dengan mengubah nilai learning rate dari 0.05 hingga 0.5 dan batas epoch sebesar 900 sesuai dengan hasil skenario pengujian 1, sedangkan variabel lainnya diisi dengan nilai yang sama.
3. Skenario pengujian 3
Pada pengujian skenario 3, pengujian metode
backpropagation dilakukan dengan mengubah jumlah neuron pada hidden layer dari 5 hingga 50
neuron, batas epoch sebesar 900 sesuai dengan hasil skenario pengujian 1, dan nilai learning rate 0.05 sesuai dengan hasil skenario pengujian 2. Hasil dari skenario pengujian 3 dapat dilihat pada tabel 6.
Tabel 6. Hasil skenario pengujian 3 Epoch Learning
Rate
Jumlah Hidden Neuron
Akurasi
900 0.05 5 50.97 %
900 0.05 10 51.81 %
900 0.05 15 49.44 %
900 0.05 30 51.53 %
900 0.05 35 50.35 %
900 0.05 40 50.56 %
900 0.05 45 50.97 %
900 0.05 50 49.17 %
Jumlah neuron pada hidden layer yang dipilih berdasarkan nilai akurasi yang terbesar. Berdasarkan pengujian diatas, dipilih jumlah neuron sebanyak 20 karena memiliki akurasi terbesar yaitu 52.01 %.
Pengujian skenario ini merupakan pengujian yang terakhir untuk menentukan parameter optimal Algoritma Neural networkBackpropagation. Batas epoch yang optimal adalah sebesar 900, nilai learning rate yang optimal adalah 0.05 dan jumlah
neuron pada hidden layer yang optimal adalah sebanyak 20 neuron. Akurasi terbesar yang dicapai dari pengujian performansi ini adalah sebesar 52.01%.
2.5.2 Pengujian Beta
Pengujian beta merupakan pengujian yang dilakukan secara objektif. Metode yang digunakan dalam pengujian beta ini adalah dengan cara memberikan kuesioner kepada para pemain game DoTA 2. Sampel yang diambil sebanyak 30 orang pemain, dan hasil kuisoner tersebutakan dilakukan perhitungan untuk nantinya dapat diambil kesimpulan penilaian.
Pengujian ini bertujuan untuk melihat apakah simulator yang dibangun dapat mencapai tujuan penelitian. Diberikan pertanyaan “Apakah simulator ini membantu anda dalam bermain game DoTA 2?” dengan menggunakan skala likert sari skala 1 sampai 5.
[image:36.595.73.283.285.498.2]Berikut ini adalah skor penilaian yang diberikan dengan menggunakan skala likert pada setiap pernyataan nya, yang ditunjukan oleh tabel 7.
Tabel 7. Skor Jawaban
Skala Jawaban Keterangan Skor
SS Sangat Setuju 5
S Setuju 4
KS Kurang Setuju 3
TS Tidak Setuju 2
STS Sangat Tidak Setuju 1
[image:36.595.319.516.596.706.2]Skor
Sangat Setuju 5 4 20
Setuju 4 20 80
Kurang Setuju 3 5 15
Tidak Setuju 2 - -
Sangat Tidak
Setuju 1 1 1
Jumlah 30 116
Untuk mencari nilai persentase dari jawaban digunakan rumus skala likert sebagai berikut :
� =� �� � � �
Y= 116 X 100% = 77% 150
[image:37.595.72.285.85.258.2]Berdasarkan nilai persentase tersebut, jumlah skor yang diperoleh adalah 116. Jadi berdasarkan data tersebut, maka dapat disimpulkan bahwa simulator prediksi kemenangan game DoTA 2 membantu pemain secara umum adalah 77% dengan responden 30 pemain dari yang diharapkan 100% dan terletak pada daerah Kurang Setuju. Berikut skala hasil secara kontinum yang ditunjukan pada Gambar 4
Tabel 8. Skala Hasil Penilaian
3.
PENUTUP
Berdasarkan dari hasil penelitian, analisis, perancangan sistem, dan implementasi serta pengujian, maka diperoleh kesimpulan bahwa Simulator prediksi kemenangan bersarkan kombinasi hero pada game DoTA 2 menggunakan algoritma
Neural networkBackpropagation :
1. Simulator kurang membatu pemain dalam memprediksi kemenangan game DoTA 2. 2. Dapat mengetahui performansi dan parameter
optimal algoritma Neural network
Berdasarkan hasil penelitian dan implementasi akurasi dari algoritma Neural network Backpropagation pada penelitian ini belum mencapai keakuratan yang tinggi. Untuk meningkatkan kinerja dan hasil yang lebih baik, maka diusulkan beberapa saran sebagai berikut :
1. Data pertandingan yang dikumpulkan harus banyak agar algoritma Neural network dapat mempelajari pola lebih banyak mengingat kombinasi hero yang mungkin terjadi sangat besar.
2. Perlu dipertimbangkan untuk menggunakan algoritma atau metode lain untuk mencapai akurasi yang tinggi.
DAFTAR PUSTAKA
[1] Valve Corporation, DoTA 2 - The International,
Februari 2015. [Online]. Tersedia: http://www.dota2.com/international/overview/. [Diakses 12 Februari 2015]
[2] D. Puspitaningrum, Pengantar Jaringan Saraf Tiruan, Yogyakarta: Andi, 2006.
[3] C. Dewi dan M. Muslikh, Perbandingan Akurasi Backpropagation Neural network dan ANFIS Untuk Memprediksi Cuaca, Journal of Scientific Modeling & Computation, vol. 1, no. 1, pp. 7 - 13, 2013.
[4] S. Radovanović and M. Radojičić, Premiere League Prediction Using Neural network,
Neuroph Java Neural network Framework, 2013. [Online]. Tersedia: http://neuroph.sourceforge.net/tutorials/Sports Prediction/Premier%20League%20Prediction. html. [Diakses 20 Juni 2015].
[5] S. Kusumadewi, Artificial Intellegence (Teknik dan Aplikasinya), Yogyakarta: Graha Ilmu, 2003.
[6] W. Anggraeni, Aplikasi Jaringan Syaraf Tiruan Untuk Peramalan Permintaan Barang, JUTI,
[image:37.595.77.281.514.580.2]BACKPROPAGATION ALGORITHM
Jaka Septian
Teknik Informatika
–
Universitas Komputer Indonesia
Jl. Dipatiukur 112-114 Bandung
E-mail : jksptn@gmail.com
ABSTRAK
DOTA 2 is a cooperation-oriented game involving two teams for each match, each team consist of five players. Each player controls a character called Hero. The result of the match can be predicted based on selected heroes. But predicting the result of each match is not easy, because the Hero that can be chosen totaled 110 Heroes, then there are about 4.689 x 1013 possible combinations Hero that can occur in one match.
Neural Network algorithm has the capability of memorization and generalization. Memorization ability is the ability of Neural Network to recall perfectly the pattern has been learned, with this ability it can recognize patterns Neural Network game DOTA 2 match that have been happen to guess the outcome of the match with a same pattern in the future. Generalization ability is the ability of Neural Network to produce an acceptable response of the input pattern that similar (but not identical) to the patterns that have been previously studied. Based on above fact, a simulator that is capable of predicting the winner based on a hero combination in game DOTA 2 using Neural Network algorithm is built. Keywords : Neural network, Backpropagation, Prediction.
1.
INTRODUCTION
DOTA 2 is a game of multiplayer online battle arena (MOBA). MOBA is the kind of cooperation-oriented game involving two teams for each match, each team, consist of five players who must destroy each other tower and the main bastion opponent to win the game. Each player controls a character called Hero, then one player and another player must choose a different Hero [1].
Played hero has the ability and the different roles with other heroes. Because every Hero has a different role capability, then the combination of the Hero chosen by both squads will affect the match outcome and have possibility to do predictions. By predicting the outcome of the game based on a combination of Hero, players can choose an
appropriate hero to fight a combination of opponents hero and increase the chances of winning the game.
Other than usual match in DOTA there are also many tournaments within the game officialy or unofficialy tournaments that held by the third party. Winners of the tournaments get the prize that is usually not the least and quite tempting [1]. Therefore to predict the outcome of a match wins can help players determine the step in order to achieve victory.
Predicting the outcome of each match is not easy, because of heroes that can be selected is totaled 110, so there are about 4.689 x 1013 possible
combinations Hero that can occur in one match. Each match that has been made will form the pattern of victory based on a combination of the selected Hero. The pattern can be used as a reference to predict a victory, but the result pattern very large. Neural network algorithm is an algorithm that is often used in studying and recognizing patterns in data. Neural network algorithms have the ability of memorizing and generalizations. Memorisation ability of Neural network is the ability to recall perfectly the pattern that has been learned, with this ability to it can recognize match patterns in DOTA 2 games that have been happen to guess the result of the match with a similar pattern in the future. Generalization ability is the ability of neural network to produce an acceptable response to the input patterns that are similar (but not identical) to the patterns that have been previously studied [2].
to predict the outcome of a match based on a combination of heroes chosen by both teams and to determine the performance such as accuracy and optimal parameters for Backpropagation method to predicting match outcome.
1.1 Neural network
Neural networks or artificial neural networks is one of the studies on artificial intelligence. Neural network is used to solve the problems that are complex and difficult to understand, which along large amounts of data on the issue have been collected. Neural networks are looking for patterns and relationships in very large data that is too complex and difficult to analyze human use of hardware and software that resemble the patterns of processing in the human brain
. Neural network component consists of interconnected neurons. Neurons that will transform the information received via the output connection toward other neurons. In neural network relationships between neurons is known as the weights [5]. Neural network components as shown in Figure 1 consists of inputs (information) weight (certain values), the activation function works when the input is entered in accordance with the specified value of threshold, otherwise the activation function is not activated, and when neurons is activated, the neuron will send output through weights
[image:40.595.317.511.248.393.2].
Figure 1. Neural Network Component
1.1 Backpropagation
Backpropagation is a type of neural network that uses supervised learning methods. In the supervised learning there is a pair of data inputs and outputs are used to train the neural network to obtain the desired weight. Backpropagation method using the error output to change the value of the weights in the backward direction. To get this error, advanced propagation phase (forward) must be done first. At the time of forward propagation, the neurons activated by using sigmoid activation function, as shown in equation 1.
Activation function transform the input total on a neuron to produce an output signal (outgoing activity). Activation function used in this study is the sigmoid function. This function is used for Neural Network trained using backpropagation method. Sigmoid function has a value in the range of 0 to 1. This function is often used for networks that require the output value lies in the interval 0 to 1. However,
� = 1+�1−� (1)
[image:40.595.72.285.467.513.2]Backpropagation Neural network architecture consists of three layers, namely input layer xi, hidden layer zj, and the output layer yk. Input layer and hidden layer weights associated with vij and between the hidden layer and output layer weights connected by wjk .. The architecture can be seen in Figure 2.
Figure 2. Backpropagation Architecture
There is no specific formula to determine the number of hidden layers and the number of neurons of it layer to calculate it, but there is a rule-of-thumb that is often used either to determine the number of hidden layers and the number of hidden neurons. Rarely problems that require two hidden layers, although a neural network with two hidden layers can represent any kind of shape functions. There is no theoretical reason for using a neural network more than two hidden layers. In fact for a wide variety of problems there is no reason to use more than one hidden layer [7]. To determine the number of neurons in the hidden layer is very important in building network architectures. Using too few neurons in the hidden layer is likely to produce underfitting, otherwise use too many neurons in the hidden layer will likely result an overfitting and if the training data is very large there will be a very long time to do the training [7].
Rules-of-thumb that are often used in determining the number of neurons in the hidden layer is as follows:
1. The number of neurons in the hidden layer is between the number of neuron in the input layer and neurons in the output layer [7].
2. The number of neurons in the hidden layer is 2/3 the input layer neuron number, plus the number of output layer neurons [7].
To train Backpropagation, Neural network given input pattern as a training pattern then the pattern will be heading to units in the hidden layer to transfer to the units that are in the output layer. Output of the hidden layer will be forwarded to the output layer and output layer will provide feedback so-called
temporary output yk. when yk ≠ tk where tk is the
expected output, then the difference (error) output while u'k will be propagated back (backward) in the hidden layer and forwarded to units in the input layer. Therefore, the process is called backpropagation) [6].
2.
Research Content
2.1 The used method.In this study, the method used is the Backpropagation Neural network algorithm.
2.1.1 Backpropagation method
In the Backpropagation method, there are two stages of the process, as is follows:
1. Training Stage, at this stage back propagation method given amount of training data and its target.
2. Testing stage or use test is done after a learning phase.
Stopping condition can be used by two ways, as is follows:
1. Limit the iteration.
For example, the network will be train until 500 training iteration
2. Limit the error.
For example, determine the mean square error.
Generally steps in training using Backpropagation Neural networks are as follows:
1. Determine the number of inputs (input pattern), hidden layer and output (target training). 2. Giving the initial random values for all weights
between the input-hidden and hidden-output layer.
3. Do the feedforward
a. Each unit of input (xi) receives the input signal and the signal is sent to all units in the hidden layer.
b. Each unit in the hidden layer (Z_inj) summing the weighted input signals:
z_inj = v0j + ∑=1 (2)
use the activation function to calculate the output signal:
summing the weighted input signals:
y_ink = w0j + ∑ �=1 (4)
use the activation function to calculate the output signal:
yk = f(y_ink) (5)
4. Do the backpropagation
a. Each unit in the output layer (yk) receiving a target pattern associated with the input pattern, calculate error information:
δk = (tk - yk) f’(y_ink) (6)
Then calculate the correction weights (which will be used to improve the value of wjk):
Δwjk = α δk zj (7)
Also calculate the bias correction (which will be used to improve value of w0k)
Δw0k = α δk (8)
Send δk to all unit in the under layer b. Each unit in the hidden layer (Z_inj) delta
summing inputs (of units that are on the top layer):
` δ_inj = ∑ =1� (9)
multiply this value by the derivative of the activation function for calculating error information:
δj= δ_inj f’(z_inj) (10)
then calculate the correction weights (which will be used to improve value of vij):
Δvij = α δj xi (11)
Also Calculate the bias correction (which will be used to improve value of v0j):
Δv0j = α δj (12)
a. Each of output unit (y_ink) improve the
bias and its weights:
vij(baru) = vij(lama) + Δvij (14)
5. Test the stopping condition
a. Is the minimum error limit has been reached.
b. Is the maximum iteration limit has been reached.
2.2 Data Analist 2.2.1 Data Source
The data used are taken using the Steam Web API in .xml file that is subsequently converted and stored into a database.
2.2.2 Input data
[image:42.595.310.524.201.417.2]The data used in win predicting is entire heroes data which totaled 110 heroes. The data is organized into v