• Tidak ada hasil yang ditemukan

PEMBAHASAN DAN HASIL PENELITIAN

4.4. Algoritma dalam MATLAB

Secara garis besar MATLAB membutuhkan coding dalam menjalankan software-nya

dan dalam membuat peramalan ini dibutuhkan alur perhitungan dengan algoritma. Langkah – langkah membuat coding algoritma Resilient Backpropagation untuk peramalan di dalam software MATLAB adalah :

4.4.1. Membersihkan Jendela Command

Membersihkan jendela command ini dilakukan dengan menggunakan command “clc”,

“close all” dan “clear all”. command “clc” digunakan untuk menghapus semua

command yang mungkin ada agar tidak terjadi crash pada software. Command “close all” adalah command untuk menghapus semua jendela folder yang masih terbuka dan

command “clear all” adalah command untuk menghapus jendela hasil dari proses peng-coding-an.

4.4.2. Mengambil Data yang Ada

Proses ini mengambil data dari data harga saham WIKA yang dimulai dari bulan Januari 2012 hingga bulan Desember 2012.

Data tersebut harus dikonversi dalam satu bentuk bobot angka tertentu sesuai

kebutuhan dalam perhitungan dan di-coding-kan ke dalam MATLAB. Hal tersebut

dilakukan karena MATLAB hanya mampu mengolah data dengan nilai dari 1-10.

Dalam kasus ini, bobot telah dibagi dengan 1000 dan dimasukkan kedalam coding

MATLAB seperti : a=[0.61,0.61,0.62,0.63,0.62,0.63,0.63,0.62,0.61,0.61,0.63,0.64,0.63,0.65,0.64,0.64,0.6 6,0.70,0.71,0.71,0.69,0.71,0.72,0.71,0.71,0.69,0.67,0.69,0.69,0.69,0.69,0.72,0.76,0.76 ,0.76,0.77,0.76,0.75,0.76,0.75,0.74,0.73,0.73,0.73,0.74,0.76,0.76,0.80,0.81,0.83,0.81, 0.81,0.80,0.79,0.85,0.83,0.81,0.80,0.83,0.83,0.83,0.87,0.86,0.91,0.91,0.91,0.91,0.88,0 .90,0.90,0.88,0.88,0.89,0.92,0.94,0.91,0.95,0.96,0.94,0.93,0.91,0.91,0.94,0.96,0.94,0. 98,0.99,1.04,1.09,1.10,1.09,1.09,1.06,1.04,1.05,1.01,1.00,1.02,1.02,1.02,1.03,1.03,1.0 1,1.02,1.00,1.00,0.99,0.95,0.92,0.92,0.87,0.93,0.95,0.96,0.96,0.98,1.00,0.98,0.92,0.93 ,0.94,0.93,0.95,0.99,0.99,0.99,0.97,0.99,1.01,1.01,1.04,1.06,1.05,1.02,1.05,1.00,1.00, 1.00,1.01,1.02,1.03,1.05,1.05,1.04,1.03,1.00,1.01,1.01,1.03,1.03,1.03,1.00,1.00,1.01,1 .01,1.03,1.08,1.06,1.09,1.13,1.09,1.10,1.06,1.07,1.07,1.07,1.07,1.07,1.07,1.10,1.09,1. 07,1.06,1.04,1.05,1.08,1.10,1.09,1.11,1.15,1.16,1.15,1.14,1.13,1.14,1.13,1.12,1.14,1.1 6,1.19,1.25,1.23,1.21,1.19,1.21,1.26,1.29,1.43,1.43,1.43,1.39,1.39,1.38,1.36,1.33,1.36 ,1.35,1.35,1.39,1.38,1.40,1.39,1.37,1.37,1.37,1.35,1.38,1.37,1.36,1.35,1.31,1.33,1.37, 1.38,1.43,1.45,1.44,1.43,1.43,1.42,1.41,1.47,1.51,1.50,1.53,1.54,1.59,1.61,1.63,1.58,1 .55,1.60,1.60,1.56,1.55,1.57,1.53,1.45,1.48,1.49,1.47,1.40,1.39,1.42,1.42,1.42,1.48,1. 49,1.48,1.49]; tipe variable coding untuk input data.

4.4.3. Menentukan matriks Input dan Matriks Target (T)

Matriks input yang ditentukan adalah variable P1 dan P2 dimana P1 adalah harga saham dari hari ke-131 sampai hari ke-260 dan P2 adalah harga saham dari hari ke-1 sampai dengan 130, sehingga didapat matriks input P = [P1,P2] dan matriks target (T) yaitu dari hari ke-131 s/d 260. pengetikan coding adalah sebagai berikut :

P1 = a(:,131:260); data matriks input pertama P2 = a(:,1:130);data matriks input kedua P = [P1;P2]; matriks target

4.4.4. Membagi data menjadi data Pelatihan (training)

Data – data tersebut dibagi dalam ketentuan coding MATLAB. Data – data yang ada dibagi menjadi 2, yaitu data yang digunakan sebagai data untuk pelatihan. Dalam kasus ini seperti berikut :

t = a(:,131:260); coding matriks target untuk prediksi yang ingin dicapai.

4.4.5. Lakukan Iterasi untuk Membandingkan Nilai MSE Terkecil dan Pengaturan Penentuan Formula.

Tahapan iterasi ini dimulai pengetesan dari unit hidden layer = 1 sampai dengan 10. Dimana pengetesan tersebut dilakukan untuk mencari nilai MSE terkecil yang dimana hasil dari peramalan tersebut akan dipakai jika memiliki nilai MSE terkecil. Dalam kasus ini pelatihan dimulai dari hidden layer berjumlah 1,2,3,4 dan 5.

Penentuan formula dengan mangatur fungsi antara input ke hidden layer

menggunakan tansig dan dari hidden layer ke output menggunakan purelin dan metode yang digunakan adalah traingdx. Karena metode traingdx adalah metode

neural network yang dipakai untuk melakukan peramalan dan coding untuk hidden layer dan penentuan formula, yaitu :

% Set RPRop dengan jumlah unit hidden 2, fungsi input-hidden = tansig, % fungsi aktivasi hidden-output = linear, metode = traingd

net = newff(minmax(p), [2,1], {‘tansig’,’purelin’}, ‘traingd’);

4.4.6. Menentukan Jumlah Maksimal Epoch

Jumlah pelatihan (Epoch) sangat berpengaruh dalam kinerja pelatihan. Pada umumnya

untuk perhitungan dalam MATLAB biasanya mengatur agar maksimal epoch adalah

10.000 dan kemudian dimasukkan dalam bentuk coding MATLAB yaitu :

net.trainParam.epoch=10000; %maksimum epoch = 10000

4.4.7. Menggeser nilai goal MSE dan menentukan nilai pembelajaran(α)

Selanjutnya harus ditentukan nilai goal MSE agar MATLAB dapat membuat suatu

pelatihan dimana prosesnya akan terhenti jika sudah tercapai tujuan yang diinginkan.

Dalam hal ini, nilai goal MSE yang ingin dicapai adalah 0,001 dan kemudian

dimasukkan ke dalam bentuk coding MATLAB yaitu :

4.4.8. Menentukan Nilai Pembelajaran (Learning Rate) dan Momentum

Pada dasarnya proses pembelajaran jaringan dengan algoritma Backpropagation standar biasanya lambat. Maka agar proses tersebut bias diatur agar menjadi lebih cepat adalah dengan menambahkan nilai parameter nilai pembelajaran dan momentum.

Parameter nilai pembelajaran memberikan acuan besarnya penyesuaian pada bobot ketika dilakukan proses belajar. Proses belajar jaringan menjadi sangat lambat jika nilai pembelajaran yang digunakan terlalu kecil akan tetapi bila nilai pembelajaran yang digunakan terlalu besar maka proses pembelajaran akan menyebar sehingga keluar dari batasnya. Hal tersebut dapat diminimalkan dengan memberikan nilai yang

dinamakan momentum.

Dalam hal ini dengan menggunakan momentum, perubahan bobot didasarkan

