TA : Pembuatan Sistem Penentuan Hero Dalam Captain Mode Pada Game Defence Of The Ancients Menggunakan Neural Network.

(1)

NETWORK

Oleh:

Nama : Chrisandy Masta NIM : 05.41010.0191 Program : S1 (Strata Satu) Jurusan : Sistem Informasi

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER SURABAYA


(2)

Captains Mode (CM) adalah mode permainan pada Defend of the Ancients (DotA) yang digunakan pada saat pertandingan resmi dan sudah diakui secara internasional. Pada CM terdapat adu strategi dalam pemilihan hero yang dilakukan oleh kapten masing-masing tim.

Adu strategi pada CM membutuhkan pengetahuan-pengetahuan tentang karakteristik tiap hero yang ada, sebanyak 96 hero. Tiap hero memiliki kelebihan dan kekurangan masing-masing, yang dapat saling membalik serangan dari hero yang lain, sehingga dibutuhkan pengetahuan untuk mengkombinasikan hero yang ada untuk dapat menambah kekuatan tempur. Kompleksitas adu strategi di CM ini bertambah karena dibutuhkan juga kemampuan untuk memprediksi hero yang akan digunakan oleh lawan.

Berdasarkan pada permasalahan di atas, seorang kapten tim membutuhkan banyak latihan dalam pemilihan hero dengan mempelajari catatan pertandingan resmi dari tim professional, yang jumlahnya sangat banyak. Kesulitan pembelajaran ini akan dapat dibantu dengan menggunakan suatu aplikasi yang menggunakan metode neural network untuk dapat memberi acuan tim terhadap menentukan strategi pemilihan hero berdasarkan pada catatan-catatan atau rekaman pertandingan. Penggunaan metode Artificial Neural Network telah dapat berjalan sesuai dengan yang diharapkan, dengan rata-rata prosentase ketepatan rekomedasi hero untuk data yang belum pernah dilatihkan sebesar 72.46%.


(3)

1 1.1 Latar Belakang

Dewasa ini perkembangan dunia olahraga, tidak hanya cabang-cabang olah fisik dan peras otak. Salah satunya adalah munculnya cabang Electronic Sports (eSports), yang merupakan suatu area aktivitas-aktivitas olahraga dimana orang mengembangkan dan melatih kemampuan-kemampuan mental atau fisik dalam menggunakan teknologi informasi dan komunikasi (Wagner, 2006).

Pada tahun 2007 Cabang olah raga eSports telah diakui sebagai salah satu disiplin olah raga di Asian Indoor Games (AIG) dengan tiga nomor permainan, yaitu FIFA 2007, Need For Speed, NBA Live 2007 (Supadi, 2009). Pada AIG 2009 di Vietnam meningkat menjadi enam nomor permainan, yaitu FIFA Soccer 2009, NBA Live 2009, Starcraft Broodwar 1.16, Need For Speed: Most Wanted, Half Life: Counter Strike 1.6, dan Warcraft III: Defense Of The Ancients (DotA) Allstars (Vietnam News, 2009). Selain AIG juga banyak liga dan turnamen profesional yang diselenggarakan di belahan dunia lain seperti, World Cyber Asian Games (Asia), Electronic Sports World Cup (Internasional), National Professional Cybersports League (Rusia), ESL Major Series (Eropa), dan Make Games Colourful (Cina).

DotA adalah Permainan yang berfokus pada strategi dan kerjasama kelompok yang berpusat pada pertempuran antar-hero yang setiap hero memiliki kemampuan yang berbeda-beda. Tujuan utama permainan ini adalah untuk


(4)

menghancurkan markas musuh bersama-sama dengan tim dan anak buah petarung yang dikontrol oleh komputer (Setiawan, 2009).

Captains Mode (CM) adalah mode permainan pada DotA yang digunakan pada saat pertandingan resmi. Pada CM terdapat adu strategi dalam pemilihan hero yang dilakukan oleh kapten masing-masing tim. Adu strategi ini dimulai dengan tahap eliminasi untuk menentukan hero – hero yang tidak dapat dipilih pada tahap pemilihan hero. Tahap pemilihan hero dilakukan secara bergantian yang juga dilakukan oleh kapten tim (Setiawan, 2009).

Adu strategi pada CM membutuhkan pengetahuan-pengetahuan tentang karakteristik tiap hero yang ada, sebanyak 96 hero. Tiap hero memiliki kelebihan dan kekurangan masing-masing, yang dapat saling membalik serangan dari hero yang lain, sehingga dibutuhkan pengetahuan untuk mengkombinasikan hero yang ada untuk dapat menambah kekuatan tempur. Kompleksitas adu strategi di CM ini bertambah saat tahap eliminasi dan tahap pemilihan hero yang dilakukan secara bergantian pada tiap kapten tim, dimana dibutuhkan juga kemampuan untuk memprediksi hero yang akan digunakan oleh lawan.

Berdasarkan pada permasalahan di atas, seorang kapten tim membutuhkan banyak latihan dalam pemilihan hero dengan mempelajari kemampuan anggota masing-masing dan catatan pertandingan resmi dari tim professional, yang jumlahnya sangat banyak. Kesulitan pembelajaran ini akan dapat dibantu dengan menggunakan suatu aplikasi yang menggunakan metode neural network untuk dapat memberi acuan tim terhadap menentukan strategi pemilihan hero berdasarkan pada catatan-catatan atau rekaman pertandingan resmi tim professional yang ada, yang menjadi tujuan dari tugas akhir ini.


(5)

1.2 Perumusan Masalah

Berdasarkan latar belakang permasalahan maka dirumuskan permasalahan dalam Tugas Akhir adalah Bagaimana membangun suatu sistem yang dapat memberikan saran kombinasi hero yang efektif berdasarkan rekaman-rekaman pertandingan dalam Captains Mode di game Defence of The Ancients Allstars. 1.3 Batasan Masalah

Dalam Pembuatan Tugas Akhir ini, ruang lingkup permasalahan hanya akan dibatasi pada :

1. Tidak membahas penggunaan item, skill hero, dan strategi dalam permainan. 2. Hanya membahas Strategi berdasarkan atribut.

3. Sistem hanya digunakan oleh tim yang memilih hero kedua (2nd pick)

4. Data yang diolah adalah hasil rekaman dari pertandingan game DotA, dari pertandingan-pertandingan resmi tim Profesional Nasional dan Internasional. 5. Map DotA yang digunakan adalah Stable Map 6.64, 6.66.b, 6.67c.

6. Metode yang digunakan Neural Network untuk membantu menyelesaikan permasalahan menggunakan model standart backpropagation

7. Bahasa pemrograman yang dipakai adalah Basic dengan menggunakan Visual Basic 6 SP 6

8. Sistem basis data yang digunakan adalah Microsoft SQL Server 2000. 1.4 Tujuan Penelitian

Dengan mengacu pada perumusan masalah maka tujuan yang hendak dicapai dalam penyusunan Tugas Akhir ini adalah Merancang suatu sistem penentuan hero dalam Captains Mode di game Defence of The Ancients Allstars.


(6)

1.5 Sistematika Penulisan

Sistematika dalam penyusunan Tugas Akhir ini akan dijabarkan dalam setiap bab dengan pembagian sebagai berikut :

BAB 1 : PENDAHULUAN

Bab ini mengutamakan perumusan dan penjelasan masalah umum dari Penentuan hero dalam captain mode pada game Defence of The Ancients, sehingga dapat diperoleh gambaran umum mengenai seluruh penelitian yang dilakukan oleh penulis. Bab ini menyangkut beberapa masalah yang meliputi : Latar Belakang, Perumusan Masalah, Batasan Masalah, Tujuan Penelitian dan dilanjutkan dengan Sistematika penulisan Tugas Akhir.

BAB 2 : LANDASAN TEORI

Bab ini memberikan uraian tentang teori yang digunakan dalam penyusunan tugas akhir. Menjelaskan tentang Neural Network, Defence Of The Ancients, Hero, Captains Mode (CM).

BAB 3 : PERANCANGAN SISTEM

Bab ini memberikan uraian tentang identifikasi permasalahan dan analisa kebutuhan sistem, metode penelitian apa yang digunakan serta bagaimana implementasi dari metode tersebut. Dalam bab ini juga membahas desain sistem, struktur database, dan desain user interface.


(7)

BAB 4 : IMPLEMENTASI DAN EVALUASI

Bab ini menjelaskan tentang spesifikasi kebutuhan perangkat lunak, implementasi sistem, uji fitur aplikasi DOTA CM, uji coba pelatihan Neural Network, dan analisis hasil uji coba.

BAB 5 : PENUTUP

Pada bab ini merupakan bab yang berisi tentang kesimpulan dan saran dari perancangan dan pembuatan DOTA CM


(8)

6 BAB II

LANDASAN TEORI

2.1 Neural Network

Pada sub bab ini mengulas tentang dasar-dasar neural network yang digunakan dalam pembuatan proses aplikasi ini.

2.1.1 Sejarah singkat Jaringan Saraf Tiruan (JST)

Perkembangan dari ilmu jaringan saraf biologi telah memungkinkan para peneliti untuk mengembangkan model matematika dari neuron untuk mensimulasikan tingkah laku jaringan saraf. Usaha keras untuk dapat mengenali cara kerja otak dikerjakan dan dimulai pertama kali oleh Ramon Cajal (1911), yang mengenalkan ide neuron yaitu struktur pokok dari otak manusia. Ide ini kemudian dikembangkan lagi awal tahun 1940-an ketika model abstrak pertama neuron diperkenalkan oleh MCCulloch dan Pitts (1943). Hebb (1949) menjelaskan bagaimana jaringan saraf belajar. Peneliti yang lain mengembangkannya dalam dua dekade berikutnya, seperti Minsky (1954) dan Rosenblatt (1958). Rosenblatt mengembangkan algoritma belajar perceptron. Pada waktu yang sama Windrow dan Hoff mengembangkan suatu variasi penting dari algoritma belajar perceptron, yang kemudian dikenal dengan Windrow-Hoff rule.

Kemudian Minsky dan Pert (1969) mengemukan teori batas model neural network single-layer yang ditulis pada buku mereka Perceptron. Dikarenakan rasa pesimistis terhadap proyek mengenai neural network ini, penelitian dari neural network mengalami perubahan dan kemunduran dalam dua dekade. Walapun dalam suasana yang tidak baik, beberapa peneliti masih meneruskan penelitian


(9)

mereka dan menghasilkan hasil yang berarti. Contohnya, Anderson (1977) dan Grossberg (1980), yang melakukan pekerjaan penting mengenai model Psychological. Kohonen (1977) menegambangkan asosiatif model memori.

Kebangkitan neural network pada awal 1980-an. Hopfield (1982) mengenalkan ide meminimalkan energi secara fisik dalam neural network. Akibat dari tulisannya tersebut mengilhami teknologi ini dengan momentum yang dapat diperbaharui. Feldman dan Ballard pada tahun 1982 mengemukan syarat

“connectionist” yang terkenal.

Pada pertengahan 1980-an, dalam buku Parallel Distibuted Processing yang ditulis oleh Rumelhart dan McClelland (1986), menimbulkan dampak besar pada pengetahuan komputer, dan biologi. Khususnya, algoritma pembelajaran backpropagation yang dikembangkan oleh Rumelhart, Hinton, dan Williams (1986) menghasilkan suatu solusi yang sangat berati dalam melakukan suatu training terhadap multilayer neural network. Keberhasilan spektakuler dari pendekatan ini di demonstrasikan oleh system NETtalk yang dikembangkan Sejnowski dan Rosenberg (1987), yaitu suatu sistem yang dapat menterjemahkan teks dalam bahasa Inggris kedalam bentuk suara dengan gaya bahasa yang dapat dimengerti dengan sangat jelas.

Pendekatan simbolik yang telah lama didominasi oleh bagian dari AI akhirnya telah dimenangkan oleh pendekatan neural network. Telah ada spekulasi tentang apakah pendekatan pertama seharusnya mensubstistusikan ke yang lain atau apakah pendekatan kedua seharusnya jalan bersama dan dikombinasikan. Fakta-fakta lain yang menunjukkan lebih baik memilih integrasi yang pola low-level kemampuannya diakui oleh pendekatan neural network dan high-low-level yang


