Upload
hoangnga
View
270
Download
0
Embed Size (px)
Citation preview
i
PREDIKSI NILAI TUKAR RUPIAH TERHADAP DOLAR AMERIKA SERIKAT
DENGAN MENGGUNAKAN METODE BACKPROPAGATION
SKRIPSI
Proposal Penelitian Diajukan Untuk Memenuhi Salah Satu Syarat Mendapatkan Gelar Sarjana
Komputer Program Studi Teknik Informatika
Oleh:
TRI SUWANTA (085314084)
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
PREDICTION OF FOREIGN EXCHANGE KURS RUPIAH WITH UNITED STATES
AMERICA’S DOLLAR USING BACKPROPAGATION METHOD
A THESIS
Presented as Partial Fulfillment of The
Requirements to Obtain the Sarjana Komputer
Degree in Informatics Engineering Department
Oleh:
TRI SUWANTA (085314084)
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2015
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
HALAMAN MOTTO
Kegagalan hanya terjadi jika bila kita menyerah
(Lessing)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
HALAMAN PERSEMBAHAN
Segala hasil ini saya persembahkan kehadirat Tuhan YME atas segala rahmat yang
telah diberikan-Nya sehingga saya dapat menyelesaikan skripsi ini.
Kepada bapak, ibu, kakak dan keluarga besar yang memberikan doa, dukungan dan
semangat selama proses perkuliahan.
Kepada teman – teman Teknik Informatika di kampus Sanata Dharma, terima kasih
atas dukungan yang telah diberikan selama saya menjalani perkuliahan terutama masa skripsi.
Kepada para dosen yang telah memberi ilmu kepada saya selama proses perkuliahan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRAK
Tiap negara memiliki mata uang yang digunakan untuk bertransaksi. Harga suatu mata
uang terhadap mata uang lain disebut nilai tukar atau kurs. Dengan memperjual-belikan kurs,
trader bisa mendapat keuntungan. Salah satu mata uang yang sering diperjual-belikan adalah
Dollar Amerika Serikat. Untuk mendapat keuntungan seorang trader harus dapat
memprediksi nilai kurs. Terdapat banyak metode yang dapat digunakan untuk memprediksi
nilai kurs salah satunya adalah dengan menggunakan jaringan syaraf tiruan metode
backpropagation.
Agar dapat memprediksi nilai kurs dengan menggunakan metode backpropagation,
perlu ditemukan arsitektur jaringan yang optimal. Dengan melakukan pengujian pada input
dan hidden layer dapat ditemukan arsitektur jaringan yang optimal. Data input yang
digunakan untuk memprediksi kurs pada pengujian ini adalah nilai kurs sebelumnya.
Penelitian dimulai dengan menguji jumlah input neuron atau delay hari. Kemudian akan
dilakukan pengujian hidden neuron dan hidden layer hingga didapatkan arsitektur jaringan
yang optimal.
Dari hasil pengujian prediksi nilai tukar Rupiah terhadap Dollar Amerika Serikat
didapatkan arsitektur jaringan dengan nilai akurasi 98,6925% menggunakan 1 hidden layer,
dengan 10 hidden neuron, dan 15 input neuron atau delay hari. Penambahan jumlah hidden layer akan
mengurangi keakuratan prediksi kurs.
Kata Kunci : kurs, trader, backpropagation, hidden layer, hidden neuron, input neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
ABSTRACT
Every country have currency that used for transaction. The price of one currency to the
other currency is called foreign exchane rate. By selling and buying kurs, trader can gain
profit. One of many currency that popular for trading is United States Dollar. To gain more
profit trader must have the ability to predict kurs value. There are many method to predict
kurs value, one of then is by using neural network backpropagation method.
To be able to predict kurs value with backpropagation method, there is a need to find
the optimum network architechtures. By doing research of input and hidden layer, we can find
the optimum network architechtures. Input data used for prediction kurs are it’s own past
value. The research start with trying to find the optimum input neuron or delay days.After that
the research move to hidden neuron and hidden layer and then we can find the optimum
network architechtures.
The result of research of testing the aplication to predict foreign exchange of Rupiah
to United State Dollar are the predicted kurs has accuracy up to 98,6925% by using 1 hidden
layer, with 10 hidden neuron, and 15 input neuron or delay hari. Adding more hidden layer will lower
the accuracy of prediction.
Keywords : kurs, trader, backpropagation, hidden layer, hidden neuron, input neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa atas segala karunia, rahmat dan bimbingan
yang diberikan sehingga penulis dapat menyelesaikan skripsi “Prediksi Nilai Tukar Rupiah
Terhadap Dolar Amerika Serikat Dengan Menggunakan Metode Backpropagation”.
Dalam menyelesaikan skripsi ini, bantuan banyak diberikan dari sejumlah pihak, oleh
sebab itu penulis ingin mengucapkan terima kasih kepada :
1. Allah Bapa yang Maha Kuasa, yang telah menjawab doa, memberi bimbingan
dan mencurahkan rahmat dengan perantaraan Yesus Kristus dan Bunda Maria
sehingga penulis dapat menyelesaikan skripsi ini.
2. Kedua orang tua yang telah banyak memberikan bantuan baik dalam bentuk
materi maupun dukungan dan doa. Terlebih lagi telah percaya kepada saya
bahwa saya bisa menyelesaikan skripsi ini.
3. Romo Kuntoro Adi, selaku dosen pembimbing skripsi yang telah membantu
dalam proses pengerjaan skripsi ini.
4. Bapak Linggo Sumarno dan Bapak Eko Hari Parmadi, S.Si., M.Kom, selaku
panitia penguji yang telah memberikan banyak saran dalam penyempurnaan
skripsi ini.
5. Violya, Widya, Euzhan, dan Andrea yang telah banyak membantu saya dalam
proses memahami materi dan memberikan dukungan dalam pengerjaan skripsi.
6. Teman – teman seperjuangan TI angkatan 2008 yang telah berbagi cerita hidup
selama menimba ilmu di Program Studi Teknik Informatika Universitas Sanata
Dharma. Terima kasih untuk cerita yang telah kita lakukan bersama.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
7. Teman – teman dari Komunitas Paingan.
8. Untuk pihak – pihak yang tidak saya sebutkan satu persatu. Penulis
mengucapkan terima kasih atas bantuannya sehingga penulis dapat
menyelesaikan skripsi ini.
Akhir kata, penulis berharap karya ilmiah ini dapat bermanfaat bagi kemajuan dan
perkembangan ilmu pengetahuan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
DAFTAR ISI
HALAMAN JUDUL……………………………………………………………….…………..i
HALAMAN PERSETUJUAN………………………………………………………………..iii
HALAMAN PENGESAHAN…………………………………………………….…………..iv
PERNYATAAN KEASLIAN KARYA……………………………………………….….......v
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH……………….………vi
HALAMAN MOTTO……………………………………………………………..………….vii
HALAMAN PERSEMBAHAN…………………………………………………………….viii
ABSTRAK……………………………………………………………………………………ix
ABSTRACT……………………………………………………………………………….......x
KATA PENGANTAR………………………………………………………………………..xi
DAFTAR ISI………………………………………………………………………………...xiii
DAFTAR GAMBAR…………………………………………………………………..……..xv
DAFTAR TABEL………………………………………………………………………….xviii
DAFTAR GRAFIK………………………………………………………………………….xix
BAB I PENDAHULUAN ……………………………………………………………………1
1.1. Latar Belakang…………………………………………………………………………….1
1.2. Rumusan Masalah…………………………………………………………………………3
1.3. Tujuan dan Manfaat Penelitian……………………………………………………………4
1.4. Batasan Masalah…………………………………………………………………………..5
1.5. Metodologi Penelitian……………………………………………………………………..5
1.6. Sistematika Penulisan……………………………………………………………………..7
BAB II LANDASAN TEORI…………………………………………………………………8
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
2.1. Jaringan Syaraf Tiruan…………………………………………………………………….8
2.2. Backpropagation…………………………………………………………………………14
2.3. Valuta Asing……………………………………………………………………………..20
2.4. Cross Validation…………………………………………………………………………21
BAB III METODE PENELITIAN………………………………………………………….23
3.1. Data……………………………………………………………………………………...23
3.2. Alur Penelitian...…………………………………………………………………………24
3.3. Validasi…………………………………………………………………………………..28
BAB IV IMPLEMENTASI DAN ANALISIS DATA………………………………………29
4.1. Tampilan Antarmuka Pengguna(GUI)………………………………………………..….29
4.2. Alur Program…………………………………………………………………………….31
4.3. Hasil Pengujian…………………………………………………………………………..38
4.4. Analisa Hasil……………………………………………………………………………..52
BAB V KESIMPULAN DAN SARAN…………………………………………………….54
5.1. Kesimpulan………………………………………………………………………………54
5.2. Saran……………………………………………………………………………………...54
DAFTAR PUSTAKA………………………………………………………………………...55
LAMPIRAN………………………………………………………………………………….56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Gambar 2.1 Single input neuron ……………………………………………….…………………….9
Gambar 2.2 Hard Limit transfer function ………………………………….………………10
Gambar 2.3 Linear transfer function …………………………………………….…………………10
Gambar 2.4 Log-Sigmoid transfer function …………………………………….………………….11
Gambar 2.5 contoh single layer network ……………………………………….………………….11
Gambar 2.6 contoh multi layer network …………………………………………….………………12
Gambar 2.7 contoh reccurent net …………………………………………….……………………..12
Gambar 3.1. Flowchart Penelitian ……………………………………..……………………..25
Gambar 3.2. Arsitektur jaringan pada tahap 1 ………………………….……………………26
Gambar 3.3. Arsitektur jaringan dengan 1 hidden layer ………………………………………….27
Gambar 3.4. Arsitektur jaringan dengan 2 hidden layer ……………………………………..27
Gambar 4.1.Tampilan Utama Program ………………………………………………………29
Gambar 4.2. Tampilan hitung_delay ………………………………………………………………..29
Gambar 4.3. Tampilan untuk memilih file input ………………………………………………….30
Gambar 4.4. Tampilan error …………………………………………………………………30
Gambar 4.5. Grafik keluaran program ……………………………………………………….31
Gambar 4.6. Bagian form untuk menginput data …………………………………………….31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 4.7. tampilan akurasi ………………………………………………………………..36
Gambar 4.8. Grafik nilai kurs dan hasil prediksi …………………………………………….36
Gambar 4.9. Contoh output program dengan 15 delay hari dan 10 hidden neuron …………..40
Gambar 4.10. Contoh grafik output program dengan 15 delay hari dan 10 hidden neuron …40
Gambar 4.11. Contoh output program dengan 30 delay hari dan 10 hidden neuron …………41
Gambar 4.12. Contoh grafik output program dengan 30 delay hari dan 10 hidden neuro …..41
Gambar 4.13. Contoh output program dengan 45 delay hari dan 10 hidden neuron ………..42
Gambar 4.14. Contoh grafik output program dengan 45 delay hari dan 10 hidden neuron …42
Gambar 4.15. Contoh output program dengan 10 delay hari dan 10 hidden neuron ………..43
Gambar 4.16. Contoh grafik output program dengan 10 delay hari dan 10 hidden neuron …43
Gambar 4.17. Contoh output program dengan 15 delay hari dan 5 hidden neuron …………..46
Gambar 4.18. Contoh grafik output program dengan 15 delay hari dan 5 hidden neuron….. 46
Gambar 4.19. Contoh output program dengan 15 delay hari dan 15 hidden neuron………… 47
Gambar 4.20. Contoh grafik output program dengan 15 delay hari dan 15 hidden neuron ….47
Gambar 4.21. Contoh output program dengan 15 delay hari dan 20 hidden neuron ………….48
Gambar 4.22. Contoh grafik output program dengan 15 delay hari dan 20 hidden neuron ….48
Gambar 4.23. Contoh output program dengan 15 delay hari, 10 hidden neuron pada hidden
layer 1 dan 10 hidden neuron pada hidden layer 2 …………………………...50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4.24. Contoh grafik output program dengan 15 delay hari, 10 hidden neuron pada
hidden layer 1 dan 10 hidden neuron pada hidden layer 2 ………………….51
Gambar 4.25. Contoh output program dengan 15 delay hari, 10 hidden neuron pada hidden
layer 1 dan 20 hidden neuron pada hidden layer 2 ………………………….51
Gambar 4.26. Contoh grafik output program dengan 15 delay hari, 10 hidden neuron pada
hidden layer 1 dan 20 hidden neuron pada hidden layer 2 …………………..52
Gambar 4.27. Grafik nilai kurs dan prediksi kurs dengan arsitektur terbaik. ………………..53
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
DAFTAR TABEL
Tabel 3.1 proses validasi …………………………………………………………………….28
Tabel 4.1. Hasil pengujian input neuron/delay hari …………………………………………38
Tabel 4.2. Hasil pengujian hidden neuron dengan 1 hidden layer..……………………………..44
Tabel 4.3. Hasil pengujian hidden neuron dengan 2 hidden layer..……………………………..49
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
DAFTAR GRAFIK
Grafik 4.1. Grafik hasil pengujian input neuron/delay hari …………………………………39
Gambar 4.2. Grafik hasil pengujian hidden neuron dengan 1 hidden layer. …………………..45
Gambar 4.3. Grafik hasil pengujian hidden neuron. ………………………………………………50
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xx
DAFTAR PUSTAKA
Hagan, M.T., H.B. Demuth, and M.H. Beale,1996. Neural Network Design, Boston,
MA:PWS Publishing.
Wibowo, T dan Amir, H, 2005. Faktor-faktor yang mempengaruhi nilai tukar Rupiah. Jurnal
Kajian Ekonomi dan Keuangan. Departemen Keuangan.
www.iei.or.id/publicationfiles
Siang, Jong Jek, 2005. Jaringan Syaraf Tiruan & Pemrogramannya Menggunakan Matlab.
Yogyakarta. Andi Offset
Hermawan, Arief, 2006. Jaringan Syaraf Tiruan Teori dan Aplikasi. Yogyakarta. Andi Offset
Away, Gunaidi Abdia, 2014. The Shortcut of Matlab Programing. Bandung.
INFORMATIKA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB I
PENDAHULUAN
1.1.Latar Belakang
Setiap negara memiliki mata uang yang digunakan untuk bertransaksi. Nilai dari
mata uang tiap negara itu berbeda-beda. Nilai tukar atau kurs (foreign exchange rate) adalah
harga mata uang suatu negara relatif terhadap mata uang negara lain. Karena nilai tukar ini
mencakup dua mata uang, maka titik keseimbangannya ditentukan oleh sisi penawaran dan
permintaan dari kedua mata uang tersebut. Salah satu mata uang yang paling sering digunakan
sebagai pembanding adalah Dolar Amerika Serikat(US $). Nilai tukar rupiah dengan dolar
Amerika Serikat sangat berperan dalam bidang perekonomian terutama menyangkut barang
yang dibeli menggunakan dolar. Dengan memprediksi nilai tukar dapat membantu bagi para
investor maupun trader. Trader adalah salah satu elemen pelaku pasar valuta asing yang
memanfaatkan fluktuasi nilai tukar mata uang tertentu untuk mendapatkan keuntungan. untuk
itu seorang trader harus menguasai metode yang akurat untuk memprediksi nilai kurs. Hal-
hal yang mempengaruhi nilai tukar suatu negara dengan negara lain menurut Wibowo(2005)
adalah selisih Pendapatan Bruto Daerah(PDB), inflasi, tingkat suku bunga, dan nilai tukar
sebelumnya.
Selama ini banyak peramalan dilakukan secara intuitif menggunakan metode-
metode statistika seperti metode smooting, Box-Jenkins, ekonometri regresi, dan lainnya.
Seiring perkembangan teknologi, peramalan data time series telah banyak dikembangkan pada
bidang kecerdasan buatan seperti jaringan syaraf tiruan. Jaringan syaraf tiruan adalah suatu
sistem pengolahan informasi yang memiliki karakter dan konsep seperti jaringan syaraf
biologi, yaitu jaringan otak manusia yang dapat dilatih sehingga dapat mengambil keputusan
sesuai dengan yang dilakukan oleh otak manusia. Jaringan syaraf tiruan dapat meng-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
identifikasi pola data dari sistem peramalan kurs rupiah terhadap dollar Amerika Serikat dapat
dilakukan dengan metode pendekatan pelatihan (training).
Salah satu kelebihan dari jaringan syaraf tiruan ini adalah kemampuan untuk
melakukan proses pembelajaran atau pelatihan. Ada 2 metode pembelajaran yaitu supervised
dan unsupervised learning. Metode supervised learning memasukan target keluaran dalam
data untuk proses pelatihannya. Karena salah satu faktor yang mempengaruhi nilai tukar
adalah nilai tukar bulan-bulan sebelumnya maka untuk kasus ini digunakan metode
supervised learning. Beberapa metode yang termasuk metode supervised learning adalah
Hebbian, perceptron, ANDELINE, Boltzman, Hopfield, Backpropagation, dan lain-lain. Dari
metode tersebut yang cocok digunakan untuk peramalan adalah metode ANDELINE dan
backpropagation. Metode backpropagation serta modifikasinya banyak digunakan saat ini
untuk menyelesaikan berbagai macam masalah.
Penelitian tentang peramalan kurs sudah banyak dilakukan oleh banyak orang. Tri
Wibowo dan Hidayat Amir pada tahun 2005 telah meneliti faktor – faktor yang mem-
pengaruhi nilai tukar rupiah, hasil dari penelitian mereka adalah faktor yang mempengaruhi
nilai tukar rupiah terhadap dollar Amerika adalah selisih pendapatan riil dengan error 0.814,
selisih inflasi dengan error 0.436, selisih suku bunga Indonesia dengan Amerika dengan error
0.009 serta nilai tukar rupiah dengan dollar Amerika 1 bulan sebelumnya dengan error 0.765.
Pada tahun 2008 Anizza Restra P. melakukan penelitian tentang peramalan kurs rupiah
terhadap dollar menggunakan algoritma backpropagation. Dari hasil penelitiannya keberadaan
PDB riil menghasilkan NMSE (normalized mean square error) yang lebih rendah
dibandingkan jika tidak menggunakan variable tsb dengan nilai korelasi 0.061, data latih 2
atau 4 tahun dan 1 neuron pada hidden layer memberikan ketepatan pendugaan yang lebih
baik. Pada tahun 2010 Mahater Muhammad meneliti perbandingan metode backpropagation
dengan metode Arima(Box-Jenkins) dalam peramalan kurs yang memiliki kesimpulan metode
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
backpropagation lebih baik karena memiliki MAPE(Means Absolute Error Percentage) lebih
kecil. Setelah itu pada tahun 2012, Ivana Sakuan melakukan penelitian tentang perbandingan
keakuratan peramalan kurs rupiah dengan dollar Amerika antara metode Trigg and Leach
dengan metode Chow yang menghasilkan kesimpulan metode Chow membutuhkan waktu
analisis yang lebih lama dari pada metode Trigg and Leach karena harus mencari MSE(mean
Square Error) yang paling kecil dari 3 α.
Dari berbagai penelitian di atas penelitian ini akan meneliti lebih lanjut peramalan
kurs dengan metode backpropagation karena menurut Mahater Muhammad(2010) metode ini
lebih baik dari pada metode Arima(Box-Jenkins), serta menggunakan data latih 4 tahun
berdasarkan penelitian Anizza(2008). Serta penelitian ini akan meneliti lebih lanjut dengan
menggunakan 2 lapisan tersembunyi dengan variasi jumlah hidden neuron serta pengaruh
jumlah delay hari dalam peramalan nilai kurs. Jumlah delay hari menentukan jumlah data
yang diperlukan untuk melakukan prediksi kurs. Nilai kurs yang dinamis memiliki berbagai
faktor yang mempengaruhi. Karena itu, penelitian ini penting untuk dilakukan agar dapat
mengetahui sejauh mana faktor nilai kurs sebelumnya yaitu delay hari sehingga dapat
meningkatkan ketepatan dalam peramalan nilai kurs.
1.2.Rumusan Masalah
Berdasarkan latar belakang tersebut maka permasalahan dalam penelitian ini
adalah : bagaimana memprediksi nilai tukar rupiah terhadap dolar dengan menggunakan
metode jaringan syaraf tiruan Backpropagation.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.3.Tujuan dan Manfaat Penelitian
1.3.1. Tujuan Penelitian
Penelitian ini mempunyai tujuan sebagai berikut:
1. menghasilkan program yang dapat memprediksi nilai kurs dollar Amerika-Indonesia
2. menganalisis hasil peramalan dengan variasi jumlah delay hari
3. menganalisis jumlah hidden layer dan hidden neron yang optimal untuk memprediksi
nilai kurs dollar Amerika-Indonesia
1.3.2. Manfaat Penelitian
1. Bagi Mahasiswa
a. Dapat menambah wawasan dan pengetahuan di luar lingkungan kampus yang
berhubungan dengan program studi yang dipilih.
b. Untuk memperoleh gambaran mengenai bagaimana membuat atau meng-
implementasikan suatu masalah menjadi sebuah sistem yang baik.
2. Bagi Almamater
a. Sebagai bahan evaluasi di bidang akademik untuk mengembangkan dan
meningkatkan mutu pendidikan.
b. Sebagai barometer untuk mengukur sejauh mana daya serap mahasiswa di dalam
menerima dan menerapkan teori yang sudah diperoleh selama di bangku kuliah.
3. Bagi Masyarakat
Diharapkan menghasilkan informasi yang dapat dijadikan bahan pertimbangan dalam
melakukan kegiatan jual beli di pasar valuta asing.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
1.4. Batasan Masalah
Batasan masalah dalam penelitian ini adalah :
1. data yang digunakan adalah data 4 tahun dari tahun 2010 dan 2013
2. jumlah hidden layer yang digunakan adalah 1 layer dan 2 layer.
1.5. Metodologi Penelitian
Perencanaan sistem peramalan (forecasting) valuta asing menggunakan metode
backpropagation, terdiri dari langkah-langkah sebagai berikut :
1. Menetapkan Tujuan Sistem
Model jaringan yang dibangun mampu mengidentifikasikan dan mempelajari pola
dari data, dan selanjutnya menggunakannya untuk peramalan.
2. Memperoleh Data
Data pergerakan nilai tukar Rupiah Indonesia terhadap Dollar Amerika Serikat
dari bulan Januari 2010 - Desember 2013 diperoleh dari website Bank Indonesia
[http://www.bi.go.id]
3. Menentukan Fungsi Aktivasi
Dalam kasus ini bentuk khusus dari suatu fungsi aktivasi tidak akan memiliki
pengaruh yang signifikan terhadap performa suatu jaringan. Namun dengan dasar
karakteristik data yang berfluktuasi kuat dan mengingat tujuan dari sistem jaringan
yaitu untuk mampu mengatasi perubahan mendadak, maka fungsi aktivasi
hendaknya yang bersifat smooth dan terdiferensial. Atas dasar hal-hal di atas,
maka dipilih fungsi aktivasi log sigmoid (sigmoid biner).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
4. Normalisasi Data Input
Data input yang digunakan adalah nilai kurs tengah yaitu rata-rata dari kurs jual
dan kurs beli, kemudian data diubah ke dalam range 0.1 sampai 0.9 agar dapat
dihintung menggunakan fungsi aktivasi log sigmoid (sigmoid biner)..
5. Merancang Struktur Jaringan
Bertujuan untuk mendapatkan komposisi jumlah neuron, hidden layer, elemen
input dan nilai parameter training yang optimal. Langkah-langkah membangun
model jaringan data ini adalah :
a. Membetuk data pelatihan (training) dan validasi.
b. Penentuan jumlah delay adalah 15, 30, 45, dan 60 hari yang kemudian akan
dianalisis hasil yang memiliki error paling minimum.
c. Jumlah hidden layer adalah 1 dan 2, dengan variasi jumlah hidden neuron 5,
10, 15, dan 20.
Jika hasil pengujian belum didapatkan hasil yang optimal maka akan
ditambahkan pengujian dengan nilai lain sampai akurasi peramalan yang
didapat terus menurun.
7. Penentuan koefisien laju pemahaman (α) = 0,25 dan momentum (μ) = 0,25.
8. Pemilihan jaringan yang optimum dan penggunaannya dalam peramalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
1.6. Sistematika Penulisan
Sistematika penulisan pada penelitian ini dibagi beberapa bab meliputi :
BAB I PENDAHULUAN
Bab ini berisi latar belakang penulisan tugas akhir, rumusan masalah, batasan
masalah, metodologi penelitian ,dan sistematika penulisan.
BAB II LANDASAN TEORI
Bagian ini menjelaskan mengenai teori yang berkaitan dengan masalah yang
ingin dijawab oleh penelitian ini.
BAB III RANCANGAN DAN METODE PENELITIAN
Bab ini berisi perencanaan arsitektur jaringan syaraf tiruan beserta metode
penelitian yang akan dilakukan oleh penulis.
BAB IV IMPLEMENTASI DAN ANALISIS DATA
Bab ini berisi pelaksanaan implementasi dan melakukan analisis dari prediksi
nilai kurs menggunakan metode Backpropagation.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi beberapa kesimpulan yang didapat dan saran-saran berdasarkan
hasil analisis data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
BAB II
LANDASAN TEORI
Untuk melakukan penelitian ini diperlukan beberapa landasan teori diantaranya adalah teori
tentang jaringan syaraf tiruan bagaimana menyelesaikan permasalahan, algoritma yang
digunakan serta arsitekturnya, dan juga teori mengenai nilai kurs, faktor-faktor apa saja yang
mempengaruhi perubahan nilai kurs. Berikut adalah landasan teori yang digunakan :
2.1. Jaringan Syaraf Tiruan
Jaringan Syaraf Tiruan merupakan salah satu representasi buatan dari otak
manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia
tersebut. Istilah buatan digunakan karena jaringan syaraf ini diimplementasikan dengan
menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan
selama proses pembelajaran. Jaringan syarang tiruan memiliki karakteristik : pola hubungan
antara neuron disebut arsitektur. Neuron adalah bagian terkecil dari jaringan syaraf tiruan
yang berfungsi sebagai elemen proses. JST ini menarik karena memiliki kemampuan untuk
belajar dari pengalaman serta mampu menyelesaikan permasalahan yang tidak terstruktur.
Menurut Siang (2005), jaringan syaraf tiruan (JST) merupakan sistem pemroses
informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. JST dibentuk
sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa :
1. Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron).
2. Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung.
3. Penghubung antar neuron memiliki bobot yang akan memperkuat atau
memperlemah sinyal.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
4. Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanya
bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini
selanjutnya dibandingkan dengan suatu batas ambang (treshold).
Neuron adalah unit pemroses informasi yang menjadi dasar dalam
pengoperasian jaringan syaraf tiruan (Siang 2005:23). Neuron terdiri dari 3 elemen
pembentuk sebagai berikut.
a. Himpunan unit-unit yang dihubungkan dengan jalur koneksi.
b. Suatu unit penjumlah yang akan menjumlahkan masukan-masukan sinyal
yang sudah dikalikan dengan bobotnya.
c. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan
diteruskan ke neuron lain ataukah tidak.
Model neuron terdiri dari single input neuron, fungsi transfer serta multi input
neuron. Single input neuron terdiri dari skalar input p yang dikalikan dengan skalar bobot w
menghasilkan w dan digabungkan dengan input lainnya l dikalikan dengan bias b. Outputnya
n, sering disebut sebagai net input masuk ke fungsi transfer f yang menghasilkan skalar output
neuron a. output neuron dihitung dengan rumus a= f(wp+b).
Gambar 2.1 Single input neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
Terdapat beberapa fungsi aktivasi, fungsi aktivasi dipilih sesuai dengan
spesifikasi masalah yang ingin diselesaikan. Berikut adalah 3 fungsi aktivasi yang sering
digunakan :
1. Hard Limit transfer function
Jaringan dengan lapisan tunggal sering menggunakan fungsi ini untuk mengkonversi input
dari suatu variable yang bernilai kontinu ke suatu output biner, Fungsi hard limit
dirumuskan :
jika x ≤ 0 maka y = 0, jika x > 0 maka y = 1.
Gambar 2.2 Hard Limit transfer function
2. Linear transfer function
Fungsi Linear memiliki nilai output sama dengan input yang dirumuskan :
y = x
Gambar 2.3 Linear transfer function
3. Log-Sigmoid transfer function
Fungsi ini sering digunakan untuk jaringan dengan banyak lapisan yang dilatih
menggunakan metode back-propagation, dengan mengambil input (yang memiliki nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
antara ±∞) dan mengecilkannya sehingga output menjadi antara 0 sampai 1 yang
dirumuskan : 𝑦 =1
(1+𝑒𝑎𝑥 )
Gambar 2.4 Log-Sigmoid transfer function
Susunan neuron dan pola keterkaitan antar layer disebut arsitektur jaringan.
Arsitektur JST diklasifikasikan sebagai single layer, multi layer dan competitive layer. Untuk
menentukan banyak layer yang digunakan, layer input tidak diikutsertakan sebagai layer yang
digunakan.
a. Single Layer Network (jaringan layar tunggal)
Dalam jarigan ini, neuron input langsung berhubungan dengan neuron output. Jaringan ini
hanya menerima informasi dan langsung mengolahnya menjadi output tanpa melalui
hidden layer.
Gambar 2.5 contoh single layer network
Gambar 2.1 menunjukan arsitektur jaringan dengan 3 unit input (x1 ,x2 ,dan x3) dan 2 unit
output (Y1 ,dan Y2). Semua unit input pada jaringan ini terhubung dengan semua unit
output walaupun memiliki bobot yang berbeda-beda(w11 , w12 ,w13 ,w21 ,w22 ,dan w23) .
Besaran w12 menyatakan bobot hubungan antara unit ke-2 dalam input dengan unit ke-1
dalam output. Selama proses pelatihan bobot-bobot ini akan dimodifikasi untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
meningkatkan keakuratan hasil. Jaringan layar tunggal ini tepat digunakan untuk
pengenalan pola karena kesederhanaannya.
b. Multi Layer Network (jaringan layar jamak)
Model jaringan ini mempunyai tambahan satu layer atau lebih(hidden neuron) diantara
layer input dan layer output. Jaringan dengan banyak layer ini dapat menyelesaikan
permasalahan yang lebih rumit daripada single layer.
Gambar 2.6 contoh multi layer network
Gambar 2.2 menunjukan arsitektur jaringan dengan 3 unit input (x1 ,x2 ,dan x3), sebuah
hidden layer dengan dua unit(z1 dan z2) dan 1 unit output Y.
c. Reccurent Network
Pada jaringan recurrent terdapat neuron output yang memberikan sinyal pada pada unit
input (sering disebut feedback loop).
Gambar 2.7 contoh reccurent net
Metode penentuan bobot pada hubungan yang disebut pelatihan atau
pembelajaran, metode ini dibedakan ke dalam aturan terbimbing(supervised learning) dan
tidak terbimbing(unsupervised learning). Metode pembelajaran tidak terbimbing atau
jaringan Kohonen pertama kali diperkenalkan oleh Prof. Teuvo Kohonen pada tahun 1982.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
Pada jaringan ini, suatu lapisan yang berisi neuron-neuron akan menyusun dirinya sendiri
berdasarkan input nilai tertentu dalam suatu kelompok yang dikenal dengan istilah cluster.
Selama proses penyusunan diri cluster yang memiliki vektor bobot paling cocok dengan pola
input akan terpilih sebagai pemenang. Dalam pelatihan terbimbing, terdapat sejumlah
pasangan data yang dipakai untuk melatih jaringan hingga diperoleh bobot yang diinginkan.
Pasangan data tersebut berfungsi sebagai “guru” untuk melatih jaringan hingga diperoleh
bentuk terbaik. Dalam metode pembelajaran terbimbing terdapat banyak metode
diantaranya:
1. HebbRule
Metode pembelajaran yang paling sederhana, pembelajaran dilakukan dengan cara
memperbaiki nilai bobot sedemikian rupa sehingga jika ada 2 neuron yang terhubung
dan jika keduanya dalam kondisi “on” pada saat yang sama, maka bobot antara
keduanya dinaikkan.
2. Perception
Biasanya digunakan untuk mengklasifikasikan suatu tipe pola tertentu yang sering
dikenal dengan pemisahan secara linear. Algoritma yang digunakan akan mengatur
parameter-parameter bebasnya melalui proses pembelajaran
3. Delta Rule
Mengubah bobot yang menghubungkan antara jaringan input ke output dengan nilai
target.
4. Backpropagation
Algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perception
dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-
neuron yang ada pada lapisan tersembunyi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
5. Hetroassociative Memory
Jaringan yang bobot-bobotnya ditentukan sedemikian rupa sehingga jaringan tersebut
dapat menyimpan kumpulan pola.
6. Bidirectional Associative Memory
Model jaringan syaraf yang memiliki 2 lapisan dan terhubung penuh dari satu lapisan
ke lapisan lainnya. Pada jaringan ini dimungkinkan adanya hubungan timbal balik
antara lapisan input dan lapisan output.
7. Learning vector Quantization
Suatu metode untuk melakukan pembelajaran pada lapisan kompetitif yang terawasi.
Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan
vektor-vektor input. Kelas-kelas yang didapatkan sebagai hasil hanya tergantung pada
jarak antara vektor -vektor input.
Kelebihan dari jaringan syaraf tiruan adalah mampu mengakuisisi pengetahuan
walau tidak ada kepastian, mampu melakukan generalisasi dan ekstraksi dari suatu pola data
tertentu, dapat menciptakan suatu pola pengetahuan melalui pengaturan diri atau kemampuan
melalui pengaturan diri atau kemampuan belajar (self organizing), memiliki fault tolerance,
gangguan dapat dianggap sebagai noise saja, kemampuan perhitungan secara paralel sehingga
proses lebih singkat. Sedangkan kekurangannya adalah kurang mampu untuk melakukan
operasi-operasi numerik dengan presisi tinggi, kurang mampu melakukan operasi algoritma
aritmatik, operasi logika dan simbolis, lamanya proses training yang mungkin terjadi dalam
waktu yang sangat lama untuk jumlah data yang besar .
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
2.2. Backpropagation
Backpropagation merupakan model jaringan syaraf tiruan dengan layer jamak.
Seperti halnya model jaringan syaraf tiruan lainnya, backpropagation melatih jaringan untuk
mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang
digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar
terhadap pola masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama
pelatihan.
Backpropagation merupakan salah satu algoritma yang sering digunakan dalam
menyelesaikan masalah-masalah yang rumit. Metode ini merupakan metode yang sangat baik
dalam menangani masalah pengenalan pola-pola kompleks. Beberapa contoh aplikasi yang
melibatkan metode ini adalah kompresi data, deteksi virus komputer, pengidentifikasian
objek, sintesis suara dari teks, dan lain-lain. Hal ini dimungkinkan karena jaringan dengan
algoritma ini dilatih dengan menggunakan metode belajar terbimbing (Hermawan, 2006).
Fungsi aktivasi pada Backpropagation harus memenuhi beberapa syarat yaitu
kontinu, terdiferensial dengan mudah, dan merupakan fungsi yang tidak turun. Salah satu
fungsi yang memenuhi syarat tersebut dan sering digunakan adalah fungsi sigmoid biner yang
memiliki range(0,1). Fungsi sigmoid biner didefinisikan sebagai berikut :
𝑓 𝑥 = 1
1+𝑒−𝑥 ,−∞ ≤ 𝑥 ≤ ∞…………………………………..(2.1)
𝑓 ′ 𝑥 = 𝑓 𝑥 1 − 𝑓 𝑥 ……………………………………….(2.2)
Algoritma backpropagation meliputi 3 tahapan. Tahap pertama adalah
feedforward dari input pelatihan. Tahap kedua adalah perhitungan dan propagasi balik dari
error yang berhubungan. Kemudian tahap ketiga adalah penyesuaian bobot yang
bersangkutan hingga tercapai error yang minimum. Bila hasil keluaran tidak sesuai dengan
target, maka bobot diperbaharui sehingga tercapai penyimpangan minimum.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
Dalam algorima Backpropagation, input dilewatkan melalui lapisan-lapisan
sampai hasil akhir dihitung, dan dibandingkan dengan output nyata untuk menemukan
kesalahan. Kesalahan ini kemudian disebarkan kembali ke input untuk menyesuaikan bobot
dan bias dalam setiap lapisan. Dalam rangka untuk mempercepat proses belajar, ada dua
parameter dari algoritma Backpropagation yang disesuaikan yaitu : laju pembelajaran dan
momentum (Agarkar dan Ghatol, 2010).
Laju pembelajaran sangat berpengaruh pada intensitas proses pelatihan. Begitu
pula terhadap efektivitas dan kecepatan mencapai konvergensi dari pelatihan. (Hermawan,
2006) nilai laju pembelajaran yang terlalu tinggi dapat menyebabkan jaringan menjadi tidak
stabil sedangkan nilai yang terlalu kecil dapat menjadikan waktu belajar yang lama. Oleh
karena itu pemilihan konstanta laju pembelajaran harus seoptimal mungkin agar didapatkan
proses belajar yang cepat. Nilai laju pembelajaran yang cukup kecil menjamin penurunan
gradien terlaksana dengan baik, namun hal ini berakibat bertambahnya jumlah iterasi. Pada
umumnya nilai laju pembelajaran dipilih mulai 0,001 sampai dengan 1 selama proses
pelatihan.
Selain laju pembelajaran, pada metode Backpropagation ada koefisien lain yang
tujuan penggunaannya untuk mempercepat konvergensi. Momentum dapat menolong jaringan
keluar dari lokal minimal. Dengan momentum m, bobot diperbaharui pada waktu t yang
diberikan menjadi
1 twmytw ijjiiij ………………………………………(2.3)
dimana 0 < m < 1 adalah sebuah parameter global baru yang harus ditentukan secara trial dan
error . Momentum ini menambahkan sebuah perkalian dengan bobot sebelumnya pada bobot
saat ini. Pada saat gradient tidak terlalu banyak bergerak, ini akan meningkatkan ukuran
langkah yang diambil menuju nilai minimum. Nilai konstanta momentum berupa bilangan
positif antara 0,5 sampai dengan 0,9 (Purnomo, 2006).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Secara detail langkah-langkah Backpropagation menurut Siang(2005:102) sebagai berikut :
0. Pemberian insialisasi semua bobot(diberi nilai acak)
1. Ulangi langkah 2 hingga 9 sampai kondisi akhir iterasi terpenuhi
2. Untuk masing-masing pasangan data pelatihan lakukan langkah 3 sampai 8
fase I : propagasi maju
3. Setiap unit masukan(Xi, i=1,...n) menerima sinyal masukkan Xi dan sinyal itu
disebarkan ke unit-unit berikutnya
4. hitung semua keluaran di unit tersembunyi zj (j=1,2,… ,p)
𝑍_𝑛𝑒𝑡𝑗 = 𝑉𝑗0 + 𝑋𝑖 𝑉𝑗𝑖𝑛𝑖=1 ………………………………………….(2.4)
𝑍𝑗 = 𝑓 𝑍𝑛𝑒𝑡 𝑗 =
1
1+𝑒−𝑧_𝑛𝑒𝑡𝑗 ………………………………………….(2.5)
5. hitung semua keluaran jaringan di unit (Yk, k = 1, ..., m)
𝑌_𝑛𝑒𝑡𝑘 = 𝑊𝑘0 + 𝑍𝑗 𝑊𝑘𝑗𝑝𝑗=1 …………………………….(2.6)
𝑌𝑘 = 𝑓(𝑌_𝑛𝑒𝑡𝑘) ……………………………………….…….(2.7)
fase II : propagasi mundur
6. Setiap unit keluaran Yk (k = 1, ..., m) menerima pola target sesuai dengan pola
masukkan saat pelatihan dan dihitung error
𝛿𝑘 = 𝑡𝑘 − 𝑌𝑘 𝑓′ 𝑌𝑛𝑒𝑡 𝑘 = 𝑡𝑘 − 𝑌𝑘 𝑌𝑘(1 − 𝑌𝑘) …(2.8)
Menghitung bobot korelasi : ∆𝑤𝑘𝑗 = ∝ 𝛿𝑘𝑍𝑗 ; k = 1, 2,…,m ;
j = 1, 2,…, p
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
7. Setiap penimbang yang menghubungkan unit-unit lapisan keluaran dengan
unit pada lapisan tersembunyi (Zj, j=1, ..., p)dikalikan delta dan dijumlahkan
sebagai masukkan ke unit berikutnya.
𝛿_𝑛𝑒𝑡𝑗 = 𝛿𝑘 𝑊𝑘𝑗𝑚𝑘=1 ………………………………………….(2.9)
Selanjutnya dikalikan dengan turunan dari fungsi aktifasi untuk menghitung
error 𝛿𝑗 = 𝛿𝑛𝑒𝑡 𝑗 𝑓′ 𝑧𝑛𝑒𝑡 𝑗 = 𝛿𝑛𝑒𝑡 𝑗 𝑧𝑗 1 − 𝑧𝑗 𝑗 …………….(2.4)
Menghitung bobot : ∆𝑉𝑗𝑖 = ∝ 𝛿𝑗 𝑥𝑖 ; i = 1, 2,…,n ; j = 1, 2,…, p
fase III : perubahan bobot
8. Setiap output diperbaiki bias dan penimbangnya Wkj (baru)= Wkj (lama)+
∆Wkj (k = 1, 2,…,m ; j = 1, 2,…, p)
Setiap unit tersembunyi diperbaiki bias dan penimbangnya Vkj (baru)= Vkj
(lama) + ∆Vkj (i = 1, 2,…,n ; j = 1, 2,…, p)
9. Pengujian kondisi penghentian iterasi
Parameter α merupakan laju pemahaman yang menentukan kecepatan iterasi.
Nilai α terletak antara 0 dan 1 (0 ≤ α ≤ 1). Semakin besar nilai α , semakin sedikit iterasi yang
dipakai. Akan tetapi jika nilai α terlalu besar, maka akan merusak pola yang sudah benar
sehingga pemahaman menjadi lambat. Satu siklus pelatihan yang melibatkan semua pola
disebut epoch.
Pemilihan bobot awal sangat mempengaruhi jaringan syaraf tiruan dalam
mencapai minimum global (atau mungkin lokal saja) terhadap nilai error (kesalahan) dan
cepat tidaknya proses pelatihan menuju kekonvergenan. Apabila bobot awal terlalu besar
maka input ke setiap lapisan tersembunyi atau lapisan output akan jatuh pada daerah dimana
turunan fungsi sigmoidnya akan sangat kecil. Apabila bobot awal terlalu kecil, maka input ke
setiap lapisan tersembunyi atau lapisan output akan sangat kecil. Hal ini akan menyebabkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
proses pelatihan berjalan sangat lambat. Biasanya bobot awal diinisialisasi secara random
dengan nilai antara -0.5 sampai 0.5 (atau -1 sampai 1 atau interval yang lainnya).
Metode standar backpropagation terkadang terlalu lambat untuk keperluan
praktis, beberapa modifikasi dilakukan dengan mengganti fungsi pelatihannya. Secara umum
modifikasi dikelompokan menjadi 2 yaitu metode yang menggunakan teknik heuristic yang
dikembangkan dari metode penurunan tercepat(steepest descent) dan metode optimisasi
numerik selain penurunan tercepat, beberapa metode yang sering digunakan adalah gradient
conjugate dan quasi Newton.
Pada metode pertama terdapat beberapa modifikasi yang dapat dilakukan yaitu
menurunkan gradient dengan momentum. metode ini paling sederhana tetapi penurunanan
gradient sangat lambat dalam kecepatan proses iterasinya. Hal ini terjadi karena arah
penurunan tercepat belum tentu merupakan arah yang tepat untuk mencapai titik minimum
globalnya. Dengan momentum, perubahan bobot tidak hanya didasarkan atas error yang
terjadi pada epoch saat itu. Perubahan bobot yang dlakukan memperhitungkan perubahan
bobot pada epoch sebelumnya. Dengan demikian kemungkinan terperangkap ke titik
minimum local dapat dihindari. Besarnya efek perubahan bobot terdahulu(faktor momentum)
bias diatur dengan suatu bilangan antara 0 dan 1. Faktor momentum = 0 berarti perubahan
bobot hanya dilakukan berdasarkan error saat ini.(penurunan gradient murni).
Modifikasi yang dapat dilakukan berikutnya adalah variabel laju pemahaman.
Laju pemahaman merupakan konstanta yang nilainya tetap selama iterasi. Menetukan nilai
laju pembelajaran yang tepat sebelum pelatihan akan sulit. Jika nilai terlalu besar maupun
terlalu tinggi akan menyebabkan pelatihan menjadi lambat. Pelatihan akan lebih cepat apabila
laju pemahaman dapat diubah-ubah selama proses pelatihan. Jika error sekarang lebih besar
dari error sebelumnya, maka laju pemahaman diturunkan, dan sebaliknya laju pemahaman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
diperbesar. dengan demikian laju pemahaman dapat dibuatsebesar-besarnya dengan tetap
mempertahankan kestabilan proses.
Modifikasi dari penurunan tercepat berikutnya adalah Resilient backpropagation.
Metode ini membagi arah dan perubahan bobot menjadi 2. ketika menggunakan penurunan
tercepat, yang diambil hanya arahnya saja. Besarnya perubahan bobot dilakukan dengan cara
lain. Dengan menggunakan metode ini dapat mengatasi masalah perubahan bobot kecil
walaupun masih jauh dari titik optimal yang dikarenakan gradien yang kecil(semakin jauh
titik dari x=0,semakin kecil nilai gradien).
Selain metode penurunan tercepat dan modifikasinya, dapat juga digunakan
algoritma conjugate gradient untuk mempercepat pelatihan. Dalam algoritma ini pencarian
dilakukan sepanjang arah conjugate. Dalam banyak kasus pencarian akan lebih cepat.
2.3. Valuta Asing
Valuta asing mengacu pada lembaran mata uang yang dimiliki negara lain.
Perdagangan valuta asing adalah proses penukaran mata uang negara sendiri untuk mata uang
negara lain. Pasar valuta asing atau disingkat valas merupakan jenis pasar yang
memperdagangkan mata uang suatu negara dengan negara lainnya. Menurut survei BIS( Bank
International for Settlement) yang dilakukan pada akhir tahun 2004, nilai transaksi pasar
valuta asing mencapai lebih dari US $1,4 trilliun perharinya. Dengan demikian prospek
investasi perdagangan valuta asing sangat bagus tetapi juga beresiko tinggi.
Pasar valuta asing adalah suatu pasar yang unik karena volume perdagangannya,
likuiditas pasar yang teramat besar, banyaknya variasi dari pedagang di pasar valuta asing,
geografis penyebarannya, jangka waktu perdagangannya yang 24 jam sehari (kecuali akhir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
pekan), dan aneka ragam faktor yang memengaruhi nilai tukar mata uang. Pusat perdagangan
utama adalah di London, New York, Tokyo dan Singapura namun bank-bank diseluruh dunia
menjadi pesertanya. Perdagangan valuta asing terjadi sepanjang hari. Apabila pasar Asia
berakhir maka pasar Eropa mulai dibuka dan pada saat pasar Eropa berakhir maka pasar
Amerika dimulai dan kembali lagi ke pasar Asia, terkecuali di akhir pekan. Mata uang yang
paling sering diperdagangkan adalah dollar Amerika Serikat($), euro (€), yen (¥), dan pound
sterling (£)
Sangat sedikit atau bahkan tidak ada "perdagangan orang dalam" atau informasi
"orang dalam" (Insider trading) yang terjadi dalam pasar valuta asing. Fluktuasi kurs nilai
tukar mata uang biasanya disebabkan oleh gejolak aktual moneter sebagaimana juga halnya
dengan ekspektasi pasar terhadap gejolak moneter yang disebabkan oleh perubahan dalam
pertumbuhan Produk Domestik Bruto (PDB/GDP), inflasi, suku bunga, rancangan anggaran
dan defisit perdagangan atau surplus perdagangan, penggabungan dan akuisisi serta kondisi
makro ekonomi lainnya. Berita utama selalu dipublikasikan untuk umum, sehingga banyak
orang dapat mengakses berita tersebut pada saat yang bersamaan. Namun bank yang besar
memiliki nilai lebih yang penting yaitu mereka dapat melihat arus pergerakan "pesanan" mata
uang dari nasabahnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
2.4 Cross Validation
Cross validation atau validasi silang adalah teknik validasi untuk menilai hasil
dari analisis statistik yang akan digeneralisasi ke set data independen. Validasi silang biasa
digunakan untuk prediksi, dan untuk mengestimisasi seberapa akurat model prediksi akan
berjalan. Dalam masalah prediksi, data biasanya terdiri dari data yang digunakan dalam
pelatihan(training) dan data yang belum diketahui hasilnya yang akan diuji modelnya. Tujuan
dari validasi silang adalah untuk menentukan dataset untuk menguji model dalam tahap
pelatihan(yaitu dataset validasi), untuk membatasi masalah seperti overfitting, memberikan
gambaran bagaimana model akan digeneralisasi ke dataset independen(yaitu dataset yang
tidak diketahui, contohnya masalah nyata).
Satu putaran validasi silang melibatkan sebagian sampel data ke subset
komplementer, melakukan analisis pada satu bagian(disebut training set), dan memvalidasi
analisis pada subset lainnya(disebut set validasi). Untuk mengurangi variabilitas, beberapa
putaran validasi silang dilakukan dengan menggunakan partisi data yang berbeda dan hasil
validasi akan dirata-rata setelah selesai.
Macam-macam validasi silang adalah k-fold cross validation, repeated random
sub-sampling validation, dan leave one out cross validation. Pada k-fold validasi silang data
sampel akan dibagi menjadi k dengan ukuran subdata yang sama. Dari k subdata, 1 akan
digunakan untuk validasi sedangkan sisanya yaitu k-1 akan digunakan untuk pelatihan. Proses
validasi silang kemudian diulang sebanyak k kali(sesuai jumlah fold), dengan masing-masing
subdata akan digunakan satu kali sebagai validasi. Hasil dari k fold kemudian dapat dirata-
rata atau digabungkan untuk menghasilkan satu estimasi. Kelebihan metode ini dari repeated
random sub-sampling adalah tiap data digunakan sebagai validasi dan pelatihan satu kali.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
BAB III
METODE PENELITIAN
Pada bab ini akan dibahas mengenai data yang akan digunakan, langkah-langkah
penelitian, arsitektur jaringan dan validasi yang akan dijelaskan di bawah ini :
3.1 Data
Menurut penelitian yang dilakukan oleh Wibowo dan Hidayat Amir(2005) faktor yang
sangat menentukan kurs Rupiah terhadap Dolar adalah nilai kurs tengah Rupiah terhadap
Dolar Amerika Serikat, selisih tingkat suku bunga antara Indonesia dan Amerika Serikat,
selisih inflasi antara Indonesia dan Amerika Serikat dan selisih PBD(Pendapatan Bruto
Daerah) riil Indonesia dan Amerika Serikat. Nilai kurs yang digunakan adalah 1 bulan
sebelumnya untuk menyesuaikan dengan data inflasi dan suku bunga yang merupakan data
bulanan. Dalam penelitian ini akan meneliti lebih lanjut tentang nilai kurs tengah Rupiah
terhadap Dolar Amerika Serikat, berapa hari yang diperlukan untuk menghasilkan prediksi
kurs dengan nilai error yang minimum. Data nilai kurs didapat dari website Bank Indonesia
merupakan data harian. Kurs tengah adalah rata-rata antara kurs beli dan kurs jual. Dalam
penelitian ini digunakan kurs tengah karena nilainya lebih stabil dari pada kurs jual maupun
kurs beli.
Data yang digunakan pada penelitian ini adalah data 4 tahun dari tahun 2010 sampai
2013. Setelah data dikumpulkan maka dilakukan preprocessing data yaitu untuk mendapatkan
nilai kurs tengah yang didapat dari kurs jual dan kurs beli ditambah lalu dibagi 2, kemudian
data diubah dalam range 0.1 sampai 0.9 agar dapat dihitung menggunakan fungsi aktivasi
sigmoid biner.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
𝑥 ′ =0.8(𝑥−𝑎)
𝑏−𝑎+ 0.1………………………………….(3.1)
Dengan a adalah data minimum dan b adalah data maksimum.
3.2. Alur Penelitian
Penelitian ini akan melakukan prediksi nilai kurs dengan metode Backpropagation.
Untuk melakukakan prediksi kurs perlu diketahui seberapa banyak data yang diperlukan agar
prediksi kurs lebih tepat. Karena hal itu perlu dilakukan perhitungan dengan data input nilai
kurs dan memperhitungkan delay hari yaitu dimulai dari 15 kemudian akan ditambah 15
untuk variabel selanjutnya sampai nilai error yang didapat bertambah buruk. Delay hari ini
berarti waktu yang diperlukan untuk melakukan prediksi kurs, contohnya dengan nilai delay
30 berarti dalam perhitungan akan digunakan data 30 hari (atau 1 bulan) sebelumnya untuk
melakukan prediksi hari ini. Pencarian delay terbaik ini merupakan tahap 1 dari penelitian ini.
Setelah didapat delay terbaik maka akan dilakukan penelitian hidden layer dan hidden
neuron, akan dilakukan variasi jumlah hidden layer dan hidden neuron dan dicari yang
memiliki tingkat kesalahan terkecil untuk melakukan prediksi nilai kurs. Pencarian jumlah
hidden layer dan hidden neuron terbaik ini merupakan tahap 2 dari penelitian ini. Diagram
alur penelitian sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Gambar 3.1. Flowchart Penelitian
Penelitian dimulai dengan melakukan pencarian data nilai kurs tengah. Setelah didapat
nilai kurs jual dan beli dari website bank Indonesia maka kedua nilai tersebut dijumlah dan
dibagi dua untuk mendapatkan nilai kurs tengah. Setelah itu data akan diatur menggunakan
excel. Data kurs perhari selama 4 tahun dengan jumlah 980 ditaruh pada tiap baris sedangkan
untuk delay hari ditaruh pada kolom. Untuk mengatur delay hari pada excel dilakukan dengan
meng-copy semua data kemudian menghaput data paling atas, dengan begitu data pada kolom
selanjutnya tepat 1 hari setelah data pada kolom sebelumnya. Setelah data siap maka dimulai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
penelitian untuk mencari delay hari terbaik, terdapat n neuron input yaitu data kurs harian
dengan nilai n divariasikan dari 15, 30, 45, dan seterusnya hingga didapat nilai error yang
minimum, terdapat 1 lapisan tersembunyi dengan 10 neuron dan output berupa nilai kurs.
Pada tahap 1 tidak dilakukan variasi jumlah neuron pada lapisan tersebunyi karena pada tahap
ini bertujuan untuk menemukan delay hari terbaik saja. Untuk menemukan jumlah neuron
pada lapisan tersembunyi akan dilakukan pada tahap kedua, terdapat 1 dan 2 lapisan
tersembunyi dengan variasi jumlah neuron serta output berupa nilai kurs.
Arsitektur jaringan pada penelitian ini dapat dilihat pada gambar di bawah :
Gambar 3.2. Arsitektur jaringan pada tahap 1
- Mempunyai n neuron input yaitu nilai kurs tengah Rupiah terhadap Dolar dengan n
merupakan jumlah delay hari
- Mempunyai 1 lapisan tersembunyi dengan 10 neuron
- Mempunyai 1 neuron output yaitu hasil prediksi kurs
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Gambar 3.3. Arsitektur jaringan dengan 1 hidden layer
- Mempunyai n neuron input yaitu nilai kurs tengah Rupiah terhadap Dolar dengan n
merupakan jumlah delay hari
- Mempunyai 1 lapisan tersembunyi dengan jumlah neuron p
- Mempunyai 1 neuron output yaitu hasil prediksi kurs
Gambar 3.4. Arsitektur jaringan dengan 2 hidden layer
- Mempunyai n neuron input yaitu nilai kurs tengah Rupiah terhadap Dolar dengan n
merupakan jumlah delay hari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
- Mempunyai 2 lapisan tersembunyi dengan jumlah neuron p untuk lapisan 1 dan q
untuk lapisan 2
- Mempunyai 1 neuron output yaitu hasil prediksi kurs
3.3. Validasi
Untuk mengetahui bahwa hasil dari penelitian ini baik maka akan dilakukan 3-fold
cross validation. Kelebihan dari cross validation adalah semua data pernah digunakan untuk
testing dan validasi. Proses 3-fold cross validation adalah sebagai berikut : data 4 tahun akan
di bagi 3, masing-masing berisi data 16 bulan. Data A terdiri dari bulan Januari 2010 sampai
April 2011, data B terdiri dari bulan Mei 2011 sampai Agustus 2012, dan data C terdiri dari
September 2012 sampai Desember 2013. Proses validasi akan dilakukan sesuai tabel di
bawah :
Tabel 3.1 proses validasi
No Data
Training
Data
Validasi
1 AB C
2 AC B
3 BC A
Setelah dilakukan 3 kali pengujian di atas maka dilakukan perhitungan akurasi dengan cara
menghitung selisih antara hasil prediksi kurs dengan nilai sebenarnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
BAB IV
IMPLEMENTASI DAN ANALISIS DATA
4.1. Tampilan Antarmuka Pengguna(GUI)
Berikut adalah tampilan utama dari aplikasi prediksi nilai kurs Rupiah-Dolar
Amerika Serikat dengan nama main_menu.fig.
Gambar 4.1.Tampilan Utama Program
Dengan menekan tombol “Mulai”, maka akan ditampilkan halaman hitung_delay
seperti gambar di bawah.
Gambar 4.2. Tampilan hitung_delay
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Pada halaman hitung_delay pengguna dapat memasukan data yang akan dipakai
untuk memprediksi kurs dengan menekan tombol “Buka”. File yang dapat digunakan adalah
file excel dengan format .xls*.
Gambar 4.3. Tampilan untuk memilih file input
File akan diubah ke dalam bentuk matriks dengan menggunakan perintah
sehingga dapat diolah dalam MATLAB. Setelah memilih file, pengguna dapat memasukan
nilai variabel sesuai dengan text field yang tersedia. Setelah selesai pengguna dapat menekan
tombol hitung untuk menampilkan hasil, Jika terdapat kesalahan dalam memasukan nilai
variabel maka akan muncul pesan error seperti pada gambar di bawah ini.
Gambar 4.4. Tampilan error
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Jika semua variabel sudah diisi dengan benar maka akan tampil grafik hasil testing
data serta akurasi peramalan.
Gambar 4.5. Grafik keluaran program.
4.2. Alur Program
Program dimulai dari main_menu.m yang berfungsi untuk menampilkan halaman
utama program. Setelah user menekan tombol mulai program akan berlanjut ke input_delay.m
yang akan menampilkan form untuk mengisi nilai variabel yang akan digunakan dalam
memprediksi kurs. untuk memasukan data yang akan diolah user dapat menggunakan tombol
buka seperti pada gambar 4.6
Gambar 4.6. Bagian form untuk menginput data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Setelah semua form diisi dengan benar dan user menekan tombol hitung.
Kemudian program akan membaca input user seperti potongan program di bawah
Program akan mengecek apakah ada text yang kosong, jika sudah terisi barulah
program mengecek apakah input user sesuai dengan range nilai yang seharusnya atau tidak.
Seperti potongan program di bawah yang mengecek input delay hari, alpha, momentum, dan
jumlah hidden neuron.
Setelah semua input benar maka program akan memanggil main_program.m.
main_program.m merupakan bagian utama dari program prediksi kurs. Script ini akan
memanggil script lainnya yang memiliki tugas masing-masing. Pertama akan memanggil
initialisation.m yang akan mengubah data kurs ke dalam range [0.1 ; 0.9] seperti pada rumus
pada halaman 24.
Selain itu initialisation.m juga akan membagi data menjadi 3 karena metode
validasi yang digunakan adalah 3-fold cross validation.
file = get(handles.inputFile,'string'); layer2 = get(handles.radiobutton2,'value'); hiddenL=layer2+1; text=get(handles.inputDelay,'string');
if delay<=0 || delay>100 msgbox('masukan jumlah delay antara 1 sampai 100','Input salah'); else if alpha<=0 || alpha>=1 msgbox('masukan nilai alpha antara 0 sampai 1','Input salah'); else if miu<=0 || miu>=1 msgbox('masukan nilai momentum antara 0 sampai 1','Input
salah'); else if hiddenNeuron1<=0 || hiddenNeuron1>100 msgbox('masukan jumlah hidden neuron pada hidden layer 1
antara 1 sampai 100','Input salah');
[train1, test1, train2, test2, train3, test3, a, b] =
initialisation (delay,file);
maxData=length(transData)-delay-1; dataPer3=round(maxData/3); dataA=transData(1:dataPer3,1:delay+1); dataB=transData(dataPer3+1:dataPer3*2,1:delay+1); dataC=transData(dataPer3*2+1:maxData,1:delay+1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Setelah data dibagi 3 maka training dan testing tiap bagian data dapat dilakukan.
Untuk 1 hidden layer maka digunakan train.m untuk training dan testing.m untuk testing,
sedangkan jika menggunakan 2 hidden layer maka digunakan train2layer.m untuk training
dan testing2.m untuk testing.
train1=[dataA;dataB]; test1=dataC; train2=[dataB;dataC]; test2=dataA; train3=[dataA;dataC]; test3=dataB;
if hiddenL==1 %perhitungan dengan 1 hidden layer %training data 1 [ BiasInBaru, BiasHidBaru, WInBaru, WHidBaru,targetTrain, Y1] = train(
train1,delay,hiddenN,alpha,miu ); %testing data 1 [error1, targetTest1,YTest1] = testing(test1, delay,hiddenN,BiasInBaru,
BiasHidBaru, WInBaru, WHidBaru);
%training data 2 [ BiasInBaru2, BiasHidBaru2, WInBaru2, WHidBaru2,targetTrain2, Y2] =
train( train2,delay,hiddenN,alpha,miu ); %testing data 2 [error2, targetTest2,YTest2] = testing(test2, delay,hiddenN,BiasInBaru2,
BiasHidBaru2, WInBaru2, WHidBaru2);
%training data 2 [ BiasInBaru3, BiasHidBaru3, WInBaru3, WHidBaru3,targetTrain3, Y3] =
train( train3,delay,hiddenN,alpha,miu ); %testing data 2 [error3, targetTest3,YTest3] = testing(test3, delay,hiddenN,BiasInBaru3,
BiasHidBaru3, WInBaru3, WHidBaru3);
else %perhitungan dengan 2 hidden layer
%training data 1 [ BiasInBaru, BiasHidBaru,BiasHidBaru2, WInBaru,
WHidBaru,WHidBaru2,targetTrain1, Y1] = train2layer( train1,delay,hiddenN,
hiddenN2,alpha,miu); %testing data 1 [error1, targetTest1,YTest1] = testing2(test1, delay,hiddenN,
hiddenN2,BiasInBaru, BiasHidBaru,BiasHidBaru2, WInBaru,
WHidBaru,WHidBaru2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Pada bagian training akan dicari biasa dan bobot yang optimum dengan
menggunakan metode backpropagation yang kemudian kedua variabel itu akan dilakukan
untuk testing. Perbedaan perhitungan antara 1 hidden layer dan 2 hidden layer terdapat pada
perhitungan keluaran, jika terdapat 2 hidden layer maka output dari hidden layer 1 akan
menjadi input hidden layer 2 yang kemudian akan menjadi input dari output layer. Begitu
juga sebaliknya pada perhitungan balik dalam menghitung faktor kesalahan pada tiap
layernya. Secara umum train.m dan train2layer.m akan berjalan sebagai berikut :
program dimulai dengan membagi data menjadi input dan target. setelah itu dilakukan
penetapan nilai berbagai variabel yang akan digunakan.
Nilai bias dan bobot menggunakan nilai random dengan perintah rands. Kemudian iterasi
akan dimulai dengan syarat sampai memenuhi target error atau sudah melebihi batas iterasi
%training data 2 [ Bias2InBaru, Bias2HidBaru,Bias2HidBaru2, WIn2Baru, WHid2Baru,WHid2Baru2,
targetTrain2, Y2] = train2layer( train2,delay,hiddenN, hiddenN2,alpha,miu ); %testing data 2 [error2, targetTest2,YTest2] = testing2(test2, delay,hiddenN,hiddenN2,
Bias2InBaru, Bias2HidBaru,Bias2HidBaru2, WIn2Baru, WHid2Baru,WHid2Baru2);
%training data 3 [ Bias3InBaru, Bias3HidBaru,Bias3HidBaru2, WIn3Baru, WHid3Baru,WHid3Baru2,
targetTrain3, Y3] = train2layer( train3,delay,hiddenN, hiddenN2,alpha,miu ); %testing data 3 [error3, targetTest3,YTest3] = testing2(test3, delay,hiddenN,hiddenN2,
Bias3InBaru, Bias3HidBaru,Bias3HidBaru2, WIn3Baru, WHid3Baru,WHid3Baru2); end
maxDataTrain=length(train1); inputTrain=train1(1:maxDataTrain,1:delay); targetTrain=train1(1:maxDataTrain,delay+1)
;
targetError=0.005; epoh=1; maxEpoh=500; error=ones(maxEpoh+1,1);
BiasIn=rands(1,hiddenN);BiasInBaru=BiasIn;BiasInTemp=BiasIn; BiasHid=rands(1,1);BiasHidBaru=BiasHid;BiasHidTemp=BiasHid; WIn=rands(delay,hiddenN);WInBaru=WIn;WInTemp=WIn; WHid=rands(hiddenN,1);WHidBaru=WHid;WHidTemp=WHid;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
yang ditentukan. Selanjutnya akan dilakukan deklarasi variabel yang nilainya perlu direset
tiap iterasi.
Kemudian akan dihitung keluaran unti tersembunyi (Zj) dan selanjutnya menghitung keluaran
unit Y.
Setelah didapatkan keluaran dari output layer maka hasilnya dibandingkan dengan target
untuk didapat selisih kesalahan.
Kemudian dihitung kesalahan tiap layer yang kemudian digunakan untuk memperbaiki nilai
bobot tiap neuron. Selain itu juga akan dihitung selisih dari bobot iterasi saat ini dan iterasi
sebelumnya akan dikalikan dengan momentum untuk mendapatkan bobot yang baru.
while (epoh <= maxEpoh) && (error(epoh) > targetError) Znet=zeros(maxDataTrain,hiddenN); Zj = zeros(maxDataTrain,hiddenN); Ynet=zeros(maxDataTrain,1); Y=zeros(maxDataTrain,1); E=zeros(maxDataTrain+1,1); delta=zeros(maxDataTrain,1); deltaWjk=zeros(maxDataTrain,hiddenN+1); delta_net=zeros(maxDataTrain,hiddenN); deltaj=zeros(maxDataTrain,hiddenN); deltaVji=zeros(delay+1,hiddenN);
for i = 1 : maxDataTrain %loop data training for j = 1 : hiddenN %loop hidden neuron for k = 1 : delay %loop input
Znet(i,j) = Znet(i,j)+ (inputTrain(i,k)*WInBaru(k,j));
end Znet(i,j) = Znet(i,j)+ BiasInBaru(1,j); Zj(i,j)=1/(1+exp(-Znet(i,j)));
Ynet(i) = Ynet(i) + (Zj(i,j)*WHidBaru(j,1));
end
Ynet(i) = Ynet(i)+BiasHidBaru; Y(i)=1/(1+exp(-Ynet(i)));
delta(i)=(targetTrain(i)-Y(i))*Y(i)*(1-Y(i));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
setelah 1 iterasi selesai maka akan dihitung nilai error pada 1 iterasi itu.
Iterasi akan dilanjutkan sampai kondisi penghentian dipenuhi. Setelah iterasi berhenti maka
nilai bobot dari hasil training akan digunakan untuk testing. Proses testing hampir sama
dengan training tetapi tanpa perhitungan balik untuk memperbaiki bobot. Nilai akurasi akan
dihitung setelah menggabungkan data A,B, dan C yang kemudian akan ditampilkan pada
halaman input_delay.
Gambar 4.7. tampilan akurasi
for j = 1 : hiddenN
deltaWjk(i,j+1)=alpha*delta(i)*Zj(i,j); delta_net(i,j)=delta(i)*WHidBaru(j,1); deltaj(i,j)=delta_net(i,j)*Zj(i,j)*(1-Zj(i,j));
WHidBaru(j,1)=WHidBaru(j,1)+deltaWjk(i,j+1)+(miu*(WHidBaru(j,1)-
WHid(j,1)));%bobot hidden neuron baru
deltaVji(k,j)=alpha*deltaj(i,j);%delta V(1,0)
BiasInBaru(1,j)=BiasInBaru(1,j)+deltaVji(1,j)+(miu*(BiasInBaru(1,j)-
BiasIn(1,j)));%bobot bias input baru for k = 1 : delay deltaVji(k+1,j)=alpha*deltaj(i,j)*inputTrain(i,k);%
WInBaru(k,j)=WInBaru(k,j)+deltaVji(k+1,j)+(miu*(WInBaru(k,j)-
WIn(k,j)));%bobot input baru
end
end BiasHidBaru=BiasHidBaru+deltaWjk(1,1)+(miu*(BiasHidBaru-
BiasHid));%bobot bias hidden neuron baru
error(epoh)=(1/maxDataTrain)*sum(abs(delta))/mean(Y);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Selain itu akan ditampilkan nilai asli kurs serta hasil prediksi kurs dalam bentuk
grafik dengan menggunakan perintah di bawah
Gambar 4.8. Grafik nilai kurs dan hasil prediksi
subplot(1,3,3,'replace'); plot (kursReal1); hold all plot (kursPrediksi1); title('Testing data C'); xlabel('data kurs ke-'); ylabel('nilai kurs');
subplot(1,3,1,'replace'); plot (kursReal2); hold all plot (kursPrediksi2); title('Testing data A'); xlabel('data kurs ke-'); ylabel('nilai kurs'); subplot(1,3,2,'replace'); plot (kursReal3); hold all plot (kursPrediksi3); title('Testing data B'); xlabel('data kurs ke-'); ylabel('nilai kurs');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
4.3. Hasil Pengujian
Terdapat beberapa parameter yang dapat mempengaruhi hasil keluaran aplikasi ini
diantaranya adalah jumlah input neuron, jumlah hidden layer, jumlah hidden neuron pada tiap
hidden layer, laju pembelajaran, momentum, serta variabel lainnya. Dalam Penelitian ini akan
dilakukan pengujian dengan variasi jumlah input neuron, jumlah hidden layer dan jumlah
hidden neuron pada tiap hidden layer. Untuk tiap pengujian akan dilakukan percobaan
sebanyak 5 kali. Data akan melalui proses training dan testing sampai didapatkan hasil
prediksi kemudian akan diuji kembali tetapi pada pengujian selanjutnya akan dimulai dengan
nilai bobot yang berbeda karena nilai bobot dimulai dengan menggunakan bilangan random.
Berikut adalah hasil pengujian aplikasi Prediksi Nilai Kurs Rupiah-Dolar Amerika
Serikat.
4.2.1. Pengujian Aplikasi dengan Jumlah Input Neuron(Delay Hari) yang Berbeda
Dalam pengujian aplikasi ini digunakan α = 0,25, μ = 0,25, target error = 0,005
dan maksimum epoch = 500 untuk training, jumlah hidden layer = 1, jumlah hidden neuron =
10. Pada pengujian ini akan diteliti pengaruh jumlah input neuron atau delay hari. Setelah
dilakukan masing-masing 5 kali percobaan untuk tiap input didapat nilai akurasi sebagai
berikut :
Tabel 4.1. Hasil pengujian input neuron/delay hari
No. Jumlah Delay Hari Pengujian
ke-1
Pengujian
ke-2
Pengujian
ke-3
Pengujian
ke-4
Pengujian
ke-5
1. 10 98,0621% 98,2539% 98,0876% 98,4958% 98,1745%
2. 15 98,4836% 98,6925% 98,6528% 98,6425% 98,5879%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
3. 30 98,2153% 98,0557% 98,3551% 98,2635% 98,1956%
4. 45 95,5984% 97,8864% 96,7536% 96,3785% 95,8673%
Pengujian dimulai dengan input delay hari 15, setelah diambah interval 15 hari sebanyak 2
kali sampai delay hari = 45 akurasi terus berkurang karena itu pengujian tidak dilanjutkan ke
60 hari. Dengan nilai akurasi terbaik pada delay hari 15 dilakukan lagi pengujian pada 10 hari
tetapi nilai akurasi tidak meningkat maka pengujian dihentikan dengan delay terbaik adalah
15 hari dengan akurasi 98,6925%.
Grafik 4.1. Grafik hasil pengujian input neuron/delay hari
Terlihat dari grafik di atas jumlah delay hari 15 memiliki akurasi paling tinggi. Seiring
bertambahnya jumlah delay hari, akurasi prediksi kurs semakin turn karena itu pengujian
delay hari dihentikan sampai 45.
94,0000%
95,0000%
96,0000%
97,0000%
98,0000%
99,0000%
10 15 30 45
Aku
rasi
Jumlah Delay Hari
Pengujian ke-1
Pengujian ke-2
Pengujian ke-3
Pengujian ke-4
Pengujian ke-5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Berikut adalah screenshoot output program pada pengujian delay hari :
Gambar 4.9. Contoh output program dengan 15 delay hari dan 10 hidden neuron
Gambar 4.10. Contoh grafik output program dengan 15 delay hari dan 10 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
Gambar 4.11. Contoh output program dengan 30 delay hari dan 10 hidden neuron
Gambar 4.12. Contoh grafik output program dengan 30 delay hari dan 10 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
Gambar 4.13. Contoh output program dengan 45 delay hari dan 10 hidden neuron
Gambar 4.14. Contoh grafik output program dengan 45 delay hari dan 10 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Gambar 4.15. Contoh output program dengan 10 delay hari dan 10 hidden neuron
Gambar 4.16. Contoh grafik output program dengan 10 delay hari dan 10 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
4.2.2. Pengujian Aplikasi dengan Jumlah Hidden neuron yang Berbeda dengan 1
Hidden Layer
Dalam pengujian ini α = 0.25, μ = 0.25, target error = 0.005, maksimum epoch =
500, jumlah hidden layer = 1, jumlah input neuron = 15. Pada pengujian ini akan diteliti
pengaruh jumlah hidden neuron . Setelah dilakukan masing-masing 5 kali percobaan untuk
tiap input didapat nilai akurasi sebagai berikut:
Tabel 4.2. Hasil pengujian hidden neuron dengan 1 hidden layer.
No. Jumlah
Hidden neuron
Pengujian
ke-1
Pengujian
ke-2
Pengujian
ke-3
Pengujian
ke-4
Pengujian
ke-5
1. 5 98,3955% 98,4325% 98,028% 98,3013% 98,2674%
2. 10 98,4836% 98,6925% 98,6528% 98,6425% 98,5879%
3. 15 98,4706% 98,0336% 98,2745% 98,1558% 98,3186%
4. 20 97,9478% 98,1472% 97,9564% 98,2489% 97,8793%
Setelah didapat hasil pengujian 10 hidden neuron pada pengujian 4.2.1, pengujian
kali ini dimulai dengan input 5 hidden neuron kemudian dilanjutkan dengan 15 dan 20
neuron. Akurasi peramalan kurs terus berkurang seiring dengan bertambahnya hidden neuron
karena itu pengujian dihentikan pada 20 hidden neuron. Seperti pada Gambar 4.18 di bawah
dapat dilihat bahwa 10 hidden neuron memiliki akurasi terbaik dengan nilai 98,6925%
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 4.2. Grafik hasil pengujian hidden neuron dengan 1 hidden layer
Dari grafik di atas terlihat akurasi tertinggi terdapat pada 10 hidden neuron, setelah
diuji dengan 15 dan 20 hidden neuron akurasi prediksi kurs terus menurun, sedangkan dengan
menguji 5 hidden neuron akurasi juga menurun karena itu pengujian hidden neuron dengan 1
hidden layer dihentikan pada 20 hidden neuron.
Berikut adalah contoh screenshoot output pengujian hidden neuron dengan 1 hidden
layer dihentikan pada 20 hidden neuron :
97,40%
97,60%
97,80%
98,00%
98,20%
98,40%
98,60%
98,80%
5 10 15 20
Aku
rasi
Jumlah Hidden Neuron
Pengujian ke-1
Pengujian ke-2
Pengujian ke-3
Pengujian ke-4
Pengujian ke-5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 4.17. Contoh output program dengan 15 delay hari dan 5 hidden neuron
Gambar 4.18. Contoh grafik output program dengan 15 delay hari dan 5 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Gambar 4.19. Contoh output program dengan 15 delay hari dan 15 hidden neuron
Gambar 4.20. Contoh grafik output program dengan 15 delay hari dan 15 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Gambar 4.21. Contoh output program dengan 15 delay hari dan 20 hidden neuron
Gambar 4.22. Contoh grafik output program dengan 15 delay hari dan 20 hidden neuron
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
4.2.2. Pengujian Aplikasi dengan Jumlah Hidden neuron yang Berbeda pada Hidden
Layer ke-2
Dalam pengujian ini α = 0.25, μ = 0.25, target error = 0.005, maksimum epoch =
500, jumlah hidden layer = 2, jumlah input neuron = 15, dan jumlah hidden neuron pada
layer ke-1 = 10. Pada pengujian ini akan diteliti pengaruh jumlah hidden neuron pada hidden
layer ke-2. Setelah dilakukan masing-masing 5 kali percobaan untuk tiap input didapat
akurasi peramalan sebagai berikut :
Tabel 4.3. Hasil pengujian hidden neuron dengan 2 hidden layer.
No. Jumlah hidden neuron
pada hidden layer ke-2
Pengujian
ke-1
Pengujian
ke-2
Pengujian
ke-3
Pengujian
ke-4
Pengujian
ke-5
1. 10 90,7751% 89,6526% 89,1534% 90,507% 89,7369%
2. 20 88,533% 88,3271% 88,7245% 88,2696% 89,0269%
Pengujian dimulai dengan 10 hidden neuron pada hidden layer ke-2 dan setelah itu 20 hidden
neuron. Dari hasil pengujian kedua input tersebut didapatkan nilai akurasi turun daripada
pengujian dengan 1 hidden layer. Karena itu pengujian dengan menggunakan 2 layer
dihentikan dan didapatkan kesimpulan 1 hidden layer lebih baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
Gambar 4.3. Grafik hasil pengujian hidden neuron.
Gambar 4.23. Contoh output program dengan 15 delay hari, 10 hidden neuron pada hidden
layer 1 dan 10 hidden neuron pada hidden layer 2
82%
84%
86%
88%
90%
92%
94%
96%
98%
100%
10(1 hidden layer)
10(2 hidden layer)
20(2 hidden layer)
Aku
rasi
Jumlah Hidden Neuron
Pengujian ke-1
Pengujian ke-2
Pengujian ke-3
Pengujian ke-4
Pengujian ke-5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Gambar 4.24. Contoh grafik output program dengan 15 delay hari, 10 hidden neuron pada
hidden layer 1 dan 10 hidden neuron pada hidden layer 2
Gambar 4.25. Contoh output program dengan 15 delay hari, 10 hidden neuron pada hidden
layer 1 dan 20 hidden neuron pada hidden layer 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Gambar 4.26. Contoh grafik output program dengan 15 delay hari, 10 hidden neuron pada
hidden layer 1 dan 20 hidden neuron pada hidden layer 2
4.4 Analisa Hasil
Dari hasil pengujian yang dilakukan dengan menggunakan data kurs dari tahun
2010-2013 didapatkan hasil prediksi kurs terbaik dengan nilai error terkecil = 0.0121
menggunakan arsitektur jaringan sebagai berikut :
1. Jumlah Input neuron atau delay hari : 15
2. Jumlah Hidden layer : 1
Jumlah Hidden neuron : 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
Gambar 4.27. Grafik nilai kurs dan prediksi kurs dengan arsitektur terbaik.
Grafik berwarna biru merupakan nilai kurs sebenarnya sedangkan grafik berwarna
hijau adalah hasil prediksi aplikasi. Grafik ditampilkan menjadi 3 sesuai dengan hasil 3-fold
cross validation.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil penelitian prediksi nilai kurs Rupiah terhadap Dolar Amerika Serikat
menggunakan jaringan syaraf tiruan metode backpropagation dapat disimpulkan sebagai berikut :
1. Jaringan syaraf tiruan metode backpropagation mampu memprediksi kurs dengan
nilai akurasi mencapai 98,6925% jika menggunaka 1 hidden layer.
2. Arsitektur jaringan terbaik dengan melalui proses pengubahan arsitektur jaringan
adalah dengan menggunakan 1 hidden layer, dengan 10 hidden neuron, dan 15 input
neuron atau delay hari.
3. Dari Grafik hasil program terlihat prediksi kurs dengan input nilai kurs sebelumnya
saja kurang mampu memprediksi perubahan nilai kurs yang signifikan karena
disebabkan faktor lain seperti selisih inflasi, selisih suku bunga, selisih pendapatan
daerah dan lainnya.
5.2. Saran
Untuk peneliti lain yang ingin meneliti topik prediksi kurs Rupiah dan Dolar Amerika
Serikat dengan metode backpropagation, peneliti dapat meneliti lebih lanjut hal-hal berikut :
1. Mengukur pengaruh laju pemahaman, momentum, target error serta maksimum
epoch terhadap akurasi dan waktu yang dibutuhkan untuk proses pelatihan.
2. Menambah output neuron, dapat berupa prediksi untuk beberapa hari ke depan,
presentase kemungkinan nilai kurs naik atau turun, atau prediksi dalam waktu berapa
hari nilai kurs akan mencapai nilai tertentu sesuai input user.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
DAFTAR PUSTAKA
Hagan, M.T., H.B. Demuth, and M.H. Beale,1996. Neural Network Design, Boston,
MA:PWS Publishing.
Wibowo, T dan Amir, H, 2005. Faktor-faktor yang mempengaruhi nilai tukar Rupiah. Jurnal
Kajian Ekonomi dan Keuangan. Departemen Keuangan.
www.iei.or.id/publicationfiles
Siang, Jong Jek, 2005. Jaringan Syaraf Tiruan & Pemrogramannya Menggunakan Matlab.
Yogyakarta. Andi Offset
Hermawan, Arief, 2006. Jaringan Syaraf Tiruan Teori dan Aplikasi. Yogyakarta. Andi Offset
Away, Gunaidi Abdia, 2014. The Shortcut of Matlab Programing. Bandung.
INFORMATIKA
Prasetyo, Wahyu Agung, 2004. Tips dan Trik Matlab. Yogyakarta. Andi Offset
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
LAMPIRAN
Listing Program :
-main_program.m
function [avrMse,kursReal1,kursPrediksi1,kursReal2,kursPrediksi2,kursReal3,kursPrediksi3] = main_program (file,delay,hiddenL,hiddenN,hiddenN2,alpha,miu) % delay = 60; % hiddenN=10; %membagi data untuk training dan testing % file='D:\skripsi\kurs 2010-2013'; [train1, test1, train2, test2, train3, test3,a,b]=initialisation(delay,file); if hiddenL==1 %perhitungan dengan 1 hidden layer %training data 1 [ BiasInBaru, BiasHidBaru, WInBaru, WHidBaru,targetTrain1, Y1] = train( train1,delay,hiddenN,alpha,miu ); %testing data 1 [MseTest1, targetTest1,YTest1] = testing(test1, delay,hiddenN,BiasInBaru, BiasHidBaru, WInBaru,
WHidBaru); %training data 2 [ BiasInBaru2, BiasHidBaru2, WInBaru2, WHidBaru2,targetTrain2, Y2] = train(
train2,delay,hiddenN,alpha,miu ); %testing data 2 [MseTest2, targetTest2,YTest2] = testing(test2, delay,hiddenN,BiasInBaru2, BiasHidBaru2, WInBaru2,
WHidBaru2); %training data 2 [ BiasInBaru3, BiasHidBaru3, WInBaru3, WHidBaru3,targetTrain3, Y3] = train(
train3,delay,hiddenN,alpha,miu ); %testing data 2 [MseTest3, targetTest3,YTest3] = testing(test3, delay,hiddenN,BiasInBaru3, BiasHidBaru3, WInBaru3,
WHidBaru3); else %perhitungan dengan 2 hidden layer %training data 1 [ BiasInBaru, BiasHidBaru,BiasHidBaru2, WInBaru, WHidBaru,WHidBaru2,targetTrain1, Y1] = train2layer(
train1,delay,hiddenN, hiddenN2,alpha,miu); %testing data 1 [MseTest1, targetTest1,YTest1] = testing2(test1, delay,hiddenN, hiddenN2,BiasInBaru,
BiasHidBaru,BiasHidBaru2, WInBaru, WHidBaru,WHidBaru2); %training data 2 [ Bias2InBaru, Bias2HidBaru,Bias2HidBaru2, WIn2Baru, WHid2Baru,WHid2Baru2,targetTrain2, Y2] =
train2layer( train2,delay,hiddenN, hiddenN2,alpha,miu ); %testing data 2 [MseTest2, targetTest2,YTest2] = testing2(test2, delay,hiddenN,hiddenN2,Bias2InBaru,
Bias2HidBaru,Bias2HidBaru2, WIn2Baru, WHid2Baru,WHid2Baru2); %training data 3 [ Bias3InBaru, Bias3HidBaru,Bias3HidBaru2, WIn3Baru, WHid3Baru,WHid3Baru2,targetTrain3, Y3] = train2layer( train3,delay,hiddenN, hiddenN2,alpha,miu ); %testing data 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
[MseTest3, targetTest3,YTest3] = testing2(test3, delay,hiddenN,hiddenN2,Bias3InBaru,
Bias3HidBaru,Bias3HidBaru2, WIn3Baru, WHid3Baru,WHid3Baru2); end avrMse=(MseTest1+MseTest2+MseTest3)/3; % mengembalikan nilai target testing dan prediksi min=a; max=b; % kursReal4=((targetTrain1-0.1)*(max-min)/0.8)+min; % kursPrediksi4=((Y1-0.1)*(max-min)/0.8)+min; % % kursReal5=((targetTrain2-0.1)*(max-min)/0.8)+min; % kursPrediksi5=((Y2-0.1)*(max-min)/0.8)+min; % % kursReal6=((targetTrain3-0.1)*(max-min)/0.8)+min; % kursPrediksi6=((Y3-0.1)*(max-min)/0.8)+min; kursReal1=((targetTest1-0.1)*(max-min)/0.8)+min; kursPrediksi1=((YTest1-0.1)*(max-min)/0.8)+min; kursReal2=((targetTest2-0.1)*(max-min)/0.8)+min; kursPrediksi2=((YTest2-0.1)*(max-min)/0.8)+min; kursReal3=((targetTest3-0.1)*(max-min)/0.8)+min; kursPrediksi3=((YTest3-0.1)*(max-min)/0.8)+min; end
-testing2.m
function [MseTest,targetTest, YTest] = testing2(test1, delay,hiddenN,hiddenN2,BiasInBaru,
BiasHidBaru,BiasHidBaru2, WInBaru, WHidBaru,WHidBaru2) % dataTest=data((maxDataTrain+1):length(data),1); maxDataTest=length(test1); ZnetTest=zeros(maxDataTest,hiddenN); ZjTest = zeros(maxDataTest,hiddenN); ZnetTest2=zeros(maxDataTest,hiddenN2); ZjTest2 = zeros(maxDataTest,hiddenN2); YnetTest=zeros(maxDataTest,1); YTest=zeros(maxDataTest,1); deltaTest=zeros(maxDataTest,1); inputTest=test1(1:maxDataTest,1:delay); targetTest=test1(1:maxDataTest,delay+1); for i = 1 : maxDataTest %loop data training
for j = 1 : hiddenN %loop hidden neuron
for k = 1 : delay %loop input ZnetTest(i,j) = ZnetTest(i,j)+ (inputTest(i,k)*WInBaru(k,j));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
end ZnetTest(i,j) = ZnetTest(i,j)+ BiasInBaru(1,j); ZjTest(i,j)=1/(1+exp(-ZnetTest(i,j))); end for m = 1 : hiddenN2%loop hidden layer 2 for j = 1 : hiddenN%loop hidden layer 1 ZnetTest2(i,m) = ZnetTest2(i,m)+ (ZjTest(i,j)*WHidBaru(j,m));
end ZnetTest2(i,m) = ZnetTest2(i,m)+ BiasHidBaru(1,m); ZjTest2(i,m)=1/(1+exp(-ZnetTest2(i,m)));
YnetTest(i) = YnetTest(i) + (ZjTest2(i,m)*WHidBaru2(m,1)); end YnetTest(i) = YnetTest(i)+BiasHidBaru2; YTest(i)=1/(1+exp(-YnetTest(i))); deltaTest(i)=(targetTest(i)-YTest(i))*YTest(i)*(1-YTest(i));%hitung error
end MseTest=(1/maxDataTest)*sum(abs(deltaTest))/mean(YTest); end
-testing
function [MseTest,targetTest, YTest] = testing(test1, delay,hiddenN,BiasInBaru, BiasHidBaru, WInBaru,
WHidBaru) % dataTest=data((maxDataTrain+1):length(data),1); maxDataTest=length(test1); ZnetTest=zeros(maxDataTest,hiddenN); ZjTest = zeros(maxDataTest,hiddenN); YnetTest=zeros(maxDataTest,1); YTest=zeros(maxDataTest,1); deltaTest=zeros(maxDataTest,1); inputTest=test1(1:maxDataTest,1:delay); targetTest=test1(1:maxDataTest,delay+1); for i = 1 : maxDataTest
for j = 1 : hiddenN %loop hidden neuron
for k = 1 : delay %loop input ZnetTest(i,j) = ZnetTest(i,j)+ (inputTest(i,k)*WInBaru(k,j));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
end ZnetTest(i,j) = ZnetTest(i,j)+ BiasInBaru(1,j); ZjTest(i,j)=1/(1+exp(-ZnetTest(i,j))); YnetTest(i) = YnetTest(i) + (ZjTest(i,j)*WHidBaru(j,1));
end YnetTest(i) = YnetTest(i)+BiasHidBaru; YTest(i)=1/(1+exp(-YnetTest(i))); deltaTest(i)=(targetTest(i)-YTest(i))*YTest(i)*(1-YTest(i));%hitung error
end MseTest=(1/maxDataTest)*sum(abs(deltaTest))/mean(YTest); end
-train.m
function [ BiasInBaru, BiasHidBaru, WInBaru, WHidBaru, targetTrain, Y] = train(
train1,delay,hiddenN,alpha,miu )
maxDataTrain=length(train1); inputTrain=train1(1:maxDataTrain,1:delay); targetTrain=train1(1:maxDataTrain,delay+1);
targetError=0.005; epoh=1; maxEpoh=500; Mse=ones(maxEpoh+1,1); BiasIn=rands(1,hiddenN);BiasInBaru=BiasIn;BiasInTemp=BiasIn; BiasHid=rands(1,1);BiasHidBaru=BiasHid;BiasHidTemp=BiasHid; WIn=rands(delay,hiddenN);WInBaru=WIn;WInTemp=WIn; WHid=rands(hiddenN,1);WHidBaru=WHid;WHidTemp=WHid; while (epoh <= maxEpoh) && (Mse(epoh) > targetError) %iterasi Znet=zeros(maxDataTrain,hiddenN); Zj = zeros(maxDataTrain,hiddenN); Ynet=zeros(maxDataTrain,1); Y=zeros(maxDataTrain,1); delta=zeros(maxDataTrain,1); E=zeros(maxDataTrain,1); deltaWjk=zeros(maxDataTrain,hiddenN+1); delta_net=zeros(maxDataTrain,hiddenN); deltaj=zeros(maxDataTrain,hiddenN); deltaVji=zeros(delay+1,hiddenN);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
for i = 1 : maxDataTrain %loop data training
for j = 1 : hiddenN %loop hidden neuron
for k = 1 : delay %loop input Znet(i,j) = Znet(i,j)+ (inputTrain(i,k)*WInBaru(k,j));
end Znet(i,j) = Znet(i,j)+ BiasInBaru(1,j); Zj(i,j)=1/(1+exp(-Znet(i,j))); Ynet(i) = Ynet(i) + (Zj(i,j)*WHidBaru(j,1));
end Ynet(i) = Ynet(i)+BiasHidBaru; Y(i)=1/(1+exp(-Ynet(i))); % delta=(targetTrain-Y); % [n,a] = size(targetTrain); delta(i)=(targetTrain(i)-Y(i))*Y(i)*(1-Y(i));%hitung error E(i)=delta(i)^2;
deltaWjk(i,j)=alpha*delta(i);%delta W(1,0) %bobot baru to temporary BiasInTemp=BiasInBaru; BiasHidTemp=BiasHidBaru; WInTemp=WInBaru; WHidTemp=WHidBaru; k = 1; for j = 1 : hiddenN deltaWjk(i,j+1)=alpha*delta(i)*Zj(i,j); delta_net(i,j)=delta(i)*WHidBaru(j,1); deltaj(i,j)=delta_net(i,j)*Zj(i,j)*(1-Zj(i,j)); WHidBaru(j,1)=WHidBaru(j,1)+deltaWjk(i,j+1)+(miu*(WHidBaru(j,1)-WHid(j,1)));%bobot hidden neuron baru
deltaVji(k,j)=alpha*deltaj(i,j);%delta V(1,0) BiasInBaru(1,j)=BiasInBaru(1,j)+deltaVji(1,j)+(miu*(BiasInBaru(1,j)-BiasIn(1,j)));%bobot bias input
baru for k = 1 : delay deltaVji(k+1,j)=alpha*deltaj(i,j)*inputTrain(i,k);% WInBaru(k,j)=WInBaru(k,j)+deltaVji(k+1,j)+(miu*(WInBaru(k,j)-WIn(k,j)));%bobot input baru
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
end end BiasHidBaru=BiasHidBaru+deltaWjk(1,1)+(miu*(BiasHidBaru-BiasHid));%bobot bias hidden neuron baru %bobot temp to bobot lama BiasIn=BiasInTemp; BiasHid=BiasHidTemp; WIn=WInTemp; WHid=WHidTemp; end epoh=epoh+1; Mse(epoh)=(1/maxDataTrain)*sum(abs(delta))/mean(Y); % Mse(epoh)=(1/maxDataTrain)*sum(E); end end
-train2layer.m
function [ BiasInBaru, BiasHidBaru,BiasHidBaru2, WInBaru, WHidBaru,WHidBaru2, targetTrain, Y] =
train2layer( train1,delay,hiddenN,hiddenN2,alpha,miu ) maxDataTrain=length(train1); inputTrain=train1(1:maxDataTrain,1:delay); targetTrain=train1(1:maxDataTrain,delay+1); targetError=0.005; epoh=1; maxEpoh=500; Mse=ones(maxEpoh+1,1); BiasIn=rands(1,hiddenN);BiasInBaru=BiasIn; BiasInTemp=BiasIn; BiasHid2=rands(1,1);BiasHidBaru2=BiasHid2; BiasHidTemp2=BiasHid2; BiasHid=rands(1,hiddenN2);BiasHidBaru=BiasHid; BiasHidTemp=BiasHid; WIn=rands(delay,hiddenN);WInBaru=WIn; WInTemp=WIn; WHid=rands(hiddenN,hiddenN2);WHidBaru=WHid; WHidTemp=WHid; WHid2=rands(hiddenN2,1);WHidBaru2=WHid2; WHidTemp2=WHid2; while (epoh <= maxEpoh) && (Mse(epoh) > targetError) %iterasi Znet=zeros(maxDataTrain,hiddenN); Zj = zeros(maxDataTrain,hiddenN); Znet2=zeros(maxDataTrain,hiddenN2); Zj2 = zeros(maxDataTrain,hiddenN2); Ynet=zeros(maxDataTrain,1); Y=zeros(maxDataTrain,1); delta=zeros(maxDataTrain,1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
E=zeros(maxDataTrain,1); deltaWjk=zeros(maxDataTrain,hiddenN+1); deltaUjm=zeros(maxDataTrain,hiddenN2+1); delta_net=zeros(maxDataTrain,hiddenN); delta_net2=zeros(maxDataTrain,hiddenN2); deltaj=zeros(maxDataTrain,hiddenN); deltam=zeros(maxDataTrain,hiddenN2); deltaVji=zeros(delay+1,hiddenN);
for i = 1 : maxDataTrain %loop data training
for j = 1 : hiddenN %loop hidden neuron
for k = 1 : delay %loop input Znet(i,j) = Znet(i,j)+ (inputTrain(i,k)*WInBaru(k,j));
end Znet(i,j) = Znet(i,j)+ BiasInBaru(1,j); Zj(i,j)=1/(1+exp(-Znet(i,j)));
% Ynet(i) = Ynet(i) + (Zj(i,j)*WHidBaru(j,1));
end for m = 1 : hiddenN2%loop hidden layer 2 for j = 1 : hiddenN%loop hidden layer 1 Znet2(i,m) = Znet2(i,m)+ (Zj(i,j)*WHidBaru(j,m));
end Znet2(i,m) = Znet2(i,m)+ BiasHidBaru(1,m); Zj2(i,m)=1/(1+exp(-Znet2(i,m)));
Ynet(i) = Ynet(i) + (Zj2(i,m)*WHidBaru2(m,1)); end Ynet(i) = Ynet(i)+BiasHidBaru2; Y(i)=1/(1+exp(-Ynet(i))); delta(i)=(targetTrain(i)-Y(i))*Y(i)*(1-Y(i));%hitung error E(i)=delta(i)^2; deltaUjm(i,m)=alpha*delta(i);%delta W(1,0) %bobot baru to temporary BiasInTemp=BiasInBaru;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
BiasHidTemp=BiasHidBaru; BiasHidTemp2=BiasHidBaru2; WInTemp=WInBaru; WHidTemp=WHidBaru; WHidTemp2=WHidBaru2; % j = 1; for m = 1 : hiddenN2 deltaUjm(i,m+1)=alpha*delta(i)*Zj2(i,m); delta_net2(i,m)=delta(i)*WHidBaru2(m,1); deltam(i,m)=delta_net2(i,m)*Zj2(i,m)*(1-Zj2(i,m)); WHidBaru2(m,1)=WHidBaru2(m,1)+deltaUjm(i,m+1)+(miu*(WHidBaru2(m,1)-WHid2(m,1)));%bobot
hidden neuron baru % WHidBaru2(m,1)=WHidBaru2(m,1)+deltaUjm(i,m+1); deltaWjk(i,m)=alpha*deltam(i,m);%delta W(1,0) BiasHidBaru(1,m)=BiasHidBaru(1,m)+deltaWjk(1,m)+(miu*(BiasHidBaru(1,m)-
BiasHid(1,m)));%bobot bias input baru % BiasHidBaru(1,m)=BiasHidBaru(1,m)+deltaWjk(1,m); end k = 1; for j = 1 : hiddenN deltaWjk(i,j+1)=alpha*delta(i)*Zj(i,j); delta_net(i,j)=delta(i)*WHidBaru(j,1); deltaj(i,j)=delta_net(i,j)*Zj(i,j)*(1-Zj(i,j)); WHidBaru(j,1)=WHidBaru(j,1)+deltaWjk(i,j+1)+(miu*(WHidBaru(j,1)-WHid(j,1)));%bobot hidden
neuron baru % WHidBaru(j,1)=WHidBaru(j,1)+deltaWjk(i,j+1); deltaVji(k,j)=alpha*deltaj(i,j);%delta V(1,0) BiasInBaru(1,j)=BiasInBaru(1,j)+deltaVji(1,j)+(miu*(BiasInBaru(1,j)-BiasIn(1,j)));%bobot bias input
baru % BiasInBaru(1,j)=BiasInBaru(1,j)+deltaVji(1,j); for k = 1 : delay deltaVji(k+1,j)=alpha*deltaj(i,j)*inputTrain(i,k);% WInBaru(k,j)=WInBaru(k,j)+deltaVji(k+1,j)+(miu*(WInBaru(k,j)-WIn(k,j)));%bobot input baru % WInBaru(k,j)=WInBaru(k,j)+deltaVji(k+1,j); end end
BiasHidBaru2=BiasHidBaru2+deltaUjm(1,1)+(miu*(BiasHidBaru2-BiasHid2));%bobot bias hidden neuron
baru % BiasHidBaru2=BiasHidBaru2+deltaUjm(1,1);
% BiasHidBaru=BiasHidBaru+deltaWjk(1,1)+(miu*(BiasHidBaru-BiasHid));%bobot bias hidden
neuron baru %bobot temp to bobot lama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
BiasIn=BiasInTemp; BiasHid=BiasHidTemp; BiasHid2=BiasHidTemp2; WIn=WInTemp; WHid=WHidTemp; WHid2=WHidTemp2; end epoh=epoh+1; Mse(epoh)=(1/maxDataTrain)*sum(abs(delta))/mean(Y); % Mse(epoh)=(1/maxDataTrain)*sum(E); end
-main_menu.m
function varargout = main_menu(varargin) % MAIN_MENU MATLAB code for main_menu.fig % MAIN_MENU, by itself, creates a new MAIN_MENU or raises the existing % singleton*. % % H = MAIN_MENU returns the handle to a new MAIN_MENU or the handle to % the existing singleton*. % % MAIN_MENU('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAIN_MENU.M with the given input arguments. % % MAIN_MENU('Property','Value',...) creates a new MAIN_MENU or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before main_menu_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to main_menu_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help main_menu % Last Modified by GUIDE v2.5 06-May-2014 14:55:17 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @main_menu_OpeningFcn, ... 'gui_OutputFcn', @main_menu_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before main_menu is made visible. function main_menu_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to main_menu (see VARARGIN) % Choose default command line output for main_menu handles.output = hObject; imshow('D:\skripsi\logo.jpg'); % Update handles structure guidata(hObject, handles); % UIWAIT makes main_menu wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = main_menu_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) hitung_delay close('main_menu'); % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function edit2_Callback(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double
% --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit3_Callback(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double
% --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
-hitung_delay.m
function varargout = hitung_delay(varargin) % HITUNG_DELAY MATLAB code for hitung_delay.fig % HITUNG_DELAY, by itself, creates a new HITUNG_DELAY or raises the existing % singleton*. % % H = HITUNG_DELAY returns the handle to a new HITUNG_DELAY or the handle to % the existing singleton*. % % HITUNG_DELAY('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in HITUNG_DELAY.M with the given input arguments. % % HITUNG_DELAY('Property','Value',...) creates a new HITUNG_DELAY or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before hitung_delay_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to hitung_delay_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help hitung_delay % Last Modified by GUIDE v2.5 03-Dec-2014 11:21:16 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @hitung_delay_OpeningFcn, ... 'gui_OutputFcn', @hitung_delay_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
% --- Executes just before hitung_delay is made visible. function hitung_delay_OpeningFcn(hObject, eventdata, handles, varargin)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
% This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to hitung_delay (see VARARGIN) % Choose default command line output for hitung_delay handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes hitung_delay wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = hitung_delay_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
function inputDelay_Callback(hObject, eventdata, handles) % hObject handle to inputDelay (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of inputDelay as text % str2double(get(hObject,'String')) returns contents of inputDelay as a double
% --- Executes during object creation, after setting all properties. function inputDelay_CreateFcn(hObject, eventdata, handles) % hObject handle to inputDelay (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in hitungButton. function hitungButton_Callback(hObject, eventdata, handles) % hObject handle to hitungButton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) file = get(handles.inputFile,'string'); layer2 = get(handles.radiobutton2,'value');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
hiddenL=layer2+1; text=get(handles.inputDelay,'string'); hiddenNeuron1=0; hiddenNeuron2=0; alpha=0; miu=0; if isempty(text) %cek input delay delay=0; else delay=str2double(text); text=get(handles.inputAlpha,'string'); if isempty(text) %cek input alpha alpha=0; else alpha=str2double(text); text=get(handles.inputMomentum,'string'); if isempty(text) %cek input hidden layer 2 miu=0; else miu=str2double(text); text=get(handles.inputHidden1,'string'); if isempty(text) %cek input hidden layer 1 hiddenNeuron1=0; else hiddenNeuron1=str2double(text); text=get(handles.inputHidden2,'string'); if layer2==1 %cek jumlah hidden layer if isempty(text) %cek input hidden layer 2 hiddenNeuron2=0; else hiddenNeuron2=str2double(text); end end end end end end
if delay<=0 || delay>100 msgbox('masukan jumlah delay antara 1 sampai 100','Input salah'); else if alpha<=0 || alpha>=1 msgbox('masukan nilai alpha antara 0 sampai 1','Input salah'); else if miu<=0 || miu>=1 msgbox('masukan nilai momentum antara 0 sampai 1','Input salah'); else if hiddenNeuron1<=0 || hiddenNeuron1>100 msgbox('masukan jumlah hidden neuron pada hidden layer 1 antara 1 sampai 100','Input salah'); else if layer2 == 1 if hiddenNeuron2<=0 || hiddenNeuron2>100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
msgbox('masukan jumlah hidden neuron pada hidden layer 2 antara 1 sampai 100','Input salah'); else
[mse,kursReal1,kursPrediksi1,kursReal2,kursPrediksi2,kursReal3,kursPrediksi3]=main_program(file,delay,hidd
enL,hiddenNeuron1,hiddenNeuron2,alpha,miu); setappdata(0,'mse',mse); setappdata(0,'prediksi1',kursPrediksi1); setappdata(0,'real1',kursReal1); setappdata(0,'prediksi2',kursPrediksi2); setappdata(0,'real2',kursReal2); setappdata(0,'prediksi3',kursPrediksi3); setappdata(0,'real3',kursReal3); % close; % hasil; mse=getappdata(0,'mse'); set(handles.textMse, 'String', mse) ; figure; kursReal1=getappdata(0,'real1'); kursPrediksi1=getappdata(0,'prediksi1'); kursReal2=getappdata(0,'real2'); kursPrediksi2=getappdata(0,'prediksi2'); kursReal3=getappdata(0,'real3'); kursPrediksi3=getappdata(0,'prediksi3'); subplot(1,3,3,'replace'); plot (kursReal1); hold all plot (kursPrediksi1); title('Testing data C'); subplot(1,3,1,'replace'); plot (kursReal2); hold all plot (kursPrediksi2); title('Testing data A'); subplot(1,3,2,'replace'); plot (kursReal3); hold all plot (kursPrediksi3); title('Testing data B'); end else if hiddenNeuron2 ~= 0 uiwait(msgbox({'anda memilih 1 hidden layer' 'input jumlah hidden neuron layer 2 tidak akan
dipakai'}, 'Perhatian')); end
[mse,kursReal1,kursPrediksi1,kursReal2,kursPrediksi2,kursReal3,kursPrediksi3]=main_program(file,delay,hidd
enL,hiddenNeuron1,hiddenNeuron2,alpha,miu); setappdata(0,'mse',mse);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
setappdata(0,'prediksi1',kursPrediksi1); setappdata(0,'real1',kursReal1); setappdata(0,'prediksi2',kursPrediksi2); setappdata(0,'real2',kursReal2); setappdata(0,'prediksi3',kursPrediksi3); setappdata(0,'real3',kursReal3); % close; % hasil; mse=getappdata(0,'mse'); set(handles.textMse, 'String', mse) ; figure; kursReal1=getappdata(0,'real1'); kursPrediksi1=getappdata(0,'prediksi1'); kursReal2=getappdata(0,'real2'); kursPrediksi2=getappdata(0,'prediksi2'); kursReal3=getappdata(0,'real3'); kursPrediksi3=getappdata(0,'prediksi3'); subplot(1,3,3,'replace'); plot (kursReal1); hold all plot (kursPrediksi1); title('Testing data C'); subplot(1,3,1,'replace'); plot (kursReal2); hold all plot (kursPrediksi2); title('Testing data A'); subplot(1,3,2,'replace'); plot (kursReal3); hold all plot (kursPrediksi3); title('Testing data B'); end end end end end
%msgbox(['Operation Completed=' num2str(y)]); % set(handles.text2,'String',y);
% --- Executes on button press in kembaliButton. function kembaliButton_Callback(hObject, eventdata, handles) close; main_menu; % hObject handle to kembaliButton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in radiobutton1. function radiobutton1_Callback(hObject, eventdata, handles) % if get(radiobutton1,'value')==1 % set(handles.inputHidden2, 'enable', 'off') % else % set(handles.inputHidden2, 'enable', 'on') % end % hObject handle to radiobutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton1
% --- Executes on button press in radiobutton2. function radiobutton2_Callback(hObject, eventdata, handles) % hObject handle to radiobutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton2
function inputHidden1_Callback(hObject, eventdata, handles) % hObject handle to inputHidden1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of inputHidden1 as text % str2double(get(hObject,'String')) returns contents of inputHidden1 as a double
% --- Executes during object creation, after setting all properties. function inputHidden1_CreateFcn(hObject, eventdata, handles) % hObject handle to inputHidden1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function inputHidden2_Callback(hObject, eventdata, handles) % hObject handle to inputHidden2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
% Hints: get(hObject,'String') returns contents of inputHidden2 as text % str2double(get(hObject,'String')) returns contents of inputHidden2 as a double
% --- Executes during object creation, after setting all properties. function inputHidden2_CreateFcn(hObject, eventdata, handles) % hObject handle to inputHidden2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in inputButton. function inputButton_Callback(hObject, eventdata, handles) [FileName,PathName] = uigetfile('*.xls*','Pilih File Excel'); file=strcat(PathName,FileName); set(handles.inputFile, 'String', file) ; % hObject handle to inputButton (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function edit4_Callback(hObject, eventdata, handles) % hObject handle to inputFile (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of inputFile as text % str2double(get(hObject,'String')) returns contents of inputFile as a double
% --- Executes during object creation, after setting all properties. function edit4_CreateFcn(hObject, eventdata, handles) % hObject handle to inputFile (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function inputAlpha_Callback(hObject, eventdata, handles) % hObject handle to inputAlpha (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of inputAlpha as text % str2double(get(hObject,'String')) returns contents of inputAlpha as a double
% --- Executes during object creation, after setting all properties. function inputAlpha_CreateFcn(hObject, eventdata, handles) % hObject handle to inputAlpha (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function inputMomentum_Callback(hObject, eventdata, handles) % hObject handle to inputMomentum (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of inputMomentum as text % str2double(get(hObject,'String')) returns contents of inputMomentum as a double
% --- Executes during object creation, after setting all properties. function inputMomentum_CreateFcn(hObject, eventdata, handles) % hObject handle to inputMomentum (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function inputFile_Callback(hObject, eventdata, handles) % hObject handle to inputFile (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of inputFile as text % str2double(get(hObject,'String')) returns contents of inputFile as a double
% --- Executes during object creation, after setting all properties. function inputFile_CreateFcn(hObject, eventdata, handles) % hObject handle to inputFile (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI