Implementasi Algoritma Neural Network Backpropagation Pada Solusi Pemainan Dazzle

(1)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ABDULAH USMAN

10111167

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2016


(2)

i

KATA PENGANTAR

Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha Panyayang, puji dan syukur penulis panjatkan kehadirat Allah S.W.T karena dengan rahmat dan karunia-nya shingga penulis dapat menyelesaikan penyusunan skripsi yang berjudul “IMPLEMENTASI ALGORITMA NEURAL NETWORK BACKPROPAGATION PADA SOLUSI PERMAINAN DAZZLE” sebagai syarat untuk menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Penulisan skripsi ini tidak lepas dari bantuan dan dukungan seluruh pihak, untuk itu penulis ingin mengucapkan banyak terima kasih kepada :

1. Ibu Kania Evita Dewi, S.Pd., M.Si., selaku dosen pembimbing yang telah memberikan bimbingan dan pengarahan kepada penulis selama penulisan skripsi ini.

2. Ibu Nelly Indriani W., S.Si., M.T selaku dosen reviewer dan penguji serta Ibu Ednawati Rainarli, S.Si., M.Si., Ibu Ken Kinanti , S.Kom., M.T., dan Bapak Angga Setiyadi S.Kom., M.Kom yang telah memberikan masukan dan saran kepada penulis.

3. Seluruh dosen di Universitas Komputer Indonesia khususnya pada Program Studi Teknik Informatika yang telah memberikan ilmu pengetahuan.

4. Kawan-kawan Jumat Berkah Ali Murdani,Tommy Saputra, Ryan Hidayat, Hasan Sanusi dan Lukman Kusdinar selaku teman satu bimbingan yang telah membagi ilmu dalam berdiskusi dan motivasi selama proses penulisan skripsi ini.

5. Sahabat terbaik semasa perkuliahan Lutfia Rahmanda S.Kom yang telah membantu dan memberikan motivasi selama proses penulisan skripsi ini


(3)

ii

6. Teman-teman kelas IF-5 2011 yang telah membantu dan bekerjasama selama masa perkuliahan dan masa penulisan skripsi.

Akhir kata penulis mengharapkan semoga skripsi ini dapat bermanfaat serta menambah wawasan pengetahuan baik bagi penulis dan umumnya dapat bermanfaat bagi para pembaca.

Bandung, 13 februari 2016


(4)

v

DAFTAR ISI ...v

DAFTAR TABEL ... x

DAFTAR GAMBAR ... xiii

DAFTAR SIMBOL ... xvi

DAFTAR LAMPIRAN ... xxi

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah... 3

1.5 Metode Penelitian... 3

1.5.1 Metode Pengumpulan Data ... 4

1.5.2 Metode Pembangunan Perangkat Lunak ... 4

1.5.3 Metode pengujian ... 5

1.5.4 Hasil penelitian... 6

1.6 Sistematika Penulisan ... 6

BAB 2 LANDASAN TEORI ... 8

2.1 Game ... 8

2.1.1 Puzzle ... 8

2.1.2 Game Play ... 9


(5)

2.2.4 Learning Rate ... 16

2.2.5 Min-Max Normalization ... 16

2.2.6 Proses Pembelajaran Jaringan ... 17

2.2.6.1 Pembelajaran Tak Terawasi (Unsupervised Learning) ... 18

2.2.6.2 Jaringan Kohonen ... 18

2.2.7 Metode Pembelajaran Terawasi (supervised learning) ... 19

2.2.7.1 Hebb rule ... 19

2.2.7.2 Perceptron ... 20

2.2.7.3 Backpropagation ... 20

2.3 OOP (Object Oriented Programing) ... 26

2.3.1 Analisis Berorientasi Objek ... 26

2.3.2 Desain Berorientasi Objek ... 27

2.3.3 Pemodelan ... 27

2.3.4 Unified Modelling Languange (UML) ... 28

2.3.5 Diagram Use Case ... 28

2.3.6 Diagram Sequence ... 28

2.3.7 Diagram Activity ... 29

2.3.8 Diagram Class ... 29

