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.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 50
Autocorrelation digunakan dalam membangun model. Plot ACF diperoleh menggunakan software MINITAB. Gambar.1 menunjukan plot ACF harga minyak mentah di Indonesia. Autocorrelation Function for ICP (US/brl) (with 5% significance limits for the autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 2 4 6 8 10 12 14 16 18 Lag 20 22 24 26 28 0 2 Gambar.1 Plot ACF ICP periode Januari 2007 sampai Juni 2017 Berdasarkan plot diatas dapat dilihat bahwa tujuh lag yang signifikan, yaitu lag 1, lag 2, lag, lag 4, lag 5 lag 6 dan lag 7. Model yang akan dibangun menggunakan 7 variabel input yaitu x 1 = y t 1, x 2 = y t 2, x = y t, x 4 = y t 4, x 5 = y t 5, x 6 = y t 6 danx 7 = y t 7 dengan target y t. 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. 51
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.1. Tabel.1 Himpunan fuzzy dan domain Himpunan fuzzy Domain A 1 [-7.5 87.5] A 2 [ 25 150] A [87.5 212.5] Dengan bantuan MATLAB R201a diperoleh grafik keanggotaan himpunan fuzzy seperti pada Gambar.2. 52
Gambar.2 Grafik keanggotaan himpunan fuzzy A 1 hingga A Dari gambar.2 diperoleh tiga himpunan yaitu A 1 = 7,5 87,5, A 2 = 25 150, dan A = 87,5 212,5. Fungsi keanggotaannya adalah sebagai berikut : μ A1 (x) = 0 x 7,5 atau x 87,5 x+7,5 25+7,5 87,5 x 87,5 25 7,5 < x 25 25 < x 87,5 (.1) μ A2 (x) = 0 x 25 atau x 150 25 < x 87,5 x 25 87,5 25 150 x 150 87,5 87,5 < x 150 (.2) μ A (x) = 0 x 87,5 atau x 212,5 x 87,5 150 87,5 87,5 x 212,5 150 87,5 < x 150 150 < x 212,5 (.) Untuk memperoleh nilai dalam derajat keanggotaan himpunan fuzzy maka setiap variabel input disubtitusikan ke persamaan fungsi keanggotaannya masingmasing. 5
Contoh.1 Misal nilai variabel X 1 pada data pengamatan ke-2 data training sebesar 72,2 selanjutnya nilai tersebut disubsitusikan ke persamaan (.1), (.2), dan (.). Pada himpunan A 1, nilai 72,2 berada pada 25 < x 87,5 maka μ A1 72,2 = 87,5 72,2 87,5 25 = 0,2428 Pada himpunan A 2, nilai 72,2 berada pada 25 < x 87,5 maka μ A2 72,2 = 72,2 25 87,5 25 = 0,7571 Pada himpunan A, nilai 72,2 berada pada x 87,5 maka μ 1 72,2 = 0 Diperoleh derajat keanggotaan 72,2 pada himpunan fuzzy A 1 sebesar 0,2428, pada himpunan fuzzy A 2 sebesar 0,7571, dan pada himpunan fuzzy A sebesar 0. Hal ini dilakukan hingga diperoleh derajat keanggotaan dari semua vektor data input yaitu X 2, X, X 4, X 5, X 6 dan X 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 R201a dapat dilakukan menggunakan perintah trimf. Script lengkap untuk fuzzifikasi dengan MATLAB R201a 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. 54
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 R201a 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 R201a 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.2. 55
Tabel.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 teknik defuzzifikasi yaitu Smallest of maximum (Min), Largest of maximum(max) dan Mean of maximum (Mean). Pencarian banyak neuron menggunakan bantuan MATLAB R201a, script program yang digunakan dapat dilihat pada Lampiran 7. Data percobaan yang dilakukan diperoleh hasil MAPE data training dan testing seperti pada tabel.. Tabel. Hasil MAPE Model FERNN Neuron Nilai MAPE Training Testing Min Max Mean Min Max Mean 1 89,4485 16,68 52,9062 5,5440 144,907 99,274 2 115,0 0,165 72,7492 92,8077 16,2296 54,5187 * 92,8077 16,2296 54,5187 89,4485 15,68 52,4062 4 95,1669 17,0852 56,1261 95,4189 17,1805 56,2997 5 95,4189 17,1805 56,2997 104,626 21,6575 6,1451 6 104,626 21,6575 6,1451 100,517 19,0 59,8424 7 100,517 19,0 59,8424 109,8947 25,5567 67,7257 8 109,8947 25,5567 67,7257 5,514 16,272 99,75 9 5,514 16,272 99,75 46,1165 115,58 80,774 10 46,1165 115,58 80,774 2,5557 177,274 100,442 Keterangan: *) Model terbaik Pada tabel. terlihat bahwa nilai MAPE training terkecil yaitu 16,2296 terjadi dengan menggunakan defuzzifikasi Largest of Maximum dan neuron yang digunakan sebanyak. Demikian pula nilai MAPE testing terkecil yaitu 15,68 56
terjadi dengan menggunakan defuzzifikasi Largest of Maximum dan neuron yang digunakan sebanyak. 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. ) 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 R201a. 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.4. Tabel.4 Hasil MAPE Eliminasi Model FERNN Eliminasi Training Testing X 1 27,442 167,259 X 1, X 2 15,811 127,524 X 1, X 2, X 145,576 140,25 X 1, X 2, X, X 4 19,179 129,215 X 1, X 2, X, X 4, X 5 121,875 129,854 X 2, X, X 4, X 5, X 6, X 7 184,448 184,470 -* 16,229 15,6 Keterangan: *) Model terbaik Pada tabel.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 neuron pada lapisan tersembunyi. 57
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.5. Tabel.5 Tabel MAPE Model ERNN Neuron Training Testing Neuron Training Testing 1 18,4295 114,0008 6 17,9421 11,9609 2 18,6064 11,9641 7 17,8105 11,9624 18,6098 11,9696 8 17,7974 11,9609 4 18,025 11,9609 9* 17,6904 11,964 5 18,1961 11,9610 10 17,8109 11,9619 Keterangan: *) Model terbaik Dari tabel.5 diperoleh nilai MAPE minimum yaitu 17,6904 untuk data training dan 11,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 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 58
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, neuron pada lapisan tersembunyi, dan 1 neuron pada lapisan output. Arsitektur jaringan tersebut dapat dilihat pada Gambar.. U 1 b k b 0,s U 2 w jk U T 1 y 1 μ 1,1 (X 1 ) X 1 μ 2,1 (X 1 ) T 2 y 2 Y..... μ,1 (X 1 ) μ 1,1 (X 7 ) T v ik y 2 X 7 μ 2,1 (X 7 ) w ik μ,1 (X 7 ) Gambar. Arsitektur Fuzzy Elman Recurrent Neural Network 59
Berdasarkan arsitektur diatas, secara matematis model tersebut dapat ditulis sebagai berikut: dengan 7 k=1 +b 7 0,s (.4) 1+exp i=1 k=1 x i w ik s + j =1 k=1 u ힲ w jk +b k Y ts = v k (s) 1 exp k=1 x iw ik s + j =1 k=1 u k w jk +b i=1 k Y ts x i = nilai prediksi ke-t pada FERNN dan s adalah banyak himpunan fuzzy = variabel input pada FERNN data training, i=1,2,...7 w ik (s) = bobot lapisan input ke lapisan tersembunyi, k=1,2, w jk b k v k (s) b 0,s = bobot lapisan tambahan ke lapisan tersembunyi, j=1,2, = bobot bias lapisan input ke lapisan tersembunyi = bobot lapisan lapisan tersembunyi ke lapisan output, s=1,2, = bobot bias lapisan input tersembunyi ke lapisan output Dengan bobot-bobot akhir hasil pembelajaran adalah sebagai berikut: b k = 1,9910 0,4709 0,949 v k (1) = 0,5016 0,0280 0,000 v k (2) = 0,5018 0,718 0,2656 v k () = 1,6764e 04 0,48 0,045 b 0,1 = 0,1908 b 0,2 = 0,460 b 0, = 0,489 w ik (1) = 2,7027 0,5507 2,7297 0.2668 0,8728 1,2818 w ik (2) = 0,812 0,2102 2,081 0,846 0,289 0,1954 w ik () = 2,161 0,791 2,4944 0,684 1,042 0,9026 w jk = 0,0902 0,1482 0,0812 0,062 0,11 0,12 0,270 0,2459 0,4801 Contoh.2 Misal akan dicari output jaringan pada bulan Juli 2017 atau Y 120. Nilai input untuk hasil output pada bulan Juli 2017 adalah data bulan 60
Desember 2016 Juni 2017, yang kemudian dilakukan proses fuzzifikasi seperti pada Contoh.1 pada halaman 54. Tabel.6 Nilai input untuk prediksi Juli 2017 Input Data Asli Hasil Fuzzifikasi A 1 A 2 A Y 11 51,09 0,58256 0,41744 0 Y 114 51,88 0,56992 0,4008 0 Y 115 52,50 0,56 0,44 0 Y 116 48,71 0,62064 0,796 0 Y 117 49,56 0,60704 0,9296 0 Y 118 47,09 0,64656 0,544 0 Y 119 4,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: menjadi : Bobot-bobot yang diperoleh disubstusikan kedalam persamaan model (.4) U_net 1 = 7 i=1 k=1 x i w ik (1) + b k = 0,58256 0,70144 2,7027 0,5507 2,7297 0.2668 0,8728 1,2818 + 1,9910 0,4709 0,949 = 0.2766 2.8210 1.6828 U 1 = 1 e U net 1 1 + e = 1 e 0.2766 2.8210 1.6828 U net 1 1 + e 0.2766 2.8210 1.6828 = 0.174 0.8876 0.6865 7 T_net 1 = x i w ik (s) + u k w jk + b k = U_net 1 + u k w jk i=1 k=1 j=1 k=1 j=1 k=1 = 0.2766 1.6828 + 0.174 0.6865 0,0902 0,1482 0,0812 0,062 0,11 0,12 0,270 0,2459 0,4801 = 0.170 2.9257 2.279 61
T 1 = 1 e (T net 1 ) 1 + e (T net 1 ) = 1 e (0.170 2.9257 2.279) = 0.0850 0.814 1 + e (0.170 2.9257 2.279 ) Perhitungan nilai y ts untuk s=1 Y 120,1 = v k (1)T k + b 0,1 k=1 = 0,5016 0,00 0.0850 0.8982 0.814 + 0,1907 = 0,67 Perhitungan nilai y ts untuk s=2 Y 120,2 = v k (2)T k + b 0,2 k=1 = 0,5018 0,2656 0.6921 0.08 0.0005 + 0,460 = 0,8220 Perhitungan nilai y ts untuk s= Y 120, = v k ()T k + b 0, k=1 = 0,0001 0,044 0.705 0.162 0.5208 + 0,488 = 0,5148 Diperoleh nilai Y 120,s =[ 0,67 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 Y 120,S = [ 0,67 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 A 2. Fungsi keanggotaan pada himpunan A 2 adalah 62
μ A2 (x) = 0 x 25 atau x 150 x 25 87,5 25 25 < x 87,5 150 x 150 87,5 87,5 < x 150 Didapatkan nilai crisp pada prediksi harga minyak mentah di Indonesia pada Juli 2017 dengan mensubstitusikan nilai 0,8220 pada fungsi tersebut sebagai berikut. μ Target = x 25 87,5 25 0,8220 = x 25 87,5 25 μ Target = 150 x 150 87,5 0,8220 = 150 x 150 87,5 x = 76,745 x = 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.5 Tabel.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,000 Oktober 2017 107,0078 November 2017 110,2885 Desember 2017 111,4091 6
Partial Autocorrelation Autocorrelation f. Uji Kesesuaian Model Setelah memperoleh model terbaik dengan 7 input, 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.4 sampai Gambar.7. 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 Autocorrelation Function for Residual FERNN Data Training (with 5% significance limits for the autocorrelations) 2 4 6 8 10 12 Lag 14 16 18 20 22 Gambar.4 Plot ACF residual data training Partial Autocorrelation Function for Residual FERNN Data Training (with 5% significance limits for the partial autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 2 4 6 8 10 12 14 16 18 20 Lag Gambar.5 Plot PACF residual data training 22 64
Partial Autocorrelation Autocorrelation Autocorrelation Function for Residual FERNN Data Testing (with 5% significance limits for the autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 1 2 4 5 6 Lag Gambar.6 Plot ACF residual data testing 7 Partial Autocorrelation Function for Residual FERNN Data Testing (with 5% significance limits for the partial autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 1 2 4 Lag 5 6 7 Gambar.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, neuron pada lapisan tersembunyi dan 1 neuron pada lapisan output dapat digunakan untuk meramalkan harga minyak mentah di Indonesia. 65
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: μ S x = 2 1 2 0 x 27 2 x 27 27 < x 81 15 27 2 15 x 81 < x 15 15 27 1 x 15 (.5) Nilai MAPE hasil perhitungan model FERNN menggunakan fungsi keanggotaan segitiga dan kurva-s pertumbuhan terlihat pada Tabel.8. Tabel.8 Perbandingan hasil MAPE model FERNN dengan fungsi keanggotaan segitiga dan kurva-s pertumbuhan Model Nilai MAPE Training Testing FERNN dengan fungsi keanggotaan segitiga 16,2296 15,68 FERNN dengan fungsi keanggotaan kurva-s pertumbuhan 1,886 12,609 Dari tabel.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. 66
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.9. Tabel.9 Susunan bobot-bobot dalam gen Gen 1 2 4 66 67 75 Bobot b 1 b 2 b w 1,1 w,21 w 1,1(d) w,(d) Gen 76 78 82 84 85 87 Bobot v 1,1 v,1 v 1, v, b 0,1 b 0, b. 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 67
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 R201a. 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,949-2,7027-2,7297 0,8728-0,81-2,081 0,289 2,161 2,4944 1,0425-0,895-0,707-0,0684-0,094 0,250 0,819 0,945-1,4548 0,5428 0,002-0,5552-0,546-0,8809 0,2810-0,279-1,6428 0,1909 0,6085 1,1807-1,0618 0,9474 0,769 0,4717 0,49-0,4154 0,1444-0,808-1,1851 0,2080 0,80 0,1601 0,5094 0,1004-0,209 0,6591-0,488 0,8402 0,1148 0,8985-0,1794-0,495 1,514-0,1798-0,2820 1,2296-0,5507-0,2668 1,2818 0,210-0,846 0,1955-0,792-0,684-0,9027-0,0902-0,062 0,270-0,1482 0,11 0,2459 0,0812-0,12 0,4801-0,5016 0,5018-0,0002 0,0280-0,718 0,48 0,000-0,2656-0,045 0,1908 0,460 0,489 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 f = 1 x + α 68 (.6)
Dengan Y t,s diperoleh dari persamaan (.4) dengan s=1,2, yaitu Keterangan 7 Y t,s = v k (s) 1 exp x iw ik (s)+ u k w jk +b i=1 k=1 j=1 k=1 k k=1 +b 0,s (.7) 1+exp 7 x i w ik (s)+ i=1 k=1 j=1 k=1 u k w jk +b k Y ts x i = nilai prediksi ke-t pada FERNN = variabel input pada FERNN data training, i=1,2,...7 w ik (s) = bobot lapisan input ke lapisan tersembunyi w jk b k v k (s) b 0,s = bobot lapisan tambahan ke lapisan tersembunyi = bobot bias lapisan input ke lapisan tersembunyi = bobot lapisan lapisan tersembunyi ke lapisan output = bobot bias lapisan tersembunyi ke lapisan output Dengan persamaan (.7) diperoleh nilai fitness setiap individu pada populasi awal yang disajikan pada tabel.10. Tabel.10 Nilai fitness pada populasi awal Individu Nilai Fitness Individu Nilai Fitness Individu Nilai Fitness 1 0,02489 8 0,0275 15 0,0579 2 0,0651 9 0,04888 16 0,05110 0,01447 10 0,041 17 0,04767 4 0,01876 11 0,01444 18 0,05190 5 0,0124 12 0,0897 19 0,05198 6 0,04670 1 0,0478 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 69
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.10 dan hasil pengurutan aterdapat pada Tabel.11. Tabel.11 Urutan nilai fitness Ranking Individu Nilai Fitness Ranking Individu Nilai Fitness 4 1 0,02489 1 11 0,01444 10 2 0,0651 11 12 0,0897 2 0,01447 9 1 0,0478 4 0,01876 15 14 0,05008 7 5 0,0124 20 15 0,0579 12 6 0,04670 16 16 0,05110 6 7 0,02892 1 17 0,04767 5 8 0,0275 17 18 0,05190 14 9 0,04888 18 19 0,05198 8 10 0,041 19 20 0,05211 2) 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.12. 70
Individu Tabel.12 Nilai fitness sesuai rangking Nilai Fitness baru 71 Nilai Fitness lama Nilai Fitness lama Individu 11 0,01444 1 12 0,0897 11 0,01447 2 6 0,04670 12 4 0,01876 17 0,04767 1 1 0,02489 4 9 0,04888 14 8 0,0275 5 14 0,05008 15 7 0,02892 6 16 0,05110 16 5 0,0124 7 18 0,05190 17 10 0,041 8 19 0,05198 18 1 0,0478 9 20 0,05211 19 2 0,0651 10 15 0,0579 20 Nilai Fitness baru ) Dengan menjumlahkan semua nilai fitness pada Tabel.9 diperoleh total nilai fitness sebesar 210. 4) Dihitung probabilitas masing-masing nilai fitness dengan membagi setiap nilai fitness pada Tabel.12 dengan total nilai fitnessnya. Probabilitas masing-masing fitness dan probabilitas kumulatifnya dapat dilihat pada Tabel.1. Tabel.1 Probabilitas nilai fitness Individu Probabilitas Probabilitas Kumulatif 11 6,88E-05 6,87619E-05 6,89E-05 0,00017667 4 8,9E-05 0,000227 1 0,000119 0,00045524 8 0,00011 0,000476619 7 0,00018 0,000614 5 0,000149 0,00076095 10 0,00016 0,000926476 1 0,000166 0,001092095 2 0,000174 0,001265952 12 0,000186 0,001451524 6 0,000222 0,00167905 17 0,000227 0,001900905 9 0,0002 0,0021667
Individu Probabilitas Probabilitas Kumulatif 14 0,00028 0,0027214 16 0,00024 0,002615476 18 0,000247 0,002862619 19 0,000248 0,0011014 20 0,000248 0,0058286 15 0,000276 0,006414 5) Setelah itu membangkitkan dua buah nilai random pada interval [0 1]. Dengan bantuan MATLAB R201a diperoleh nilai random 0,020 dan 0,026. Pada frekuensi kumulatif, nilai 0,020 terletak pada individu ke 14, dan nilai 0,026 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 R201a 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 R201a diperoleh nilai sebesar 0,6805. Untuk menentukan posisi gen yang akan dipindah silangkan dibangkitkan 72
2 nilai acak diperoleh nilai 1 dan 16, sehingga gen ke-1 sampai gen ke-16 akan dipindah silangkan. Berikut proses pindah silang yang terjadi: Induk 1 (individu ke-14) -2,1762 1,9726-1,14-0,754 0,571-0,527-0,077-0,822 2,1690-0,5470-0,552 2,2900-0,511-0,4259-0,7066-0,2916-1,9002 0,4050 0,021-0,492 0,14 0,8654-0,5425 0,470 1,5819-0,6501-1,228-0,2124-1,414-0,667 0,1626-1,216-0,9485-0,081 1,7146 0,524-0,8672 0,087-0,221-0,1081-0,1429-0,8076-1,099-0,695 0,651-0,8996 0,562 0,7287-0,2824 0,5894 0,09 1,285 0,100 0,1896 0,8842 0,161 1,8112-1,29-0,5988 0,426-0,667-0,2741-2,855-0,681 0,890-0,1108 0,2645 0,7229-0,701 0,7566-0,2460 0,2424-1,4725 0,9681-2,81-0,044 0,7696 1,425 0,0666 0,5982-1,1586-0,220 0,4668-0,4529-1,7989 0,7869-0,766 Induk 2 (individu ke-20) -0,9577-0,0117-0,5422 0,857 0,2896-2,264 0,445 0,145-0,072-2,5181 0,7824 0,5412-1,8169 0,0640 1,4255-1,586 0,0741 1,7027 2,8657-0,5201-0,201-0,511 0,2956-0,2068 2,2152 0,145-0,4046 0,6758-1,1710-0,092-0,668 0,1165-0,1726 0,8917 0,68 1,2716 1,5615 1,0988 0,814 0,2812-0,642 1,1240 1,7611-0,945 1,0296-2,002 0,9602 0,482-0,1475 0,6927-0,0248 0,068-0,9524-1,125 0,670-0,8-0,1912 1,9658 1,826-0,1085-0,699-1,64-1,6021-1,9170 0,546-0,646-0,4551-1,4415 0,5119 0,2426 0,4062-0,6772 0,7687 2,4277-0,961 0,816-0,1965-0,156 0,1800-0,010 1,118 0,786-0,625 1,1178 0,4707 0,5784-0,9896 Dengan persamaan 2.51 dan 2.52 diperoleh nilai gen ke 1 sampai 16 dari anak 1 dan 2 sebagai berikut: u 1 1 = r u 1 1 + 1 r u 2 1 u 1 1 = 0,6805 0,511 + 1 0,6805 ( 1,8169) = 0,92844 u 2 1 = r u 2 1 + 1 r u 1 1 u 2 1 = 0,6805 1,8169 + 1 0,6805 ( 0,511) = 1,9976 7
Untuk pehitungan nilai u 1 14 dan u 2 14 hingga u 1 16 dan u 2 16 dilakukan secara analog, sehingga diperoleh Anak 1-2,1762 1,9726-1,14-0,754 0,571-0,527-0,077-0,822 2,1690-0,5470-0,552 2,2900-0,9284-0,2694-0,0254-0,6900-1,9002 0,4050 0,021-0,492 0,14 0,8654-0,5425 0,470 1,5819-0,6501-1,228-0,2124-1,414-0,667 0,1626-1,216-0,9485-0,081 1,7146 0,524-0,8672 0,087-0,221-0,1081-0,1429-0,8076-1,099-0,695 0,651-0,8996 0,562 0,7287-0,2824 0,5894 0,09 1,285 0,100 0,1896 0,8842 0,161 1,8112-1,29-0,5988 0,426-0,667-0,2741-2,855-0,681 0,890-0,1108 0,2645 0,7229-0,701 0,7566-0,2460 0,2424-1,4725 0,9681-2,81-0,044 0,7696 1,425 0,0666 0,5982-1,1586-0,220 0,4668-0,4529-1,7989 0,7869-0,766 Anak 2-0,9577-0,0117-0,5422 0,857 0,2896-2,264 0,445 0,145-0,072-2,5181 0,7824 0,5412-1,998-0,0925 0,744-1,1402 0,0741 1,7027 2,8657-0,5201-0,201-0,511 0,2956-0,2068 2,2152 0,145-0,4046 0,6758-1,1710-0,092-0,668 0,1165-0,1726 0,8917 0,68 1,2716 1,5615 1,0988 0,814 0,2812-0,642 1,1240 1,7611-0,945 1,0296-2,002 0,9602 0,482-0,1475 0,6927-0,0248 0,068-0,9524-1,125 0,670-0,8-0,1912 1,9658 1,826-0,1085-0,699-1,64-1,6021-1,9170 0,546-0,646-0,4551-1,4415 0,5119 0,2426 0,4062-0,6772 0,7687 2,4277-0,961 0,816-0,1965-0,156 0,1800-0,010 1,118 0,786-0,625 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 kromosomkromosom 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. 74
Pada interval [1, 87] dibangkitkan nilai acak, dan diperoleh nilai untuk anak 1 dan 87 untuk anak 2. Gen ke- pada anak 1 dan gen ke-87 pada anak 2 akan dimutasi dengan mengganti nilai gen tersebut dengan nilai acak. Dengan bantuan MATLAB R201a diperoleh nilai acak untuk gen ke- pada anak ke 1 adalah 0,980 dan gen ke 87 pada anak ke 2 adalah 1,9498. Individu anak yang terbentuk adalah Anak 1 Anak 2-2,1762 1,9726 0,980-0,754 0,571-0,527-0,077-0,822 2,1690-0,5470-0,552 2,2900-0,9284-0,2694-0,0254-0,6900-1,9002 0,4050 0,021-0,492 0,14 0,8654-0,5425 0,470 1,5819-0,6501-1,228-0,2124-1,414-0,667 0,1626-1,216-0,9485-0,081 1,7146 0,524-0,8672 0,087-0,221-0,1081-0,1429-0,8076-1,099-0,695 0,651-0,8996 0,562 0,7287-0,2824 0,5894 0,09 1,285 0,100 0,1896 0,8842 0,161 1,8112-1,29-0,5988 0,426-0,667-0,2741-2,855-0,681 0,890-0,1108 0,2645 0,7229-0,701 0,7566-0,2460 0,2424-1,4725 0,9681-2,81-0,044 0,7696 1,425 0,0666 0,5982-1,1586-0,220 0,4668-0,4529-1,7989 0,7869-0,766-0,9577-0,0117-0,5422 0,857 0,2896-2,264 0,445 0,145-0,072-2,5181 0,7824 0,5412-1,998-0,0925 0,744-1,1402 0,0741 1,7027 2,8657-0,5201-0,201-0,511 0,2956-0,2068 2,2152 0,145-0,4046 0,6758-1,1710-0,092-0,668 0,1165-0,1726 0,8917 0,68 1,2716 1,5615 1,0988 0,814 0,2812-0,642 1,1240 1,7611-0,945 1,0296-2,002 0,9602 0,482-0,1475 0,6927-0,0248 0,068-0,9524-1,125 0,670-0,8-0,1912 1,9658 1,826-0,1085-0,699-1,64-1,6021-1,9170 0,546-0,646-0,4551-1,4415 0,5119 0,2426 0,4062-0,6772 0,7687 2,4277-0,961 0,816-0,1965-0,156 0,1800-0,010 1,118 0,786-0,625 1,1178 0,4707 0,5784 1,9498 75
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.14. Tabel.14 Hasil percobaan algoritma genetika Percobaan ke Ukuran populasi Jumlah generasi Nilai fitness 1 10 50 0,06747 2 10 100 0,0685 10 150 0,07148 4 20 50 0,07167 5 20 100 0,07148 6 20 150 0,07201 7 0 50 0,0702 8 0 100 0,07156 9 0 150 0,07155 10 40 50 0,07166 Grafik hasil percobaan dengan MATLAB R201a dapat dilihat pada Gambar.8. Gambar.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 76
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.15. Tabel.15 Perbandingan hasil MAPE model FERNN dengan optimasi Algoritma Genetika menggunakan fungsi keanggotaan segitiga dan kurva-s pertumbuhan Model FERNN dengan optimasi Algoritma Genetika menggunakan fungsi keanggotaan segitiga FERNN dengan optimasi Algoritma Genetika menggunakan fungsi keanggotaan kurva-s pertumbuhan Nilai MAPE Training Testing 8,27 4,011 6,9498 6,9642 Dari tabel.8 dan.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.9 sampai Gambar.12. 77
Autocorrelation Partial Autocorrelation Autocorrelation ACF for residual data training model FERNN Algen kurva-s pertumbuhan (with 5% significance limits for the autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 2 4 6 8 10 12 Lag 14 16 18 20 22 Gambar.9 Plot ACF dari error data training model FERNN yang telah dioptimasi dengan Algoritma Genetika PACF for residual data training model FERNN Algen kurva-s pertumbuhan (with 5% significance limits for the partial autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 2 4 6 8 10 Gambar.10 Plot PACF dari error data training model FERNN yang telah dioptimasi dengan Algoritma Genetika 12 Lag 14 16 18 20 22 ACF for residual data testing model FERNN Algen kurva-s pertumbuhan (with 5% significance limits for the autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 1 2 4 Lag 5 6 7 Gambar.11 Plot ACF dari error data testing model FERNN yang telah dioptimasi dengan Algoritma Genetika 78
Data Partial Autocorrelation PACF for residual data testing model FERNN Algen kurva-s pertumbuhan (with 5% significance limits for the partial autocorrelations) 1,0 0,8 0,6 0,4 0,2 0,0-0,2-0,4-0,6-0,8-1,0 1 2 4 Lag 5 6 7 Gambar.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. Time Series Plot of data aktual training; data peramalan training 110 100 90 80 Variable data aktual training data peramalan training 70 60 50 40 0 1 9 18 27 6 45 54 6 72 81 Index Gambar.1 Plot data aktual dan peramalan data training 79
Harga minyak mentah di Indonesia 65 60 Time Series Plot of data aktual; data peramalan Variable data aktual data peramalan 55 50 45 40 5 0 6 9 12 15 18 21 24 27 Index Gambar.14 Plot data aktual dan peramalan data testing Dari gambar.1 dan.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.6 pada subbab A. Setelah diperoleh nilai input maka proses peramalan dilakukan dengan menggunakan model FERNN seperti pada contoh.1 pada subbab A dan bobot yang dioptimasi. Hasil peramalan disajikan pada Tabel.16. 80
Tabel. 16 Peramalan harga minyak mentah di Indonesia Periode Bulan Data Peramalan (harga ICP) Periode Bulan Data Peramalan (harga ICP) Juli 2017 58,6762 Oktober 2017 55,255 Agustus 2017 55,970 November 2017 55,4621 September 2017 52,101 Desember 2017 52,6769 Pada tabel.16 menunjukkan bahwa hasil peramalan harga minyak mentah di Indonesia bulan Juli 2017 sampai Desember 2017 cenderung mengalami fluktuatif atau cenderung naik turun. Diperkirakan harga minyak mentah di Indonesia akan mencapai harga yang tinggi pada bulan Juli 2017 sebanyak 58,6762 US/brl. 81