(10)

menjadi alasan kemampuan, disediakan oleh pendekatan secara simbolik yang dikomplemen dengan lainnya. (Kandel dan Langholz, 1992). Arsitektur yang optimal pada sistem berpikir masa depan mungkin lebih baik dibangun dari integrasi antara cara yang satu dengan lainnya. (Setiawan, 2003)

2.1.2 Pengertian Neural Network

Jaringan Saraf Tiruan (JST) merupakan simulasi dari otak biologis. Tujuan dari JST adalah untuk belajar mengenali pola-pola pada data dan mensimulasikan proses belajar adaptif biologis, walau dalam skala yang sangat sederhana.. Sekali JST telah dilatih terhadap data, akan dapat membuat prediksi dengan melakukan deteksi kemiripan/kesamaan pola-pola data masukan.

JST bukanlah duplikasi persis dari sistem biologis otak manusia, tetapi jaringan saraf tiruan ini dapat melakukan kemampuan seperti generalisasi, belajar, abstaksi, dan bahkan intuisi. Mudahnya, merupakan suatu model dari sistem saraf biologis yang disederhanakan sebagai suatu alternatif sistem komputer. Kenyataan menunujukan bahwa banyak masalah dalam kehidupan manusia yang sulit

dipecahkan dengan “komputer konvensional” yang paling canggih sekalipun,

namun manusia dapat menyelesaikannya dengan baik. Dengan kemampuannya untuk belajar, jaringan saraf tiruan ini diharapkan dapat menyelesaikan masalah yang tidak dapat diselesaikan oleh komputer konvensional.

Jaringan saraf tidak diprogram dalam arti tradisional. Sebaliknya dilatih dengan contoh. Latihan itu terdiri dari banyak pengulangan input yang mengungkapkan berbagai hubungan. Dengan memperhalus bobot node sistem (neuron yang disimulasikan) secara progresif, jaringa saraf tiruan ini


(11)

JST merupakan salah satu bentuk dari Kecerdasan Buatan. JST dipandang sebagai suatu Black Box yang dapat melakukan prediksi keluaran dari suatu pola masukan yang dia kenali. Untuk itu JST harus dilatih terlebih dahulu terhadap sejumlah pola masukan dan target yang diharapkan dari tiap pola masukan tersebut (Supervised Learning). Sekali dilatihkan, JST akan dapat mengenali kesamaan ketika dihadapkan terhadap pola masukan baru, dan menghasilkan prediksi pola keluarannya.

JST dapat mendeteksi kesamaan masukan, bahkan sebagian masukan yang mungkin belum pernah dilatihkan atau diberikan sebelumnya. Karena JST mempunyai kemampuan interpolasi yang hebat, terutama bila data masukan tidak eksak, banyak gangguan didalamnya. Sehingga memungkinkan JST untuk digunakan sebagai subtitusi langsung bagi auto korelasi, regresi multivariabel, regresi linier, trigonometri, dan teknik regresi lainnya. Ketika data dianalisa menggunakan JST, akan memungkinkan untuk melakukan prediksi pola yang penting sebagaimana bila seorang ahli menganalisa data tersebut, karena JST dapat beraksi seperti selayaknya seorang yang ahli di bidangnya. (Setiawan, 2003) 2.1.3 Konsep dasar Neural Network

Neural network mempunyai arsitektur distribusi parallel yang terdiri dari banyak node-node dan penghubung. Antara titik penghubung dari satu node ke lainnya dihubungkan dengan suatu bobot. Untuk membuat kontruksi dari suatu neural network meliputi aturan yang terdiri dari :

Menentukan properti network : topologi network (hubungannya), tipe hubungan, order dari hubungan, dan batas bobot.


(12)

Menentukan system dinamik : menyusun inisialisasi bobot, formula penghitungan aktivasi dan aturan pembelajaran.

Gambar 2.1. Model sederhana dari struktural neural network.

Terdapat beberapa hal yang berkaitan dengan Neural network yaitu :

Properti Network

Topologi dari neural network mengacu pada framework sebagaimana skema interkoneksi. Framework biasanya sering terdirir dari beberapa layer (slabs) dan beberapa node per layer. Tipe dari layer terdiri dari :

Layer Input. Node dalam hal ini dinamakan dengan input units, yang mana encode pada suatu kasus ditampilkan pada network untuk diproses. Sebagai contoh, tiap intput unit mungkin di disain oleh nilai atribut acak (random) pada suatu kasus.

j

i

W1 W2

X1 X2 Xn

n Oj = F(  WiXi)

i=1

F : Fungsi Aktivasi

Feedforward Connections

Recurrent Connections


(13)

Layer Hidden. Node dalam hal ini dinamakan dengan hidden untis, yang mana tidak secara langsung kelihatan dan dampak hidden.. layer hidden menyediakan nonlinier untuk network.

Layer Output. Node dalam hal ini dinamakan dengan output units, encode mungkin berupa konsep (nilai) yang dialokasikan pada suatu kasus. Contohnya, tiap output unit mewakili sebuah class pada suatu obyek.

Input unit tidak memproses informasi, tetapi hanya mendistribusikan informasi ke units yang lain. Secara skema, input units digambarkan sebagai lingkaran dari suatu proses elemen seperti units hidden dan units output yang digambarkan juga sebagai segiempat.

Properti Node

Level aktivasi dari node dapat dipisahkan (0 dan 1) atau dilanjutkan sesuai dengan jangkauan (0,1) atau batasan yang dibuat. Hal ini tergantung dari fungsi aktivasi (transfer) yang dipilih. Jika ada pembatasan fungsi, maka level aktivasi adalah 0 (atau -1) dan 1. untuk fungsi sigmoid level aktivasi dibatasi pada jangkauan real (0,1)

Dinamik Sistem

Skema inisialisasi bobot di khususkan untuk model neural network khusus yang dipilih. Meskipun, dalam banyak kasus inisialisasi bobot hanya digunakan nilai random untuk memperkecil angka real.

Aturan pembelajaran adalah salah satu dari kebanyakan atribut penting, untuk menspesifikasikan suatu neural network Pada aturan pembelajaran menjelaskan bagaimana menyesuaikan bobot koneksi dalam tingkatan untuk


(14)

mengoptimalkan kinerja network. Ini mengindikasikan bagaimana menghitung bobot penyesuaian selama siklus pelatihan. Meskipun, aturan disesuaikan setelah pelatihan selesai.

Ketika neural network digunakan untuk menyelesaikan suatu masalah, penyelesaian didapatkan dalam level aktivasi pada units output. Sebagi contoh, tujuan neural network digunakan untuk mengklasifikasikan buah-buahan kedalam lemon, jeruk dan apel. Network mempunyai tiga unit output untuk merepresentasikan tiga jenis klasifikasi. penentuan karakteristik informasi yang diterima oleh layer input dan propagated forward. Jika unit output sesuai dengan class apel dan mencapai aktivasi maksimum, maka class ditandai untuk buah apel. Pada contoh ini, kesimpulan tingkah laku dari neural network termasuk perhitungan level aktivasi yang berlaku di network. Satu hal yang harus diperhatikan bahwa pelatihan dalam neural network meliputi perhitungan untuk mengetahui level aktivasi aktual dan level aktivasi yang dibutuhkan untuk mengetahui kesalahan yang kemudian digunakan untuk penyesuaian bobot.

Fungsi aktivasi diperlukan dalam perhitungan input, unit hidden dan unit output, sesuai dengan tipe fungsi aktivasi yang digunakan. Disediakan fungsi sigmoid, fungsi aktivasi (Oj) dari unit j dihitung dengan :

Oj = 1 / [ 1 + e -(i WjiXi-j) ] (2.1)

Dimana Xi adalah inputan dari unit i, Wji bobot dari koneksi dari unit i ke unit j, dan j batas atas dari unit j. Dalam kasus fungsi aktivasi yang hard-limiting output dari neuron diperoleh dari


(15)

D. Model Neuron

Suatu neuron merupakan unit dasar pemroses informasi, untuk mengoperasikan neural network. Ada tiga elemen dasar dari model neuron, yaitu : 1. Set of synapses atau link koneksi, semua karakteristik yang dimiliki bobot atau

strength. Khususnya, suatu sinyal xj pada input j yang mengkoneksikan ke

neuron k dikalikan dengan bobot koneksi Wkj. Ini penting untuk membuat

catatan dari tingkah laku yang ditulis secara subscripts dari koneksi bobot Wkj.

Subscript yang pertama mengacu pada pertanyaan neuron, subscript kedua mengacu pada input akhir dari koneksi yang diacu oleh bobot. Bobot Wkj

memiliki nilai positif jika koneksi diasosiasikan sebagai pendukung, dan negatif jika koneksi sebagai penghambat.

2. Adder untuk menjumlahkan sinyal input, dengan bobot koneksinya sendiri dari neuron, operasi disini menjelaskan tujuan dari linier combiner.

3. Activation function digunakan untuk membatasi luas dari output neuron. Fungsi aktivasi juga diacu sebagai literatur squash function yang menekan (membatasi) luas sinyal output yang diperbolehkan pada nilai yang terbatas. Biasanya, range luas output dari neuron ditulis dalam kurung siku [0,1] atau lainnya [-1,1].

Model neuron yang ditunjukkan pada gambar 2.2, juga memasukkan threshold K terapan eksternal, yang mempunyai efek dari penurunan input jaringan pada fungsi aktivasi. Di lain pihak, jaringan inipun untuk fungsi aktivasi mungkin bisa ditingkatkan dengan membuat sebuah periode bias dibandingkan sebuah threshold, nilai biasnya adalah negatif dari threshold.


(16)

Dalam istilah matematika, dapat digambarkan bahwa sebuah neuron ditulis dengan pasangan persamaan sebagai berikut:

(2.3) yk =  (uk - K)

Dimana x1, x2,…,xp adalah sinyal input ; wk1, wk2,…,wkp adalah bobot synapsi dari neuron k; uk adalah output kombiner yang linear; K adalah threshold; (.) adalah fungsi aktivasi, dan yk adalah sinyal output dari neuron.

Gambar 2.2. Model nonlinier dari sebuah neuron

k

k

vk

Total internal activity level,

Thresholdk

Linier combiner‟s

output,uk < 0

= 0 > 0 wk1

wk2

wkp

Synaptic weights



k

yk

Threshold

Output Activation

function

Summing junction

k u

Input signals


(17)

Gambar 2.3. Hasil transformasi yang dihadirkan oleh threshold

Penggunaan threshold k mempunyai efek dari penerapan transformasi pada output uk dari kombiner linier dalam model gambar 2.2, yang ditunjukkan oleh persamaan

vk = uk - k (2.5)

Secara khusus, bergantung pada nilai k adalah positif atau negatif, hubungan diantara fungsi aktifitas internal yang efektif atau potensial aktivasi vk dari neuron k dan output kombiner linier adalah dimodifikasi dalam perilaku yang digambarkan dalam gambar 2.3. Perhatikan bahwa hasil dari transaformasi ini, graph dari vk dibandingkan uk tidak lagi dilewatkan sebagaimana nilai aslinya.

Threshold data k adalah sebuah parameter ekternal dari artificial neuron k. dimana perhitungan dapat ditunjukkan dalam persamaan 1.2. Sebanding dengan formula yang dikombinasikan dalam persamaan 1.1 dan 1.2 sebagimana yang ditunjukkan :

(2.6) yk =  (vk)

Dalam persamaan 1.4 yang telah ditambahkan synapsi baru, inputnya adalah

x0 = -1 (2.8)

dan bobotnya adalah


(18)

Pembuatan formulasi dari model neuron k sebagaimana yang ditunjukkan pada gambar 2.4a. Dalam gambar tersebut efek dari threshold ditunjukkan oleh perlakuan dua hal : (1) menambahkan input sinyal baru pada nilai –1, dan (2) menambahkan synapsi baru dengan bobot yang sama pada threshold k. Jalan alternatif, yang dapat membuat model neuron sebagimana ditunjukkan dalam gambar 2.4b, dimana kombinasi konstan input adalah x0 = +1, dan bobot wk0= bk terhitung secara bias untuk bk. Meskipun model dari gambar 2.1 dan 2.4 adalah berbeda dalam tampilan, tetapi secara matematis adalah sama.

