50 BAB III PEMBAHASAN
Data yang digunakan dalam bab ini diasumsikan sebagai data perkiraan harga minyak mentah di Indonesia dari bulan Januari 2007 sampai Juni 2017.
Dengan demikian dapat disusun model Fuzzy Elman Recurrent Neural Network untuk peramalan harga minyak mentah di Indonesia yang dioptimasi menggunakan Algoritma Genetika, sehingga pada bab ini akan dibahas mengenai hasil optimasi model Fuzzy Elman Recurrent Neural Network menggunakan Algoritma Genetika dan hasil peramalan harga minyak mentah di Indonesia menggunakan model Fuzzy Elman Recurrent Neural Network yang dioptimasi dengan Algoritma Genetika
.A. Arsitektur Fuzzy Elman Recurrent Neural Network untuk Meramalkan Harga Minyak Mentah di Indonesia
1. FERNN Menggunakan Fungsi Keanggotaan Segitiga
Proses membangun model Fuzzy Elman Recurrent Neural Network untuk meramalkan harga minyak mentah di Indonesia dilakukan dengan tahapan sebagai berikut.
a. Menentukan Input Jaringan
Penentuan input ditentukan menggunakan plot ACF data ICP mulai tahun
2007-2017. Pada Gambar 3.1, lag ditunjukan dengan garis biru tegak, sedangkan
garis merah lengkung menunjukkan garis signifikansi. Banyaknya lag yang keluar
atau melebihi batas garis signifikansi menunjukkan banyaknya variabel yang akan
51
digunakan dalam membangun model. Plot ACF diperoleh menggunakan software MINITAB. Gambar 3.1 menunjukan plot ACF harga minyak mentah di Indonesia.
Gambar 3.1 Plot ACF ICP periode Januari 2007 sampai Juni 2017
Berdasarkan plot diatas dapat dilihat bahwa tujuh lag yang signifikan, yaitu 𝑙𝑎𝑔 1, 𝑙𝑎𝑔 2, 𝑙𝑎𝑔 3, 𝑙𝑎𝑔 4, 𝑙𝑎𝑔 5 𝑙𝑎𝑔 6 dan 𝑙𝑎𝑔 7 . Model yang akan dibangun menggunakan 7 variabel input yaitu 𝑥
1= 𝑦
𝑡−1, 𝑥
2= 𝑦
𝑡−2, 𝑥
3= 𝑦
𝑡−3, 𝑥
4= 𝑦
𝑡−4, 𝑥
5= 𝑦
𝑡−5, 𝑥
6= 𝑦
𝑡−6dan𝑥
7= 𝑦
𝑡−7dengan target 𝑦
𝑡.
b. Pembagian Data
Data untuk peramalan pada model Fuzzy Elman Recurent Neural Network dibagi menjadi 2 bagian yaitu data training dan data testing. Pada tugas akhir ini, akan digunakan pembagian data dengan perbandingan 75% data training dan 25%
data testing. Dari 119 data yang terpakai didapatkan 90 data untuk data training dan 29 data untuk data testing. Data training dan data testing terlampir pada Lampiran 2 dan Lampiran 3.
32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Autocorrelation
Autocorrelation Function for ICP (US/brl) (with 5% significance limits for the autocorrelations)
52 c. Fuzzifikasi
Pada tahap ini data perkiraan harga minyak mentah di Indonesia dihitung derajat keanggotaannya dengan menggunakan himpunan keanggotaan yang ditentukan. Fungsi keanggotaan yang digunakan adalah fungsi keanggotaan Segitiga seperti yang dijelaskan pada subbab 2.C.
Langkah pertama yang harus dilakukan dalam fuzzifikasi adalah menentukan himpunan universal. Himpunan universal adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Berdasarkan 126 data harga minyak mentah di Indonesia (ICP) mulai Januari 2007 – Juni 2017, himpunan universal baik input maupun output adalah [-40 220].
Langkah selanjutnya adalah menentukan himpunan fuzzy pada setiap variabel dan menentukan domain himpunan fuzzy tersebut. Pada skripsi ini setiap variabel input dan target memiliki tiga himpunan fuzzy. Menentukan banyaknya himpunan fuzzy pada input dan output dilakukan dengan cara trial and error hingga diperoleh nilai error yang kecil. Himpunan fuzzy pada setiap variabel dan domainnya tersaji pada tabel 3.1 .
Tabel 3.1 Himpunan fuzzy dan domain Himpunan fuzzy Domain
𝐴
1[-37.5 87.5]
𝐴
2[ 25 150]
𝐴
3[87.5 212.5]
Dengan bantuan MATLAB R2013a diperoleh grafik keanggotaan
himpunan fuzzy seperti pada Gambar 3.2.
53
Gambar 3.2 Grafik keanggotaan himpunan fuzzy 𝑨
𝟏hingga 𝑨
𝟑Dari gambar 3.2 diperoleh tiga himpunan yaitu 𝐴
1= −37,5 87,5 , 𝐴
2= 25 150 , dan 𝐴
3= 87,5 212,5 . Fungsi keanggotaannya adalah sebagai berikut :
𝜇
𝐴1(𝑥) =
0 𝑥 ≤ −37,5 𝑎𝑡𝑎𝑢 𝑥 ≥ 87,5
𝑥+37,5
25+37,5
− 37,5 < 𝑥 ≤ 25
87,5−𝑥87,5−25
25 < 𝑥 ≤ 87,5
(3.1)
𝜇
𝐴2(𝑥) =
0 𝑥 ≤ 25 𝑎𝑡𝑎𝑢 𝑥 ≥ 150
𝑥−25
87,5−25
25 < 𝑥 ≤ 87,5
150−87,5150−𝑥87,5 < 𝑥 ≤ 150
(3.2)
𝜇
𝐴3(𝑥) =
0 𝑥 ≤ 87,5 𝑎𝑡𝑎𝑢 𝑥 ≥ 212,5
𝑥−87,5
150−87,5
87,5 < 𝑥 ≤ 150
212,5−15087,5−𝑥150 < 𝑥 ≤ 212,5
(3.3)
Untuk memperoleh nilai dalam derajat keanggotaan himpunan fuzzy maka
setiap variabel input disubtitusikan ke persamaan fungsi keanggotaannya masing-
masing.
54
Contoh 3.1 Misal nilai variabel 𝑋
1pada data pengamatan ke-2 data training sebesar 72,32 selanjutnya nilai tersebut disubsitusikan ke persamaan (3.1), (3.2), dan (3.3).
Pada himpunan 𝐴
1, nilai 72,32 berada pada 25 < 𝑥 ≤ 87,5 maka 𝜇
𝐴172,32 = 87,5 − 72,32
87,5 − 25 = 0,2428 Pada himpunan 𝐴
2, nilai 72,32 berada pada 25 < 𝑥 ≤ 87,5 maka
𝜇
𝐴272,32 = 72,32 − 25
87,5 − 25 = 0,7571 Pada himpunan 𝐴
3, nilai 72,32 berada pada 𝑥 ≤ 87,5 maka
𝜇
3172,32 = 0
Diperoleh derajat keanggotaan 72,32 pada himpunan fuzzy 𝐴
1sebesar 0,2428, pada himpunan fuzzy 𝐴
2sebesar 0,7571, dan pada himpunan fuzzy 𝐴
3sebesar 0. Hal ini dilakukan hingga diperoleh derajat keanggotaan dari semua vektor data input yaitu 𝑋
2, 𝑋
3, 𝑋
4, 𝑋
5, 𝑋
6dan 𝑋
7, maupun output Y. Setiap data input dan output tetap ditulis derajat keanggotaannya, tujuannya agar hasil output tersebut dapat didefuzzifikasikan menggunakan tiga himpunan tersebut.
Fuzzifikasi dengan MATLAB R2013a dapat dilakukan menggunakan perintah trimf. Script lengkap untuk fuzzifikasi dengan MATLAB R2013a dapat dilihat di Lampiran 4. Hasil fuzzifikasi variabel input dan target data training dapat dilihat pada Lampiran 5 sedangkan untuk data testing pada Lampiran 6.
d. Menentukan model jaringan terbaik
Pada model Fuzzy Elman Recurrent Neural Network ini nilai input dan
output yang digunakan merupakan derajat keanggotaan himpunan fuzzy.
55
Arsitektur yang digunakan adalah arsitektur dengan banyak lapisan (Multilayer Net), fungsi aktivasi yang digunakan pada lapisan tersembunyi adalah sigmoid bipolar dan lapisan output dipilih fungsi linear agar nilai output pada model ini sama dengan nilai inputnya. Metode pembelajaran yang digunakan adalah metode pembelajaran terawasi dengan algoritma backpropagation. Untuk membangun jaringan elman RNN yang akan digunakan untuk meramalkan harga minyak mentah di Indonesia menggunakan bantuan MATLAB R2013a dengan perintah :
net=newelm(minmax(P),[n 1],{'tansig''purelin'},'traingdx');Perintah newelm digunakan untuk membangun jaringan elman RNN.
Pada perintah tersebut, ada n neuron pada lapisan tersembunyi dan 1 neuron pada lapisan output. Perintah
{'tansig' 'purelin'}menunjukan fungsi aktivasi yang digunakan. Pada MATLAB R2013a tansig merupakan fungsi aktivasi sigmoid bipolar sedangkan purelin merupakan fungsi aktivasi sigmoid linear.
Fungsi pelatihan yang digunakan dalam skripsi ini adalah traingdx.
Pada model ini tidak ada teori yang menyebutkan banyak neuron pada lapisan tersembunyi yang harus digunakan untuk memperoleh model terbaik. Oleh karena itu perlu ditentukan parameter pembelajaran untuk menentukan banyak neuron pada lapisan tersembunyi guna memperoleh model terbaik.
1) Penetapan parameter pembelajaran
Penetapan parameter pembelajaran dilakukan dengan trial and error. Pada
skripsi ini telah ditentukan parameter yang akan digunakan saat algoritma
pembelajaran. Parameter pembelajaran dapat dilihat pada tabel 3.2.
56
Tabel 3.2 Parameter pembelajaran
Parameter Nilai Parameter Nilai
MaxEpoch 5000 IncLearningRate 1,2 TargetError 0,00001 DecLearningRate 0,6
MaxPerfInc 1,06 Momentum 0,8
LearningRate 0,1 EpochShow 500
2) Menentukan banyak neuron pada lapisan tersembunyi
Untuk menentukan banyak neuron pada lapisan tersembunyi maka ditentukan berdasarkan nilai MAPE terkecil. Untuk mencari nilai MAPE dapat menggunakan 3 teknik defuzzifikasi yaitu Smallest of maximum (Min), Largest of maximum(Max) dan Mean of maximum (Mean).
Pencarian banyak neuron menggunakan bantuan MATLAB R2013a, script program yang digunakan dapat dilihat pada Lampiran 7. Data percobaan yang dilakukan diperoleh hasil MAPE data training dan testing seperti pada tabel 3.3.
Tabel 3.3 Hasil MAPE Model FERNN
Neuron Nilai MAPE
Training Testing
Min Max Mean Min Max Mean
1 89,4485 16,3638 52,9062 53,5440 144,9307 99,2374 2 115,3330 30,1653 72,7492 92,8077 16,2296 54,5187 3* 92,8077 16,2296 54,5187 89,4485 15,3638 52,4062 4 95,1669 17,0852 56,1261 95,4189 17,1805 56,2997 5 95,4189 17,1805 56,2997 104,6326 21,6575 63,1451 6 104,6326 21,6575 63,1451 100,3517 19,3330 59,8424 7 100,3517 19,3330 59,8424 109,8947 25,5567 67,7257 8 109,8947 25,5567 67,7257 35,5134 163,2372 99,3753 9 35,5134 163,2372 99,3753 46,1165 115,3583 80,7374 10 46,1165 115,3583 80,7374 23,5557 177,3274 100,442
Keterangan: *) Model terbaik
Pada tabel 3.3 terlihat bahwa nilai MAPE training terkecil yaitu 16,2296
terjadi dengan menggunakan defuzzifikasi Largest of Maximum dan neuron yang
digunakan sebanyak 3. Demikian pula nilai MAPE testing terkecil yaitu 15,3638
57
terjadi dengan menggunakan defuzzifikasi Largest of Maximum dan neuron yang digunakan sebanyak 3. Berdasarkan arsitektur tersebut dapat digunakan untuk menentukan input optimal dan peramalan menggunakan defuzzifikasi teknik Largest of Maximum Def0uzzifier. Setelah memperoleh banyak neuron pada lapisan tersembunyi selanjutnya menentukan nilai input yang optimal.
3) Menentukan input yang optimal
Untuk menentukan input yang optimal dilakukan percobaan dengan mengeliminasi beberapa variabel input dan melihat nilai MAPE. Proses eliminasi input pada skripsi ini menggunakan bantuan software MATLAB R2013a. Pada proses eliminasi, kemungkinan variabel yang dieliminasi
dapat dihitung dengan mengkombinasikan variabel-variabel input. Script program yang digunakan pada eliminasi dapat dilihat pada Lampiran 7. Hasil eliminasi dapat dilihat pada tabel 3.4.Tabel 3.4 Hasil MAPE Eliminasi Model FERNN
Eliminasi Training Testing
𝑋
127,442 167,259
𝑋
1, 𝑋
2153,811 127,524
𝑋
1, 𝑋
2, 𝑋
3145,576 140,235
𝑋
1, 𝑋
2, 𝑋
3, 𝑋
4139,179 129,215
𝑋
1, 𝑋
2, 𝑋
3, 𝑋
4,𝑋
5121,875 129,854 𝑋
2, 𝑋
3, 𝑋
4,𝑋
5, 𝑋
6, 𝑋
7184,448 184,470
-* 16,229 15,363
Keterangan: *) Model terbaik
Pada tabel 3.4 terlihat bahwa menggunakan 7 variabel input memberikan
model yang terbaik karena menghasilkan nilai MAPE terkecil pada data training
dan testing. Dengan demikian model FERNN yang digunakan untuk peramalan
harga minyak mentah di Indonesia (ICP) mempunyai arsitektur 7 input dengan 3
neuron pada lapisan tersembunyi.
58
Sebagai perbandingan, penulis juga melakukan pengujian dengan model ERNN, artinya input model menggunakan data asli harga minyak mentah di Indonesia tanpa melalui fuzzifikasi. Nilai MAPE untuk model ERNN dapat dilihat pada tabel 3.5.
Tabel 3.5 Tabel MAPE Model ERNN
Neuron Training Testing Neuron Training Testing
1 18,4295 114,0008 6 17,9421 113,9609
2 18,6064 113,9641 7 17,8105 113,9624
3 18,6098 113,9696 8 17,7974 113,9609
4 18,0235 113,9609 9* 17,6904 113,9643
5 18,1961 113,9610 10 17,8109 113,9619
Keterangan: *) Model terbaik
Dari tabel 3.5 diperoleh nilai MAPE minimum yaitu 17,6904 untuk data training dan 113,9609 untuk data testing. Terdapat dua kemungkinan model terbaik yaitu model dengan 6 neuron dan 9 neuron.
Dari dua model yang diuji, terlihat bahwa model FERNN menghasilkan nilai MAPE yang lebih kecil untuk data training dan testing. Dengan demikian model yang digunakan untuk peramalan harga minyak mentah di Indonesia yaitu model FERNN dengan arsitektur 7 input dan 3 neuron pada lapisan tersembunyi.
4) Menentukan bobot model
Pada algoritma backpropagation dengan fungsi pelatihan traingdx pertama
dilakukan dengan menginisialisasi bobot awal dengan bilangan acak yang cukup
kecil. Dengan berjalannya pelatihan bobot-bobot awal tersebut mengalami
perubahan hingga menghasilakan model yang terbaik seperti pada langkah 1 dan 2
di atas. Bobot-bobot yang menghasilkan model terbaik tersebut yang akan
59
digunakan dalam proses peramalan. Berdasarkan langkah 1 dan 2 diatas diperoleh bobot akhir model FERNN yang dapat dilihat pada Lampiran 8.
5) Model Jaringan Fuzzy Elman Recurrent Neural Network
Dari proses yang telah dilakukan maka diperoleh model FERNN yang terbaik. Model ini terdiri atas 7 variabel input, 3 neuron pada lapisan tersembunyi, dan 1 neuron pada lapisan output. Arsitektur jaringan tersebut dapat dilihat pada Gambar 3.3.
Gambar 3.3 Arsitektur Fuzzy Elman Recurrent Neural Network
𝑇1𝑇3 𝑇2
𝑦1
𝑦2 𝑦2 𝑈1
𝑈2
𝑈3
𝜇1,1(𝑋1)
𝜇2,1(𝑋1)
𝜇3,1(𝑋1) 𝑋1
𝑋7
𝜇1,1(𝑋7)
𝜇2,1(𝑋7)
𝜇3,1(𝑋7)
𝑏0,𝑠 𝑏𝑘
Y
𝑤𝑖𝑘 𝑤𝑗𝑘
𝑣𝑖𝑘 .
. . . . . . . . . . . . . .
60
Berdasarkan arsitektur diatas, secara matematis model tersebut dapat ditulis sebagai berikut:
𝑌
𝑡𝑠= 𝑣
𝑘(𝑠)
1−𝑒𝑥𝑝 − 𝑥𝑖𝑤𝑖𝑘 𝑠 + 𝑢𝑘𝑤𝑗𝑘+𝑏𝑘3 𝑘 =1 3 𝑗 =1 3
7 𝑘=1
𝑖=1
1+𝑒𝑥𝑝 − 7𝑖=1 3𝑘=1𝑥𝑖𝑤𝑖𝑘 𝑠 + 3𝑗 =1 3𝑘=1𝑢ힲ𝑤𝑗𝑘+𝑏𝑘
+𝑏
0,𝑠3𝑘=1 (3.4)
dengan
𝑌
𝑡𝑠= nilai prediksi ke-t pada FERNN dan s adalah banyak himpunan fuzzy 𝑥
𝑖= variabel input pada FERNN data training, i=1,2,...7
𝑤
𝑖𝑘(s)= bobot lapisan input ke lapisan tersembunyi, k=1,2,3 𝑤
𝑗𝑘= bobot lapisan tambahan ke lapisan tersembunyi, j=1,2,3 𝑏
𝑘= bobot bias lapisan input ke lapisan tersembunyi
𝑣
𝑘(s)= bobot lapisan lapisan tersembunyi ke lapisan output, s=1,2,3 𝑏
0,𝑠= bobot bias lapisan input tersembunyi ke lapisan output Dengan bobot-bobot akhir hasil pembelajaran adalah sebagai berikut:
𝑏
𝑘= 1,9910 0,4709 −0,9349
𝑣
𝑘(1) =
−0,5016 0,0280 0,3000
𝑣
𝑘(2) =
0,5018
−0,3718
−0,2656
𝑣
𝑘(3) =
−1,6764𝑒 − 04 0,3438
−0,0345
𝑏
0,1= 0,1908 𝑏
0,2= 0,4603 𝑏
0,3= 0,3489
𝑤
𝑖𝑘(1) =
−2,7027 ⋯ −0,5507
−2,7297 ⋯ −0.2668 0,8728 ⋯ 1,2818
𝑤
𝑖𝑘(2) =
−0,3812 ⋯ 0,2102
−2,0381 ⋯ −0,3846 0,2389 ⋯ 0,1954
𝑤
𝑖𝑘(3) =
2,1613 ⋯ −0,7391 2,4944 ⋯ −0,6843 1,042 ⋯ −0,9026
𝑤
𝑗𝑘=
−0,0902 −0,1482 0,0812
−0,3062 0,3311 −0,3132 0,2370 0,2459 0,4801
Contoh 3.2 Misal akan dicari output jaringan pada bulan Juli 2017 atau
𝑌
120. Nilai input untuk hasil output pada bulan Juli 2017 adalah data bulan
61
Desember 2016 – Juni 2017, yang kemudian dilakukan proses fuzzifikasi seperti pada Contoh 3.1 pada halaman 54.
Tabel 3.6 Nilai input untuk prediksi Juli 2017 Input Data Asli Hasil Fuzzifikasi
𝐴
1𝐴
2𝐴
3𝑌
11351,09
0,58256 0,41744 0 𝑌
11451,88
0,56992 0,43008 0 𝑌
11552,50
0,56 0,44 0
𝑌
11648,71
0,62064 0,37936 0 𝑌
11749,56
0,60704 0,39296 0
𝑌118
47,09 0,64656 0,35344 0
𝑌
11943,66 0,70144 0,29856 0
Berdasarkan model FERNN yang terbentuk maka perhitungan peramalan harga minyak mentah di Indonesia bulan Juli 2017 adalah sebagai berikut:
Bobot-bobot yang diperoleh disubstusikan kedalam persamaan model (3.4) menjadi :
𝑈_𝑛𝑒𝑡
1=
7𝑖=1 3𝑘=1𝑥𝑖𝑤𝑖𝑘(1) + 𝑏𝑘= 0,58256 … 0,70144
−2,7027 ⋯ −0,5507
−2,7297 ⋯ −0.2668 0,8728 ⋯ 1,2818
+ 1,9910 0,4709 −0,9349
= −0.2766 − 2.8210 1.6828
𝑈1=1 − 𝑒− 𝑈𝑛𝑒𝑡 1
1 + 𝑒− 𝑈𝑛𝑒𝑡 1 =1 − 𝑒− −0.2766 −2.8210 1.6828
1 + 𝑒− −0.2766 −2.8210 1.6828
= −0.1374 − 0.8876 0.6865
𝑇_𝑛𝑒𝑡
1=
𝑥𝑖𝑤𝑖𝑘(𝑠) + 𝑢𝑘𝑤𝑗𝑘+ 𝑏𝑘3
𝑘=1 3
𝑗=1 3
𝑘=1 7
𝑖=1
= 𝑈_𝑛𝑒𝑡
1+
𝑢𝑘𝑤𝑗𝑘3
𝑘=1 3
𝑗=1
= −0.2766 … 1.6828 + −0.1374 … 0.6865
−0,0902 −0,1482 0,0812
−0,3062 0,3311 −0,3132 0,2370 0,2459 0,4801
=
0.1703 − 2.9257 2.279362
𝑇1=1 − 𝑒−(𝑇𝑛𝑒𝑡 1)1 + 𝑒−(𝑇𝑛𝑒𝑡 1)= 1 − 𝑒−(0.1703 −2.9257 2.2793)
1 + 𝑒−(0.1703 −2.9257 2.2793 )= 0.0850 … 0.8143
Perhitungan nilai 𝑦
𝑡𝑠untuk s=1
𝑌
120,1=
𝑣𝑘(1)𝑇𝑘3
𝑘=1
+
𝑏0,1= −0,5016 … 0,300 0.0850 − 0.8982 0.8143 + 0,1907 = 0,3673 Perhitungan nilai 𝑦
𝑡𝑠untuk s=2
𝑌
120,2=
𝑣𝑘(2)𝑇𝑘3
𝑘=1
+
𝑏0,2= 0,5018 … − 0,2656 0.6921 − 0.0383 − 0.0005 + 0,4603 = 0,8220 Perhitungan nilai 𝑦
𝑡𝑠untuk s=3
𝑌
120,3=
𝑣𝑘(3)𝑇𝑘3
𝑘=1
+
𝑏0,3= −0,0001 … − 0,0344 0.7035 0.1623 − 0.5208 + 0,3488 = 0,5148 Diperoleh nilai 𝑌
120,𝑠=[ 0,3673 0,82201 0,4225].
e. Defuzzifikasi
Metode defuzzifikasi digunakan pada skripsi ini adalah Largest of Maximum Defuzzifier. Solusi crisp dari metode ini diperoleh dengan mengambil nilai terbesar dari domain yang memiliki derajat keanggotaan maksimum. (subab 2.C)
Misal hasil prediksi pada bulan Juli 2017 adalah 𝑌
120,𝑆= [ 0,3673 0,8220
0,4225], kemudian diambil nilai maksimumnya, yaitu 0,8220. Nilai 0,8220 berada
di s = 2, sehingga terletak pada himpunan fuzzy kedua yaitu 𝐴
2.Fungsi
keanggotaan pada himpunan 𝐴
2adalah
63 𝜇
𝐴2(𝑥) =
0 𝑥 ≤ 25 𝑎𝑡𝑎𝑢 𝑥 ≥ 150 𝑥 − 25
87,5 − 25 25 < 𝑥 ≤ 87,5 150 − 𝑥
150 − 87,5 87,5 < 𝑥 ≤ 150
Didapatkan nilai crisp pada prediksi harga minyak mentah di Indonesia pada Juli 2017 dengan mensubstitusikan nilai 0,8220 pada fungsi tersebut sebagai berikut.
𝜇
𝑇𝑎𝑟𝑔𝑒𝑡=
87,5−25𝑥−25𝜇
𝑇𝑎𝑟𝑔𝑒𝑡=
150−87,5150−𝑥0,8220 =
𝑥−2587,5−25
0,8220 =
150−𝑥150−87,5
𝑥 = 76,3745 𝑥 = 98,6255
Terdapat 2 nilai crisp dari hasil defuzzifikasi. Pada skripsi ini teknik defuzzifikasi yang digunakan adalah Largest of Maximum Defuzzifier. Dari kedua nilai tersebut yang diambil adalah nilai maksimum yaitu 98,6255. Maka nilai peramalan untuk harga minyak mentah di Indonesia pada bulan Juli 2017 adalah 98,6255 US/brl.
Untuk nilai peramalan harga minyak mentah di Indonesia pada bulan Agustus 2017 s.d. Desember 2017 tersaji pada Tabel 3.5
Tabel 3.7 Hasil data peramalan pada bulan Agustus 2017 s.d. bulan Desember 2017 dengan FERNN
Bulan Data Peramalan (US/brl)
Agustus 2017 95,4149
September 2017 102,3000
Oktober 2017 107,0078
November 2017 110,2885
Desember 2017 111,4091
64 f. Uji Kesesuaian Model
Setelah memperoleh model terbaik dengan 7 input ,3 neuron pada lapisan tersembunyi dan 1 neuron pada lapisan output, langkah selanjutnya adalah pengecekan error pada model tersebut. Plot ACF dan PACF dari residual data training dan testing ditunjukkan pada Gambar 3.4 sampai Gambar 3.7 .
Gambar 3.4 Plot ACF residual data training
Gambar 3.5 Plot PACF residual data training
22 20 18 16 14 12 10 8 6 4 2 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Autocorrelation
Autocorrelation Function for Residual FERNN Data Training (with 5% significance limits for the autocorrelations)
22 20 18 16 14 12 10 8 6 4 2 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Partial Autocorrelation
Partial Autocorrelation Function for Residual FERNN Data Training (with 5% significance limits for the partial autocorrelations)
65
Gambar 3.6 Plot ACF residual data testing
Gambar 3.7 Plot PACF residual data testing
Dari plot di atas menunjukkan bahwa tidak ada lag yang melebihi garis kepercayaan. Dengan kata lain tidak ada lag yang signifikan yang artinya error bersifat acak atau white noise terpenuhi. Oleh karena itu, model FERNN dengan arsitektur jaringan 7 variabel input, 3 neuron pada lapisan tersembunyi dan 1 neuron pada lapisan output dapat digunakan untuk meramalkan harga minyak mentah di Indonesia.
7 6
5 4
3 2
1 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Autocorrelation
Autocorrelation Function for Residual FERNN Data Testing (with 5% significance limits for the autocorrelations)
7 6
5 4
3 2
1 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Partial Autocorrelation
Partial Autocorrelation Function for Residual FERNN Data Testing (with 5% significance limits for the partial autocorrelations)
66
2. FERNN Menggunakan Fungsi Keanggotaan Kurva-S Pertumbuhan Sebagai perbandingan, penulis juga melakukan pengujian dengan model FERNN menggunakan fuzzifikasi berupa himpunan fuzzy kurva-S pertumbuhan dan metode defuzzifikasi smallest of maximum. Fungsi keanggotaan kurva-S pertumbuhan sebagai berikut:
𝜇
𝑆𝑥 =
0 𝑥 ≤ 27 2 𝑥 − 27
135 − 27
2
27 < 𝑥 ≤ 81 1 − 2 135 − 𝑥
135 − 27
2
81 < 𝑥 ≤ 135 1 𝑥 ≥ 135
(3.5)
Nilai MAPE hasil perhitungan model FERNN menggunakan fungsi keanggotaan segitiga dan kurva-S pertumbuhan terlihat pada Tabel 3.8.
Tabel 3.8 Perbandingan hasil MAPE model FERNN dengan fungsi keanggotaan segitiga dan kurva-S pertumbuhan
Model
Nilai MAPETraining Testing FERNN dengan fungsi keanggotaan segitiga 16,2296 15,3638 FERNN dengan fungsi keanggotaan kurva-S
pertumbuhan
13,8863 12,3609
Dari tabel 3.8 terlihat bahwa error yang dihasilkan (nilai MAPE) > target
error yang digunakan, sehingga bobot-bobot yang diperoleh belum tentu
merupakan bobot yang optimal untuk peramalan harga minyak mentah di
Indonesia. Dengan demikian bobot-bobot perlu dioptimasi dengan Algoritma
Genetika.
67
B. Optimasi Model FERNN dengan Algoritma Genetika
Tujuan optimasi ini adalah untuk memperoleh bobot yang menghasilkan error lebih kecil pada model FERNN. Adapun langkah yang harus dilakukan dalam optimasi model Fuzzy Elman Recurrent Neural Network sebagai berikut.
a. Penyandian Gen (Pengkodean)
Pada skripsi ini gen merepresentasikan nilai bobot akhir pada model FERNN. Seperti yang sudah dijelaskan pada bab II, pada skripsi ini teknik pengkodean yang digunakan adalah pengkodean nilai real. Sehingga nilai pada gen merupakan nilai asli dari bobot-bobot akhir model FERNN. Bobot –bobot akhir model FERNN antara lain bobot akhir input, bobot akhir bias input, bobot akhir delay, bobot akhir bias lapisan, bobot akhir lapisan. Susunan bobot-bobot dalam gen dapat
dilihat pada tabel 3.9.Tabel 3.9 Susunan bobot-bobot dalam gen
Gen 1 2 3 4 ⋯ 66 67 ⋯ 75
Bobot
𝑏
1𝑏
2𝑏
3𝑤
1,1 ⋯𝑤
3,21𝑤
1,1(𝑑) ⋯𝑤
3,3(𝑑)Gen 76 ⋯ 78 ⋯ 82 ⋯ 84 85 ⋯ 87
Bobot
𝑣
1,1 ⋯𝑣
3,1 ⋯𝑣
1,3 ⋯𝑣
3,3𝑏
0,1 ⋯𝑏
0,3b. Membangkitkan Populasi Awal (Spanning)
Proses membangkitkan populasi awal pada penelitian ini menggunakan teknik random generator yang dikombinasikan dengan pendekatan nilai tertentu.
Satu individu terdapat 87 gen yang berisi gen 1 sampai gen 87 yang terbentuk dari bobot-bobot akhir yang diperoleh dalam FERNN.
Dalam membangkitkan populasi awal, ditetapkan ukuran populasi dengan
cara melakukan trial and error pada algoritma genetika. Trial and error ini
dicoba dengan beberapa ukuran populasi dan banyaknya generasi (iterasi dalam
68
algoritma genetika). Nilai fitness tertinggi yang diperoleh kemudian digunakan untuk menetapkan ukuran populasi dan banyak generasi. Hasil yang diperoleh dengan nilai fitness terbaik ditetapkan ukuran populasi sebanyak 20 dan generasi sebanyak 150.
Pembangkitan populasi awal ini dilakukan secara acak dengan menggunakan bantuan software Matlab R2013a. Pada individu 1 berupa nilai bobot yang telah diperoleh dalam FERNN. Hasil pembangkitan populasi awal tersaji dalam Lampiran 9.
Individu 1:
1,9910 0,4709 -0,9349 -2,7027 -2,7297 0,8728 -0,3813 -2,0381 0,2389 2,1613 2,4944 1,0425 -0,8935 -0,3707 -0,0684 -0,0394 0,3250 0,8319 0,9345 -1,4548 0,5428 0,0302 -0,5552 -0,5436 -0,8809 0,2810 -0,3279 -1,6428 0,1909 0,6085 1,1807 -1,0618 0,9474 0,3769 0,4717 0,3349 -0,4154 0,1444 -0,8083 -1,1851 0,2080 0,3803 0,1601 0,5094 0,1004 -0,2039 0,6591 -0,4883 0,8402 0,1148 0,8985 -0,1794 -0,3495 1,3514 -0,1798 -0,2820 1,2296 -0,5507 -0,2668 1,2818 0,2103 -0,3846 0,1955 -0,7392 -0,6843 -0,9027 -0,0902 -0,3062 0,2370 -0,1482 0,3311 0,2459
0,0812 -0,3132 0,4801 -0,5016 0,5018 -0,0002 0,0280 -0,3718 0,3438 0,3000 -0,2656 -0,0345 0,1908 0,4603 0,3489
c. Evaluasi nilai Fitnes (Fitnes Value)
Tujuan dari algoritma genetika adalah mencari individu dengan nilai fitness yang tinggi. Evaluasi nilai fitness berfungsi untuk mengukur kualitas dari sebuah solusi dan mendapatkan bobot yang optimal. Bobot yang bagus ditunjukkan dengan nilai error yang kecil. Nilai fitness pada penelitian ini dapat dihitung menggunakan persamaan (2.50) yaitu
𝑓 = 1
𝑥 + 𝛼 (3.6)
69
Dengan 𝑌
𝑡,𝑠diperoleh dari persamaan (3.4) dengan s=1,2,3 yaitu
𝑌
𝑡,𝑠= 𝑣
𝑘(𝑠)1−𝑒𝑥𝑝 − 𝑥𝑖𝑤𝑖𝑘(𝑠)+ 𝑢𝑘𝑤𝑗𝑘+𝑏𝑘3𝑘=1 3𝑗=1 3𝑘=1
7𝑖=1
1+𝑒𝑥𝑝 − 7𝑖=1 3𝑘=1𝑥𝑖𝑤𝑖𝑘(𝑠)+ 3𝑗=1 3𝑘=1𝑢𝑘𝑤𝑗𝑘+𝑏𝑘
+𝑏
0,𝑠3𝑘=1
(3.7)
Keterangan
𝑌
𝑡𝑠= nilai prediksi ke-t pada FERNN
𝑥
𝑖= variabel input pada FERNN data training, i=1,2,...7 𝑤
𝑖𝑘(s)= bobot lapisan input ke lapisan tersembunyi
𝑤
𝑗𝑘= bobot lapisan tambahan ke lapisan tersembunyi 𝑏
𝑘= bobot bias lapisan input ke lapisan tersembunyi 𝑣
𝑘(s)= bobot lapisan lapisan tersembunyi ke lapisan output 𝑏
0,𝑠= bobot bias lapisan tersembunyi ke lapisan output
Dengan persamaan (3.7) diperoleh nilai fitness setiap individu pada populasi awal yang disajikan pada tabel 3.10.
Tabel 3.10 Nilai fitness pada populasi awal
Individu Nilai Fitness Individu Nilai Fitness Individu Nilai Fitness
1 0,02489 8 0,02753 15 0,05793
2 0,03651 9 0,04888 16 0,05110
3 0,01447 10 0,03431 17 0,04767
4 0,01876 11 0,01444 18 0,05190
5 0,03124 12 0,03897 19 0,05198
6 0,04670 13 0,03478 20 0,05211
7 0,02892 14 0,05008
d. Elitism
Tahap selanjutnya adalah tahap Elitism, pada tahap ini individu dengan nilai
fitness terbaik akan disimpan atau dipertahankan. Nilai fitness terbaik perlu
dipertahankan karena proses seleksi dilakukan secara acak sehingga tidak ada
70
jaminan bahwa individu dengan fitness terbaik akan selalu terpilih. Walaupun
terpilih,nilai fitness tersebut dapat rusak akibat pindah silang dan mutasi.
Sehingga individu pertama dipertahankan di generasi ke 2.
e. Seleksi (selection)
Pada penelitian ini teknik seleksi yang digunakan adalah seleksi rangking Pada populasi awal dilakukan seleksi ranking sebagai berikut.
1) Menghitung nilai fitness setiap individu pada populasi awal dan diurutkan dari nilai terkecil. Nilai fitness yang digunakan terdapat pada Tabel 3.10 dan hasil pengurutan aterdapat pada Tabel 3.11.
Tabel 3.11 Urutan nilai fitness
Ranking Individu Nilai Fitness Ranking Individu Nilai Fitness
4
1 0,024891
11 0,0144410
2 0,0365111
12 0,038972
3 0,014479
13 0,034783
4 0,0187615
14 0,050087
5 0,0312420
15 0,0579312
6 0,0467016
16 0,051106
7 0,0289213
17 0,047675
8 0,0275317
18 0,0519014
9 0,0488818
19 0,051988
10 0,0343119
20 0,052112) Setelah diurutkan, individu terburuk (individu 11) diberi nilai fitness baru
sebesar 1, dan seterusnya. Individu terbaik diberi nilai fitness baru sebesar n
dimana n adalah banyak individu dalam suatu populasi. Sehingga nilai fitness
yang baru dapat dilihat pada Tabel 3.12.
71
Tabel 3.12 Nilai fitness sesuai rangking
Individu
Nilai Fitness lama
Nilai Fitness
baru Individu
Nilai Fitness
lama
Nilai Fitness baru
11 0,01444 1 12 0,03897 11
3 0,01447 2 6 0,04670 12
4 0,01876 3 17 0,04767 13
1 0,02489 4 9 0,04888 14
8 0,02753 5 14 0,05008 15
7 0,02892 6 16 0,05110 16
5 0,03124 7 18 0,05190 17
10 0,03431 8 19 0,05198 18
13 0,03478 9 20 0,05211 19
2 0,03651 10 15 0,05793 20
3) Dengan menjumlahkan semua nilai fitness pada Tabel 3.9 diperoleh total nilai fitness sebesar 210.
4) Dihitung probabilitas masing-masing nilai fitness dengan membagi setiap nilai fitness pada Tabel 3.12 dengan total nilai fitnessnya. Probabilitas masing-masing fitness dan probabilitas kumulatifnya dapat dilihat pada Tabel 3.13.
Tabel 3.13 Probabilitas nilai fitness Individu Probabilitas Probabilitas Kumulatif
11
6,88E-05 6,87619E-05
36,89E-05 0,000137667
48,93E-05 0,000227
10,000119 0,000345524
80,000131 0,000476619
70,000138 0,000614333
50,000149 0,000763095
100,000163 0,000926476
130,000166 0,001092095
20,000174 0,001265952
120,000186 0,001451524
60,000222 0,001673905
170,000227 0,001900905
90,000233 0,002133667
72
Individu Probabilitas Probabilitas Kumulatif
140,000238 0,002372143
16
0,000243 0,002615476
180,000247 0,002862619
190,000248 0,003110143
200,000248 0,003358286
150,000276 0,003634143
5) Setelah itu membangkitkan dua buah nilai random pada interval [0 1].
Dengan bantuan MATLAB R2013a diperoleh nilai random 0,02303 dan 0,03326. Pada frekuensi kumulatif, nilai 0,02303 terletak pada individu ke 14, dan nilai 0,03326 terletak pada individu ke 20. Sehingga individu ke 14 dan ke 20 terpilih untuk menjadi induk yang akan digunakan pada proses pindah silang.
f. Pindah Silang (Cross Over)
Pindah silang merupakan salah satu operator dalam algoritma genetika yang berfungsi untuk membentuk kromosom baru dari dua buah kromosom induk melalui proses penukaran gen yang bersesuaian. Pindah silang dilakukan pada induk yang telah terseleksi sehingga diperoleh keturunan baru (anak).
Nilai probability crossover (Pc) yang digunakan pada penelitian ini adalah
0,80. Untuk menentukan apakah terjadi pindah silang atau tidak, dibangkitkan
nilai probabilitas induk dengan menggunakan MATLAB R2013a diperoleh
bilangan acak untuk nilai probabilitas induk sebesar 0,095. Sehingga pindah
silang pada induk dapat terjadi. Selanjutnya dibangkitkan bilangan acak pada
rentang [0,1] untuk nilai r, dengan MATLAB R2013a diperoleh nilai sebesar
0,6805. Untuk menentukan posisi gen yang akan dipindah silangkan dibangkitkan
73
2 nilai acak diperoleh nilai 13 dan 16, sehingga gen ke-13 sampai gen ke-16 akan dipindah silangkan. Berikut proses pindah silang yang terjadi:
Induk 1 (individu ke-14)
-2,1762 1,9726 -1,3134 -0,7354 0,5731 -0,5273 -0,3077 -0,8232 2,1690 -0,5470 -0,3552 2,2900 -0,5113 -0,4259 -0,7066 -0,2916 -1,9002 0,4050 0,3021 -0,4392 0,3134 0,8654 -0,5425 0,4730 1,5819 -0,6501 -1,2328 -0,2124 -1,3414 -0,6367 0,1626 -1,2136 -0,9485 -0,0813 1,7146 0,5324 -0,8672 0,0873 -0,3221 -0,1081 -0,1429 -0,8076 -1,0939 -0,6953 0,6351 -0,8996 0,3562 0,7287 -0,2824 0,5894 0,3039 1,2385 0,1300 0,1896 0,8842 0,1631 1,8112 -1,2339 -0,5988 0,4236 -0,6673 -0,2741 -2,3855 -0,6813 0,3890 -0,1108 0,2645 0,7229 -0,3701 0,7566 -0,2460 0,2424 -1,4725 0,9681 -2,8331 -0,0344 0,7696 1,4235 0,0666 0,5982 -1,1586 -0,2320 0,4668 -0,4529 -1,7989 0,7869 -0,7366
Induk 2 (individu ke-20)
-0,9577 -0,0117 -0,5422 0,8537 0,2896 -2,2634 0,4453 0,1435 -0,0372 -2,5181 0,7824 0,5412 -1,8169 0,0640 1,4255 -1,5386 0,0741 1,7027 2,8657 -0,5201 -0,2301 -0,3511 0,2956 -0,2068 2,2152 0,3145 -0,4046 0,6758 -1,1710 -0,0923 -0,6683 0,1165 -0,1726 0,8917 0,6833 1,2716 1,5615 1,0988 0,8134 0,2812 -0,6432 1,1240 1,7611 -0,3945 1,0296 -2,0032 0,9602 0,3482 -0,1475 0,6927 -0,0248 0,0638 -0,9524 -1,1253 0,3670 -0,3338 -0,1912 1,9658 1,8263 -0,1085 -0,6939 -1,6433 -1,6021 -1,9170 0,5436 -0,6436 -0,4551 -1,4415 0,5119 0,2426 0,4062 -0,6772 0,7687 2,4277 -0,9361 0,8316 -0,1965 -0,1563 0,1800 -0,3010 1,1183 0,7863 -0,6253 1,1178 0,4707 0,5784 -0,9896
Dengan persamaan 2.51 dan 2.52 diperoleh nilai gen ke 13 sampai 16 dari anak 1 dan 2 sebagai berikut:
𝑢
1′13 = 𝑟 ∙ 𝑢
113 + 1 − 𝑟 ∙ 𝑢
213
𝑢
1′13 = 0,6805 ∙ −0,5113 + 1 − 0,6805 ∙ (−1,8169) = −0,92844 𝑢
2′13 = 𝑟 ∙ 𝑢
213 + 1 − 𝑟 ∙ 𝑢
113
𝑢
2′13 = 0,6805 ∙ −1,8169 + 1 − 0,6805 ∙ (−0,5113) = −1,39976
74
Untuk pehitungan nilai 𝑢
1′14 dan 𝑢
2′14 hingga 𝑢
1′16 dan 𝑢
2′16 dilakukan secara analog, sehingga diperoleh
Anak 1
-2,1762 1,9726 -1,3134 -0,7354 0,5731 -0,5273 -0,3077 -0,8232 2,1690 -0,5470 -0,3552 2,2900 -0,9284 -0,2694 -0,0254 -0,6900 -1,9002 0,4050 0,3021 -0,4392 0,3134 0,8654 -0,5425 0,4730 1,5819 -0,6501 -1,2328 -0,2124 -1,3414 -0,6367 0,1626 -1,2136 -0,9485 -0,0813 1,7146 0,5324 -0,8672 0,0873 -0,3221 -0,1081 -0,1429 -0,8076 -1,0939 -0,6953 0,6351 -0,8996 0,3562 0,7287 -0,2824 0,5894 0,3039 1,2385 0,1300 0,1896 0,8842 0,1631 1,8112 -1,2339 -0,5988 0,4236 -0,6673 -0,2741 -2,3855 -0,6813 0,3890 -0,1108 0,2645 0,7229 -0,3701 0,7566 -0,2460 0,2424 -1,4725 0,9681 -2,8331 -0,0344 0,7696 1,4235 0,0666 0,5982 -1,1586 -0,2320 0,4668 -0,4529 -1,7989 0,7869 -0,7366
Anak 2
-0,9577 -0,0117 -0,5422 0,8537 0,2896 -2,2634 0,4453 0,1435 -0,0372 -2,5181 0,7824 0,5412 -1,3998 -0,0925 0,7443 -1,1402 0,0741 1,7027 2,8657 -0,5201 -0,2301 -0,3511 0,2956 -0,2068 2,2152 0,3145 -0,4046 0,6758 -1,1710 -0,0923 -0,6683 0,1165 -0,1726 0,8917 0,6833 1,2716 1,5615 1,0988 0,8134 0,2812 -0,6432 1,1240 1,7611 -0,3945 1,0296 -2,0032 0,9602 0,3482 -0,1475 0,6927 -0,0248 0,0638 -0,9524 -1,1253 0,3670 -0,3338 -0,1912 1,9658 1,8263 -0,1085 -0,6939 -1,6433 -1,6021 -1,9170 0,5436 -0,6436 -0,4551 -1,4415 0,5119 0,2426 0,4062 -0,6772 0,7687 2,4277 -0,9361 0,8316 -0,1965 -0,1563 0,1800 -0,3010 1,1183 0,7863 -0,6253 1,1178 0,4707 0,5784 -0,9896
g. Mutasi
Mutasi merupakan salah satu operator dalam algoritma genetika yang
dilakukan pada kromosom dan bertujuan untuk memperoleh kromosom-
kromosom baru. Pada penelitian ini teknik mutasi yang digunakan adalah random
mutation yaitu mengganti nilai gen dengan bilangan random. Pada penelitian ini
digunakan nilai probabilitas mutasi sebesar 0,02. Dengan nilai acak diperoleh
probabilitas mutasi individu sebesar 0,0014 untuk anak 1 dan 0,012 untuk anak 2.
75
Pada interval [1, 87] dibangkitkan nilai acak, dan diperoleh nilai 3 untuk anak 1 dan 87 untuk anak 2. Gen ke-3 pada anak 1 dan gen ke-87 pada anak 2 akan dimutasi dengan mengganti nilai gen tersebut dengan nilai acak. Dengan bantuan MATLAB R2013a diperoleh nilai acak untuk gen ke-3 pada anak ke 1 adalah 0,9380 dan gen ke 87 pada anak ke 2 adalah 1,9498. Individu anak yang terbentuk adalah
Anak 1
-2,1762 1,9726 0,9380 -0,7354 0,5731 -0,5273 -0,3077 -0,8232 2,1690 -0,5470 -0,3552 2,2900 -0,9284 -0,2694 -0,0254 -0,6900 -1,9002 0,4050 0,3021 -0,4392 0,3134 0,8654 -0,5425 0,4730 1,5819 -0,6501 -1,2328 -0,2124 -1,3414 -0,6367 0,1626 -1,2136 -0,9485 -0,0813 1,7146 0,5324 -0,8672 0,0873 -0,3221 -0,1081 -0,1429 -0,8076 -1,0939 -0,6953 0,6351 -0,8996 0,3562 0,7287 -0,2824 0,5894 0,3039 1,2385 0,1300 0,1896 0,8842 0,1631 1,8112 -1,2339 -0,5988 0,4236 -0,6673 -0,2741 -2,3855 -0,6813 0,3890 -0,1108 0,2645 0,7229 -0,3701 0,7566 -0,2460 0,2424 -1,4725 0,9681 -2,8331 -0,0344 0,7696 1,4235 0,0666 0,5982 -1,1586 -0,2320 0,4668 -0,4529 -1,7989 0,7869 -0,7366
Anak 2
-0,9577 -0,0117 -0,5422 0,8537 0,2896 -2,2634 0,4453 0,1435 -0,0372 -2,5181 0,7824 0,5412 -1,3998 -0,0925 0,7443 -1,1402 0,0741 1,7027 2,8657 -0,5201 -0,2301 -0,3511 0,2956 -0,2068 2,2152 0,3145 -0,4046 0,6758 -1,1710 -0,0923 -0,6683 0,1165 -0,1726 0,8917 0,6833 1,2716 1,5615 1,0988 0,8134 0,2812 -0,6432 1,1240 1,7611 -0,3945 1,0296 -2,0032 0,9602 0,3482 -0,1475 0,6927 -0,0248 0,0638 -0,9524 -1,1253 0,3670 -0,3338 -0,1912 1,9658 1,8263 -0,1085 -0,6939 -1,6433 -1,6021 -1,9170 0,5436 -0,6436 -0,4551 -1,4415 0,5119 0,2426 0,4062 -0,6772 0,7687 2,4277 -0,9361 0,8316 -0,1965 -0,1563 0,1800 -0,3010 1,1183 0,7863 -0,6253 1,1178 0,4707 0,5784 1,9498
76 h. Pembentukan Populasi Baru
Setelah langkah-langkah diatas dilakukan, selanjutnya adalah membentuk populasi di generasi selanjutnya. Individu terbaik dengan nilai fitness tertinggi pada populasi awal dibawa ke langkah selanjutnya, proses ini dinamakan proses elitisme. Berikut hasil percobaan yang dilakukan dapat dilihat pada Tabel 3.14.
Tabel 3.14 Hasil percobaan algoritma genetika Percobaan
ke
Ukuran populasi
Jumlah generasi
Nilai fitness
1 10 50 0,06747
2 10 100 0,06853
3 10 150 0,07148
4 20 50 0,07167
5 20 100 0,07148
6 20 150 0,07201
7 30 50 0,07032
8 30 100 0,07156
9 30 150 0,07155
10 40 50 0,07166
Grafik hasil percobaan dengan MATLAB R2013a dapat dilihat pada Gambar 3.8.
Gambar 3.8 Grafik hasil percobaan algoritma genetika
Program MATLAB yang digunakan dapat dilihat pada lampiran 10. Untuk
populasi akhir dapat dilihat pada lampiran 11. Nilai bobot hasil optimasi algoritma
77
genetika dapat dilihat pada lampiran 12. Bobot tersebut kemudian digunakan untuk menghitung nilai MAPE pada data training dan testing. MAPE hasil perhitungan model FERNN dengan optimasi Algoritma Genetika menggunakan fungsi keanggotaan segitiga dan kurva-S pertumbuhan terlihat pada Tabel 3.15.
Tabel 3.15 Perbandingan hasil MAPE model FERNN dengan optimasi Algoritma Genetika menggunakan fungsi keanggotaan segitiga dan kurva-S pertumbuhan
Model
Nilai MAPETraining Testing FERNN dengan optimasi Algoritma Genetika
menggunakan fungsi keanggotaan segitiga
8,3237 43,0113 FERNN dengan optimasi Algoritma Genetika
menggunakan fungsi keanggotaan kurva-S pertumbuhan
6,9498 6,9642
Dari tabel 3.8 dan 3.15 terlihat bahwa FERNN dengan himpunan fuzzy kurva-S pertumbuhan optimasi Algoritma Genetika menghasilkan nilai MAPE yang lebih kecil untuk data training maupun testing.
Selanjutnya error hasil peramalan akan diuji apakah telah white noise atau
belum. Pengujian ini dilakukan dengan melihat plot ACF dan PACF dari error
yang dihasilkan dari model FERNN yang telah dioptimasi dengan Algoritma
Genetika pada data training dan testing. Plot ACF dan PACF dari error tersebut
tersaji pada Gambar 3.9 sampai Gambar 3.12.
78
Gambar 3.9 Plot ACF dari error data training model FERNN yang telah dioptimasi dengan Algoritma Genetika
Gambar 3.10 Plot PACF dari error data training model FERNN yang telah dioptimasi dengan Algoritma Genetika
Gambar 3.11 Plot ACF dari error data testing model FERNN yang telah dioptimasi dengan Algoritma Genetika
22 20 18 16 14 12 10 8 6 4 2 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Autocorrelation
ACF for residual data training model FERNN Algen kurva-S pertumbuhan (with 5% significance limits for the autocorrelations)
22 20 18 16 14 12 10 8 6 4 2 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Partial Autocorrelation
PACF for residual data training model FERNN Algen kurva-S pertumbuhan (with 5% significance limits for the partial autocorrelations)
7 6 5 4 3 2 1 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Autocorrelation
ACF for residual data testing model FERNN Algen kurva-S pertumbuhan (with 5% significance limits for the autocorrelations)
79
Gambar 3.12 Plot PACF dari error data testing model FERNN yang telah dioptimasi dengan Algoritma Genetika
Dari gambar-gambar diatas, plot ACF dan PACF terlihat bahwa semua lag berada dalam selang kepercayaan, berarti error bersifat acak atau random.
Sehingga model FERNN yang telah dioptimasi Algoritma Genetika dengan fungsi keanggotaan kurva-S pertumbuhan digunakan sebagai model peramalan harga minyak mentah di Indonesia (ICP). Berikut plot data aktual dan hasil peramalan harga minyak mentah di Indonesia untuk data training dan data testing.
Gambar 3.13 Plot data aktual dan peramalan data training
7 6 5 4 3 2 1 1,0 0,8 0,6 0,4 0,2 0,0 -0,2 -0,4 -0,6 -0,8 -1,0
Lag
Partial Autocorrelation
PACF for residual data testing model FERNN Algen kurva-S pertumbuhan (with 5% significance limits for the partial autocorrelations)
81 72 63 54 45 36 27 18 9 1 110 100 90 80 70 60 50 40 30
Index
Data
data aktual training data peramalan training Variable
Time Series Plot of data aktual training; data peramalan training
80
Gambar 3.14 Plot data aktual dan peramalan data testing
Dari gambar 3.13 dan 3.14 menunjukkan bahwa data aktual dan data hasil peramalan untuk data training saling berdekatan dan pada data testing hanya beberapa yang saling berdekatan. Berdasarkan error yang dihasilkan, nilai MAPE training sebesar 6,9498% dan nilai MAPE testing sebesar 6,9642%. Dengan demikian dapat dikatakan bahwa model yang terbentuk sudah sesuai dan dapat digunakan untuk peramalan harga minyak mentah di Indonesia.
C. Peramalan Harga Minyak Mentah di Indonesia
Setelah diperoleh model FERNN dan bobot yang dioptimasi, kemudian dilakukan peramalan harga minyak mentah di Indonesia untuk periode Juli- Desember 2017. Nilai input yang digunakan untuk peramalan periode Juli 2017 adalah data bulan Desember 2016 – Juni 2017. Nilai input kemudian difuzzifikasi sehingga diperoleh nilai seperti pada Tabel 3.6 pada subbab A. Setelah diperoleh nilai input maka proses peramalan dilakukan dengan menggunakan model FERNN seperti pada contoh 3.1 pada subbab A dan bobot yang dioptimasi. Hasil peramalan disajikan pada Tabel 3.16.
27 24 21 18 15 12 9 6 3 65 60 55 50 45 40 35 30
Index
Harga minyak mentah di Indonesia data aktual
data peramalan Variable
Time Series Plot of data aktual; data peramalan