BAB 3
METODOLOGI PENELITIAN
3.1
Kerangka berpikir Perubahan nilai tukar rupiah terhadap mata uang asing tidak dapat dihindari. Untuk mengatasi perubahan yang tidak pasti ini diperlukan suatu prediksi. Perubahan ini pasti memiliki pola yang mirip dari tahun ke tahun. Untuk mendapatkan prediksi yang tepat, maka diperlukan pengenalan terhadap pola perubahan yang ada agar dapat memperkirakan nilai yang mungkin terjadi. Untuk melakukan pembelajaran terhadap pola yang ada maka diperlukan adanya aplikasi prediksi dengan memakai model Jaringan Saraf Tiruan (JST). Keuntungan utama dari jaringan adalah dapat di-training agar mengenali pola – pola yang diberikan. Tahapan awal dalam perancangan aplikasi ini adalah mencari tahu kebutuhan dasar user terhadap aplikasi ini melalui kuesioner. Data dari kuisioner tersebut akan menentukan bagaimana rancangan dasar dari aplikasi tersebut. Kemudian, akan dicari data input dan output yang dibutuhkan dalam aplikasi iniakan dikumpulkan. Data input dan output tersebut juga akan menentukan spesifikasi komponen JST yang akan dipakai. Dari rancangan aplikasi dan data input - output, akan dicari metode penyelesaian masalah yang mungkin terjadi. Setelah itu akan dilakukan ditentukan software yang dibutuhkan dan spesifikasi hardware yang dapat mendukung pembuatan aplikasi ini. Tahapan selanjutnya adalah perancangan aplikasi ini adalah perancangan JST melalui data input dan output yang telah tersedia. Dalam tahapan ini terdapat 3 proses penting yaitu normalisasi data input - output, training terhadap JST dan proses forecast menggunakan JST yang sudah terlatih tersebut. Tahapan akhir adalah merancang UML (Unified Modelling Language) dan desain tampilan antar muka pengguna (user interface) / storyboard dari aplikasi.
3.2
Metodologi 3.2.1 Kuisioner 33
34 Berikut ini adalah hasil kuisioner dari 25 responden yang didominasi oleh mahasiswa dan rata – rata sudah memiliki pendapatan : 1.
Seberapa sering anda melihat perubahan nilai tukar mata uang asing?
2.
Jika ada aplikasi untuk melakukan prediksi mata uang asing, apakah anda akan menggunakannya?
3.
Berapa hari yang anda ingin ketahui untuk prediksi nilai mata uang asing?
35 4.
Apakah anda pernah melakukan transaksi yang berhubungan dengan valuta asing?
5.
Jika ya, berhubungan dengan mata uang apa saja?
Menurut hasil kuesioner diatas, diketahui bahwa banyak individu yang mengikuti laju perubahan mata uang asing dan ingin menggunakan aplikasi yang dapat memprediksi hal tersebut. Dari kuisioner ini juga diketahui bahwa banyak dari mereka yang ingin menggunakan prediksi ini untuk mengambil keputusan, berjaga-jaga, mencari keuntungan, dan lainnya. Dari data hasil kuesioner diatas, diketahui bahwa terdapat 8% memilih jangka waktu 30 hari, 33% memilih jangka waktu 1 hari dan 59% memilih hasil selama jangka waktu 7 hari yang dipilih untuk prediksi mata uang asing. Jangka waktu ini adalah hasil selama berapa hari yang akan keluar sekaligus dalam sekali prediksi. Aplikasi ini kemudian dirancang dengan dengan fokus untuk perubahan yang terjadi dalam jangka waktu 7 hari atau satu minggu. Oleh karena itu
36 maka ditentukan jumlah output node untuk Jaringan Saraf Tiruan sebanyak 7 buah.
3.2.2 Pengumpulan Data Dalam perancangan aplikasi ini telah dilakukan studi pustaka terlebih dahulu pada data - data input dan output yang dibutuhkan untuk fase training dan forecast. Data - data input berupa nilai tukar mata uang pada tahun-tahun sebelumnya dan faktor - faktor yang mempengaruhi perubahan nilai mata uang tersebut. Data yang dipakai merupakan data historis antara Januari 2011 sampai Desember 2013. Terdapat tiga mata uang asing yang akan diprediksi nilai tukarnya terhadap Rupiah yaitu Dolar Amerika, Dolar Singapura, dan Yen Jepang. Sedangkan untuk faktor - faktor tersebut antara lain, inflasi, tingkat suku bunga, harga minyak mentah dunia, dan jumlah uang yang beredar di Indonesia. Untuk data input akan dipakai dari rentang waktu 2 tahun yaitu tahun 2011 – 2012. Sementara data output yang dikehendaki berupa nilai tukar 3 mata uang asing tersebut pada tahun 2013. Data - data tersebut dari website - website resmi antara lain www.bi.go.id, www.esdm.go.id, dan www.bps.go.id.
3.2.3 Metode Penyelesaian Masalah. Proses training di aplikasi ini hanya memakai data yang dimasukkan sampai akhir pembuatan aplikasi ini. Akan tetapi, nilai valuta asing pada setiap harinya mengalami perubahan. Dengan demikian, ada masalah yang mungkin terjadi yaitu aplikasi ini harus bisa beradaptasi terhadap perubahan data yang terjadi setiap hari. Masalah perubahan data yang dihadapi misalkan data terbaru yang ada di database hanya sampai 1 Desember 2013 namun user ingin melakukan prediksi untuk tanggal 10 Desember. Maka dibutuhkan data sampai 9 Desember 2013 agar prediksi yang didapatkan lebih akurat. Oleh karena itu, pengguna dapat menambah kekurangan data dengan memasukkan databaru ke dalam aplikasi. Namun jika pengguna
tidak
memperbaharuinya,
maka
aplikasi
ini
akan
membuatdata sementara secara otomatis dengan melakukan prediksi
37 secara bertahap untuk mencari data yang kurang mulai dari tanggal 2 sampai 9 Desember. Data ini hanya bersifat sementara dan tidak akan disimpan ke dalam database.
3.2.4 Spesifikasi Perangkat Lunak dan Perangkat Keras Pembuatan aplikasi ini memakai perangkat lunak (software) Microsoft Visual Studio 2010 untuk merancang user interface-nya dengan bahasa pemrograman C# dan Microsoft SQL Server Management Studio 2008 untuk penyimpanan database. Selain itu, aplikasi ini menggunakan library FANN (Fast Artificial Neural Network) yang diunduh dari situs leenissen.dk untuk merancang Jaringan Saraf Tiruan tersebut. Dalam perancangan aplikasi ini, digunakan komputer dengan spesifikasi sebagai berikut. 1. Prosesor : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz 2. Memori RAM: 8 GB 3. Sistem Operasi : Microsoft Windows 7 Ultimate
3.2.5 Perancangan JST Pengembangan aplikasi ini menggunakan Jaringan Saraf Tiruan (JST) berjumlah 7 buah dengan perincian 4 JST untuk setiap faktor yang mempengaruhi, dan 3 JST prediksi setiap mata uang. Masing – masing JST memiliki 1 input layer, 1 hidden layer, dan 1 output layer. Jumlah input node dan output node pada proses training setiap JST akan dijelaskan dalam dua tabel berikut.
Tabel 3.1 Rancangan JST Faktor Nama Inflasi
Input
Output
Per bulan selama 2 tahun 1 bulan (1 node) (2 * 12 = 24 node)
Tingkat Suku Bunga
Per bulan selama 2 tahun 1 bulan (1 node) (2 * 12 = 24 node)
38 Nama
Input
Output
Harga minyak
Per bulan selama 2 tahun 1 bulan (1 node)
mentah dunia
(2 * 12 = 24 node)
Jumlah Uang
Per bulan selama 2 tahun 1 bulan (1 node)
beredar
(2 * 12 = 24 node)
Dibawah ini gambar JST faktor sesuai dengan jumlah input dan output node dari tabel di atas.
Bias V(1*p)
1
1
X1
Bias W(1*m)
Z1 X2 Z2
Y1
X3
m Z17
p
Bobot V(n*p)
X24
Bobot W(p*m)
n Gambar 3.1 JST Faktor
Tabel 3.2 Rancangan JST Mata Uang Asing Nama USD
Input
Output
Nilai mata uang per hari selama 2 tahun + 7 hari (7 node) Nilai 4 Faktor per hari selama 2 tahun ( (2*365) + (4*2*12) = 730+96 = 826 node)
SGD
Nilai mata uang per hari selama 2 tahun + 7 hari (7 node)
39 Nama
Input
Output
Nilai 4 Faktor per hari selama 2 tahun ( (2*365) + (4*2*12) = 730+96 = 826 node) JPY
Nilai mata uang per hari selama 2 tahun + 7 hari (7 node) Nilai 4 Faktor per hari selama 2 tahun ( (2*365) + (4*2*12) = 730+96 = 826 node)
Dibawah ini gambar JST mata uang asing sesuai dengan jumlah input dan output node dari tabel di atas.
1
Bias V(1*p)
1
X1
Bias W(1*m)
Z1 X2
Y1 Z2
X3 Y7 Z558 Bobot W(p*m)
X826
Bobot V(n*p)
m
p
n Gambar 3.2 JST Mata Uang Asing
Untuk menghitung jumlah node di hidden layer (p) di atas digunakan rumus p = (2/3* n) + m
40 dengan n adalah jumlah node di input layer dan m adalah jumlah node di output layer (Boger, Z., and Guterman, H., 1997).
3.2.6 Proses kerja Langkah pertama yang perlu dilakukan adalah dilakukan normalisasi terhadap data - data yang akan dipakai karena data - data tersebut tidak dapat langsung digunakan untuk JST. Training pada JST hanya bisa dilakukan jika data tersebut berkisar dalam rentang nilai tertentu bergantung pada fungsi aktivasi yang digunakan. Fungsi aktivasi yang digunakan dalam pengembangan aplikasi ini adalah sigmoid biner yang memiliki kisaran nilai 0 – 1. Rumus fungsi aktivasi sigmoid biner :
Dengan x adalah nilai yang ingin diaplikasikan fungsi aktivasi, dan yang digunakan selalu 1. Setelah data hasil normalisasi didapat maka data tersebut akan dimasukkan ke dalam JST setiap faktor dan setiap mata uang asing. Rumus untuk menghitung normalisasi data ( x’ ) yang dipakai adalah normalisasi Min-Max. Perhitungannya adalah sebagai berikut:
Dengan x adalah data yang ingin dinormalisasi, high adalah nilai normalisasi tertinggi yang diinginkan sedangkan low adalah nilai normalisasi terendah, a adalah data minimum dan b adalah data maksimum. Langkah selanjutnya adalah melakukan training dengan algoritma backpropagation terhadap JST. Terdapat 2 kali fase training. Masing - masing 1 kali untuk setiap mata uang asing. Pertama - tama, 4 JST setiap faktor akan di-training terlebih dahulu. Setelah itu, langkah berikut ini berbeda tergantung mata uang. Misalkan training akan dilakukan terlebih dahulu terhadap mata uang USD. Input untuk JST USD yaitu nilai mata uang USD akan
41 dimasukkan beserta output dari 4 JST faktor sebagai input untuk JST USD. Dengan asumsi output yang dikeluarkan setiap 7 hari / 1 minggu selama 1 tahun maka jumlah set data yang ada adalah sebanyak 52 set. Jumlah ini adalah jumlah minggu dalam 1 tahun. Contoh set data untuk training mata uang: Training data 1 Input = Minggu ke-1 Januari 2011- Minggu ke-4 Desember 2012 Output = Minggu ke-1 Januari 2013
Training data 2 Input = Minggu ke-2 Januari 2011-Minggu ke-1 Januari 2013 Output = Minggu ke-2 Januari 2013
Training data 3 Input = Minggu ke-3 Januari 2011-Minggu ke-2 Januari 2013 Output = Minggu ke-3 Januari 2013 . . . Training data 52 Input = Minggu ke-4 Desember 2011-Minggu ke-3 Desember2013 Output = Minggu ke-4 Desember 2013
Dibawah ini adalah langkah – langkah di dalam proses training backpropagation: 1. Pertama perlu dilakukan inisialisasi bobot dan bias untuk setiap node input dan output a) Inisialisasi matriks bobot dengan ukuran untuk [n*p] dan ukuran untuk
adalah [p*m]
b) Inisialisasi matriks bias dengan ukuran adalah [1*m].
adalah
adalah [1*p] dan
42 c) Set dengan nilai acak yang berkisar antara 0 - 1 (sesuai fungsi aktivasi sigmoid biner) untuk kedua matriks. 2. Untuk setiap set data training, ulangi langkah 3– 5. 3. Lakukan fase feedforward yang terdiri dari: a) Setiap node input (xi, i=1, . . . , n) menerima input Xi (datadata input setelah dinormalisasi) dan dikirim ke hidden unit b) Setiap hidden unit (zj, j=1, . . . ,p) menjumlahkan bobot sehingga mendapat
c) Mengaplikasikan fungsi aktivasi sigmoid biner untuk z_inj (j=1, . . . ,p) untuk menghitung
yang dikirim ke node
output
d) Setiap node output (yk, k = 1, . . . , m) menjumlahkan bobot menjadi
e) Mengaplikasikan fungsi aktivasinya pada y_ink (k = 1, . . . , m) untuk menghitung output
.
4. Lakukan fase backpropagation a) Setiap node output (yk, k = 1, . . . , m) menerima pola target sesuai dengan pola training input, menghitung informasi error.
dengan tk merupakan output yang diharapkan setelah dinormalisasi b) Menghitung koreksi bobotnya
43 c) Menghitung koreksi bias (digunakan untuk memperbaharui w0k)
d) Setiap hidden unit (zj , j = 1, . . . , p) menjumlahkan delta input
e) Menghitung informasi error.
f) Menghitung koreksi bobot ( dipakai 0.5)
g) Menghitung koreksi bias ( dipakai 0.5)
5.
Melakukan update terhadap bobot dan bias a) Setiap unit output (yk , k = 1, . . . , m) memperbaharui bias dan bobot (j = 0 , . . . . , p)
b) Setiap hidden unit (zj , j = 1, . . . , p) memperbaharui bobot dan bias (i = 0 , . . . , n)
Setelah selesai proses training, perlu adanya suatu proses untuk mendapatkan hasil yang diinginkan maka akan menggunakan JST yang sudah terlatih. Proses ini adalah proses prediksi (forecast). Untuk melakukan prediksi, langkah - langkah yang dipakai sama seperti pada proses training namun hanya sampai fase feedforward. 1. Inisialisasi bobot (dari proses training). 2. Untuk setiap vektor input ulangi langkah 3-4 3. Untuk i = 1, . . . , n, set aktivasi untuk setiap input node xi.
44 4.
Kemudian fase Feedforward a) Setiap node input j = 1, . . . , p
b) Setiap node output k = 1, . . . , m
Hasil prediksi yang didapat adalah
dengan k = 7 sehingga output
yang didapat sebanyak 7 buah.
3.2.7 Algoritma perancangan aplikasi Dibawah ini adalah algoritma pada proses prediksi (forecast) : 1) Menerima input tanggal dari pengguna 2) Memeriksa ketersediaan data dalam database sampai dengan tanggal diatas 3) Melakukan prediksi untuk mengisi kekosongan data dengan data sementara 4) Memprediksi nilai untuk tanggal yang dimasukkan oleh pengguna berdasarkan data yang sudah ada dengan data sementara 5) Menampilkan hasil prediksi.
Dibawah ini adalah algoritma pada proses update data : 1) Menerima input tanggal dari pengguna 2) Menampilkan data – data pada tanggal tersebut (jika ada) 3) Menerima input data – data dari pengguna untuk tanggal diatas 4) Menyimpan data kedalam database
45 5) Menggunakan data terbaru untuk training Jaringan Saraf Tiruan (JST) faktor dan mata uang (optional) 6) Menyimpan JST hasil training.
3.3
Perancangan Aplikasi 3.3.1 UML (Unified Modelling Language) Dalam subbab ini, akan dijelaskan interaksi antar pengguna dengan sistem aplikasi sebagai berikut : a. Melakukan prediksi Dalam proses ini, user terlebih dahulu memasukkan input berupa tanggal yang dibutuhkan untuk proses prediksi. Pada proses prediksi akan digunakan, hasil prediksi akan menampilkan nilai mata uang untuk tanggal tersebut sampai dengan tujuh hari ke depan. Untuk mendapatkan hasil yang maksimal maka user dapat melakukan update data terlebih dahulu atau aplikasi ini dapat menggunakan Jaringan Saraf Tiruan (JST) yang lama untuk mendapatkan update data sementara. Data sementara tersebut akan dipakai untuk training JST yang baru. JST ini kemudian dipakai untuk melakukan prediksi sesuai yang diinginkan user.
b. Melakukan update data User dapat memasukkan data - data baru untuk memperbaharui Jaringan Saraf Tiruan (JST). Data tanggal –t anggal tertentu yang perlu diperbaharui akan diberitahukan pada user oleh aplikasi ini dengan melakukan pengecekan terhadap database. Data - data yang dimasukkan dapat berupa nilai mata uang atau faktor yang mempengaruhi. Data - data tersebut kemudian disimpan ke database. Aplikasi ini akan memberikan pilihan untuk melakukan training JST baru. Aplikasi ini akan mengolah data - data tersebut untuk melakukan training JST baru. Setelah selesai dilakukan training, JST tersebut akan disimpan dan dapat digunakan untuk prediksi
Dibawah ini adalah UML dari proses kerja aplikasi ini.
46
Gambar 3.3 Use Case
Gambar 3.4 Sequence Diagram Update Data
47
Gambar 3.5 Sequence Diagram Forecast
Gambar 3.6 Activity Diagram
48 3.2
Desain antarmuka pengguna Dibawah ini adalah rancangan desain antarmuka dari setiap menu
Gambar 3.7 Form Main (Forecast)
49
G ambar 3.8 Form Result
Gambar 3.9 Form Update
50
Gambar 3.10 Form About Us
Gambar 3.11 Form How to Use
3.3.3 Diagram Transisi Dibawah ini adalah diagram transisi dari setiap form yang ada.
51
Result
Forecast Other
Pilih mata uang Start Forecast
How to Use
Update
About
Gambar 3.12 Diagram Transisi