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
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
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
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
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
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
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
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.
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/
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
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
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
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
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
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
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
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
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
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
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
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
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 :
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 :
{
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
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
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
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
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.
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)
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
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 untukmemperbaiki
(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 bias17
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 :
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
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
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
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
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
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
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
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
set sebanyak K-1 kali. Kekurangan dari metode ini adalah algoritma pembelajaran
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
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
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
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
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
merupakan flowchart proses algoritma neural netwrok backpropagatio
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
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 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
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
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
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