• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
213
0
0

Teks penuh

(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).

(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.

(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 AncientsAllstars.

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 StableMap 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

(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

(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

(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.

(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

(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

(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.

(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

thresholdK terapan eksternal, yang mempunyai efek dari penurunan input

(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

(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.

(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.

(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

(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)

(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

(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

(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).

(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

(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

(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

(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

(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,

(35)
(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

(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

Komparasi Output NN dengan Attribut Hero

Seleksi Ban & Pick Hero tim 2 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

(39)

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

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

(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 :

(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 x m,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,rwp 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 +  zpwp 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

Gambar 3.3. Gambar Arsitektur NN Ban Phase 2

(45)

Attribute 1

Gambar 3.4. GambarArsitektur NN Ban Phase 3

(46)

Attribute 1

Gambar 3.5. GambarArsitektur NN Ban Phase 4

(47)

Attribute 1

Gambar 3.6 GambarArsitektur NN Pick Phase 1

(48)

Attribute 1

Gambar 3.7 GambarArsitektur NN Pick Phase 2

(49)

Attribute 1

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

(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 :

(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

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

4.18E-02 2.01E-02

1 2 0 2 -5.12E-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

-3.59E-03 -1.80E-03

1 2 0 3 7.10E-03 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

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

(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

(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

(61)

Tabel 3.7 Perhitungan perubahan bobot hidden output (lanjutan)

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)

(62)

Tabel 3.8 Perhitungan h(lanjutan)

Setelah nilai masukan backpropagation untuk node hidden h didapatkan,

perhitungan dilanjutkan dengan mencari nilai perubahan bobot input hidden vi,h

dengan rumus vi,h = hxi, dimana konstanta belajar  bernilai 0.0001, dan hasil

perhitungan dapat dilihat pada tabel 3.9

Tabel 3.9 Perhitungan perubahan bobot input hidden

(63)
(64)
(65)

Tabel 3.9 Perhitungan perubahan bobot input hidden (lanjutan)

Setelah perubahan bobot input hidden v dan perubahan bobot hidden output w didapatkan, proses perhitungan dilanjutkan dengan mengubah nilai bobot lama sebesar perubahan bobot hasil perhitungan, dengan rumus:

wh,o (baru) = wh,o (lama) + wh,o untuk bobot hidden output, dengan hasil

perhitungan sebagaimana dapat dilihat pada tabel 3.10, dan vi,h (baru) = vi,h (lama)

+ vi,h untuk bobot input hidden, dengan hasil perhitungan sebagaimana dapat

dilihat pada tabel 3.11. Nilai bobot baru akan digunakan untuk melakukan perhitungan pada iterasi berikutnya.

Tabel 3.10 Perhitungan update nilai bobot hidden output

h o wh,o lama wh,o wh,o baru

0 1 -0.426046669 0.000142609 -0.425904061

1 1 -0.394547343 -9.63084E-07 -0.394548306

2 1 -0.168305576 2.85956E-06 -0.168302716

3 1 -0.371750116 -2.57259E-07 -0.371750374

0 2 -0.49975878 4.96937E-05 -0.499709086

1 2 3.68E-02 -3.35599E-07 0.036793731

2 2 0.157054961 9.96448E-07 0.157055957

(66)

Tabel 3.10 Perhitungan update nilai bobot hidden output (lanjutan)

h o wh,o lama wh,o wh,o baru

0 3 0.32741183 -3.23735E-05 0.327379457

1 3 -0.418106437 2.18629E-07 -0.418106218

2 3 -0.308077514 -6.49146E-07 -0.308078163

3 3 0.178913355 5.84002E-08 0.178913413

0 4 -4.58E-02 5.22138E-06 -0.045786941

1 4 -0.14297688 -3.52617E-08 -0.142976915

2 4 -0.350018919 1.04698E-07 -0.350018814

3 4 0.204395771 -9.4191E-09 0.204395762

0 5 0.42878598 -4.19889E-05 0.428743991

1 5 3.02E-02 2.83565E-07 0.030212805

2 5 -0.410358608 -8.41951E-07 -0.41035945

3 5 0.257729292 7.57457E-08 0.257729368

0 6 -9.82E-02 9.75301E-06 -0.098148189

1 6 -3.81E-02 -6.58654E-08 -0.0381257

2 6 -7.83E-03 1.95565E-07 -0.007834179

3 6 -0.292372704 -1.75939E-08 -0.292372721

0 7 -0.170264065 1.65136E-05 -0.170247552

1 7 -0.404570937 -1.11522E-07 -0.404571049

2 7 8.98E-02 3.31127E-07 0.089792881

3 7 -0.330126524 -2.97897E-08 -0.330126554

0 8 0.427616537 -4.29616E-05 0.427573575

1 8 -0.402070165 2.90134E-07 -0.402069875

2 8 -5.61E-02 -8.61456E-07 -0.056138364

3 8 -0.227053165 7.75005E-08 -0.227053088

0 9 0.372546852 6.34012E-05 0.372610253

1 9 0.250687718 -4.2817E-07 0.25068729

2 9 -0.227057636 1.27131E-06 -0.227056364

3 9 0.173646688 -1.14373E-07 0.173646574

0 10 -0.243371069 2.49687E-05 -0.243346101

1 10 -0.41010344 -1.68622E-07 -0.410103609

2 10 -0.469049394 5.00667E-07 -0.469048893

3 10 -0.177282333 -4.50422E-08 -0.177282378

0 11 0.290128887 -2.86225E-05 0.290100264

1 11 -0.202741981 1.93297E-07 -0.202741787

2 11 -2.65E-01 -5.73932E-07 -0.264718332

3 11 -1.95E-02 5.16336E-08 -0.019525238

0 12 -0.245398104 2.53415E-05 -0.245372763

1 12 -0.15939343 -1.7114E-07 -0.159393601

2 12 -0.455066144 5.08142E-07 -0.455065636

3 12 -1.76E-02 -4.57147E-08 -0.017571972

0 13 -0.293982804 0.000129513 -0.293853291

1 13 0.364534497 -8.74643E-07 0.364533623

2 13 8.86E-02 2.59696E-06 0.088631187

(67)
(68)
(69)

Tabel 3.11 Perhitungan update nilai bobot input hidden (lanjutan)

3.2.2 Alur Proses

Terdapat 2 proses yang dilakukan oleh sistem penentuan hero yaitu pelatihan NN dan captain mode sebagai hasil dari pelatihan NN yang berupa rekomendasi ban dan pick hero untuk team 2.

A. Pelatihan NN

Didalam pelatihan NN ini dapat dijelaskan tahapan setiap proses sebagai berikut: 1. Memilih setting konfigurasi NN dalam pelatihan NN.

(70)

MSE dari pelatihan sebelumnya, dan nilai toleransi pelatihan. Dibentuk berdasarkan dari setting konfigurasi NN.

3. Pengambilan data latih yang didapatkan dari data latih didalam database. 4. Merubah HeroID yang didapatkan dari data latih menjadi atribut hero.

5. Pemilihan jenis pelatihan apakah pelatihan dimulai dari awal atau tidak. Inisiasi nilai bobot yang penentuannya secara random dilakukan apabila pelatihan dimulai dari awal, sedangkan pengambilan nilai bobot NN yang diambil dari database dilakukan apabila pelatihannya melanjutkan dari pelatihan yang sudah dilakukan.

6. Penentuan nilai Mean Square Error (MSE) yang bernilai lebih besar daripada toleransi untuk pilihan pelatihan dari awal dan bernilai sama dengan nilai MSE pelatihan sebelumnya untuk melanjutkan pelatihan sebelumnya.

7. Pengecekan apakah nilai MSE lebih kecil dari toleransi, apabila tidak maka iterasi diberi nilai 0, sedangkan bila iterasi lebih besar sama dengan toleransi maka dilakukan proses penyimpanan bobot NN.

8. Setelah iterasi diberi nilai 0 maka proses selanjutnya adalah pengecekan apakah iterasi sama dengan jumlah pola data, apabila sama maka dilakukan update bobot NN dimana bobot didapatkan dari akumulasi bobot ditambahkan dengan nilai bobot yang baru. Bila jumlah iterasi tidak sama maka dilakukan

forward propagation NN.

(71)

1. Perhitungan MSE dan akumulasi MSE dilakukan setelah mendapatkan nilai error dari proses diatas.

2. Hasil dari perhitungan MSE dan akumulasi MSE yang berupa nilai error akan dilakukan proses back propagation yang menghasilkan akumulasi bobot. 3. Proses selanjutnya adalah mengakumulasikan update bobot dan dilakukan

penambahan nilai iterasi untuk menandakan iterasi baru.

(72)

Mulai

Arsitektur ANN Daftar Aristektur ANN

Inisiasi ANN

Ambil Data Latih Data Latih ANN

Pelatihan dari awal?

Inisiasi nilai bobot ANN (Set Random)

Ambil nilai bobot

ANN Nilai Bobot ANN

Ya Tidak

W Ubah heroID ke atribut

hero HeroID

MSE < Toleransi Kesalahan? Set Nilai MSE

Forward Propagation ANN

Hitung Total Error Atribut [E]

∑(T – O) Output ANN [O]

Hitung MSE dan Akumulasikan MSE

[∑MSE] Iterasi = Jumlah Pola

Data?

Gambar 3.9 Proses Pelatihan NN

B. Captain Mode

(73)

1. Pemilihan map yang didapatkan dari daftar map. 2. Pemilihan hero berdasarkan daftar hero yang ada.

3. Melakukan setting available hero yang didapatkan dari ban phase dan secara default setiap versi map memiliki hero yang tidak dapat digunakan (ban). 4. Melakukan pemilihan mode phase pertama.

5. Dilakukan pengecekan apakah mode phase sudah ketujuh? Apabila sudah sesuai maka proses selesai.

6. Apabila proses diatas belum sesuai maka dilakukan proses setting arsitektur NN yang sesuai dengan mode phase dimana arsitektur ini didapat dari daftar arsitektur NN.

7. Proses selanjutnya adalah pemilihan hero berdasarkan available hero. 8. Dilakukan setting hero sebagai input kedalam NN.

9. Merubah HeroID menjadi atribut hero dilakukan setelah proses input hero di dalam NN.

10.Melakukan pengambilan nilai bobot dari nilai bobot NN yang didapatkan dari pelatihan dan dilakukan forward propagation berdasarkan dari atribut hero dan nilai bobot.

11.Bentuk rekomendasi atribut hero output NN yang nantinya akan dibandingkan berdasarkan atribut yang dimiliki setiap hero.

12.proses selanjutnya adalah pengurutan rekomendasi hero NN berdasarkan prosentase kecocokan dengan atribut hero output.

13.Memasukkan keterangan counter hero yang didapatkan dari daftar counter hero.

(74)
(75)

Mulai

Pilih Map Daftar Map

Ambil nilai bobot ANN Nilai Bobot ANN

Ubah heroID ke atribut hero

Forward Propagation ANN

Selesai

Ambil Hero Daftar Hero

Set Availble Hero Daftar Ban Hero Map

Set Mode Phase 1

Mode Phase > 7?

Pilih Hero dari Available Hero

Set Hero Input ANN Set Arsitektur ANN sesuai

Mode Phase

Daftar Arsitektur ANN Tidak

Bentuk rekomendasi atribut hero output ANN

Daftar Atribut Hero

Urutkan rekomendasi hero ANN berdasarkan % kecocokan dengan atribut

hero output ANN

Daftar Counter Hero Masukan keterangan counter

Hero

Masukan keterangan combo Hero

Daftar Combo Hero

Tampilkan rekomendasi hero ANN

Set Mode Phase = Mode Phase + 1

Ya

Update Available Hero

(76)

3.2.3 Data Flow Diagram (DFD)

DFD merupakan representasi grafik dalam menggambarkan arus data sistem secara terstruktur dan jelas sehingga dapat menjadi sarana dokumentasi yang baik.

A. Context Diagram

Context diagram ini menggambarkan rancangan global/ keseluruhan dari proses yang ada pada DFD. Gambar 3.9 berikut ini merupakan tampilan dari context diagram sistem yang dirancang.

Pelatihan NN Arsitektur NN Ban & Pick Heroes Daftar hero attributes Daftar Counter Heroes

Daftar Game Replay Rekomendasi Hero

Daftar unavailable heroes

Daftar Combo heroes Daftar Map Daftar Attributes

Daftar Heroes

Kapten tim

0

Sis tem Penentuan Hero

+

Gambar

Gambar 3.1. Blok Diagram Sistem Penentuan Hero pada DotA
Gambar 3.2. Gambar Arsitektur NN Ban Phase 1
Gambar 3.3. Gambar Arsitektur NN Ban Phase 2
Gambar 3.4. GambarArsitektur NN Ban Phase 3
+7

Referensi

Dokumen terkait

Algoritma Neural Network Backpropagation merupakan algoritma pembelajaran tersupervisi yang dapat melakukan learning terhadap inputan dan menghasilkan output berupa sebuah keputusan

Data pemeriksaan penyakit hati ini akan diolah menggunakan algoritma Neural Network dan dengan menggunakan metode optimasi adaboost sehingga diperoleh metode yang

Berdasarkan penelitian yang telah dilakukan dapat disimpulkan bahwa metode neural network memberikan hasil klasifikasi terbaik dengan menggunakan nilai parameter

Data pemeriksaan penyakit hati ini akan diolah menggunakan algoritma Neural Network dan dengan menggunakan metode optimasi adaboost sehingga diperoleh metode yang

Setelah melakukan tahapan proses penelitian mengenai Prediksi Inflasi Kota Mataram menggunakan metode Backpropagation Neural Network, dapat disimpulkan performa model

Untuk membuat game berjalan dengan mode automatic player pada game arcade ini akan menggunakan penerapan Neural network sedangkan untuk proses simulasi

Data pemeriksaan penyakit hati ini akan diolah menggunakan algoritma Neural Network dan dengan menggunakan metode optimasi adaboost sehingga diperoleh metode yang

Dengan tujuan membangun sebuah model yang dapat mengklasifikasi daun the siap panen menggunakan metode Convolutional Neural Network dengan arsitektur MobileNetV2 sehingga dapat membantu