wk1

wk2

wkp Synaptic

weights (including threshold)

 

k

yk

Threshold Activation

function

Summing junction

k

v

Input signals

wk0

Fixed input x0 = -1


(19)

(a)

(b)

Gambar 2.4. Dua model nonlinier lain dari sebuah neuron

E. Tipe Fungsi Aktivasi

Fungsi aktivasi yang akan digunakan pada backpropagation harus mempunyai beberapa karakteriktik penting sebagai berikut : harus berkelanjutan, bersifat beda, dan bersifat mengurangi kejenuhan. Selanjutnya, untuk efisiensi perhitungan fungsi ini sangat perlu dikembangkan untuk memudahkan komputasi. Pada umumnya digunakan fungsi aktivasi dengan nilai yang dapat dikembangkan (nilai aktual dari variabel bebas) dalam kondisi nilai dari fungsi. Biasanya fungsi adalah diharapkan untuk saturate seperti pendekatan perhitungan maksimum dan minimum nilai asimtot.

wk1

wk2

wkp Synaptic

weights (including

bias)

 

k

yk

Threshold

Output Activation

function

Summing junction

k

v

Input signals

wk0

Fixed input x0 = -1


(20)

Fungsi aktivasi yang disimbolkan dengan (.) mendifinisikan output dari neuron dalam periode pada level aktifitas di input tersebut.

Fungsi Threshold. Untuk jenis dari fungsi aktivasi ini digambarkan dalam gambar 2.5a yang memiliki persamaan

(2.10)

dimana hubungan persamaan pada output neuron k sebagaimana fungsi threshold yang ditulis dalam bentuk

(2.11) dimana vk adalah level aktifitas internal dari neuron, yaitu :

(2.12)

Sebuah neuron yang dihubungkan dalam literatur seperti model McCulloch-Pitts, dalam mengenali pekerjaan awal yang dilakukan McCulloch dan Pits (1943). Dalam model ini, output dari neuron mengambil nilai 1 jika total aktivitas internal dari neuron tersebut adalah non negatif dan 0 jika yang lain. Pernyataan ini menggambarkan semua properti atau tidak satupun dari model McCulloch-Pitts.


(21)

Fungsi linier Piecewise. Untuk fungsi ini dapat digambarkan dalam gambar 2.5b, sehingga menghasilkan persamaan :

(2.13)

Dimana faktor amplifikasi didalam area operasi linier diasumsikan menjadi kesatuan. Fungsi aktivasi dalam sebuah form dapat dilihat sebagai aproksimasi pada sebuah amplier non linier. Dua situasi dibawah ini dapat dilihat sebagai form khusus dari fungsi linier piecewise :

Sebuah kombiner linier yang timbul jika operasi daerah linier diatur tanpa menjalankan satu rasi.

Fungsi linier Piecewise mengurangi fungsi threshold jika faktor amplifikasi dari daerah linier dibuat secara terbatas.

Fungsi sigmoid adalah bentuk paling umum dari fungsi aktivasi yang dipergunakan dalam konstruksi jaringan neural network. Hal itu didefinisikan sebagai sebuah fungsi peningkatan yang cukup nyata dengan menunjukkan kehalusan dan properti asymtot. Sebuah contoh dari sigmoid adalah fungsi logistik yang didefiniskan sebagai berikut :

1 f (x) =

1 + exp(-ax)

(2.14)

Dimana f mewakili fungsi aktivasi yang digunakan, x adalah variable input yang akan dimasukkan fungsi dan a adalah slope paramater dari fungsi sigmoid dengan melakukan variasi pada parameter a yang dapat melakukan fungsi sigmoid


(22)

dari slope yang berbeda, sebagaimana ditunjukkan dalam gambar 2.5c. Dalam kenyataan slope aslinya dibandingkan dengan a/4. Pada batasan, slope sebagai parameter mendekati ketidakterbatasan, fungsi sigmoid menyederhanakan fungsi threshold. Dimana fungsi threshold mengasumsikan nilai 0 atau 1, sebuah fungsi sigmoid mengasumsikan daerah nilai dari 0 sampai 1, dimana fungsi sigmoid juga mengasumsikan area yang kontinyu dari nilai 0 sampai 1. Perhatikan juga bahwa fungsi sigmoid dapat dibedakan, dimana fungsi threshold tidak dapat melakukannya. (Kemampuan ini dapat dibedakan sebagai sebuah fitur yang sangat penting dari teori neural network).

Fungsi aktivasi yang didefinisikan dalam persamaan (2.10), (2.13), dan (2.14) area dari 0 sampai +1. Terkadang terdapat keinginan untuk memiliki fungsi aktivasi dimana area dari –1 sampai +1, dalam hal ini fungsi aktivasi diasumsikan sebuah bentuk antisimetrik dengan memperhatikan nilai aslinya. Secara khusus, fungsi threshold dari persamaan 2.10 dapat didefiniskan sebagai berikut:

1 if v > 0  (v) = 0 if v = 0


(23)

Gambar 2.5. (a) Fungsi threshold.(b) fungsi Piecewise-linier.(c) fungsi sigmoid

Secara umum mengacu pada fungsi signum. Untuk sebuah sigmoid dimungkinkan menggunakan fungsi tangen hiperbolik, yang didefinisikan sebagai berikut :

(2.16)

(v)

v

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.8 2 (v)v

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.8 2 (v)v

-10 -8 -6 -4 -2 0 2 4 6 8 100 0.2 0.4 0.6 0.8 1 1.2 1.4 1.8 2 (a) (b) (c)


(24)

Fungsi aktivasi dari tipe sigmoid diperbolehkan untuk mengasumsikan nilai negatif sebagaimana yang digambarkan persamaan 1.14 mempunyai keuntungan analitik. Lebih jauh, psikologi neuro membuktikan bahwa sifat eksperimental (Eekman dan Freema, 1986), secara kasar dengan antisimetri yang sempurna tentang keaslian karakteristik dari fungsi tangen hiperbolik.

F. Tipe fungsi Aktivasi Identitas

Fungsi identitas merupakan fungsi aktivasi untuk semua input unit. f(x) = x untuk semua x. Bentuk fungsi identitas terdapat pada Gambar 2.6

Gambar 2.6. Fungsi Identitas

2.1.4 Backpropagation Neural Net

A. Arsitektur

Jaringan neural multi layer dengan satu hidden layer (unit Z) ditunjukkan pada gambar 2.7 Unit output (unit Y) dan unit hidden juga mungkin mempunyai pembiasan (sebagaimana yang ditunjukkan pada gambar). Bias pada unit ouput Yk dinotasikan dengan wok; bias pada unit hidden Zj dinotasikan dengan voj.Bias ini berindak seperti bobot ada koneksi dari unit yang outpunya selalu satu. (Unit ini


(25)

ditunjukkan pada gambar 2.7 tapi biasanya tidak ditunjukkan secara eksplisit). Hanya arah dari alur informasi untuk fase operasi feedforward yang ditunjukkan. Selama fase pembelajaran, sinyal dikirim dalam arah berlawanan.

Gambar 2.7. Backpropagation neural network dengan satu hidden layer

B. Algoritma Backpropagation

Pelatihan network dengan backpropagation melibatkan tiga tahap : feedforward dari pola pelatihan input, backpropagation dari error yang terhubung, dan penyesuaian bobot.

Selama feedforward tiap unit input (Xi) menerima sebuah sinyal input dan menyebarkan sinyal ini pada tiap unit hidden Z1, …, Zp. Tiap unit hidden kemudian mengkomputasi aktivasi (Yk) dan mengirimkan sinyal tersebut untuk

Y1

1

Yk Ym

Zj Zp

Z1

1

Xi Xn

X1

... ...

... ...

w01

w11 wj1 wp1

w

0k

w1k wjk

wpk w

0m

wpm wjm w1m

v01

v11 v

i1

vn1

v0p

vij vnj

v1p

vip vnp v1j


(26)

output unit. Tiap unit output mengkomputasi aktivasi dirinya pada bentuk respon dari jaringan yang memberikan pola input.

Selama pelatihan, tiap unit ouput membandingkan aktivasi komputasi Yk dengan nilai target tk untuk menentukan error yang berhubungan pada pola dengan unit tersebut. Berdasarkan error ini, faktor k (k = 1,…, m) dilakukan komputasi. k igunakan untuk mendistribusikan kesalahan pada unit output Yk kembali pada semua unit dalam layer sebelumnya (unit hidden yang berhubungan ke Yk). Hal ini juga digunakan untuk melakukan update bobot diantara output dan hidden layer. Dalam perilaku yang serupa faktor j (j = 1,…, p) dikomputasi untuk tiap hidden unit Zj. Adalah tidak diperlukan untuk melakukan pembelajaran terhadap error pada layer input, tapi j digunakan untuk melakukan update bobot diantara hidden layer dan input layer.

Setelah semua factor  telah ditentukan bobot semua layer disesuaikan secara simultan. Penyesuaian terhadap bobot wjk (dari unti hidden Zj pada unit output Yk) didasarkan pada faktor k dan aktivasi zj dari unit hidden Zj. Penyesuaian pada bobot vij (dari unit input Xi pada unit hidden Zj) didasarkan pada factor j dan aktivasi xi dari unit input. Tata aturan penulisan yang digunakan dalam algoritma pelatihan jaringan backpropagation mengikuti aturan :

x Input vektor pelatihan : x = (x1,…, xi,… xn). t Output vaktor target : t = (t1,…, ti,… tn).

k Bagian dari penyesuaian bobot koreksi error untuk wjk yang dikarenakan suatu error dari unit output Yk ; jadi informasi tentang error di unit Yk yang dikembalikan ke hidden unit itu dimasukkan kedalam unit Yk.


(27)

j Bagian dari penyesuaian bobot koreksi error untuk vij yang dikarenakan informasi yang salah backpropagation dari layer output ke unit hidde Zj.

 Rata-rata pembelajaran

Xi Unit input i : untuk sebuah unit input, sinyal input dan sinyal output adalah sama, penamaan, xi.

voj Bias pada unit hidden j.

Zj Unit hidden j : Input net ke Zj dinotasikan dengan z_inj : z_inj = voj +  xi vij

Sinyal output (aktivasi) dari Zj dinotasikan dengan zj : zj = f(z_inj).

wok Bias pada unit output k.

Yk Unit output k : Input net ke Yk dinotasikan dengan y_ink : y_ink = wok +  zi wjk

Sinyal output (aktivasi) dari Yk dinotasikan dengan yk: yk = f(y_ink).

Secara lebih rinci algoritma backpropagation adalah sebagai berikut : Step 0. Inisialisasi bobot.

(Set ke nilai random kecil).

Step 1. Ketika kondisi berhenti adalah salah, kerjakan langkah 2-9. Step 2. Untuk tiap pasang pelatihan, kerjakan langkah 3-8.

Step 3. Tiap unit input (Xi, i = 1,…, n) menerima sinyal input xi dan meneruskan sinyal ini ke semua unit pada layer yang bersangkutan (unit hidden).


(28)

Step 4. Tiap unit hidden (Z, j = 1,…, p) dijumlahkan dengan bobot sinyal input.

z_inj = voj +  xi vij

pergunakan fungsi aktivasi ini untuk menghitung sinyal output, zj = f(z_inj),

dan mengirimkan sinyal ini ke seluruh unit pada layer yang bersangkutan (unit output).

Step 5. Tiap unit output (Yk, k = 1,…, m) dijumlahkan dengan bobot sinyal input,

y_ink = wok +  zi wjk

dan pergunakan fungsi aktivasi ini untuk menghitung sinyal output,

yk = f(y_ink).

Error dari backpropagation :

Step 6. Tiap unit output (Yk, k = 1,…, m) menerima satu pola target yang cocok untuk pola pelatihan input, syarat perhitungan informasi error ini,

k = (tk - yk) f „(y_ink),