gradient yang terjadi untuk pola yang dimasukkan saat itu. Momentum akan membuat jaringan menyesuaikan bobot yang lebih besar selama koreksinya memiliki arah yang sama dengan pola yang ada. Sedangkan nilai pembelajaran yang kecil digunakan untuk mencegah respon yang besar terhadap error dari satu pola proses belajar. Maka setelah melalui banyak penelitian, untuk perhitungan dalam penulisan ini

menggunakan parameter umum untuk nilai pembelajaran dan momentumnya dimana

nilai pembelajaran sebesar 0,1 dan nilai momentum sebesar 0,75. Nilai pembelajaran kemudian dimasukkan dalam bentuk coding MATLAB yaitu seperti :

net.trainParam.1r=0.1; %nilai pembelajaran (alpha)=0.1

net.trainParam.Show=100; % tunjukkan perubahan setiap epoch 100

Sedangkan untuk nilai momentum-nya karena menggunakan metode traingd

4.4.9. Menentukan Rasio Untuk Menaikkan Nilai Pembelajaran dan untuk Menurunkan Nilai Pembelajaran (Learning Rate)

Metode yang digunakan dalam penelitian ini adalah metode traingd. Dengan

menggunakan metode traingd maka tidak diperlukan lagi untuk menentukan besarnya rasio. Hal ini disebabkan di dalam toolbox traingd sudah ditentukan besarnya rasio untuk menaikkan dan menurunkan nilai pembelajaran, yaitu rasio untuk menaikkan nilai pembelajaran adalah 1,2 dan besarnya rasio untuk menurunkan nilai pembelajaran adalah 0,6.

4.4.10.Melakukan Pelatihan Resilient Backpropagation dan Simulasikan Hasil Pelatihan

Dalam tahapan ini dilakukan proses coding untuk melakukan pelatihan Resilient Backpropagation dan coding untuk mesimulasikan hasil pelatihan di dalam software MATLAB. Coding tersebut dapat dijelaskan sebagai berikut :

[net,tr]=train(net,p,t); % coding untuk melakukan train terhadap input, target. y=sim(net,p); %coding untuk mensimulasikan hasil training (pelatihan).

4.4.11.Menghitung MSE antara Target dan Output

Pada tahap ini dimasukkan data Coding untuk menghitung MSE antara target dan

e = y-t; % error = output – target (coding untuk menghitung MSE antara target dan

output)

v=a; (penentuan nama variable yang dipakai)

v(:,290)=0.1; (coding untuk memberitahukan total jumlah data yang ada dan

menggunakan nilai pembelajaran 0,1)

4.4.12.Melakukan Prediksi untuk hari ke-261 s/d 290

Kemudian dilakukan tahapan coding untuk membuat prediksi dari hari ke-261 sampai dengan hari ke-290 dengan coding seperti berikut :

for i = 1:30, coding di sini untuk menentukan bahwa ada 30 hari yang ingin dicari prediksinya.

K=i+259; data bulan awal yang ingin diprediksikan

l=1+130; data disini digunakan mencari data hari ke

j=i+260; data disini digunakan untuk menentukan bahwa hari yang ingin dicari adalah hari ke 260 keatas.

Pv1=v(:,k); coding untuk variable k

Pv2=v(:,l); coding peramalan untuk variabel l Pv=[Pv1;Pv2]; coding untuk matriks input

v(:,j)=sim(net,Pv); coding untuk peramalan hari ke 261 s/d 290. end (untuk mengakhiri command)

4.4.13.Hitung MSE dari Hasil Testing

Pada tahap ini dimasukkan data coding untuk menghitung MSE dari hasil testing yaitu :

z = v(:,261:290); coding menentukan variabel yang dijadikan perbandingan yaitu hari ke-261 sampai 290 (ini adalah data hasil peramalan)

yv = v(:,260:270); coding menentukan variabel yang dijadikan perbandingan yaitu hari ke 260 sampai 270 dari hasil peramalan

dan coding dibawah ini untuk menampilkan nilai MSE ke window result

MSE = mse(e);

fprintf(‘MSE_train = %12.8f\n’, MSE);

4.4.14.Running Program

Dalam tahapan terakhir ini setelah dimasukkan semua coding yang ada maka proses yang selanjutnya dilakukan adalah running program dan kemudian akan muncul hasil yang ingin dicapai pada window result.

Dokumen terkait