2.4 C Sharp (C#) ... 30


(6)

BAB 3 ANALISIS DAN PERANCANGAN ... 34

3.1 Analisis Masalah ... 34

3.1.1 Analisis Permainan Dazzle ... 34

3.1.2 Analisis sistem ... 37

3.1.3 Analisis Data Masukan ... 37

3.1.4 Analisis Metode ... 38

3.1.5 Analisis Algoritma Neural Network Backpropagation ... 38

3.1.6 Analisis Pembuatan Pohon Pencarian Jalur Penggabungan Karakter ... 40

3.1.7 Penerapan Algoritma Neural Network Backpropagation ... 42

3.1.8 Forward Propagation ... 46

3.1.9 Backpropagation ... 47

3.2 Analisis Kebutuhan Non fungsional ... 49

3.2.1 Analisis Kebutuhan Perangkat Keras ... 50

3.2.2 Analisis Kebutuhan Perangkat Lunak ... 51

3.2.3 Analisis Kebutuhan Fungsional ... 51

3.2.4 Use Case Diagram ... 51

3.2.5 Definisi Aktor ... 52

3.2.6 Definisi Use Case ... 52

3.2.7 Skenario Use Case... 54


(7)

3.2.12 Perancangan Antar muka ... 74

3.2.13 Perancangan Pesan ... 77

3.2.14 Jaringan Semantik ... 80

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 81

4.1 Implementasi ... 81

4.1.1 Implementasi Perangkat Keras ... 81

4.1.2 Implementasi Perangkat Lunak ... 82

4.1.3 Implementasi Antarmuka ... 82

4.1.4 Implementasi class ... 85

4.2 Rencana Pengujian ... 86

4.2.1 Pengujian Blackbox ... 86

4.2.2 Skenario Pengujian... 86

4.2.2.1 Kasus dan hasil pengujian ... 87

4.2.2.2 Pengujian Komponen Yang Diuji ... 87

4.2.3 Pengujian performansi ... 91

4.2.3.1 Pengujian dengan nilai K-fold ... 91

4.2.4 Pengujian Nilai Learning Rate ... 125

4.2.5 Pengujian Nilai Error ... 135

4.2.6 Kesimpulan Pengujian Metode ... 141


(8)

(9)

142 TacTo.[Online].

https://users.auth.gr/kehagiat/Research/GameTheory/12CombBiblio/TicTacToe.pdf [2] Mohammad Nazir, Metodologi Penelitian. Bogor: Ghalia Indonesia, 2005.

[3] Roger S.Pressman, Rekayasa Perangkat Lunak Pendekatan Praktis. Yogyakarta: Andi, 2012.

[4] Prayudi. (2008, March) Pengertian Game Komputer. [Online]. https://www.scribd.com/doc/89947077/Pengertian-Game-Komputer

[5] Sarip Usman. (2014, December) Pengertian Game Menurut Para Ahli. [Online]. http://www.mandalamaya.com/pengertian-game-menurut-para-ahli

[6] (2015, oktober) artikata.web.id. [Online]. http://www.artikata.web.id/arti-puzzle-antropologi-kamus-bahasa-kbbi.html

[7] oemar Hamalik,. Bandung: Cita Aditya Bakti, 1994.

[8] Satwika Movewenti. (2015, mei) tekno kompas. [Online]. http://tekno.tempo.co/read/news/2015/05/11/072665394/dazzle-game-asah-otak-buatan-dagelan

[9] S.Kom. Kusrini, Sistem Pakar Teori dan Aplikasi. Yogyakarta: C.V ANDI OFFSET, October 2006. [Online]. https://www.udacity.com/course/intro-to-artificial-intelligence--cs271

[10]sri kusumadewi, Artificial Intelligence (Teknik Dan Aplikasinya). yogyakarta: graha ilmu, 2003.

[11] David M. Skapura James A. Freeman,., 1991, p. 104.


(10)

http://smecnet.itchybit.org/wiki/cogsci/ui,

[13] Rosa S. & M. Shalahuddin, Rekayasa Perangkat Lunak. Bandung: Informatika, 2013.

[14] Herlawati Prabowo Pudjo Widodo, Menggunakan UML. Bandung: informatika, 2011.

[15] (2015, SEPTEMBER) https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx. [Online]. https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx

[16] (2015, september) visualstudio.com. [Online].

https://msdn.microsoft.com/library/dd831853.aspx

[17] Jason Brownlee. (2014, february) machinelearningmastery. [Online].

http://machinelearningmastery.com/what-is-the-weka-machine-learning-workbench/


(11)

1 1.1 Latar Belakang Masalah

Dalam dunia anak-anak terdapat berbagai jenis permainan, salah satu jenis permainan yang bermanfaat bagi anak dan bersifat edukatif adalah puzzle. Puzzle merupakan permainan yang membutuhkan kesabaran dan ketekunan anak dalam merangkainya. Cara memaikannya cukup mudah pemain hanya menggeserkan puzzle satu per satu pada posisi tertentu samapai akhirnya mencapai tujuan dari permainan puzzle tersebut [1]. Akan tetapi permainan puzzle saat ini sudah banyak sekali cara dan aturan bermainannya. Permainan puzzle pada saat ini ada yang menggunakan kombinasi dari beberapa aturan dan cara bermainan dari permainan puzzle yang sudah ada ataupun pembuatan aturan dan cara bermain yang baru dari game puzzle sebelumnya.

Dazzle adalah sebuah permainan berjenis endless puzzle, permainan ini terdiri dari sebuah matriks 4x4 dan berisi dua pasang karakter. Pada awal permainan game, dua pasang karakter akan tersebar secara acak di matriks 4x4. Pada game ini pemain harus menggeserkan karakter ke kiri, ke kanan, ke bawah, atau ke atas untuk digabungkan sehingga karakter yang digabungkan menjadi satu karakter baru. Untuk memenangkan permainan ini pemain harus menggabungkan dua pasang karakter yang memiliki status 6, dan karakter tersebut akan hilang dari area permainan sehingga tidak memenuhi area permaianan. Permainan ini memerlukan langkah yang tepat untuk menggeserkan karakter yang akan digabungkan. Apabila memilih langkah yang tidak tepat dan penggabungan karakter yang dilakukan sedikit maka akan mendapatkan skor yang kecil, dan jika area permainan sudah terisi semua pada setiap matriks dan tidak ada lagi langkah yang dapat dilalukan untuk menggabungkan karakter maka pemain dianggap kalah.


(12)

Permasalahan dari game dazzle adalah pemilihan jalur yang tepat untuk penggeseran karakter dan dapat digabungkan menjadi satu karakter yang baru agar area permainan tidak terpenuhi oleh karakter yang tidak dapat di geserkan untuk digabungkan. Selain itu dibutuhkan ingatan untuk mengetahui pola permainan yang pernah dilakukan sebelumnya untuk menentukan pemilihan jalur, agar dapat memenangkan permainan pada game dazzle. Untuk mengetahui pola permainan yang pernah dilakukan sebelumnya diperlukan latihan untuk mengingat jalur yang pernah digunakan. Pada penelitian mengenai algoritma neural network pada sebuah game dengan judul Training an Artificial Neural Network To Playing Tic-Tac-Toe menjelaskan algoritma neural network dapat diimplementasikan pada sebuah permainan untuk pemilihan penempatan bidak permainan pada game tic tac toe sebagai lawan dari pemain. Penggunaan algoritma neural network Backpropagation pada penelitian tersebut digunakan pada lawan bermain (komputer), agar lawan bermain dapat memilih posisi penempatan bidak permainan yang tepat jika ingin memenangkan permainan melawan user (manusia) [1].

Oleh karena itu dengan menggunakan algoritma neural network backpropagation diharapkan bisa menemukan solusi yang optimal dalam pemilihan jalur penggabungan karakter untuk penyelesaian permaianan pada game dazzle.

1.2 Rumusan Masalah

Pada pengambilan keputusan untuk pencarian jalur seperti yang dijelaskan di atas, dapat di identifikasi masalahnya adalah bagaimana cara memilih jalur yang tepat untuk penggabungan karakter pada game dazzle menggunakan algoritma neural network backpropagation.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan diatas maksud dari penelitian tugas akhir ini adalah untuk mengimplementasikan algoritma neural network backpropagation dalam solusi permainan dazzle.

Sedangkan tujuan dari penelitian tugas akhir ini adalah untuk mengetahui performansi (akurasi dari model yang dibuat) dari solusi yang diimplementasikan


(13)

pada permainan dazzle dalam pencarian jalur penggabungan karakter menggunakan neural network backpropagation.

1.4 Batasan Masalah

Pada penelitian ini, batasan masalah yang akan dibahas adalah sebagai berikut : 1. Algoritma yang digunakan adalah algoritma neural network

backpropagation.

2. Autran permainan yang digunakan adalah aturan permainan dazzle.

3. Batasan level yang digunakan pada permainan ini adalah 1 level permainan. Yaitu ketika 2 jenis karakter yang miliki status 4 (4a dan 4b) menghilang dari area permainan.

4. Data sample untuk training yang digunakan adalah sebanyak penggeseran yang dilakukan pada 4 level (4 kali memenangkan permainan) dazzle. 5. Metode cross validation yang digunakan menggunakan metode K-Fold

Cross validation.

6. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C#.

7. Integrated Development Environment (IDE) yang akan digunakan adalah

microsoft visual studio 2012.

8. Sistem operasi yang digunakan adalah windows 7.

9. Pemodelan yang digunakan dalam laporan penelitian ini adalah pemodelan berorientasi object (OOP) dengan tools Visual Paradigm.

10.Aplikasi yang dibangun berbasis desktop.

1.5 Metode Penelitian

Metode penelitian merupakan cara utama yang digunakan peneliti untuk mencapai tujuan dan menentukan jawaban atas masalah yang diajukan. Pada penelitian kali ini akan digunakan metode penelitian deskriptif yaitu menggambarkan semua data yang ada kemudian dianalisa dan dibandingkan berdasarkan kenyataan yang sedang berlangsung dan selanjutnya mencoba untuk memberikan pemecahan masalahnya. [2]


(14)

1.5.1 Metode Pengumpulan Data

Metode pengumpulan data yang akan digunakan untuk pengerjaan atau penyusunan tugas akhir ini adalah Studi Literatur. Metode ini digunakan untuk mendapatkan informasi dan pengetahuan dari literatur-literatur yang sudah ada, baik dari buku, jurnal dan internet.

1.5.2 Metode Pembangunan Perangkat Lunak

Metode yang digunakan dalam pengembangan perangkat lunak adalah metode waterfall, yang meliputi beberapa proses antara lain sebagai berikut:

1. Communication

Tahap Communication merupakan tahap analisis kebutuhan sistem serta tahap mengadakan pengumpulan data dengan melakukan pertemuan dengan pihak instansi yang terkait, maupun mengumpulkan data-data tambahan baik yang ada di jurnal, artikel, maupun dari internet.

2. Planning

Tahap ini merupakan tahap lanjutan dari proses Communication. Tahap ini akan menghasilkan dokumen user requirement atau bisa dikatakan data yang berhubungan dengan keinginan pengguna dalam pembangunan software, termasuk dengan rencana yang akan dilakukan.

3. Modeling

Pada tahap modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkirakan sebelum proses pengkodean. Proses ini terfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement.

4. Construction

Tahap ini merupakan tahap pengkodean yaitu tahap menerjemahkan desain dalam bahasa yang dikenali oleh komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahap secara nyata


(15)

dalam mengerjakan suatu software, artinya penggunaan komputer akan dimaksimalkan dalam tahap ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibangun. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki.

5. Deployment

Tahap ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisis, desain dan pengkodean, maka sistem yang sudah jadi akan digunakan oleh pengguna. Kemudian software yang telah dibangun harus dilakukan pemeliharaan secara berkala.

Gambar 1.2Model Waterfall [3] 1.5.3 Metode pengujian

Metode pengujian adalah pengujian yang dilakukan terhadap algoritma yang sudah diimplementasikan kedalam program yang dibuat untuk penelitian implementasi algoritma neural network backpropagation untuk solusi permainan dazzle. Metode pengujian yang akan dilakukan dalam penelitian ini adalah metode pengujian black box. Serta akan dilakukan pengujian menggunakan cross validation untuk mengetehui Mean Absolute Error dari kinerja jaringan backpropagation untuk mengambil nilai rata-rata kuadrat error yang terjadi antara output pengujian cross validation dengan dengan nilai ouput pelatihan.


(16)

1.5.4 Hasil penelitian

Hasil penelitian merupakan tahapan akhir dalam penelitian ini. Setelah melakukan pengujian metode maka akan diketahui hasilnya dari pengujian tersebut, akurasi dari hasil pengujian algoritma neural network backpropagation dalam menentukan jalur penggabungan karakter pada permainan dazzle berdasarkan data prediksi yang dihasilkan.

1.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB 1 PENDAHULUAN

Pada bab ini memuat latar belakang masalah, identifikasi masalah, maksud dan tujuan penelitian, batasan masalah, metodologi penelitian yang digunakan serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Pada bab ini membahas mengenai landasan teori yang menunjang dan ada kaitannya dengan topik skripsi yang diambil. Seperti pembahasan mengenai Game,

Artificial Neural Netwrok, Backpropagation, dan tool yang digunakan untuk

mengimplementasikannya.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dilakukan analisis kebutuhan dan perancangan sistem yang akan digunakan untuk implementasi metode neural network bacpropagation pada bahasa pemrograman C#.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi implementasi dan pengujian sistem berdasarkan analisis dan perancangan yang dilakukan pada bab 3. Melakukan pengujian alpha, pengujian beta. BAB 5 KESIMPULAN DAN SARAN

Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir implementasi neural network backpropagation pada solusi permainan dazzle


(17)

1 2.1 Game

Game adalah suatu aktifitas yang tidak dilakukan dengan sungguh sungguh [4].

Pengertian Game menurut beberapa ahli [5] diantaranya adalah sebagai berikut: a. Menurut Ivan C Sibero, Game merupakan salah satu aplikasi yang paling

banyak dipakai dan dinikmati oleh pengguna media elektronik saat ini.

b. Menurut Samuel Henry Game adalah sesuatu yang tidak bisa dipisahkan dari keseharian anak anak.

c. Menurut Fauzia A Game adalah salah satu bentuk hiburan yang dapat dijadikan sebagai penyegar pikiran dari kepenatan akibat dari padatnya aktivitas sehari hari.

d. Menurut John Naisbitt Game merupakan sistem partisipatoris dinamis karena Game memiliki tingkat penceritaan yang tidak dimiliki film.

e. Menurut Wiaya Ariyana dan Arifianto Game adalah salah satu kebutuhan sekaligus menjadi masalah besar bagi para pengguna komputer, hal tersebut dikarenakan untuk dapat menjalankan suatu Game dengan nyaman, maka dibutuhkan spesifikasi komputer yang relatif tinggi dibanding komputer untuk penggunaan biasa.

Dari beberapa pendapat yang dikemukakan oleh para ahli , dapat disimpulkan bahwa Game adalah sebuah kebutuhan untuk menghibur dari kepenatan dan tidak dapat dipisahkan dari keseharian anak anak.

2.1.1 Puzzle

Menurut kamus besar bahasa indonesia KBBI puzzle adalah teki – teki [6]. Menurut Hamalik, gambar adalah sesuatu yang diwujudkan secara visual dalam bentuk dua dimensi sebagai curahan perasaan dan pikiran. Oleh karena itu, media


(18)

puzzle merupakan media gambar yang termasuk ke dalam media visual karena hanya dapat dicerna melalui indera penglihatan saja. Diantara berbagai jenis media pembelajaran yang digunakan, puzzle adalah media yang paling umum dipakai dan termasuk media pembelajaran yang sederhana yang dapat digunakan di sekolah. Sebab puzzle itu disukai oleh siswa, harganya relatif terjangkau dan tidak sulit mencarinya [7].

2.1.2 Game Play

Cara memainkan Dazzle adalah menyatukan gambar-gambar. Gambar yang disatukan akan membentuk urutan kehidupan, yakni bayi, sekolah dasar, sekolah menengah, sekolah menengah atas, kuliah, dan dewasa.

Dalam setiap tahap terdapat berbagai rintangan, yakni pendidikan, sosial, dan kehidupan. Sebagai contoh, rintangan pendidikan yang terdiri dari gambar seorang anak yang sedang menjalankan pendidikan hingga dewasa. “Game ini secara halus mengajari tentang tahapan dan rintangan dalam kehidupan manusia [8].

2.2 Kecerdasan Buatan

Kecerdasan buatan (Artificial Intelligence) atau sering disebut AI adalah suatu ilmu yang mempelajari cara membuat komputer melakukan sesuatu seperti yang dilakukan oleh manusia [9]. Kecerdasan buatan memiliki penafsiran yang berbeda beda oleh para ahli namun memiliki makna yang sama, berikut adalah pengertian kecerdasan buatan menurut para ahli [9]:

a. Menurut H. A. Simon menjelaskan bahwa kecerdasan buatan (Artificial Intelligence) merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas.

b. Menurut Rick and Knight menjelaskan bahwa Kecerdasan buatan (Artificial Intelligence) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh


(19)

manusia, dengan tujuan utama dari kecerdasan buatan itu sendiri adalah membuat mesin menjadi lebih pintar.

2.2.1 Jaringan Syaraf Tiruan

Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran

Jaringan Syaraf Tiruan (JST) merupakan suatu sistem pemrosesan informasi yang mempunyai karakteristik menyerupai jaringan syaraf biologi (JSB). JST tercipta sebagai suatu generalisasi model matematis dari pemahaman manusia (human cognition) yang didasarkan atas asumsi sebagai berikut [10]:

1. Pemrosesan informasi terjadi pada elemen sederhana yang disebut neuron 2. Sinyal mengalir diantara sel saraf/neuron melalui suatu sambungan

penghubung

3. Setiap sambungan penghubung memiliki bobot yang bersesuaian. Bobot ini akan digunakan untuk menggandakan / mengalikan sinyal yang dikirim melaluinya.

4. Setiap sel syaraf akan menerapkan fungsi aktivasi terhadap sinyal hasil penjumlahan berbobot yang masuk kepadanya untuk menentukan sinyal keluarannya.

Analogi jaringan syaraf tiruan dengan jaringan syaraf buatan dijelaskan pada Tabel II.1 berikut ini:


(20)

Tabel 2.1 Analogi JST dan JSB [10]

JST JSB

Node/masukan Badan sel(soma)

Masukan Dendrit

Keluaran Akson

Bobot Sinapsis

Model struktur neuron jaringan syaraf tiruan dijelaskan pada Gambar 2.1 dan Gambar 2.2.

Gambar 2.1 Model Sturktur JST [10]

Gambar 2.2 Model Struktur JST [10]

Jaringan syaraf tiruan dapat belajar dari pengalaman, melakukan generalisasi atas contoh-contoh yang diperolehnya dan mengabstraksi karakteristik esensial masukan bahkan untuk data yang tidak relevan. Algoritma untuk JST beroperasi secara langsung dengan angka sehingga data yang tidak numerik harus diubah menjadi data numerik. JST tidak diprogram untuk menghasilkan keluaran tertentu.


(21)

Semua keluaran atau kesimpulan yang ditarik oleh jaringan didasarkan pada pengalamannya selama mengikuti proses pembelajaran. Pada proses pembelajaran, ke dalam JST dimasukkan pola-pola masukan (dan keluaran) lalu jaringan akan diajari untuk memberikan jawaban yang bisa diterima. Pada dasarnya karakteristik JST ditentukan oleh :

1. Pola hubungan antar neuron (disebut arsitektur jaringan)

2. Metode penentuan bobot-bobot sambungan (disebut dengan pelatihan atau proses belajar jaringan)

3. Fungsi aktivasi

2.2.2 Arsitektur Jaringan Syaraf Tiruan

Pada JST, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya. Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan masukan sampai ke lapisan keluaran melalui lapisan tersembunyi (hidden layer). Gambar berikut ini jaringan syaraf dengan 3 lapisan dan bukanlah struktur umum jaringan syaraf karena beberapa jaringan syaraf ada yang tidak memiliki lapisan tersembunyi.

Faktor terpenting dalam menentukan kelakuan suatu neuron adalah fungsi aktivasi dan pola bobotnya. Umumnya neuron-neuron yang terletak pada lapisan yang sama akan memiliki keadaan yang sama sehingga pada setiap lapisan yang sama neuron-neuron memiliki fungsi aktivasi yang sama. Bila neuron-neuron pada suatu lapisan (misal lapisan tersembunyi) akan dihubungkan dengan

neuron-neuron pada lapisan lain (misal lapisan keluaran) maka setiap neuron pada lapisan tersebut (lapisan tersembunyi) juga harus dihubungkan dengan setiap neuron pada lapisan lainnya (lapisan keluaran). Terdapat 3 macam arsitektur JST, yaitu [10]:


(22)

1. Jaringan dengan lapisan tunggal (single layer net)

Jaringan ini hanya memiliki 1 lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima masukan kemudian secara langsung akan mengolahnya menjadi keluaran tanpa harus melalui lapisan tersembunyi. Pada gambar berikut neuron-neuron pada kedua lapisan saling berhubungan

Seberapa besar hubungan antara 2 neuron ditentukan oleh bobot yang bersesuaian. Semua unit masukan akan dihubungkan dengan setiap unit keluaran seperti terlihat pada Gambar 2.3.

Gambar 2.3 Jaringan Dengan Lapisan Tunggal [10] 2. Jaringan dengan banyak lapisan (multilayer net)

Jaringan ini memiliki 1 atau lebih lapisan yang terletak diantara lapisan masukan dan lapisan keluaran. Umumnya ada lapisan bobot-bobot yang terletak antara 2 lapisan yang bersebelahan seperti terlihat pada Gambar 2.4. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit. Pada banyak kasus, pembelajaran pada jaringan dengan banyak lapisan ini lebih sukses dalam menyelesaikan masalah.


(23)

Gambar 2.4 Jaringan Dengan Banyak Lapisan [10] 3. Jaringan dengan lapisan kompetitif (competitive layer net)

Pada jaringan ini sekumpulan neuron bersaing untuk mendapatkan hak menjadi aktif. Umumnya hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan pada diagram arsitektur. Gambar 2.5 menunjukkan salah satu contoh arsitektur jaringan dengan lapisan kompetitif yang memiliki bobot -n.

Gambar 2.5 Jaringan Dengan Lapisan Kompetitif [10] 2.2.3 Fungsi Aktivasi

fungsi aktivasi adalah fungsi yang digunakan untuk mengaktifkan setiap neuron yang dipakai pada jaringan tersebut. Banyak fungsi yang dipakai sebagai pengaktif, diantaranya :


(24)

Jaringan dengan lapisan tunggal sering menggunakan fungsi undak untuk mengkonversi input dari suatu variable yang bernilai kontinu ke suatu output biner. Fungsi hard limit dirumuskan

{

(2.1)

2. Fungsi Undak Biner (Threshold)

Fungsi ini sering disebut fungsi niali ambang atau fungsi Heaviside, dirumuskan :

{

(2.2)

3. Fungsi Bipolar Hampir sama dengan undak biner, hanya output yang dihasilkan berupa 1, 0 atau -1. Fungsi ini dirumuskan :

{

(2.3)

4. Fungsi Bipolar (dengan Threshold)

Fungsi yang menghasilkan output berupa 1, 0 atau -1

{

(2.4)

5. Fungsi Linear (identitas)

Fungsi linear memiliki nilai output yang sama dengan nilai input, dirumuskan : y = x

6. Fungsi Sturating Linear Fungsi ini dirumuskan :

{


(25)

7. Fungsi Symetric Saturating Linear Fungsi ini dirumuskan :

{

(2.6)

8. Fungsi Sigmoid Biner

Digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi ini dirumuskan :

́

(2.7)

9. Fungsi Sigmoid Bipolar

Output dari fungsi ini memiliki range antara 1 sampai -1. Fungsi ini dirumuskan :

(2.8)

2.2.4 Learning Rate

Learning rate merupakan salah satu parameter training untuk menghitung nilai koreksi bobot pada waktu proses training. Nilai α ini berada pada range nol (0) sampai (1). Semakin besar nilai learning rate, maka proses training akan berjalan semakin cepat. Namun apabila nilai learning rate relatif terlalu besar, pada umumnya proses training dapat melampaui keadaan optimal yaitu pada saat dicapai nilai error yang paling minimal. Dengan kata lain, learning rate mempengaruhi ketelitian jaringan suatu sistem. Semakin besar learning rate, maka ketelitian jaringan akan semakin berkurang, tetapi berlaku sebaliknya, apabila learning rate-nya semakin kecil, maka ketelitian jaringan akan semakin besar atau bertambah dengan konsekuensi proses training akan memakan waktu yang semakin lama [11]

2.2.5 Min-Max Normalization

Normalisasi digunakan untuk menyamakan skala atribut data kedalam sebuah range yang spesifik, misal –1 s/d 1 atau 0 s/d 1. Min-Max Normalization melakukan


(26)

transformasi linier pada attribut data asli guna menghasilkan range nilai yang sama [2].

(2.3) dimana, V’ : Nilai baru data hasil Min-Max Normalization

V : Nilai data yang akan dinormalisasi

minA : Nilai minimum dari field data yang sama

maxA : Nilai maksimum dari field data yang sama

2.2.6 Proses Pembelajaran Jaringan

Cara belajar JST adalah sebagai berikut:

1. JST dimasukkan informasi yang sebelumnya telah diketahui hasil keluarannya.

2. Proses memasukkan informasi ini dilakukan lewat node-node atau unit-unit masukan. Bobot-bobot antarkoneksi dalam suatu arsitektur diberi nilai awal dan kemudian JST dijalankan. Bobot-bobot ini bagi jaringan digunakan untuk belajar dan mengingat suatu informasi. Pengaturan bobot dilakukan secara terus-menerus dan dengan menggunakan kriteria tertentu sampai diperoleh keluaran yang diharapkan.

Hal yang ingin dicapai dengan melatih/mengajari JST adalah untuk mencapai keseimbangan antara kemampuan memorisasi dan generalisasi. Kemampuan memorisasi adalah kemampuan JST untuk memanggil kembali secara sempurna sebuah pola yang telah dipelajari. Kemampuan generalisasi adalah kemampuan JST untuk menghasilkan respon yang bisa diterima terhadap pola-pola masukan yang serupa (namun tidak identik) dengan pola-pola yang sebelumnya telah dipelajari.

Hal ini sangat bermanfaat bila pada suatu saat ke dalam JST dimasukkan informasi baru yang belum pernah dipelajari, maka JST masih akan tetap dapat memberikan tanggapan yang baik, memberikan keluaran yang paling mendekati. Paradigma/metode pembelajaran/pelatihan JST adalah sebagai beriku [10]t:


(27)

1. Pembelajaran terawasi (supervised learning)

Pada pembelajaran ini kumpulan data masukan yang digunakan, data keluarannya telah diketahui. Perbedaan antara keluaran-keluaran aktual dengan data keluaran yang diinginkan digunakan untuk mengoreksi bobot JST agar JST dapat menghasilkan jawaban sedekat (semirip) mungkin dengan jawaban yang benar yang telah diketahui oleh JST.

2. Pembelajaran tak terawasi (unsupervised learning)

Pada pembelajaran ini, JST mengorganisasi dirinya sendiri untuk membentuk vektor-vektor masukan yang serupa, tanpa menggunakan data atau contoh-contoh pelatihan. Struktur menggunakan dasar data atau korelasi antara pola-pola data yang dieksplorasi. Paradigma pembelajaran ini mengorganisasi pola-pola ke dalam kategori-kategori berdasarkan korelasi yang ada.

3. Gabungan pembelajaran terawasi dan tak terawasi (hybrid)

Merupakan kombinasi dari kedua pembelajaran tersebut. Sebagian dari bobot-bobotnya ditentukan melalui pembelajaran terawasi dan sebagian lainnya melalui pembelajaran tak terawasi

2.2.6.1 Pembelajaran Tak Terawasi (Unsupervised Learning)

Metode pembelajaran tak terawasi merupakan metode pembelajaran yang tidak memerlukan target keluaran. Pada metode ini, tidak dapat ditentukan hasil yang seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai masukan yang diberikan. Tujuan pembelajaran ini adalah mengelompokkan unit-unit yang hampir sama dalam suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk pengelompokan pola. [10]

2.2.6.2 Jaringan Kohonen

Jaringan kohonen pertama kali diperkenalkan oleh Prof. Teuvo Kohonen pada tahun 1982. Pada jaringan ini, suatu lapisan yang berisi neuron-neuron akan


(28)

menyusun dirinya sendiri berdasarkan masukan nilai tertentu dalam suatu kelompok yang dikenal dengan istilah pengelompokkan (cluster). Selama proses penyusunan diri, cluster yang memiliki vektor bobot paling cocok dengan pola masukan (memiliki jarak yang paling dekat) akan terpilih sebagai pemenang. Neuron yang menjadi pemenang beserta neuron-neuron tetangganya akan memperbaiki bobotnya.

2.2.7 Metode Pembelajaran Terawasi (supervised learning)

Metode pembelajaran pada jaringan syaraf disebut terawasi jika keluaran yang diharapkan telah diketahui sebelumnya, misalkan seperti pada proses AND. Pada proses pembelajaran, satu pola masukan akan diberikan ke satu neuron pada lapisan masukan . Pola ini akan dirambatkan di sepanjang jaringan syaraf hingga sampai ke neuron pada lapisan keluaran. Lapisan keluaran ini akan membangkitkan pola keluaran yang nantinya akan dicocokkan dengan pola keluaran targetnya. Apabila terjadi perbedaan antara pola keluaran hasil pembelajaran dengan pola target, maka akan muncul error. Apabila nilai error masih cukup besar, mengindikasikan bahwa masih perlu dilakukan lebih banyak pembelajaran lagi. Metode-metode yang termasuk dalam pembelajaran terawasi antara lain[6]:

2.2.7.1 Hebb rule

Hebb rule adalah metode pembelajaran yang paling sederhana. Pada metode ini pembelajaran dilakukan dengan cara memperbaiki nilai bobot sedemikian rupa sehingga jika ada 2 neuron yang terhubung, dan keduanya pada

kondisi „hidup‟ (on) pada saat yang sama, maka bobot antara keduanya dinaikkan. Gambar 2.6 merupakan gambar jaringan hebb rule.


(29)

Gambar 2.6 Bentuk Jaringan Hebb Rule [12] 2.2.7.2 Perceptron

Jaringan jenis ini hanya terdiri dari layer masukan dan layer keluaran saja. Data masukan yang masuk melalui vector masukan akan langsung diproses dan kemudian ditentukan target keluaran dari hasil pengolahan. Jaringan perceptron dapat dilihat pada Gambar 2.7.

Gambar 2.7 Bentuk Jaringan Perceptron [12] 2.2.7.3 Backpropagation

Salah satu arsitektur jaringan saraf tiruan yang sangat populer adalah multilayer feedforward networks. Secara umum, jaringan seperti ini terdiri dari sejumlah unit neuron sebagai lapisan masukan, satu atau lebih lapisan simpul-simpul neuron komputasi lapisan tersembunyi, dan sebuah lapisan simpul-simpul neuron komputasi keluaran. Sinyal masukan dipropagasikan ke arah depan (arah lapisan keluaran), lapisan demi lapisan. Jenis jaringan ini adalah hasil generalisasi dari arsitektur perceptron satu lapisan, jadi


(30)

biasa disebut sebagai multilayer perceptron (MLPs). Error back propagation adalah algoritma MLPs yang menggunakan prinsip pembelajaran terawasi. Propagasi balik (ke arah lapisan masukan) terjadi setelah jaringan menghasilkan keluaran yang mengandung error. Pada fase ini seluruh bobot synaptic (yang tidak memiliki aktivasi nol) dalam jaringan akan disesuaikan untuk mengkoreksi/memperkecil error yang terjadi (error correction rule). Untuk pelatihan jaringan, pasangan fase propagasi ke depan dan balik dilakukan secara berulang untuk satu set data latihan, kemudian diulangi untuk sejumlah epoch (satu sesi lewatan untuk seluruh data latihan dalam sebuah proses pelatihan jaringan) sampai error yang terjadi mencapai batas kecil toleransi tertentu atau nol. Jaringan backpropagation dapat dilihat pada Gambar 2.8.[18]

Gambar 2.8 Bentuk Jaringan Backpropagation

Dari Gambar II.12 dapat dilihat bahwa yang bertindak sebagai dendrit adalah X1 dan X2, yaitu data masukan pada jaringan tersebut. Terdapat 2 sinapsis atau bobot yaitu V dan W, sedangkan Z dan Y merupakan bagian dari soma atau badal sel dari jaringan tersebut. Dan yang bertindak sebagai akson atau data keluaran adalah Y. Berikut ini algoritma pembelajaran metode backpropagation.

Langkah 0 :

Pemberian inisialisasi penimbang (diberi nilai kecil secara acak) Langkah 1 :


(31)

Jika kondisi berhenti tidak tercapai, Ulangi langkah 2 hingga 9 sampai kondisi akhir iterasi dipenuhi( kondisi berhenti jika perulangan mencapai maksimal perulangan atau mean square error (MSE) sudah lebih kecil dari rasio pembelajaran)

Langkah 2 :

Untuk masing-masing pasangan data pelatihan (training data) lakukan langkah 3 hingga 8

Propagasi maju (Feedforward) Langkah 3 :

Masing-masing unit masukan (Xi, I = 1,…,n) menerima sinyal masukan Xi dan sinyal tersebut disebarkan ke unit-unit bagian berikutnya (unit-unit lapisan tersembunyi)

Langkah 4 :

Masing-masing unit dilapisan tersembunyi dikalikan dengan faktor penimbang dan dijumlahkan serta ditambahkan dengan biasnya :

(2.9)

Kemudian menghitung sesuai dengan fungsi aktifasi yang digunakan :

(2.10)

Bila yang digunakan adalah fungsi sigmoid maka bentuk fungsi tersebut adalah :

(2.11)

Masing-masing unit keluaran (Yk, k=1,2,3,…m) dikalikan dengan faktor penimbang dan dijumlahkan :

(2.12)

Menghitung kembali sesuai dengan fungsi aktifasi


(32)

Backpropagation dan galatnya Langkah 6 :

Masing-masing unit keluaran (Yk, k=1,…,m) menerima pola target sesuai dengan pola masukan saat pelatihan dan dihitung galatnya :

(2.14)

Menghitung perbaikan faktor penimbang (kemudian untuk memperbaiki

(2.15)

Menghitung perbaikan koreksi :

(2.16)

Dan menggunakan nilai pada semua unit lapisan sebelumnya. Langkah 7 :

Masing-masing penimbang yang menghubungkan unit-unit l;apisan keluaran dengan unit-unit pada lapisan tersembunyi ( dikalikan delta dan dijumlahkan sebagai masukan ke unit-unit lapisan berikutnya.

(2.17)

Selanjutnya dikalikan dengan turunan dari fungsi aktifasinya untuk menghitung galat.

)

(2.18)

Kemudian menghitung perbaikan penimbang (digunakan untuk memperbaiki )

(2.19)

Kemudian menghitung perbaikan bias (untuk memperbaiki )

(2.20)

Memperbaiki penimbang dan bias


(33)

Masing-masing keluaran unit (yk, k=1,…,m) diperbaiki bias dan penimbangnya (j=0,…,p)

(2.21)

Masing-masing unit tersembunyi (Zj, j:1,…,p) diperbaiki bias dan penimbangnya (j=0,…,n)

(2.22)

Langkah 9 :

Uji kondisi pemberhentian (akhir iterasi) pengujian pemberhentian dilakukan dengan menghitung nilai error. Jika mencari nilai error yang tidak memiliki nilai target maka rumus mencari nilai error adalah sebagai berikut :

(2.23)

Jika sudah memiliki nilai target maka rumus mencari nilai error adalah sebagai berikut :


(34)

Tabel 2.2 Daftar Keterangan Notasi Backpropagation

Notasi Keterangan

Xp = Pola masukan pelatihan ke-p, p=1,2,…,p<=1. (X1,X2,X3, …,Xn) tp = Pola keluaran target dari pelatihan. (t1, t2, t3, …, tn)

xi = Unit ke-I pada lapisan masukan Xi = Nilai aktifasi dari unit Xi

Zj = Unit ke-j pada lapisan tersembunyi Z_inj = Keluaran untuk unit Zj

zj = Nilai aktifasi dari unit Zj

Yk = Unit ke-k pada lapisan keluaran Y_ink = Net masukan untuk unit Yk

Wk0 = Nilai penimbang sambungan pada bias untuk unit Yk Wkj = Nilai penimbang sambungan dari Zij ke unit Yk

kj = Selisih Wkj(t) dengan Wkj(t+1)

Vio = Nilai penimbang sambungan pada bias untuk unit Zi

ij = Selisih antara Vij(t) dengan Vij(t+1)

k = Faktor pengaturan nilai penimbang sambungan pada lapisan keluaran j = Faktor pengaturan niloai penimbang sambungan pada lapisan

tersembunyi

α = Konstanta laju pelatihan (learning rate) 0<α<1 E = Total galat


(35)

2.3 OOP (Object Oriented Programing)

Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku. Dalam kehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata seperti manusia, hewan, mobil, komputer, handphone, pena, ataupun benda yang tidak nyata atau konsep, seperti halnya tabungan bank, sistem antrian, sistem internet banking, dan sebagainya. Jadi pengertian OOP adalah konsep yang membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (konsep). Jika menggunakan OOP maka akan ada enam keuntungan yang dapat diperoleh [13], yaitu :

1. Alami (Natural).

2. Dapat diandalkan (Reliable).

3. Dapat digunakan kembali (Reusable).

4. Mudah untuk dalam perawatan (Maintainable). 5. Dapat diperluas (Extendable).

6. Efisiensi waktu.

Berikut ini beberapa bahasa pemrograman yang sudah menggunakan konsep OOP, adalah :

1. C++.

2. Visual C++. 3. Visual Basic. 4. Java.

2.3.1 Analisis Berorientasi Objek

Analisis berorientasi objek atau Object Oriented Analysis (OOA) adalah tahap untuk menganalisis spesifikasi atau kebutuhan akan sistem yang akan dibangun dengan konsep berorientasi objek, apakah benar kebutuhan yang ada dapat diimplementasikan menjadi sebuah sistem berorientasi objek.


(36)

OOA biasanya menggunakan kartu CRC (Component, Responsibility, Collaborator) untuk membangun kelas-kelas yang akan digunakan atau menggunakan UML (Unifed Modeling Language) pada bagian diagram use case, diagram kelas, dan diagram objek [13]

2.3.2 Desain Berorientasi Objek

Desain berorientasi objek atau Object Oriented Design (OOD) adalah tahapan perantara untuk spesifikasi atau kebutuhan sistem yang akan dibangun dengan konsep berorientasi objek ke desain pemodelan agar lebih mudah diimplementasikan dengan pemograman berorientasikan objek.

Pemodelan berorientasi objek biasanya dituangkan dalam dokumentasi perangkat lunak dengan menggunakan perangkat lunak dengan menggunakan perangkat pemodelan berorientasi objek, diantaranya adalah UML (Unified Modeling Language). Kendala dan permasalahan pembangunan sistem berorientasi objek biasanya dapat dikenali dalam tahap ini [13]

2.3.3 Pemodelan

Pemodelan adalah gambaran dari realita yang sederhana dan dituangkan dalam bentuk pemetaan dengan aturan tertentu. Pemodelan dapat menggunakan bentuk yang sama dengan realitas. Pemodelan juga banyak digunakan untuk merencanakan suatu hal agar kegagalan dan resiko yang mungkin terjadi dapat meminimalisir.

Pada dunia pembangunan perangkat lunak juga diperlunakan pemodelan. Pemodelan perangkat lunak digunakan untuk mempermudah langkah berikutnya dari pengembangan sebuah sistem sehingga lebih terencana. Pemodelan pada pembangunan perangkat lunak untuk menvisualkan perangkat lunak yang akan dibuat [13]


(37)

2.3.4 Unified Modelling Languange (UML)

Unified Modelling Languange (UML) adalah sebuah bahasa pemodelan standar yang memiliki sintaks dan semantic. Pemodelan ini sangat cocok digunakan untuk merancang dan memodelkan sistem berorientasi objek. Diagram pada uml dibagi menjadi dua bagian yaitu structural Diagram dan behavior Diagram. Structural Diagram digunakan untuk mendeskripsikan relasi antar kelas, Tools yang digunakan pada bagian ini yaitu Class Diagram. Sedangkan behavior Diagram digunakan untuk mendeskripsikan interaksi antara aktor dan sebuah Use Case (bagaimana seorang aktor menggunakan sistem). Tools yang digunakan pada bagian ini yaitu Use Case

Diagram, Sequence Diagram, dan Activity Diagram [14].

2.3.5 Diagram Use Case

Diagram Use Case digunakan untuk mendeskripsikan kejadian-kejadian apa saja yang dapat dilakukan oleh user/aktor dan fungsionalitas-fungsionalitas apa saja yang diharapkan dari sistem yang akan dibangun. Tanpa mendeskripsikan bagaimana sistem menyelesaikannya. Sebuah Use Case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan sistemm dalam tahap requirements. Model Use Case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi antara aktor dan sistem dalam suatu bentuk naratif. Setiap Use Case menggambarkan perilaku sejumlah aspek sistem, tanpa mengurangi struktur internal-nya. Selama pembuatan model Use Case secara pararel juga harus ditetapkan obyek-obyek yang terlibat dalam setiap Use Case [14].

2.3.6 Diagram Sequence

Diagram Sequence menggambarkan interaksi antar objek di dalam dan di sekitar sistem yang menekankan pada pengiriman pesan dalam suatu waktu tertentu. Diagram Sequence biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan [14].


(38)

2.3.7 Diagram Activity

Diagram Activity menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision atau keputusan yang mungkin terjadi, dan bagaimana mereka berakhir. Diagram Activity merupakan state Diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu Diagram Activity tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum [14].

2.3.8 Diagram Class

Diagram Class digunakan untuk menggambarkan keadaan suatu sistem dengan menjelaskan keterhubungan antara suatu Class dengan Class yang lain yang terdapat pada sistem. Sebuah Class terdiri dari nama, atribut dan method. Atribut dan

method dari sebuah Class atau kelas mempunyai visibility. Ada tiga jenis visibility

yang digunakan yaitu private, public, dan protected. Setiap kelas pada Diagram Class mempunyai hubungan dengan kelas lainnya. Ada beberapa jenis hubungan kelas, yaitu dependency, asosiasi, agregasi dan generalisasi [14].

a. Dependency
merupakan hubungan terlemah antar kelas. Dependency

bermakna satu kelas menggunakan atau memiliki pengetahuan terhadap kelas lain, namun hubungannya hanya sementara dan tidak ada batas waktu yang jelas.

b. Asosiasi
mempunyai hubungan yang lebih kuat dari hubungan dependency.

Dimana suatu Class tetap berhubungan dengan kelas lain seterusnya, hubungan asosiasi dibagi menjadi dua jenis yaitu directional dan bidirectional.

c. Agregasi
merupakan bentuk hubungan yang mengimplikasikan kepemilikan


(39)

Hubungan agregasi dinyatakan dengan simbol diamond pada pemilik kelas dan garis utuh berpanah kekelas yang dimiliki.

d. Generalisasi
merupakan bentuk hubungan antar kelas, dari kelas yang umum

dengan kelas yang lebih khusus. Contoh kelas hewan memiliki hubungan generalisasi dengan kelas kucing, karena kucing merupakan kelas khusus dari kelas hewan yang lebih umum.

2.4 C Sharp (C#)

C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan [15].

2.5 Microsoft Visual Studio

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe [16].

2.6 Pengujian Black Box

Pengujian black box merupakan pendekatan komplementer dari teknik white box, karena pengujian black box diharapkan mampu mengungkap kelas kesalahan yang lebih luas dibandingkan teknik white box. Pengujian black box berfokus pada


(40)

pengujian persyaratan fungsional perangkat lunak, untuk mendapatkan serangkaian kondisi input yang sesuai dengan persyaratan fungsional suatu program.

Pengujian black box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pengujian black box merupakan metode perancangan data uji yang didasarkan pada spesifikasi perangkat lunak. Data uji dibangkitkan, dieksekusi pada perangkat lunak dan kemudian keluaran dari perangkat lunak dicek apakah telah sesuai dengan yang diharapkan. Pengujian black box berusaha menemukan kesalahan dalam kategori [3] :

1. fungsi-fungsi yang tidak benar atau hilang 2. kesalahan interface

3. kesalahan dalam struktur data atau akses database eksternal 4. kesalahan kinerja

5. inisialisasi dan kesalahan terminasi.

2.6.1 Weka

Weka machine learning workbench adalah sebuah flatform modern untuk penerapan machine learning. Weka adalah singkata yang merupakan singkatan dari waikato environment untuk analisis pengetahuan [17]. Terdapat lima fitur dari aplikasi weka yaitu :

1. open source

aplikasi ini bersifat open source dibawah GNU GPL. Dan memiliki lisensi eksklusif untuk digunakan pada platform intelejen bisnis dalam produk mereka

2. antar muka

memiliki Graphical User Interface (GUI). Hal ini memungkinkan anda untuk menyelesaikan proyek-proyek machine learning tanpa melakukan pemrograman


(41)

semua fitur dari perangkat lunak dapat digunakan dari comand line inteface. Fungsi ini sangat berguna jika ingin melulaku pengkodean pada pekerjaan yang besar.

4. api java

hal ini tulis di pemroraman java dan menyediakan API yang didokumentasikan dengan baik dan mempromosikan integrasi ke dalam aplikasi yang dibuat pada pemrograman java.

5. Dokumentasi

Terdapat buku manual, wiki dan kursus MMOC yang dapat melatih pengguna weka bagaimana menggunakan platform ini secara efektif.

2.6.2 Cross validation

Cross Validation merupakan salah satu teknik untuk menilai/memvalidasi keakuratan sebuah model yang dibangun berdasarkan dataset tertentu . Pembuatan model biasanya bertujuan untuk melakukan prediksi maupun klasifikasi terhadap suatu data baru yang boleh jadi belum pernah muncul di dalam dataset. Data yang digunakan dalam proses pembangunan model disebut data latih/training, sedangkan data yang akan digunakan untuk memvalidasi model disebut sebagai data test.

k-fold cross validation

k-fold cross validation adalah sebuah teknik intensif komputer yang menggunakan keseluruhan data yang ada sebagai traning set dan test set. Seluruh data secara acak dibagi menjadi K buah subset dengan ukurang yang sama dimana merupakan himpunan bagian dari (1..n) sedemikian sehingga dan = ∅ setelah itu dilakukan iterasi sebanyak k kali. Pada iterasi ke k subset bk menjadi test test, sedangkan subset yang lain menjadi training set. Setelah itu dihitung nilai rata-rata error dengan menggunakan hasil dari k buah iterasi.

Kelebihan dari metode ini adalah tidak adanya masalah dalam pembagian data. Setiap data akan menajdi test set sebanyak satu kali dan akan menjadi training


(42)

set sebanyak K-1 kali. Kekurangan dari metode ini adalah algoritma pembelajaran harus dilakukan sebanyak K kali yang berarti menggunakan K kali waktu komputasi


(43)

Masalah yang diangkat dalam penulisan tugas akhir ini adalah penerapan algoritma neural network backpropagation untuk mencari solusi pada permainan dazzle. Dalam permainan dazzle terdapat minimal 1 pemilihan jalur, dan maksimal memiliki 4 pemilihan jalur untuk menggabungkan karakter yang memiliki property yang sama. Semakin banyak kombinasi karakter yang terdapat pada area permainan maka semakin banyak permasalahan dalam pemilihan jalur untung penggabungan karakter. Maka dibutuhkan algoritma yang dapat menentukan pemilihan jalur dalam penggabungan karakter pada permainan dazzle. Algoritma neural network

backpropagation adalah algoritma yang dapat mengatasi masalah pemilihan jalur

pada permainan dazzle. Dengan banyaknya jalur yang tersedia untuk digabungkan maka, akan membentuk sebuah pattern dalam state tertentu. Algoritma neural

network backpropagation ini akan melatih komputer untuk menentukan jalur

penggabungan karakter dari data yang sudah ada sebelum, karena algoritma neural

network backpropagation termasuk kedalam algoritma yang menggunakan metode

pembelajaran terawasi (Supervised Learning) sehingga algoritma tersebut membutkan data training yang digunakan untuk mengenali pattern dari state permainan dazzle agar dapat menentukan jalur penggabungan karakter.

3.1.1 Analisis Permainan Dazzle

Permainan dazzle (dagelan puzzle) adalah game bergenre endless puzzle yang di kembangkan oleh Touch Ten game dazzle tersedia untuk perangkat mobile pada flatform ios dan android. Pada game ini terdapat sebuah matrik untuk area permainan berukuran 4x4. Tantangan pada game ini adalah menggabungkan karakter yang memiliki jenis yang sama sehingga muncul karakter baru dari penggabungan karakter sebelumnya. Adapun aturan dalam permainan dazzle adalah sebagai berikut :


(44)

status karakter yang sama.

3. Jika karakter digeserkan maka pada setiap baris atau kolom dari arah pergeseran akan ikut bergeser dan akan muncul karakter baru yang memiliki status 1 muncul pada area permainan, berlawanan dengan arah pergeseran yang dilakukan.

4. Setiap karakter yang memiliki status 4 digabungkan maka karakter tersebut akan hilang dari area permainan atau dan menjadi matriks kosong yang tidak ada isi karakter yang digabungkan.

5. Jika pemain menggabungkan dua karakter secara berurutan makan pada urutan yang ke dua akan muncul karakter baru pada ujung matrik dari karakter yang geserkan.

6. Jika semua area matriks sudah terisi oleh karakter yang tidak dapat digabungkan maka permaian telah selesai.

7. Skor permainan didapat dari seberanya banyak pemain dapat menggabungkan karakter yang memiliki jenis yang sama. Berikut adalah peraturan mendapatkan skor dari permainan dazzle

1 + 1 = 10 point

Jika melakukan penggabungan dua kali secara berurutan skor akan di kalikan 2. Begitupun jika penggabungan dilakukan secara tiga kali berurutan skor akan dikalikan 3

2 + 2 = 20 point

Jika melakukan penggabungan dua kali secara berurutan skor akan di kalikan 2. Begitupun jika penggabungan dilakukan secara tiga kali berurutan skor akan dikalikan 3


(45)

Jika melakukan penggabungan dua kali secara berurutan skor akan di kalikan 2. Begitupun jika penggabungan dilakukan secara tiga kali berurutan skor akan dikalikan 3.

Pada permainan ini memiliki ukuran 4x4 dan terdapat 4 karakter saat memulai permainan. 4 karakter tersebut terdiri dari 2 pasang jenis karakter yang berbeda. Penggabungan karekter yang dilakukan terdapat 4 tahap penggabungan, dimana setiap penggabungan karakter diwakili oleh angka yaitu :

Tabel 3.1 Daftar Keterangan Penggabunan Karakter

Status Jenis karakter Penjelasan

1a 1 Status awal jenis karakter ke 1a

2a 1 Hasil penggabungan karakter status 1a

3a 1 Hasil penggabungan karakter status 2a

4a 1 Hasil penggabungan karakter status 3a

1b 2 Status awal jenis karakter ke 1b

2b 2 Hasil penggabungan karakter status 1b

3b 2 Hasil penggabungan karakter status 2b


(46)

mulai Pelatihan Random penempatan karakter Membuat jalur pencarian karakter Mengambil data target dan koordinat dari jalur pencarian Proses backpropagation Menggeserkan karakter Apakah permainan telah selesai? Random penempatan karakter Menggeserkan karakter Mengambil data targer dan koordinat Simpan data pelatihan Apakah permainan telah selesai? selesai ya tidak Proses backpropagation Pelatihan pengujian selesai ya tidak

Gambar3.1 BlockDiagram Sistem Yang Akan Dibangun 3.1.3 Analisis Data Masukan

terdapat nilai input pada awal permainan pada program yang akan dibuat yaitu menggunakan titik awal penempatan 2 pasang karakter yang memiliki jenis yang berbeda pada area permainan, 2 pasang karakter ini terdiri dari empat karakter. Untuk memasukan data titik awal penempatan 2 pasang karakter ditempatkan secara acak pada area permainan.

Pada permainan dazzle ini pemilihan jalur penggabungan karakter dipengaruhi oleh nilai dari karakter yang ada pada area permaianan, sehingga data masukan untuk arsitektur jaringan yang digunakan adalah sebagai berikut :


(47)

3. Input 3 : nilai dari karakter yang ada disebelah atas karakter yang akan digeserkan.

4. Input 4 : nilai dari karakter yang ada disebelah bawah karakter yang akan digeserkan.

5. Input 5 : nilai dari karakter yang ada disebelah kanan karakter yang akan digeserkan.

3.1.4 Analisis Metode

Pada bagian ini dijelaskan sebuah kasus dengan nilai parameter yang telah ditetapkan, kemudian diproses secara manual untuk menghasilkan output. Parameter yang digunakan dalam kasus yang digunakan adalah sebagai berikut :

α (learning rate) = 0.5

error = 0.0001

jumlah hidden layer = 2

3.1.5 Analisis Algoritma Neural Network Backpropagation

Algotirma neural network backpropagation adalah algoritma yang menggunakan metode survevised learning (pembelajaran terawasi) oleh karena itu algoritma ini membutuhkan data-data yang ada untuk dilakukan training pada data tersebut sehingga menghasilkan output yang mendekati atau sama dengan output yang diinginkan. Algoritma ini akan menghasilkan nilai output pada proses feed

forward untuk mengetahui error yang dihasilkan dari data output tersebut.

Selanjutnya akan dilakukan proses backpropagation berdasarkan error dari data

output, proses dari backpropagation ini akan menghasilkan nilai yang digunakan

untuk mengubah nilai bobot-bobot pada jaringan neuron. Tahapan ini akan dilakukan berulang-ulang sampai nilai error dari output mencapai nilai error yang telah


(48)

merupakan flowchart proses algoritma neural netwrok backpropagatio

start

Input koordinat karakter

Menghitung nilai output net hidden dan output

Menghitung nlai error output

Error = error yang ditetapkan?

Hitung nilai delta jaringan hiden menuju output

Update data jaringan hidden

menuju output

Hitung nilai delta jaringan input menuju hidden Update data jaringan input menuju hidden Stop ya tidak Pemberian nilai random pada bobot jaringan Memindahk an karakter


(49)

tambahan sebelum menggunakan algoritma backpropagation dalam pemilihan jalur untuk penggabungan karakter. Proses pertama adalah menggunakan metode greedy yang dimodifikasi, serta dilakukan pruning saat membuat pohon pencarian untuk menghemat memory yang digunakan dan untuk menghemat waktu proses pembuatan pohon pencarian. Proses pertama dilakukan bertujuan untuk mendapatkan posisi karakter yang akan digeserkan berserta nilai target pergeseran yang akan dilakukan. Algoritma neural network backpropagation ini adalah jenis algoritma supervised

learning, sehingga algoritma backpropagation akan optimal ketika memiliki banyak

data training. Proses pertama ini juga bertujuan untuk mengoptimalkan pemilihan jalur penggabungan karakter ketika data training yang digunakan masih sedikit. Adapun contoh kasus pada permainan dazzle dapat digambarkan sebagai berikut :

1 0 0 0 1b 2 0 1a 1a 0

3 0 0 0 0

4 0 0 0 1b

Gambar 3.3 Contoh Kasus Permainan Dazzle

Proses pembuatan pohon pencarian ini akan menggunakan data pada gambar 3.3. proses yang digunakan untuk membuat pohon pencarian ini adalah sebagai berikut :

Memilih Jalur terpendek untuk menggabungkan karakter, didapatkan dengan cara seperti berikut :

Jarak penggabungan = |(X1-X2)|+|(Y1-Y2)| X1: posisi karakter yang akan digeserkan

X2: tujuan karakter yang akan digubungkan dengan x1 Y1: posisi karakter yang akan digeserkan


(50)

Selanjutnya dilakukan perhitungan yang sama pada setiap karakter yang ada pada area permainan. Sehingga didapkan hasil sebagai berikut :

1.4 → 4.4 = 3 2.2 → 2.3 = 1 2.3 → 2.2 = 1 4.4 → 1.4 = 3

Dari hasil tersebut didapatkan kandidat yang akan dipilih adalah karakter yang berada pada koordinat 2.2 dan 2.3. selanjutnya akan dilakukan pemilihan karakter yang mana yang akan digeserkan. Maka akan dilakukan pohon pencarian untuk setiap kemungkinan pergeseran dari karakter pada koordinat 2.2 dan 2.3.

Gambar 3.4 Pohon kemungkinan jalur yang optimal

Dari proses tersebut didapatkan nilai yang optimal untuk penggabungan ada pada koordinat 2.2 digeser ke arah kanan dan pada korrdinat 2.3 digeser ke arah kiri.


(51)

Tabel 3.2 Kemungkinan Kemunculan Karakter Yang Memiliki Jalur Terpendek

Koordinat karakter

terpilih

Nilai karakter pada koordinat x,y

Kemungkinan kemunculan karakter

yang memiliki jalur terpendek untuk

penggabungan 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 4.1 4.2 4.3 4.4

2.2 0 0 0 1b 0 0 2a 1b 0 0 0 0 0 0 0 1b 0

2.2 0 0 2a 1b 0 0 0 0 0 0 0 0 0 0 1b 1b 1

2.2 1b 0 0 1b 0 0 0 2a 0 0 0 0 0 0 0 1b 1

2.2 0 0 1b 1b 0 0 0 0 0 0 2a 0 0 0 0 1b 1

2.3 0 0 0 1b 2a 0 0 1b 0 0 0 0 0 0 0 1b 1

2.3 0 2a 0 1b 0 0 0 0 0 0 0 0 0 1b 0 1b 0

2.3 0 1b 0 1b 0 0 0 0 0 2a 0 0 0 0 0 1b 0

2.3 0 0 0 1b 1b 0 2a 0 0 0 0 0 0 0 0 1b 0

Hasil pada tabel 3.6 menunjukan bahwa karakter pada koordinat 2.3 memiliki 3 kemungkinan pergeseran yang memiliki jalur terpendek untuk penggabungan karakter. 3 kemungkinan tersebut adalah ketika karakter pada koordinat 2.3 di geserkan ke kanan, ke atas dan kebawah. Sehingga karakter pada koordinat 2.2 akan dipruning dan tidak dilanjutkan untuk membuat pohon pencarian. proses selanjutnya adalah melakukan pohon pencarian pada hasil pergeseran yang dilakukan sebelumnya.

3.1.7 Penerapan Algoritma Neural Network Backpropagation

Pada bagian ini akan menjelaskan proses proses yang ada pada bagian algoritma backpropagation. Tahap yang dilakukan adalah merubah data pohon pencarian menjadi input untuk proses backpropagation. Pada permainan dazzle


(52)

Nilai input 1 : nilai karakter yang akan digeserkan : 1

Nilai input 2 : nilai dari karakter yang ada dibagian kiri karakter yang akan digeserkan

: 1

Kemungkinan pergeseran akan diberikan nilai jika karakter tersebut dapat digeserkan pada matriks kosong atau digeserkan pada karakter yang memiliki status yang sama untuk digabungkan dan akan diberi nilai sesuai dengan nilai dari karakter yang beradapa pada posisi tersebut, jika kondisi tersebut tidak terpenuhi maka akan diberi nilai 0.

Nilai input 3 : nilai dari karakter yang ada dibagian atas karakter yang akan digeserkan

:0

Nilai input 4 : nilai dari karakter yang ada dibagian bawah karakter yang akan digeserkan

: 0

Nilai input 5 : nilai dari karakter yang ada dibagian kanan karakter yang akan digeserkan

: 0

Nilai output1 : target pergeseran karakter : 1000 (kanan)

Pada nilai output terdapat nilai untuk menentukan pergeseran karakter. Nilai normalisasi pergeseran didapatkan menggunakan persamaan 2.3. Nilai yang ada dapat dilihat pada tabel 3.2


(53)

Atas 0010 2 0.25 0.126 - 0.25

Bawah 0100 4 0.5 0.26 - 0.5

kanan 1000 8 1 0.6 - 1

. Pada kasus ini nilai yang digunakan untuk learning rate adalah 0,5. Karena algoritma neural network backpropataion hanya dapat menerima inputan dari 0 – 1 maka nilai input dan output yang tidak sesuai dengan aturan backpropagation akan dilakukan normalisasi dengan menggunakan persamaan 2.3. Berikut adalah tabel normalisasi dari nilai input dapat dilihat pada tabel 3.7

Contoh normalisasi pada karakter :

Tabel 3.4 Normalisasi Nilai Pada Karakter Dipermainan Dazzle No Status karakter

0 0

1 0.25

2 0.5

3 0.75

4 1

Pada penelitian ini struktur neural network backpropagation yang digunakan dapat dilihat pada gambar 3.5.


(54)

x3 x4 x5 b1 h1 h2 b2 o1 w3 w5 w7 w9 w11 w2 w4 w6 w8 w10 w12 v1 v2 v3 Input 3 Input 4 input5

Gambar 3.5 Struktur jaringan neural network backpropagation

Tahap pertama adalah pemberian bobot nilai secara acak pada setiap jaringan input yang terhubung ke layer hidden :

Tabel 3.5 Nilai Acak Bobot Variabel W input hidden 1 hidden2

1 0,38505625 0,106391 2 0,599540335 0,904816 3 0,887665583 0,964175 4 0,017552359 0,413133 5 0,599540335 0,904816 bias 0,920936866 0,196275

Lalu dilakukan pemberian bobot nilai secara acak terhadap jaringan hiden layer menuju output :

Tabel 3.6 Nilai Acak Bobot Variabel V hidden Output

1 0,846604 2 0,762539 bias 0,897255


(55)

ada. Lalu akan dihitung nilai error dari output yang dihasilkan.

tahap pertama adalah menhitung nilai output dari hidden layer. Perhitungannya adalah sebagai berikut :

nethidden1 = w1*x1+w2*x2+w3*x3+w4*x4....+w6*x6+bias*1 nethidden1 = 1.183393044

selanjutnya output dihitung nilai aktivasi neth 1 menggunakan fungsi sigmoid dengan perhitungan seperti berikut :

= 0.765557191

Lakukan proses yang sama untuk menghitung nilai neth 2 dan didapatkan hasil sebagai berikut :

=

0.799609142

Tahap selanjutnya adalah menghitung nilai output dari output1, output 2, output3 dan output4 berikut adalah perhitungan yang dilakukan :

output 1 = v1*h1+v2*h2+v3*b2 netoutput1 = 1.697119295

selanjutnya output dihitung nilai aktivasi output 1 menggunakan fungsi sigmoid dengan perhitungan seperti berikut :


(56)

= = 0.023976053

Pada perhitungan diatas didapatkan hasil 0.023976053 dari error output yang dihasilkan. Karena error yang dihasilkan masih terlalu besar dari target error yang ditetapkan sebesar 0,001 dan nilai output yang dihasilkan jauh dari nilai target yang ditetapkan maka akan dilakukan proses pembelajaran dengan menggunakan metode backpropagation untuk merubah bobot jaringan yang ada, selanjutnya dilakukan proses perhitungan forward propagation untuk menghasilkan nilai output mendekati atau sama dengan nilai target yang ditetapkan dan untuk meminimalkan nilai error dari output yang dihasilkan.

3.1.9 Backpropagation

Tahap selanjutnya adalah mecari nilai delta 1 dari output yang dihasilkan. Nilai delta 1 ini akan digunakan pada perhitungan mencari nilai delta bobot V. Dengan menggunakan persamaan 2.14 didapatkan hasil sebagai berikut :

1 = 0.020263552

Tahap selanjutnya mencari nilai delta bobot dari V. Dengan menggunakan persamaan 2.15 didapatkan hasil sebagai berikut :

∆v1 = 0.007756454 ∆v2 = 0.008101461 ∆v3 = 0.001962226

Tahap selanjutnya menghitung delta net hidden layer, nilai delta net iniakan digunakan untuk mencari nilai delta W. Dengan menggunakan persamaan 2.17 Didapatkan hasil sebagai berikut :

 net1 = 0.018278445

 net2 = 0.006648563


(57)

 hidden2 = 0.001065328

Tahap selanjutnya menghitung nilai delta bobot W. Hasil nilai yang didapat akan digunakan untuk mencari nilai perubahan bobot W. Dengan menggunakan persamaan 2.19 dan 2.20 Didapatkan hasil sebagai berikut :

∆w1 = 0.001640302 ∆w2 = 0.001640302 ∆w3 = 0

∆w4 = 0 ∆w5 = 0

∆w6 = 0.000528128 ∆w7 = 0.000532664 ∆w8 = 0.000532664 ∆w9 =0

∆w10 = 0 ∆w11 = 0

∆w12 = 0.000171502

tahap selanjutnya adalah menghitung delta bobot V. Dengan menggunakan persamaan 2.19 dan 2.20 Di dapatkan hasil sebagai berikut :

v1 = 0.909792039 v2 = 0.336205956 v3 = 0.908697661

tahap selanjutnya menghitung nilai perubahan bobot baru variable W. Dengan menggunakan persamaan 2.21. Didapatkan hasil sebagai berikut :


(58)

w6 = 0.665953709 w7 = 0.323610577 w8 = 0.852313235 w9 = 0.193670461 w10 = 0.829157384 w11 = 0.050416578 w12 = 0.65652349

tahap selanjutnya menghitung nilai perubahan bobot baru pada variabel V. Dengan menggunakan persamaan 2.22. Didapatkan hasil sebagai berikut :

v1 = 0.909792039 v2 = 0.336205956 v3 = 0.908697661

Setelah dilakukan proses backpropagation, didaptkan hasil nilai dari pelatihan dengan nilai error 0.001 yang telah dilakukan. didapatkan hasil dari nilai output 1 = 0.64201 dan berhenti pada looping ke 17 berdasarkan treshold yang ditetapkan nilai output yang dihasilkan akan menggeserkan karakter ke arah kanan.

3.2 Analisis Kebutuhan Non fungsional

Analisis non-fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi kebutuhan sistem. Spesifikasi ini juga terdiri dari elemen atau komponen-komponen yang dibutuhkan oleh sistem yang akan dibangun sampai dengan sistem tersebut terimplementasikan. Analisis kebutuhan ini juga menentukan spesifikasi masukan yang diperlukan sistem, keluaran yang akan dihasilkan sistem dan proses yang dibutuhkan untuk mengolah masukan sehingga menghasilkan suatu keluaran


(59)

Analisis kebutuhan non fungsional bertujuan agar penerapan implementasi dapat digunakan sesuai dengan kebutuhan.

3.2.1 Analisis Kebutuhan Perangkat Keras

Untuk mengimplementasikan algoritma neural network backpropagation, diperlukan spesifikasi perangkat keras yang mendukung proses kerja dari suatu sistem. Adapun spesifikasi perangkat keras yang dibutuhkan dalam pembangunan aplikasi game dazzle seperti terdapat pada tabel 3.7 sebagai berikut :

Tabel 3.7 Spesifikasi Perengkat Keras No Perangkat Keras Spesifikasi

1 CPU Intel Dual core 1.80 GHz

2 VGA Intel(R) HD Graphics

3 Harddisk 80 GB

4 RAM 2 GB

Sedangkan kebutuhan perangkat keras untuk menjalankan aplikasi yang dibangun, yang harus dipenuhi yaitu seperti pada tabel 3.8.

Tabel 3.8 Spesifikasi Perangkat Keras Nama Perangkat Spesifikasi

CPU Intel (R) dual Core(TM) 2,1GHz

RAM 2 GB

Harddisk Min. 80 GB


(60)

keduanya. Perangkat lunak (software) merupakan hal terpenting dalam mendukung kineja sebuah sistem. Berikut ini, kebutuhan perangkat lunak untuk menerapkan algoritma Neural Network Backpropagation pada permainan dazzle, dapat dilihat pada tabel 3.9.

Tabel 3.9 Kebutuhan Perangkat Lunak

Nama Perangkat Lunak Spesifikasi

Sistem Operasi Microsoft Windows 7

Bahasa Pemrograman C#

IDE Visual Studio 2012

.NetFramework 4.5

3.2.3 Analisis Kebutuhan Fungsional

Pemodelan yang digunakan pada game yang akan dibuat adalah analisis perancangan dan pengembangan perangkat lunak berbasis objek, dimana alat yang akan digunakan untuk pengembangan perangkat lunak yaitu pemodelan Unified

Modeling Language (UML). Pemodelan dalam analisis tersebut antara lain

pembuatan use case diagram, definisi aktor, definisi use case, skenario use case, activity diagram, sequence diagram, dan class diagram.

3.2.4 Use Case Diagram

Diagram use case menggambarkan hubungan antara aktor dan sistem yang dibangun. Perancangan proses-proses yang terdapat pada game yang akan dibangun akan digambarkan dengan diagram use case, dapat dilihat pada


(61)

Definisi aktor berfungsi untuk menjelaskan aktor yang terdapat pada diagram use case. Definisi aktor dapat dilihat pada tabel 3.10

Tabel 3.10 Definisi Aktor

No. Aktor Deskripsi

1. Pemain Pengguna yang memainkan game.

3.2.6 Definisi Use Case

Definisi use case berfungsi untuk menjelaskan fungsi use case yang terdapat pada diagram use case. Definisi use case dapat dilihat pada tabel 3.11


(62)

2. Pencarian solusi menggunakan algoritma neural network

backpropagation

Proses pencarian solusi menggunakan algoritma neural netrwok backpropagation

3. pelatihan Proses pelatihan yang digunakan sebagai data training.

4. Simpan data

pelatihan

Proses untuk menyimpan data training.

5. Reset Proses penentuan posisi awal karakter yang berada

pada area permaianan

6. Load Proses mengambil dataset yang akan digunakan

untuk proses perhitungan neural network pada menu bermain

7. Pilih lokasi peyimpanan dataset

Proses memilih lokasi penyimpanan dataset yang dipilih oleh pemain

8. Parameter neural network

Proses pemilihan parameter yang dilakukan pemain untuk tahapan pencarian solusi menggunakan algoritma neural network


(63)

pengguna memberikan perintah pada setiap bagian-bagian use case seperti terdapat pada tabel 3.12

Tabel 3.12 Skenario Use Case Menentukan Jalur Penggabungan

Identifikasi

Nomor U – 1

Nama Menentukan jalur pengabungan

Tujuan Mengabungkan karakter yang

memiliki jenis dan status yang sama

Deskripsi Mengabungkan karakter sesuai

jalur yang tersedia.

Aktor User

Skenario Utama

Kondisi awal Pemain berada di dalam permainan

dan sudah memilih posisi awal karakter.

Aksi aktor Reaksi Sistem

Memasukan nilai koordinat x,y dari posisi karakter

Sistem memindahkan karater

Menampilkan penggeseran

karakter pada posisi yang baru. skenario alternatif


(64)

Kondisi Akhir Sistem menampilkan penggabungan karakter pada jalur yang dipilih user

Tabel 3.13 Skenario Use Case Pencarian Solusi Menggunakan Algoritma Neural Network Backpropagation

Identifikasi

Nomor U – 2

Nama Solusi

Tujuan Menjalankan otomatis pemilihan jalur

penggabungan karakter

Deskripsi Proses proses pemilihan jalur otomatis

menggunakan algoritma neural network backpropagation

Aktor pemain

Skenario Utama

Kondisi awal Pemain memilih menu pencarian

solusi menggunakan algoritma neural network backpropagation

Aksi aktor Reaksi Sistem

Memasukan data input pelatihan i1,i2,i3,i4,i5 dan output pergeseran


(65)

Menggeserkan karakter

menggeserkan karakter pada posisi yang baru

Skenario alternatif

4a. Karakter tetap diposisi sebelumnya

5a. menggabungkan karakter pada posisi yang baru

Kondisi Akhir Karakter berhasil digeserkan dari


(66)

Tujuan Proses pelatihan dataset

Deskripsi Untuk melatih dataset yang akan

digunakan pada proses pencarian solusi menggunakan algoritma neural network

Aktor Pemain

Skenario Utama

Kondisi awal Pemain sudah memuat dataset

permainan dan memasukan parameter neural network

Aksi aktor Reaksi Sistem

memasukan nilai input1, input2 , input 3, input 4, input5 dan target output

mengambil data input koordinat awal pada area permainan

normalisasi

backpropagation

membandingkan nilai error output dan target

mendapatkan nilai output


(67)

Tabel 3.15 Skenario Use Case Simpan Data Pelatihan Identifikasi

Nomor U – 4

Nama Simpan data pelatihan

Tujuan Melakukan proses penyimpanan data

trainin

Deskripsi Proses untuk mendapatkan data

training dari hasil permainan pengguna.

Aktor User

Skenario Utama

Kondisi awal Permainan telah seleseai (

menggabungkan 4a dan 4a, 4b dan 4b)

Aksi aktor Reaksi Sistem

Memasukan nilai inpit1, input 2, input3, input 4, input5, dan target output

Menyimpan dataset permainan


(68)

Identifikasi

Nomor U – 5

Nama Reset

Tujuan Menempatkan posisi awal karakter

Deskripsi Proses untuk menentukan posisi.

Aktor User

Skenario Utama

Kondisi awal Pemain berada di dalam permainan

Aksi aktor Reaksi Sistem

Memasukan nilia koordinat x,y baru

Sistem memasukan nilai posisi baru pada area permaian

Sistem menampilkan karakter pada area permaianan

Kondisi Akhir Pemain dapat memulai permainan

untuk menggeserkan karakter

Tabel 3.17 Skenario Use Case Load Identifikasi

Nomor U - 6

Nama Load

Tujuan Mengambil dataset pelatihan


(69)

Aksi aktor Reaksi Sistem Pemain memasukan data yang akan di

load

sistem melakukan reset array

sistem memasukan data load

Kondisi akhir sistem mengambil dataset yang dipilih

oleh pemain

Tabel 3.18 Skenario Use Case Memilih Lokasi Penyimpanan Identifikasi

Nomor U - 7

Nama Memilih lokasi penyimpanan dataset

Tujuan Untuk menempatkan dataset pada

lokasi penyimpanan yang dipilih oleh pemain

Deskripsi Proses melakukan pemilihan tempat

penyimpanan dataset.

Aktor Pemain

Skenario Utama

Kondisi awal Pemain berada dalam menu pelatihan

Aksi aktor Reaksi Sistem


(70)

oleh pemain

Tabel 3.19 Skenario Use Case Pemilihan Parameter Neural Network Identifikasi

Nomor U - 8

Nama Pemilihan parameter neural network

Tujuan Untuk parameter masukan pada data

neural network yang akan diproses

Deskripsi Proses memasukan parameter neural

network

Aktor Pemain

Skenario Utama

Kondisi awal Pemain sudah memuat dataset yang

akan dilatih.

Aksi aktor Reaksi Sistem

Memilih parameter learning rate , dan error

Memasukan paramter yang diinputkan pemain

Sistem menyimpan data parameter neural network


(71)

parameter yang telah dipilih.

Tabel 3.20 Skenario Use Case Keluar Identifikasi

Nomor U - 9

Nama Keluar

Tujuan Keluar dari permainan

Deskripsi Proses keluar dari permainan

Aktor Pemain

Skenario Utama

Kondisi awal Pemain berada dalam menu utama

Aksi aktor Reaksi Sistem

Memilih keluar dari permainan

Permainan akan terhenti dan keluar dari sistem


(72)

permainan ini yaitu :

1. Activity Diagram Menentukan Jalur Penggabungan


(1)

140

Dari hasil skenario pengujian ke 1 hingga pengujian ke 10 didapkan hasil nilai error dan akurasi sebagai berikut :

Tabel 4.50 Perbandingan Error Berdasarkan Jumlah Lerning Rate Learning Rate Akurasi

0.1 48.44 %

0.01 49.8 %

0.001 51.93 %

0.0001 52.51 %

0.00001 54.65 %

4.2.6 Kesimpulan Pengujian Metode

Berdasarkan hasil skenario pengujian 1 sampai 10 yaitu pengujian data uji sebanyak 516 yang didapat dari 4 kali permainan yang dilakukan oleh pemain, dapat ditarik kesimpulan bahwa jumlah perceptron pada hidden layer mempengaruhi tinggak error yang dihasilkan pada arsitektur jaringan yang digunakan, pada tabel 3.5 dapat dilihat hasil pengujian cross validation yang dilakukan, pada pengujian yang dilakukan menggunakan kombinasi parameter 9 perceptron pada hidden layer, learning rate 0.2 dan nilai error 0.00001 memiliki akurasi 54.65%, nilai akutasi tersebut menandakan besarnya klasifikasi arah yang benar dari prediksi arah yang di hasilkan oleh model yang digunakan.


(2)

141 BAB 5

KESIMPULAN DAN SARAN 5.1 Kesimpulan

Berdasarkan hasil yang didapat dalam penelitian dan penyusunan skripsi ini serta disesuaikan dengan tujuan, maka dapat diperoleh kesimpulan bahwa :

implementasi algoritma neural network backpropagation pada game dazzle dapat digunakan untuk memprediksi pergerakan arah yang harus diambil untuk penggeseran karaker sesuai dengan data latih yang digunakan. Dari hasil penelitian yang dilakukan didapatkah hasil dengan parameter yang digunakan 9 perceptron pada hidden layer, learning 0.2 , nilai batas error 0.00001 memiliki nilai akurasi yang paling tinggi dibandingkan model arsitektur jaringan lainnya. Nilai akurasi ini memperlihatkan bawah data yang diuji memiliki nilai yang paling mendekati nilai dari data output pelatihan dan memiliki tingkat akurasi prediksi pengklasifikasian arah sebesar 54.65%.

5.2 Saran

Berdasarkan hasil dari penelitian ini, maka dapat diberikan saran-saran untuk diberikan dalam pengembangan selanjutnya yaitu

1. Arsitektur jaringan yang digunakan sebaiknya menggunakan variabel yang berbeda untuk menghasilkan arsitektur jaringan yang mampu memilih posisi karakter yang akan digeserkan.

2. Dari penelitian yang dilakukan didapatkan tinggat akurasi sebesar 54.56%, oleh karena itu perlu dilakukan penelitian dengan menggunakan algoritma neural network lainnya apakah akan mendapatkan tinggkat akurasi yang lebih besar dari penelitian yang sudah dilakukan.


(3)

BIODATA PENULIS 1. Data Pribadi

Nama : Abdulah Usman Jenis Kelamin : Laki-laki

Tempat, Tanggal Lahir : Bandung, 1 April 1993 Kewarganegaraan : Indonesia

Agama : Islam

Alamat Lengkap : Jln.cibogo bawah no 16 RT.01 RW.04 Kecamatan Sukajadi Kelurahan Sukawarna Bandung 40164 Telepon, HP : 082130245362

Email : Utwoz.newz@gmail.com

2. Riawayat Pendidikan

1999 – 2005 : SDN Cibogo 2005 – 2008 : SMPN 26 Bandung

2008 – 2011 : SMK Pasundan 2 Bandung

2011 – 2016 : Program Strata Satu (S1) Program Studi Teknik Informatika, Universitas Komputer Indonesia Bandung

Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.

Bandung, 25 Februari 2016


(4)

(5)

(6)