syarat penghitungan bobot koreksi ini (digunakan untuk meng-update wjk nantinya),

wjk = k zj,

syarat penghitungan bias koreksi ini (digunakan untuk meng-update wok nantinya),


(29)

dan mengirimkan k ke unit pada layer sebelumnya.

Step 7. Tiap unit hidden (Yk, k = 1,…, p) menjumlahkan ke input delta (dari unit pada layer sesudahnya),

_inj =  k wjk,

dikalikan dengan nilai dari fungsi aktivasi untuk menghitungnya syarat informasi error,

j = _injf’(z_inj),

hitung koreksi bobot syaratnya (nanti digunakan untuk meng-update vij

vij = j xi,

dan hitung koreksi bias syaratnya (nanti digunakan untuk meng-update voj),

voj = j.

Meng-upadate bobot dan bias :

Step 8. Tiap unit output (Yk, k = 1,…, m) update bias dan bobot(j = 0,.., p) : wjk (baru) = wjk (lama) + wjk

Tiap unit hidden (Zj, j = 1,…, p) update bias dan bobot(i = 0,…, n): vij (baru) = vij (lama) + vij.

Step 9. Kondisi pemberhentian test.

Setelah pelatihan, suatu jaringan neural digunakan hanya pada fase feedforward algoritma pelatihan. Prosedur aplikasinya meliputi antara lain :


(30)

Step 1. Inisialisasi bobot (dari algoritma pelatihan) Step 2. Untuk tiap vektor input, kerjakan step 2-4. Step 2. Untuk i = 1,…, n; set aktivasi dari unit input xi; Step 3. Untuk j = 1,…, p :

z_inj = voj +  xi vij;

zj = f(z_inj),

Step 4. Untuk k = 1,…, m : y_ink = wok +  zj wjk;

yk = f(y_ink).

2.1.5 Mean Square Error (MSE)

MSE adalah fungsi risiko, sesuai dengan nilai yang diharapkan dari hilangnya kesalahan squared atau kerugian kuadratik. Digunakanya MSE untuk membandingkan ketepatan perhitungan. MSE mengukur rata-rata kuadrat dari "kesalahan." Kesalahan adalah jumlah yang estimator yang berbeda dari jumlah yang akan diestimasi.

2.2 Defence Of The Ancients Allstars (DOTA)

Defense of the Ancients (atau disingkat DotA) adalah sebuah peta buatan (custom map) untuk permainan komputer buatan Blizzard berjudul Warcraft III :

Frozen Throne, yang dibuat berdasarkan peta ”Aeon of Strife” dari game Blizzard

lainya, Starcraft. DotA merupakan permainan strategi tim yang berpusat pada pertempuran antar hero, dimana setiap hero memiliki kemampuan yang berbeda-beda. Permainan ini berfokus pada strategi dan kerjasama kelompok, dan bisa dimainkan sampai 10 orang bersama, dan dibagi menjadi 2 kelompok yaitu;


(31)

Sentinel dan Scourge. Setiap pemain akan mendapat pilihan seorang hero dari jumlah total 96 hero tokoh pahlawan (Setiawan, 2009).

Tujuan utama permainan ini adalah untuk menghancurkan markas musuh bersama-sama dengant im dan anak buah petarung yang dikontrol oleh komputer (Creeps). Mirip dengan game permainan perang atau biasa disebut Role Playing Game (RPG), pemain dapat meningkatkan level tokoh pahlawan mereka dan membeli peralatan untuk memperkuat serangan dan pertahananya. DotA dikembangkan menggunakan World Editor dari game Warcraft III: Reign of Chaos. Blizzard sendiri mengakui akan popularitas DotA yang melebihi permainan Warcraft, sehingga DotA telah masuk dalam hall of fame battlenet Blizzard.

2.3 Hero

Hero adalah karakter di DotA yang dijalankan oleh pemain, dan setiap pemain hanya dapat menjalankan satu karakter saja. Total terakhir ada 96 karakter di versi DotA 66.7c dan bisa bertambah di setiap versi. Setiap karakter memiliki jenis, atribut kemampuan, kelebihan dan kekurangan masing-masing (Setiawan, 2009).

Terdapat 2 Jenis hero, berdasarkan jarak serangan yaitu Melee untuk hero yang memiliki jarak serang dekat dan Ranged untuk hero yang memiliki jarak serang menengah sampai jauh. Berdasarkan attributes yang paling besar pada hero dibagi menjadi tiga tipe yaitu, Strength, Agility dan Intelligence.

Secara garis besar hero memiliki tugas dan peran masing-masing (Setiawan, 2010), tugas tersebut antara lain :


(32)

Seorang Tanker bertugas menerima kerusakan sebanyak-banyaknya dari musuh sebagai pengalih perhatian, sehingga hero yang lain dapat menjalankan tugasnya masing-masing.

2. Ganker

Hal yang penting dari Ganker adalah mobilitas, berkeliling di seluruh map dan membunuh hero musuh secara tiba-tiba adalah tugasnya.

3. Initiator

Initiator dalam DotA adalah seorang kunci pada tim, bertugas pertama membuka serangan dan memberikan kerusakan, supaya hero yang lain bisa masuk dan menjalankan tugasnya. Karena itu biasanya seorang Initiator memiliki jurus ultimate kuat.

4. Pusher

Tugas dari seorang Pusher adalah membersihkan pasukan musuh secara cepat dengan skill area yang dimilikinya.

5. Disabler

Disabler bertugas melumpuhkan musuh, memberikan gangguan, dan menghentikan musuh pada saat mengambil tindakan tertentu dalam sementara waktu.

6. AOE Stunner

Area of Effect Stunner atau disingkat AOE Stunner bertugas membuat kerusakan dan membuat korban tidak mampu bergerak atau melakukan tindakan dalam jangka waktu tertentu dengan skill area stun yang dimilikinya.


(33)

Area of Effect Nuker atau disingkat AOE Nuker tugasnya adalah memberikan damage banyak ke semua musuh yang ada dengan jurus yang dimilikinya. Seorang AOE nuker memiliki cooldown yang agak lama dalam menggunakan jurus yang dipakainya.

8. Nuker

Tugas dari seorang Nuker adalah memberikan damage sebanyak-banyaknya ke musuh secara cepat dengan jurus atau mantra sihit yang dimilikanya. Seorang nuker memiiliki cooldown waktu tertentu dalam menggunakan jurus atau mantra sihit yang dipakainya.

9. Support

Seorang supporter bertugas untuk memberikan status-status positif ke hero teman dan memberikan status-status negatif ke hero musuh.

10. Semi Carry

Semi Carry adalah hero yang memberikan kerusakan secara fisik atau dengan skill yang dimilikinya. Akan tetapi tidak sehebat Carry apabila jadi itemnya, maka dari itu semi carry masi diwajibkan untuk mengikuti pertempuran pada awal permainan.

11. Carry

Seorang Carry atau biasa disebut dengan hitter adalah hero yang memberikan kerusakan secara fisik dengan natural skillnya atau dengan memperbanyak item di inventori. Kebanyakan hero carry lah yang akan


(34)

membawa banyak kemenangan pada tim nya kalau tidak dijaga dan jadi itemnya.

12. Stunner

Tugas dari seorang Stunner adalah membuat kerusakan dan membuat korban tidak mampu bergerak atau melakukan tindakan dalam jangka waktu tertentu dengan skill yang dimilikinya. Lama durasi stun sekitar 1 sampai 2 detik.

13. Slower

Slower adalah hero yang memiliki jurus melambatkan jalannya musuh untuk lebih mudah diserang oleh hero yang lain.

2.4 Captains Mode (CM)

Captains mode adalah salah satu mode dari sekian banyak mode di DotA, mode ini adalah mode yang sering digunakan pada saat pertandingan resmi dan perlombaan. Pada Captains mode posisi Biru dan Merah muda adalah kapten tim. Tim yang pertama mulai memilih hero yang tidak boleh digunakan pada saat eliminasi secara bergantian 1/1/1. Waktu mengeliminasi 40 detik, apabila waktu habis maka akan dianggap tidak mengeliminasi hero apapun. Setelah itu baru kapten tim memilih hero yang akan digunakan secara bergantian 1/2/2/2/2/1. Waktu memilih 60 detik, apabila waktu habis maka akan memasuki ekstra time 45 detik dan apabila masih belum memilih maka akan mendapatkan random hero. Terdapat total 7 fase pemilihan hero pada Dota CM. Segera ketik –CM setelah game berlangsung untuk masuk ke mode Captains mode, apabila kubu Sentinel yang memilih pertama maka ketik –CM 1 setelahnya, sebaliknya kubu Scourge yang memilih pertama maka ketik –CM 2. Hero yang dipilih, di eliminasi, dan


(35)

waktu semuanya ada di papan sebelah kanan atas untuk memudahkan melihat. (Setiawan, 2009).


(36)

34 BAB III

PERANCANGAN SISTEM

3.1 Identifikasi Permasalahan dan Analisa Kebutuhan Sistem

Penerapan sistem belajar untuk dapat membantu penentuan hero pada tahap eliminasi dan tahap pemilihan DoTA dengan mode CM memiliki permasalahan yang komplek, karena tahap eliminasi dan tahap pemilihan hero dilakukan secara bergantian antar 2 tim yang bertanding, dengan komposisi 1-1-1-1-1-1-1-1 untuk tahap eliminasi, dan 1-2-2-2-2-1. Dibutuhkan total 7 arsitektur ANN untuk 1 tim, yaitu 4 arsitektur ANN untuk tahap eliminasi, dan 3 arsitektur ANN untuk tahap pemilihan. Pada penelitian tugas akhir ini akan difokuskan pada sistem penentuan hero untuk tim 2.

Adanya variasi data yang cukup banyak dan memiliki perbedaan yang besar untuk 1 hero pada tahap eliminasi awal, dimana data masukan ANN hanya ada 1, yaitu hero yang dieliminasi tim 1, maka sangat dimungkinkan pembelajaran ANN pada tahap ini akan mengalami kegagalan.

Permasalahan lainnya adalah dibutuhkannya cara untuk mengasosiasikan hero input dan hero output ANN secara tepat, karena ID hero kurang dapat mewakili karakteristik hero terkait. Karakteristik tiap hero dapat diwakili dengan 13 kemampuan dasar (atribut) yang ada pada tiap hero, oleh sebab itu maka hero input dan hero output ANN akan diasosiasikan terhadap ke 13 atribut yang ada, yaitu tanker, ganker, initiator, pusher, disabler, AOE stunner, AOE nuker, nuker, support, semi carry, carry / DPS, stunner, dan slower. Hero output ANN yang berupa nilai 13 atribut hero perlu diproses lebih lanjut untuk dapat menghasilkan


(37)

hero yang berkarakter sesuai, sehingga output ANN dijadikan dasar seleksi dari tiap hero yang ada berdasarkan pada nilai dari 13 atributnya. Hero rekomendasi ANN akan ditampilkan secara urut berdasarkan pada kesesuaian 13 atribut hero terkait dengan 13 atribut hasil dari ANN.

Sistem juga perlu memberikan tambahan informasi untuk membantu keputusan pemilihan hero dari daftar rekomendasi hero yang dihasilkan ANN di tahap pemilihan, yaitu counter hero, combo 2 hero, dan combo 3 hero. Pemberian informasi ini akan dilakukan dengan proses query dari tabel counter hero, combo 2 hero, dan combo 3 hero terhadap hero rekomendasi ANN dengan hero yang telah dipilih oleh tim 2.

3.2 Desain Sistem

Berdasarkan identifikasi permasalahan diatas maka blok diagram ANN pada sistem penentuan hero dapat dilihat pada gambar 3.1

Konversi ke Attributes Ban & Pick Hero

Terpilih Tim 1 & 2

Attributes Ban & Pick Hero Terpilih

Tim 1 & 2

Feed Forward

Attribut Rekomendasi Ban & Pick Hero

tim 2

Komparasi Output NN dengan Attribut Hero

Seleksi Ban & Pick Hero tim 2

Rekomendasi Ban & Pick Hero Tim 2

Ban & Pick Hero Tim 2 Hasil Seleksi Evaluasi Pick Hero Tim 2

Rekomendasi Akhir Ban & Pick Hero Tim 2

Gambar 3.1. Blok Diagram Sistem Penentuan Hero pada DotA


(38)

1. Konversi ke attributes

Proses konversi attributes adalah proses merubah ID hero yang diinputkan dari tim 1 dan tim 2 menjadi attribut-attribut hero yang telah ditentukan.

2. Feed Forward

Proses Feed forward adalah proses yang dilakukan ANN untuk menghasilkan rekomendasi attribut hero, dengan menggunakan bobot yang telah dilatihkan. 3. Komparasi Output NN dengan Attribut Hero

Output attribut dari proses ANN akan dicocokan dengan atribut dari tiap hero yang ada, dan banyaknya kecocokan akan menentukan besar prosentase kecocokan.

4. Seleksi Ban & Pick hero tim 2

Sebelum hero rekomendasi ditampilkan ke tim 2, proses seleksi dibutuhkan untuk mengeliminasi hero yang termasuk dalam daftar unavailable hero dan hero yang telah dipilih sebelumnya.

5. Evaluasi Pick hero tim 2

Proses evaluasi adalah proses terakhir digunakan untuk menambahkan informasi combo hero dan counter hero terhadap rekomendasi hero yang diberikan pada tim 2.

3.2.1 Arsitektur ANN

Attribute 1

Attribute 13

ANN

Attribute 1

Attribute 13 Ban Hero

TIM 1

Ban Hero TIM 2


(39)

X1,1 X1,n Xm,1 Xm,n

Z1 Zp

Y1,1 Y1,r Yq,1 Yq.r

V1,1 1 1V

,n 1 V m,1 1 V m,n 1

V1,1 p V1,n p

Vm ,1 p V m ,n p W1 q,1

W1 q

,r

W

p 1 ,1

Wp q,

r

1

1

W0 1,1 W

0 1,r W0 q,1 W0 q,r

V01 V0p

W 1 1 ,1

W1 1,r W

p 1 ,r

W p q, 1

Gambar 3.2. Gambar Arsitektur NN Ban Phase 1

x Input vektor pelatihan : x = (x1,…, xi,… xn). t Output vaktor target : t = (t1,…, ti,… tn).

q,r Bagian dari penyesuaian bobot koreksi error untuk wq,r yang dikarenakan suatu error dari unit output Yq,r ; jadi informasi tentang error di unit Yq,r yang dikembalikan ke hidden unit itu dimasukkan kedalam unit Yq,r.

m,n Bagian dari penyesuaian bobot koreksi error untuk vm,n yang dikarenakan informasi yang salah backpropagation dari layer output ke unit hidde Zp.

 Konstanta pembelajaran X m,n Unit input xm,n :


(40)

m untuk mewakili jumlah hero input

n untuk mewakili jumlah atribut hero input dengan total 13 atribut

Sinyal input (aktivasi) dari Xm,n dinotasikan dengan xm,n dimana menggunakan fungsi aktivasi identity

xm,n = f(x_in m,n).

Vop Bias pada unit hidden p.

Zp Unit hidden p : Input net ke Zp dinotasikan dengan z_inp : z_inp = vop +  xm,n vm,n p

Sinyal output (aktivasi) dari Zp dinotasikan dengan zp dimana menggunakan fungsi aktivasi Bipolar Sigmoid, karena dengan fungsi tersebut dapat memberikan efek non-linearitas dalam perhitungan sehingga mempercepat proses pelatihan.

zp = f(z_inp)

1- exp (-z_inp)

f (z_inp) =

1 + exp(-z_inp)

f adalah fungsi sigmoid Z_inp Unit hidden

wo q,r Bias pada unit output Y q,r.

Y q,r Unit output q,r

q untuk mewakili jumlah hero output

r untuk mewakili jumlah atribut hero output dengan total 13 atribut

Input net ke Y q,r dinotasikan dengan y_in q,r : y_in q,r = wo q,r +  zp wp q,r


(41)

Sinyal output (aktivasi) dari Yq,r dinotasikan dengan yq,r dimana menggunakan fungsi aktivasi identity

y q,r = f(y_in q,r).

Secara lebih rinci algoritma backpropagation adalah sebagai berikut : Step 0. Inisialisasi bobot.

(Set ke nilai random kecil).

Step 1. Ketika kondisi berhenti adalah salah, kerjakan langkah 2-9. Step 2. Untuk tiap pasang pelatihan, kerjakan langkah 3-8.

Step 3. Tiap unit input (Xm,n, m = 1,…, x, n = 1,..., 13) menerima sinyal

input xm,n dan meneruskan sinyal ini ke semua unit pada layer yang

bersangkutan (unit hidden).

Step 4. Tiap unit hidden (Z, p = 1,…, p) dijumlahkan dengan bobot sinyal input.

z_inp = vop +  xm,n vm,n p

pergunakan fungsi aktivasi ini untuk menghitung sinyal output, zp = f(z_inp).

dan mengirimkan sinyal ini ke seluruh unit pada layer yang bersangkutan (unit output).

Step 5. Tiap unit output (Yq,r , q = 1,…, x, r = 1,…, 13) dijumlahkan dengan bobot sinyal input,


(42)

dan pergunakan fungsi aktivasi ini untuk menghitung sinyal output,

y q,r = f(y_in q,r).

Error dari backpropagation :

Step 6. Tiap unit output (Yq,r , q = 1,…, x, r = 1,…, 13) menerima satu pola target yang cocok untuk pola pelatihan input, syarat perhitungan informasi error ini,

q,r = (tq,r– yq,r) f ‘(y_inq,r),

syarat penghitungan bobot koreksi ini (digunakan untuk meng-update wjk nantinya),

wp q,r = q,r zp,

syarat penghitungan bias koreksi ini (digunakan untuk meng-update w o q,r nantinya),

w o q,r = q,r ,

dan mengirimkan  q,r ke unit pada layer sebelumnya.

Step 7. Tiap unit hidden (Yq,r , q = 1,…, x, r = 1,…, 13) menjumlahkan ke input delta (dari unit pada layer sesudahnya),

_inp =  Yq,r wp q,r,

kalikan dengan nilai dari fungsi aktivasi untuk menghitungnya syarat informasi error,


(43)

hitung koreksi bobot syaratnya (nanti digunakan untuk meng-update vm,n p

 vm,n p = p xm,n

dan hitung koreksi bias syaratnya (nanti digunakan untuk meng-update voj),

vop = p.

Meng-update bobot dan bias :

Step 8.Tiap unit output (Yq,r , q = 1,…, x, r = 1,…, 13) update bias dan bobot (p = 1,…, p) :

wp q,r (baru) = wp q,r (lama) +  wp q,r

Tiap unit hidden (Zp, p = 1,…, p) update bias dan bobot (i = 0,…, n) : vm,n p (baru) = vm,n p (lama) +  vm,n p.

Step 9. Kondisi pemberhentian test.

Setelah pelatihan, suatu jaringan neural digunakan hanya pada fase feedforward algoritma pelatihan. Prosedur aplikasinya meliputi antara lain :

Step 0. Inisialisasi bobot (dari algoritma pelatihan) Step 1. Untuk tiap vektor input, kerjakan step 2-4.

Step 2. Untuk m,n = 1,…, n; set aktivasi dari unit input xm,n;

Step 3. Untuk p = 1,…, p :

z_inp = vop +  xm,n vm,n p;


(44)

Step 4. Untuk q,r , q = 1,…, x, r = 1,…, 13 : y_in q,r = wo q,r +  zp wp q,r y q,r = f(y_in q,r).

Pada ban phase yang pertama, Proses ANN menerima hasil input ban hero dari tim 1 yang sudah di konversikan menjadi atribut. Di dalam proses ANN sistem mencoba memberikan saran penentuan hero yang berupa output untuk diban selanjutnya kepada tim 2

Attribute 1

Attribute 13

ANN Attribute 1

Attribute 13 Ban Hero 1

TIM 1

Ban Hero 2 TIM 2

Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Gambar 3.3. Gambar Arsitektur NN Ban Phase 2

Proses selanjutnya adalah ban phase yang kedua, dimana hasil output saran dari ban phase 1 dijadikan input untuk proses ANN bersama dengan hero yang diban kedua oleh tim 1. Hasilnya adalah saran untuk tim 2 hero yang akan di ban.


(45)

Attribute 1

Attribute 13

ANN

Attribute 1

Attribute 13 Ban Hero 1

TIM 1

Ban Hero 3 TIM 2

Attribute 1

Attribute 13 Ban Hero 1

TIM 2

Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Attribute 1

Attribute 13 Ban Hero 2

TIM 2

Attribute 1

Attribute 13 Ban Hero 3

TIM 1

Gambar 3.4. GambarArsitektur NN Ban Phase 3

Pada ban phase ke 3 outputnya adalah saran untuk memilih hero yang akan diban tim 2 setelah di proses ANN dengan 3 inputan hero yang diban tim 1 dan 2 hero yang diban dari tim 2.


(46)

Attribute 1

Attribute 13

ANN

Attribute 1

Attribute 13 Ban Hero 1

TIM 1

Ban Hero 4 TIM 2

Attribute 1

Attribute 13 Ban Hero 1

TIM 2

Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Attribute 1

Attribute 13 Ban Hero 2

TIM 2

Attribute 1

Attribute 13 Ban Hero 3

TIM 1

Attribute 1

Attribute 13 Ban Hero 3

TIM 2

Attribute 1

Attribute 13 Ban Hero 4

TIM 1

Gambar 3.5. GambarArsitektur NN Ban Phase 4

Proses ban phase ke 4 hampir sama dengan proses ban phase sebelumnya, outputnya adalah saran hero yang akan di ban terakhir oleh tim 2 berdasarkan proses ANN yang telah diolah dengan hasil input dari 4 hero yang diban tim 1 dan 3 hero dari tim 2.


(47)

Attribute 1

Attribute 13

ANN

Attribute 1

Attribute 13 Ban Hero 1

TIM 1

Pick Hero 1 TIM 2 Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Attribute 1

Attribute 13 Ban Hero 3

TIM 1

Attribute 1

Attribute 13 Ban Hero 4

TIM 1

Attribute 1

Attribute 13 Ban Hero 1

TIM 2

Attribute 1

Attribute 13 Ban Hero 2

TIM 2

Attribute 1

Attribute 13 Ban Hero 3

TIM 2

Attribute 1

Attribute 13 Ban Hero 4

TIM 2 Attribute 1 Attribute 13 Pick Hero TIM 1 Attribute 13

Pick Hero 2 TIM 2 Attribute 1

Gambar 3.6 GambarArsitektur NN Pick Phase 1

Proses ANN pada saat pick phase 1 menghasilkan 2 output saran untuk pemilihan hero tim 2, pick hero 1 dan pick hero 2. Proses ANN mengolah semua input hasil ban phase tim 1 dan 2 kemudia ditambahkan pick hero yang pertama oleh tim 1.


(48)

Attribute 1

Attribute 13

ANN

Attribute 1

Attribute 13 Ban Hero 1

TIM 1

Pick Hero 3 TIM 2 Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Attribute 1

Attribute 13 Ban Hero 3

TIM 1

Attribute 1

Attribute 13 Ban Hero 4

TIM 1

Attribute 1

Attribute 13 Ban Hero 1

TIM 2

Attribute 1

Attribute 13 Ban Hero 2

TIM 2

Attribute 1

Attribute 13 Ban Hero 3

TIM 2

Attribute 1

Attribute 13 Ban Hero 4

TIM 2

Attribute 1

Attribute 13 Pick Hero 1

TIM 1

Attribute 13

Pick Hero 4 TIM 2 Attribute 1

Attribute 1

Attribute 13 Pick Hero 2

TIM 1

Attribute 1

Attribute 13 Pick Hero 3

TIM 1

Attribute 1

Attribute 13 Pick Hero 1

TIM 2

Attribute 1

Attribute 13 Pick Hero 2

TIM 2

Gambar 3.7 GambarArsitektur NN Pick Phase 2

Demikian juga dengan pick phase ke 2, output dari proses ANN ada 2 yaitu saran pemilihan hero pada pick hero 3 dan pick hero 4 untuk tim 2. Data yang diinputkan pada prosesa ANN adalah semua ban hero tim 1 dan tim 2, pick hero tim 1 sampai dengan pick hero yang ke 3, tim 2 pick hero 1 dan pick hero 2.


(49)

Attribute 1

Attribute 13

ANN Attribute 1

Attribute 13 Ban Hero 1

TIM 1

Pick Hero 5 TIM 2 Attribute 1

Attribute 13 Ban Hero 2

TIM 1

Attribute 1

Attribute 13 Ban Hero 3

TIM 1

Attribute 1

Attribute 13 Ban Hero 4

TIM 1

Attribute 1

Attribute 13 Ban Hero 1

TIM 2

Attribute 1

Attribute 13 Ban Hero 2

TIM 2

Attribute 1

Attribute 13 Ban Hero 3

TIM 2

Attribute 1

Attribute 13 Ban Hero 4

TIM 2

Attribute 1

Attribute 13 Pick Hero 1

TIM 1

Attribute 1

Attribute 13 Pick Hero 2

TIM 1

Attribute 1

Attribute 13 Pick Hero 3

TIM 1

Attribute 1

Attribute 13 Pick Hero 4

TIM 1

Attribute 1

Attribute 13 Pick Hero 5

TIM 1

Pick Hero 1 TIM 2

Attribute 1

Attribute 13 Pick Hero 2

TIM 2

Attribute 1

Attribute 13 Pick Hero 3

TIM 2

Attribute 1

Attribute 13 Pick Hero 4

TIM 2

Attribute 1

Attribute 13

Gambar 3.8 GambarArsitektur NN Pick Phase 3

Proses NN terakhir mengeluarkan output pick hero yang ke 5 bagi tim 2. Data yang diinput untuk proses NN kali ini dari semua ban hero tim 1 dan tim 2, pick hero tim 1 sampai dengan pick hero yang ke 5 sedangkan tim 2 sampai dengan pick hero 4

3.2.2 Contoh Perhitungan ANN

Sebagai contoh perhitungan ANN pada sistem ini akan diambil proses pelatihan pada Ban Phase 2. Sebagaimana telah dijelaskan sebelumnya pada


(50)

mekanisme pemilihan hero DotA untuk Captains Mode (sub bab 2.4), Ban Phase 2 akan mendapatkan input masing-masing 1 hero yang dipilih untuk tidak boleh dimainkan oleh tim 1 dan tim 2.

Pelatihan ANN akan bergantung pada konfigurasi ANN yang telah ditetapkan sebelumnya. Misal untuk pelatihan Ban phase 2, ditetapkan konfigurasi ANN sebagai berikut :

NN ID : Ban Phase 2

Input Group Quantity : 3 I/O Nodes Quantity : 13 Output Group Quantity : 1 Hidden Nodes Quantity : 3 Learning Const : 0,001

Treshold : 0

Learning Pattern : 10

Grup ID Input : 1 Neuron Quantity : 13

Activation : Identity

Object ID : B2

Max Value : 1

Min Value : 0

Grup ID Input : 2 Neuron Quantity : 13


(51)

Object ID : B2

Max Value : 1

Min Value : 0

Grup ID Input : 3 Neuron Quantity : 13

Activation : Identity

Object ID : B2

Max Value : 1

Min Value : 0

Grup ID Output : 1 Neuron Quantity : 13

Activation : Identity

Object ID : B2

Max Value : 1

Min Value : 0

Berdasarkan pada jumlah pola data (Learning Pattern) yang telah ditentukan sebelumnya, misal 1 pola sebagaiman disebutkan di atas, maka sistem akan menyediakan 1 pola data dari permainan sebelumnya yang telah disimpan di database (tabel 3.1)

Tabel 3.1 Pola data input pada Ban Phase 2

Ban Phase 2

INPUT

Pola


(52)

ID Nama ID Nama ID Nama 1 51 Vengeful Spirit 61 Spectre 88 Dark Seer

Tabel 3.2 Pola data target pada Ban Phase 2

TARGET

Pola

Ke Hero 2 tim 2 ID Nama

1 78 Visage

Saat pelatihan ANN dimulai, pola data pertama akan diumpankan ke ANN, dan sebelum diproses lebih lanjut ke perhitungan ANN, data akan dikonversi terlebih dahulu menjadi 13 attribut berdasarkan pada attribut dari ID hero bersangkutan yang telah ada di tabel MstHeroesAttributes pada database . Misal ID hero 51 Vengeful Spirit akan memiliki attribut sebagai berikut :

Tanker : 0 Ganker : 1 Initiator : 1 Pusher : 0 Disabler : 0 AOE Stunner : 0 AOE Nuker : 0 Nuker : 0 Support : 1 Semi Carry : 0 Carry / DPS : 0 Stunner : 1 Slower : 0


(53)

Demikian seterusnya untuk pola data input dan ouput dari ID hero yang ada pada Tabel 3.1, akan di konversi menjadi 13 attribut sebagaimana pada tabel 3.2 dan 3.3

Tabel 3.2 Pola Input Attribute Hero Ban Phase 2

Pola input ID

Attributes

1 2 3 4 5 6 7 8 9 10 11 12 13

1

51 0 0 1 0 0 0 0 0 1 0 0 1 0 61 0 0 1 0 0 0 0 0 0 0 1 0 1 88 0 1 0 1 1 0 1 0 1 0 0 0 0

Tabel 3.3 Pola Target Attribute Hero Ban Phase 2

Pola

Target ID

Attributes

1 2 3 4 5 6 7 8 9 10 11 12 13 1 78 1 0 0 0 0 0 0 1 0 1 0 0 1

Setelah persiapan pola input dan target selesai maka proses pelatihan dimulai dengan melakukan proses forward propagation . Pada awal pelatihan bobot akan di beri nilai random. Perhitungan akan dimulai dengan set iterasi pertama dengan mengumpankan pola input di tabel 3.2 pada proses forward propagation dan mengakumulasi perubahan bobot yang terjadi pada proses backpropagation hingga iterasi selesai, baru melakukan update bobot.

Berikut ini adalah perhitungan forward propagation pada iterasi awal : Tiap unit hidden dijumlahkan dengan bobot sinyal input.

z_inp = vop +  xm,n vm,n p , dimana pada perhitungan ini tidak ada node bias untuk

layer input jadi nilai vop = 0.

z_in1 = (x1,1 v1,1 1 + ... + x1,13 v1,13 1 +x2,1 v2,1 1 + ... +x2,13 v2,13 1 +x3,1 v3,1 1 + ... +


(54)

z_in1 = (0 0.00531129702112896 + ... + 0 0.00504173658580013 + 0

0.000875272066938814 + ... + 1 0.0108366005700201 + 0 -0.00184866986176721 + ... + 0 0.00248305944621586) = -0.0133280446980434 z_in2 = (x1,1 v1,1 2 + ... + x1,13 v1,13 2 +x2,1 v2,1 2 + ... +x2,13 v2,13 2 +x3,1 v3,1 2 + ... +

x3,13 v3,13 2)

z_in2 = (0 0.000863668431241366 + ... + 0 1.24031653173033 + 0

-0.0101713105683963 + ... + 1 0.00340419159498733 + 0 -0.0103882572794006 + ... + 0 0.00655523787931578 = 0.0418224324556603

z_in2 = (x1,1 v1,1 2 + ... + x1,13 v1,13 2 +x2,1 v2,1 2 + ... +x2,13 v2,13 2 +x3,1 v3,1 2 + ... +

x3,13 v3,13 2)

z_in3 = (x1,1 v1,1 3 + ... + x1,13 v1,13 3 +x2,1 v2,1 3 + ... +x2,13 v2,13 3 +x3,1 v3,1 2 + ... +

x3,13 v3,13 3)

z_in3 = ( 0 0.00205474143716503 + ... + 0 -0.00661675070200232 + 0

0.0129047491811626 + ... + 1 0.00329823872658614 + 0 0.00157726122324792 + ... + 0 0.00248305944621586 ) = -0.00359495388729084

Nilai z dihitung dari nilai z_in berdasarkan pada fungsi aktivasi yang telah ditetapkan untuk tiap z.

z1 = f(z_in1) = (1-exp(-z_in1)) / (1+exp(-z_in1)) = -0.00675333529307017

z2 = f(z_in2) = (1-exp(-z_in2)) / (1+exp(-z_in2)) = 0.0200517714084377

z3 = f(z_in3) = (1-exp(-z_in3)) / (1+exp(-z_in3)) = -0.00180394847651682


(55)

Tabel 3.4 Perhitungan forward propagation nilai hidden layer z

i xi h vi,h xi.vi,h z_inh zh

1 1 0 1 5.31E-03 0.00E+00

-1.33E-02 -6.75E-03 1 2 0 1 -5.44E-03 0.00E+00

1 3 1 1 -1.26E-02 -1.26E-02 1 4 0 1 5.40E-03 0.00E+00 1 5 0 1 9.37E-03 0.00E+00 1 6 0 1 1.19E-02 0.00E+00 1 7 0 1 1.16E-02 0.00E+00 1 8 0 1 6.90E-03 0.00E+00 1 9 1 1 -8.09E-04 -8.09E-04 1 10 0 1 3.82E-03 0.00E+00 1 11 0 1 8.52E-03 0.00E+00 1 12 1 1 1.26E-02 1.26E-02 1 13 0 1 5.04E-03 0.00E+00 2 1 0 1 8.75E-04 0.00E+00 2 2 0 1 4.55E-03 0.00E+00 2 3 1 1 -1.03E-02 -1.03E-02 2 4 0 1 -5.57E-03 0.00E+00 2 5 0 1 -3.05E-03 0.00E+00 2 6 0 1 1.24E-02 0.00E+00 2 7 0 1 -8.77E-03 0.00E+00 2 8 0 1 -2.32E-03 0.00E+00 2 9 0 1 -4.49E-03 0.00E+00 2 10 0 1 -8.11E-03 0.00E+00 2 11 1 1 -1.09E-03 -1.09E-03 2 12 0 1 7.37E-03 0.00E+00 2 13 1 1 1.08E-02 1.08E-02 3 1 0 1 -1.85E-03 0.00E+00 3 2 1 1 5.03E-03 5.03E-03 3 3 0 1 -1.23E-02 0.00E+00 3 4 1 1 -1.80E-03 -1.80E-03 3 5 1 1 3.55E-04 3.55E-04 3 6 0 1 -2.46E-03 0.00E+00 3 7 1 1 -6.62E-03 -6.62E-03 3 8 0 1 -2.83E-03 0.00E+00 3 9 1 1 -8.90E-03 -8.90E-03 3 10 0 1 3.33E-03 0.00E+00 3 11 0 1 1.13E-02 0.00E+00 3 12 0 1 -2.83E-03 0.00E+00 3 13 0 1 -1.04E-03 0.00E+00 1 1 0 2 8.64E-04 0.00E+00

4.18E-02 2.01E-02 1 2 0 2 -5.12E-03 0.00E+00

1 3 1 2 6.74E-03 6.74E-03 1 4 0 2 -1.17E-02 0.00E+00 1 5 0 2 7.51E-03 0.00E+00 1 6 0 2 9.60E-03 0.00E+00 1 7 0 2 -3.51E-03 0.00E+00


(56)

i xi h vi,h xi.vi,h z_inh zh

1 8 0 2 -1.15E-02 0.00E+00

4.18E-02 2.01E-02 1 9 1 2 -5.22E-03 -5.22E-03

1 10 0 2 -6.10E-03 0.00E+00 1 11 0 2 8.39E-03 0.00E+00 1 12 1 2 1.06E-02 1.06E-02 1 13 0 2 1.24E+00 0.00E+00 2 1 0 2 -1.02E-02 0.00E+00 2 2 0 2 -1.25E-02 0.00E+00 2 3 1 2 -1.03E-02 -1.03E-02 2 4 0 2 -1.17E-02 0.00E+00 2 5 0 2 -5.14E-03 0.00E+00 2 6 0 2 -2.55E-03 0.00E+00 2 7 0 2 -8.71E-03 0.00E+00 2 8 0 2 -2.25E-03 0.00E+00 2 9 0 2 3.44E-03 0.00E+00 2 10 0 2 2.15E-03 0.00E+00 2 11 1 2 1.05E-02 1.05E-02 2 12 0 2 -3.13E-03 0.00E+00 2 13 1 2 3.40E-03 3.40E-03 3 1 0 2 -1.04E-02 0.00E+00 3 2 1 2 1.07E-02 1.07E-02 3 3 0 2 1.12E-03 0.00E+00 3 4 1 2 4.60E-03 4.60E-03 3 5 1 2 -9.57E-04 -9.57E-04 3 6 0 2 -5.95E-03 0.00E+00 3 7 1 2 1.24E-02 1.24E-02 3 8 0 2 -3.49E-03 0.00E+00 3 9 1 2 -6.60E-04 -6.60E-04 3 10 0 2 1.09E-03 0.00E+00 3 11 0 2 3.99E-03 0.00E+00 3 12 0 2 -1.01E-02 0.00E+00 3 13 0 2 6.56E-03 0.00E+00 1 1 0 3 2.05E-03 0.00E+00

-3.59E-03 -1.80E-03 1 2 0 3 7.10E-03 0.00E+00

1 3 1 3 8.13E-03 8.13E-03 1 4 0 3 -2.22E-03 0.00E+00 1 5 0 3 -3.27E-03 0.00E+00 1 6 0 3 -1.15E-02 0.00E+00 1 7 0 3 6.43E-04 0.00E+00 1 8 0 3 2.39E-03 0.00E+00 1 9 1 3 3.17E-03 3.17E-03 1 10 0 3 -5.70E-03 0.00E+00 1 11 0 3 2.30E-03 0.00E+00 1 12 1 3 -7.06E-03 -7.06E-03 1 13 0 3 -6.62E-03 0.00E+00 2 1 0 3 1.29E-02 0.00E+00

Tabel 3.4 Perhitungan forward propagation nilai hidden layer z (lanjutan)


(57)

2 2 0 3 1.94E-03 0.00E+00

-3.59E-03 -1.80E-03 2 3 1 3 7.72E-03 7.72E-03

2 4 0 3 -5.28E-03 0.00E+00 2 5 0 3 1.16E-02 0.00E+00 2 6 0 3 -5.73E-03 0.00E+00 2 7 0 3 3.79E-03 0.00E+00 2 8 0 3 5.50E-03 0.00E+00 2 9 0 3 -7.56E-03 0.00E+00 2 10 0 3 -1.08E-02 0.00E+00 2 11 1 3 -6.17E-03 -6.17E-03 2 12 0 3 -5.44E-03 0.00E+00 2 13 1 3 3.30E-03 3.30E-03 3 1 0 3 1.58E-03 0.00E+00 3 2 1 3 8.65E-03 8.65E-03 3 3 0 3 1.08E-02 0.00E+00 3 4 1 3 6.34E-05 6.34E-05 3 5 1 3 -3.79E-03 -3.79E-03 3 6 0 3 -1.15E-02 0.00E+00 3 7 1 3 -1.13E-02 -1.13E-02 3 8 0 3 -2.61E-04 0.00E+00 3 9 1 3 -6.27E-03 -6.27E-03 3 10 0 3 -8.88E-03 0.00E+00 3 11 0 3 1.57E-04 0.00E+00 3 12 0 3 7.34E-03 0.00E+00 3 13 0 3 2.48E-03 0.00E+00

y_in1 = 1.w0,1 + z1,1 w1,1 + z2,1 w2,1 + z3,1 w3,1 =1 . 0.426046669483185 +

0.00675333529307017 . 0.394547343254089 + 0.0200517714084377 . -0.168305575847626 + -0.00180394847651682 . -0.371750116348267 = -0.42609 y1 = f(y_in1) dimana fungsi aktivasi dari y adalah fungsi linier, jadi

y1= -0.42609


(58)

Tabel 3.5 Perhitungan forward propagation nilai output layer y

h o zh wh,o wh,o.zh y_ino yo

0 1 1 -0.42605 -0.426046669

-0.42609 -0.42609 1 1 -6.75E-03 -0.39455 2.66E-03

2 1 2.01E-02 -0.16831 -3.37E-03 3 1 -1.80E-03 -0.37175 6.71E-04 0 2 1 -0.49976 -0.49975878

-0.49694 -0.49694 1 2 -6.75E-03 3.68E-02 -2.48E-04

2 2 2.01E-02 0.157055 3.15E-03 3 2 -1.80E-03 4.40E-02 -7.94E-05 0 3 1 0.327412 0.32741183

0.323735 0.323735 1 3 -6.75E-03 -0.41811 2.82E-03

2 3 2.01E-02 -0.30808 -6.18E-03 3 3 -1.80E-03 0.178913 -3.23E-04 0 4 1 -4.58E-02 -0.045792162

-0.05221 -0.05221 1 4 -6.75E-03 -0.14298 9.66E-04

2 4 2.01E-02 -0.35002 -7.02E-03 3 4 -1.80E-03 0.204396 -3.69E-04 0 5 1 0.428786 0.42878598

0.419889 0.419889 1 5 -6.75E-03 3.02E-02 -2.04E-04

2 5 2.01E-02 -0.41036 -8.23E-03 3 5 -1.80E-03 0.257729 -4.65E-04 0 6 1 -9.82E-02 -0.098157942

-0.09753 -0.09753 1 6 -6.75E-03 -3.81E-02 2.57E-04

2 6 2.01E-02 -7.83E-03 -1.57E-04 3 6 -1.80E-03 -0.29237 5.27E-04 0 7 1 -0.17026 -0.170264065

-0.16514 -0.16514 1 7 -6.75E-03 -0.40457 2.73E-03

2 7 2.01E-02 8.98E-02 1.80E-03 3 7 -1.80E-03 -0.33013 5.96E-04 0 8 1 0.427617 0.427616537

0.429616 0.429616 1 8 -6.75E-03 -0.40207 2.72E-03

2 8 2.01E-02 -5.61E-02 -1.13E-03 3 8 -1.80E-03 -0.22705 4.10E-04 0 9 1 0.372547 0.372546852

0.365988 0.365988 1 9 -6.75E-03 0.250688 -1.69E-03

2 9 2.01E-02 -0.22706 -4.55E-03 3 9 -1.80E-03 0.173647 -3.13E-04 0 10 1 -0.24337 -0.243371069

-0.24969 -0.24969 1 10 -6.75E-03 -0.4101 2.77E-03

2 10 2.01E-02 -0.46905 -9.41E-03 3 10 -1.80E-03 -0.17728 3.20E-04 0 11 1 0.290129 0.290128887

0.286225 0.286225 1 11 -6.75E-03 -0.20274 1.37E-03

2 11 2.01E-02 -2.65E-01 -5.31E-03 3 11 -1.80E-03 -1.95E-02 3.52E-05


(59)

Tabel 3.5 Perhitungan forward propagation nilai output layer y (lanjutan)

h o zh wh,o wh,o.zh y_ino yo

0 12 1 -0.2454 -0.245398104

-0.25341 -0.25341 1 12 -6.75E-03 -0.15939 1.08E-03

2 12 2.01E-02 -0.45507 -9.12E-03 3 12 -1.80E-03 -1.76E-02 3.17E-05 0 13 1 -0.29398 -0.293982804

-0.29513 -0.29513 1 13 -6.75E-03 0.364534 -2.46E-03

2 13 2.01E-02 8.86E-02 1.78E-03 3 13 -1.80E-03 0.254908 -4.60E-04

Backpropagation dimulai dengan menghitung  output NN yang merupakan hasil dari perkalian error NN, yaitu target (t) – output (y), dengan turunan fungsi aktivasi output f’(y_in). Karena fungsi aktivasi dari output adalah linier, maka turunan dari fungsi aktivasi output adalah 1.

Pada contoh perhitungan ini:

y1 = (t1-y1) x f’(y_in1) = (1-0.4260863) x 1 = 1.426086366, demikian seterusnya

untuk semua output(y) yang ada, sebagaimana ditampilkan pada tabel 3.6 Tabel 3.6 Perhitungan turunan fungsi aktivasi linear untuk output (y)

o yo to eo f'(yo) yo

1 -0.42609 1 1.426086366 1 1.426086366 2 -0.49694 0 0.496937431 1 0.496937431 3 0.323735 0 -0.323735193 1 -0.323735193 4 -0.05221 0 0.05221381 1 0.05221381 5 0.419889 0 -0.419888597 1 -0.419888597 6 -0.09753 0 0.097530135 1 0.097530135 7 -0.16514 0 0.165135831 1 0.165135831 8 0.429616 0 -0.429615787 1 -0.429615787 9 0.365988 1 0.634012284 1 0.634012284 10 -0.24969 0 0.249686966 1 0.249686966 11 0.286225 0 -0.286225234 1 -0.286225234 12 -0.25341 0 0.25341485 1 0.25341485 13 -0.29513 1 1.295127309 1 1.295127309

Setelah nilai y didapatkan perhitungan dilanjutkan dengan mencari nilai dari perubahan bobot hidden output w dengan rumus wh,o = yozh, dimana


(60)

w0,1 = 0.0001 x 1.426086366 x 1 = 0.000142609, demikian seterusnya untuk

perubahan bobot hidden output lainnya, sebagaimana dapat dilihat pada tabel 3.7 Tabel 3.7 Perhitungan perubahan bobot hidden output

h o zh do a wh,o

0 1 1 1.426086366 0.0001 0.000142609 1 1 -6.75E-03 1.426086366 0.0001 -9.63084E-07 2 1 2.01E-02 1.426086366 0.0001 2.85956E-06 3 1 -1.80E-03 1.426086366 0.0001 -2.57259E-07 0 2 1 0.496937431 0.0001 4.96937E-05 1 2 -6.75E-03 0.496937431 0.0001 -3.35599E-07 2 2 2.01E-02 0.496937431 0.0001 9.96448E-07 3 2 -1.80E-03 0.496937431 0.0001 -8.9645E-08 0 3 1 -0.323735193 0.0001 -3.23735E-05 1 3 -6.75E-03 -0.323735193 0.0001 2.18629E-07 2 3 2.01E-02 -0.323735193 0.0001 -6.49146E-07 3 3 -1.80E-03 -0.323735193 0.0001 5.84002E-08 0 4 1 0.05221381 0.0001 5.22138E-06 1 4 -6.75E-03 0.05221381 0.0001 -3.52617E-08 2 4 2.01E-02 0.05221381 0.0001 1.04698E-07 3 4 -1.80E-03 0.05221381 0.0001 -9.4191E-09 0 5 1 -0.419888597 0.0001 -4.19889E-05 1 5 -6.75E-03 -0.419888597 0.0001 2.83565E-07 2 5 2.01E-02 -0.419888597 0.0001 -8.41951E-07 3 5 -1.80E-03 -0.419888597 0.0001 7.57457E-08 0 6 1 0.097530135 0.0001 9.75301E-06 1 6 -6.75E-03 0.097530135 0.0001 -6.58654E-08 2 6 2.01E-02 0.097530135 0.0001 1.95565E-07 3 6 -1.80E-03 0.097530135 0.0001 -1.75939E-08 0 7 1 0.165135831 0.0001 1.65136E-05 1 7 -6.75E-03 0.165135831 0.0001 -1.11522E-07 2 7 2.01E-02 0.165135831 0.0001 3.31127E-07 3 7 -1.80E-03 0.165135831 0.0001 -2.97897E-08 0 8 1 -0.429615787 0.0001 -4.29616E-05 1 8 -6.75E-03 -0.429615787 0.0001 2.90134E-07 2 8 2.01E-02 -0.429615787 0.0001 -8.61456E-07 3 8 -1.80E-03 -0.429615787 0.0001 7.75005E-08 0 9 1 0.634012284 0.0001 6.34012E-05 1 9 -6.75E-03 0.634012284 0.0001 -4.2817E-07 2 9 2.01E-02 0.634012284 0.0001 1.27131E-06 3 9 -1.80E-03 0.634012284 0.0001 -1.14373E-07 0 10 1 0.249686966 0.0001 2.49687E-05 1 10 -6.75E-03 0.249686966 0.0001 -1.68622E-07 2 10 2.01E-02 0.249686966 0.0001 5.00667E-07 3 10 -1.80E-03 0.249686966 0.0001 -4.50422E-08 0 11 1 -0.286225234 0.0001 -2.86225E-05 1 11 -6.75E-03 -0.286225234 0.0001 1.93297E-07


(61)

Tabel 3.7 Perhitungan perubahan bobot hidden output (lanjutan)

h o zh do a wh,o

2 11 2.01E-02 -0.286225234 0.0001 -5.73932E-07 3 11 -1.80E-03 -0.286225234 0.0001 5.16336E-08 0 12 1 0.25341485 0.0001 2.53415E-05 1 12 -6.75E-03 0.25341485 0.0001 -1.7114E-07 2 12 2.01E-02 0.25341485 0.0001 5.08142E-07 3 12 -1.80E-03 0.25341485 0.0001 -4.57147E-08 0 13 1 1.295127309 0.0001 0.000129513 1 13 -6.75E-03 1.295127309 0.0001 -8.74643E-07 2 13 2.01E-02 1.295127309 0.0001 2.59696E-06 3 13 -1.80E-03 1.295127309 0.0001 -2.33634E-07

Setelah nilai w didapatkan, perhitungan dilanjutkan untuk mencari perubahan bobot input hidden v, yang dimulai dengan mencari masukan backpropagation dari hidden ke input, dengan rumus _inh =  Yo wh,o, dan

dilanjutkan dengan mencari nilai h = _inhf’(z_inh), dimana turunan dari fungsi

aktivasi node hidden yang menggunakan bipolar sigmoid dapat dicari dengan rumus f’(z_inh) = 0.5(1+f(z_inh))(1- f(z_inh)), sebagaimana dapat dilihat pada

tabel 3.8

Tabel 3.8 Perhitungan turunan fungsi aktivasi bipolar sigmoid untuk bobot (h)

h o zh wh,oyoyo.wh,o_inh f'(zh) h

1 1 -0.007 -0.395 1.426 -0.563 0.219 0.500 0.110 1 2 -0.007 0.037 0.497 0.018 0.219 0.500 0.110 1 3 -0.007 -0.418 -0.324 0.135 0.219 0.500 0.110 1 4 -0.007 -0.143 0.052 -0.007 0.219 0.500 0.110 1 5 -0.007 0.030 -0.420 -0.013 0.219 0.500 0.110 1 6 -0.007 -0.038 0.098 -0.004 0.219 0.500 0.110 1 7 -0.007 -0.405 0.165 -0.067 0.219 0.500 0.110 1 8 -0.007 -0.402 -0.430 0.173 0.219 0.500 0.110 1 9 -0.007 0.251 0.634 0.159 0.219 0.500 0.110 1 10 -0.007 -0.410 0.250 -0.102 0.219 0.500 0.110 1 11 -0.007 -0.203 -0.286 0.058 0.219 0.500 0.110 1 12 -0.007 -0.159 0.253 -0.040 0.219 0.500 0.110 1 13 -0.007 0.365 1.295 0.472 0.219 0.500 0.110 2 1 0.020 -0.168 1.426 -0.240 -0.056 0.500 -0.028 2 2 0.020 0.157 0.497 0.078 -0.056 0.500 -0.028 2 3 0.020 -0.308 -0.324 0.100 -0.056 0.500 -0.028


(1)

206 Tabel 4.52. Hasil rekomendasi pick phase NN game play 10 untuk tim 10

Hero Recommendation Game

ID

Pick 2 % Pick 3 % Pick 6 % Pick 7 % Pick 10 %

10 Atropos 84.6 Kunkka 61.5 Tinker 38.4 Dazzle 53.8 Rogue Knight 69.

2 10 Leviathan 84.6 Lifestealer 61.5 Treant Protector 38.4 Death Prophet 53.8 Sand King 69.

2 10 Vengeful

Spirit

84.6 Lone Druid 61.5 Viper 38.4 Invoker 53.8 Slithereen Guard

69. 2 10 Warlock 84.6 Lycanthrope 61.5 Axe 38.4 Lone Druid 53.8 Tormented

Soul

69. 2

4.6 Analisis Hasil Uji Coba

Berdasarkan pada hasil ujicoba yang telah dilakukan pada fitur-fitur dasar aplikasi yang terdiri dari: Master Map, Master Unavailable Heroes, Master Attributes, Master Heroes, Master Counter Heroes, Master 2 Combo, Master 3 Combo, Master Hero Attributes, Master Games, NN Configuration, NN Training, dan DotA CM yang diwakili oleh test case 1 sampai dengan 57, dapat dipastikan bahwa aplikasi telah dapat berjalan sebagaimana yang diharapkan. Hasil ujicoba test case ID 58 , menunjukan bahwa proses pelatihan NN, penyi mpanan bobot hasil pelatihan NN, dan penggunaan kembali bobot hasil pelatihan NN untuk DotA CM telah benar.


(2)

207 Hasil ujicoba DotA CM dengan menggunakan 5 data game reply baru yang belum pernah dilatihkan sebelumnya, pada test case ID

58, dapat diringkas dan ditunjukan pada tabel 4.54.

Tabel 4.53 Hasil rekomendasi hero NN terhadap data baru yang belum pernah dilatihkan

ID

Ban Phase [%] Pick Phase [%] Rata-Rata

1 2 3 4 1 2 3 4 5

Keselu-ruhan

Tanpa Ban Phase 1

1 1.85 84.6 100 100 100 92.3 100 100 100 86.53 97.11

2 2.08 76.9 84.6 92.3 61.5 46.1 46.1 38.5 30.7 53.20 59.59

3 3.33 76.9 69.2 92.3 61.5 76.9 53.8 84.1 46.1 62.68 70.10

4 0.47 69.2 76.9 76.9 46.1 46.1 53.8 84.6 61.5 57.29 64.39

5 3.33 76.9 92.3 92.3 84.6 61.5 38.4 53.8 69.2 63.59 71.13


(3)

208

Berdasarkan pada hasil ujicoba di atas, didapati bahwa prosentase ketepatan rekomendasi hero NN terendah adalah pada Ban Phase 1, hal ini dikarenakan pelatihan NN Ban Phase 1 yang memang tidak dapat dilakukan dengan baik. Kegagalan pelatihan NN Ban Phase 1 disebabkan oleh kurangnya variasi input NN, yang hanya berasal dari ban hero pertama Tim 1 terhadap kemungkinan output NN yang diharapkan. Hasil pengamatan keseluruhan data latih yang ada menunjukan bahwa untuk 1 ban hero yang sama di Ban Phase 1 dapat menghasilkan target hero yang berlainan, hal ini lah yang menjadi penyebab utama pelatihan NN di Ban Phase 1 tidak dapat dilakukan sampai mendekati toleransi MSE yang diharapkan.

Hasil ujicoba untuk Ban Phase 2 sampai dengan Pick Phase 3 menujukkan hasil yang cukup baik, dengan rata-rata prosentase ketepatan perhitungan (MSE) sebesar 72.46%. Sedangkan bila mengikutsertakan Ban Phase 1 didapatkan rata-rata prosentase ketepatan perhitungan (MSE) sebesar 64.66%.


(4)

209 BAB V PENUTUP

5.1 Kesimpulan

Berdasarkan pada hasil ujicoba dan analisis hasil ujicoba yang telah dilakukan, dapat disimpulkan bahwa sistem penentuan hero dalam captain mode di game DoTA dengan menggunakan metode Artificial Neural Network telah dapat berjalan sesuai dengan yang diharapkan, dengan rata-rata prosentase ketepatan rekomedasi hero untuk ujicoba data game replay yang belum pernah dilatihkan sebesar 72.46%. Penerapan NN untuk ban phase 1 tidak dimungkinkan, karena kurangnya variasi input NN, yang hanya berasal dari ban hero pertama Tim 1 terhadap kemungkinan output NN yang diharapkan.

5.2 Saran

Saran pengembangan lebih lanjut untuk tugas akhir ini adalah sebagai berikut :

1. Penambahan fitur untuk memberikan saran dalam mengambil skill hero pada level dan kondisi tertentu.

2. Penambahan fitur untuk memberikan saran dalam membeli equipment bergantung pada hero yang digunakan dan hero musuh yang dilawan.. 3. Penambahan fitur untuk memberikan saran dalam menentukan strategi

yang akan digunakan pada permainan bergantung pada line up hero dan line up hero musuh.


(5)

210 DAFTAR PUSTAKA

Clark, Bevan. Artificial Neural Network, A Human Nature, Learning & Mind Web

Assignment. (online)

(http://www.massey.ac.nz/~wwpapajl/evolution/assign2/BC/ANN.htm, diakses tanggal 20 maret 2014)

Fausset, Laurene. 1994. Fundamentals Of Neural Networks, PTR Prentice-Hall Inc, Englewood Clifft, New Jersey.

Feldman, J.A & Ballard, D.H. 1982 Connectionist Models and Their Properties. (online)

(http://csjarchive.cogsci.rpi.edu/1982v06/i03/p0205p0254/MAIN.PDF, diakses tanggal 20 maret 2014)

Hopfield. 1982. Hopfield Network As Associative Memory, (online) (http://www.learnartificialneuralnetworks.com/hopfield.html, diakses tanggal 20 maret 2014)

LiMin Fu, 1994, Neural Networks in Computer Intelligence, McGraw-Hill Inc, Florida

Marsalli, Michael. Mcculloch Pitts Neurons, (online) (http://www.mind.ilstu.edu/curriculum/modOverview.php?modGUI=212, diakses tanggal 20 maret 2014)

Raymond McLeod, Jr, 1996, Sistem Informasi Manajemen, PT. Prenhallindo, Jakarta.

Rumelhart, David E and McClelland, James L. 1986. Parallel Distributed Processing, (online) (http://mind.cog.jhu.edu/faculty/smolensky/050.326- 626/Foundations%20Readings%20PDFs/Rumelhart&McClelland-1986-PastTense.pdf, diakses tanggal 20 Maret 2014)

Rumelhart, D. E., Hinton, G, and Williams, R. J. 1986. Learning representations

by back-propagating errors. (online)

(http://www.nature.com/nature/journal/v323/n6088/abs/323533a0.html, diakses tanggal 20 maret 2014)

Setiawan, Denny. 2009, Sejarah Dota Dan Bermain Dota Untuk Pemula, (online) (http://www.zo0o-chen.blogspot.com, diakses tanggal 12 April 2010)


(6)

211

Setiawan, Kuswara. 2003. Paradigma Sistem Cerdas (Jaringan Saraf Tiruan, Logika Fazi dan Algoritma Genetik), Bayumedia Publishing, Malang. Sejnowski, Terrence J and Rosenberg, Charles R. 1987. Parallel Network that

learn to Pronounce English Text. (online)

(http://cs.union.edu/~rieffelj/classes/2011-12/csc320/readings/Sejnowski-speech-1987.pdf, diakses tanggal 20 Maret 2014)

Sotelo. C. 2004. History Of Neuroscience : The Neutrophic Theory of Santiago Ramon y Cajal, IBRO History of Neuroscience, (online) (http://ibro.info/wp-

content/uploads/2012/12/The-Neurotropic-Theory-of-Santiago-Ram%C3%B3n-y-Cajal.pdf, diakses tanggal 20 Maret 2014)

Supadi. 2009, "QUO VADIS" Indonesia ada yang berubah?, (online) (http://www1.kemenegpora.go.id/index.php?option=com_content&view=art

icle&id=192:qquo-vadisq-indonesia-di-asia-yang-berubah&catid=1:umum&Itemid=103, diakses tanggal 15 agustus 2010) Wagner, Michael G. 2006.Proceedings of the 2006 International Conference on

Internet Computing and Conference on Computer Game Development, (online)(http://www.worldacademyofscience.org/worldcomp06/ws/CGD/in dex_html, diakses tanggal 1 Oktober 2010)