• Tidak ada hasil yang ditemukan

Implementasi Algoritma Neural Network Backpropagation Pada Solusi Pemainan Dazzle

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Neural Network Backpropagation Pada Solusi Pemainan Dazzle"

Copied!
155
0
0

Teks penuh

(1)

IMPLEMENTASI ALGORITMA NEURAL NETWORK

BACKPROPAGATION PADA SOLUSI PERMAINAN DAZZLE

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ABDULAH USMAN

10111167

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(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

(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.1 Jaringan Syaraf Tiruan ... 10

2.2.2 Arsitektur Jaringan Syaraf Tiruan ... 12

2.2.3 Fungsi Aktivasi ... 14

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.9 Sequence Diagram ... 68

3.2.10 Class Diagram ... 72

3.2.11 Perancangan Sturuktur Menu ... 74

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

DAFTAR PUSTAKA

[1] Sebastian Siegel. (2001, desember) Train An Artificial Neural Network Playing Tic

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 BAB 1

PENDAHULUAN

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

(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

(13)

3

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

(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

(15)

5

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

(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

(17)

1 BAB 2

LANDASAN TEORI

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

(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

(19)

3

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

(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

(21)

5

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

(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

(23)

7

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)

9

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)

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

(26)

transformasi linier pada attribut data asli guna menghasilkan range nilai yang sama

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

(27)

11

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

(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

(29)

13

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.

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

(31)

15

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

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)

17

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

(35)

19

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

(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

(37)

21

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

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

23

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

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

25

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

(42)

set sebanyak K-1 kali. Kekurangan dari metode ini adalah algoritma pembelajaran

(43)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Masalah

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

(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

4 + 4 = 40 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.

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

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

(47)

1. Input 1 : nilai dari karakter yang akan digeserkan

2. Input 2 : nilai dari karakter yang ada disebelah kiri karakter yang akan

digeserkan.

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

(48)

merupakan flowchart proses algoritma neural netwrok backpropagatio

(49)

3.1.6 Analisis Pembuatan Pohon Pencarian Jalur Penggabungan Karakter Pada analisis jaringan neural network backpropagation ini terdapat proses

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

(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

(51)

Dari proses ini akan dilakukan proses selanjutnya untuk pembuatan pohon pencarian.

proses selanjutnya adalah menghitung jumlah kemungkinan karakter yang dapat

digabungkan. Proses ini dapat dilihat pada tabel 3.2

Tabel 3.2 Kemungkinan Kemunculan Karakter Yang Memiliki Jalur Terpendek

Koordinat karakter

terpilih

Nilai karakter pada koordinat x,y

Kemungkinan

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

(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

(53)

Tabel 3.3 Nilai Pergeseran Karakter

Pergeseran Nilai

pergeseran

Nilai desimal

pergeseran

Nilai normalisasi pergeseran Treshold

Kiri 0001 1 0.125 0 - 0.125

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

(54)

x3

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

Gambar

Gambar 3.1 Block Diagram Sistem Yang Akan Dibangun
Gambar 3.2 Flowchart Algoritma Neural Network Bakcpropagation
Gambar 3.4 Pohon kemungkinan jalur yang optimal
Tabel 3.2 Kemungkinan Kemunculan Karakter Yang Memiliki Jalur Terpendek
+7

Referensi

Dokumen terkait

Berdasarkan hasil pelatihan dan pengujian data dengan menggunakan Matlab, maka arsitektur pola 1 dengan arsitektur jaringan 4-4-2 untuk data pelatihan dengan jumlah hidden layer 4

Multi layer perceptron banyak digunakan untuk menyelesaikan persoalan contohnya dalam menyelesaikan produksi suatu perusahaan disini penulis menggunakan perceptron

Berdasarkan hasil pengujian untuk sampel data uji yang berbeda dengan data yang dilatih untuk variasi jumlah neuron hidden 20, 40 pada satu hidden layer dan variasi learning rate

Dengan pembobotan awal menggunakan Metode Nguyen Widrow maka jumlah node pada hidden layer akan menentukan besar bias yang akan digunakan dari input layer menuju hidden

Algoritma Pengujian Perceptron, adalah tahap pengujian data uji yang dilakukan menggunakan metode perceptron untuk memproses data dengan bobot optimal yang

Arsitektur model yang semulanya menggunakan 64 neuron hidden layer maka diganti dengan 128 neuron hidden layer, sehingga arsitektur model untuk pengujian

2 Hasil Confussion Matrix Algoritma K-Nearest Neighbor dengan 3 Ketetangggan Menggunakan 2-fold Cross Validation pada Folder Data Uji ke-1 48 Tabel 4.. 3 Hasil Pengujian

Dapat dilihat pada percobaan pertama data penyakit kanker payudara dengan parameter yaitu hidden layer 5, learning rate 2 dan iterasi 5000 menghasilkan akurasi sebesar 99,3 % dengan