Penerapan Jaringan Saraf Tiruan Untuk Memprediksi Pergerakan Harga Minyak Mentah Dunia Menggunakan Metode Backpropagation
PENERAPAN JARINGAN SARAF TIRUAN UNTUK MEMPREDIKSI
PERGERAKAN HARGA MINYAK MENTAH DUNIA
MENGGUNAKAN METODE BACKPROPAGATION
SKRIPSI
AZIZAH ENDRASTATY
081401063
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
(2)
PENERAPAN JARINGAN SARAF TIRUAN UNTUK MEMPREDIKSI
PERGERAKAN HARGA MINYAK MENTAH DUNIA
MENGGUNAKAN METODE
BACKPROPAGATION
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh
ijazah Sarjana Komputer
AZIZAH ENDRASTATY
081401063
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2013
(3)
PERSETUJUAN
Judul : PENERAPAN JARINGAN SARAF TIRUAN
UNTUK MEMPREDIKSI PERGERAKAN HARGA MINYAK MENTAH DUNIA MENGGUNAKAN METODE BACKPROPAGATION
Kategori : SKRIPSI
Nama : AZIZAH ENDRASTATY
Nomor Induk Mahasiswa : 081401063
Program Studi : S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : FAKULTAS ILMU KOMPUTER DAN
TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Juli 2013 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Amer Sharif, S.Si, M.Kom Dr. Poltak Sihombing, M.Kom
NIP. - NIP. 196203171991031001
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
(4)
PERNYATAAN
PENERAPAN JARINGAN SARAF TIRUAN UNTUK MEMPREDIKSI PERGERAKAN HARGA MINYAK MENTAH DUNIA
MENGGUNAKAN METODE BACKPROPAGATION
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2013
AZIZAH ENDRASTATY NIM 081401063
(5)
PENGHARGAAN
Alhamdulillah. Puji dan syukur penulis ucapkan kepada Allah SWT, atas limpahan rahmat dan karunia-Nya, tiada daya upaya kecuali dari Allah SWT. Alhamdulillah, penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Tak lupa pula shalawat beriring salam tercurah kepada Rasullulah SAW, yang mengajarkan kepada manusia syari’at yang sempurna sehingga kita dapat menikmati islam.
Pada pengerjaan skripsi dengan judul penerapan jaringan saraf tiruan untuk memprediksi pergerakan harga minyak mentah dunia menggunakan metode
backpropagation, penulis menyadari bahwa banyak pihak yang turut membantu dan memotivasi dalam pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terimakasih kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H. M.Sc(CTM). SP.A(K), selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis, M.Sc, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku dosen pembimbing dan Ketua Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara yang telah memberikan nasehat, arahan dan motivasi kepada penulis dalam pengerjaan skripsi ini.
4. Bapak Amer Sharif, S.Si, M.Kom sebagai pembimbing yang telah memberikan nasehat, arahan, motivasi dan banyak membantu penulis dalam pengerjaan skripsi ini.
5. Bapak Ade Candra, S.T, M.Kom sebagai dosen penguji yang telah memberikan kritik dan saran kepada penulis dalam penyempurnaan skripsi ini.
6. Ibu Maya Silvi Lydia, B.Sc, M.Sc sebagai dosen penguji dan Sekretaris Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara yang telah memberikan kritik dan saran kepada penulis dalam penyempurnaan skripsi ini
(6)
7. Kepada seluruh Dosen dan semua Pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 8. Papa, Ir Bambang Sudibya, M.T dan Mama, Dra Mardiana Irawaty, M.Sc.St serta
adik-adik Iqbal Nur Khusein, Laila Khairunnisa Amini juga keluarga besar di Medan dan di Yogya yang telah memberikan do’a, dukungan, perhatian serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya.
9. Bapak Mohammad Andri Budiman, S.T, M.Comp.Sc, MEM selaku Pembina UKMI Al-Khuwarizmi, dan seluruh keluarga besar UKMI Al-Khuwarizmi yang selalu menginspirasi saya untuk terus berjuang dan berkarya.
10.Saudara-saudara seperjuangan saya di UKMI Ad-Dakwah USU, para penjalin ukhuwah penebar dakwah, mari sama-sama lulus dari kampus dan memperoleh gelar sarjana dengan indah.
11.Keluarga kecil saya di kampus, khususnya Murabbi, dan teman-teman halaqoh
semuanya, yang senantiasa mengingatkan untuk cepat lulus dan berprestasi.
12.Seluruh adik-adik binaan Ilkom yang spesial, Bunga, Fura, Ema, Dini, Murni, Nisa, Ika, Dias, Novi, Nurul, Amel, Puput FISIP, Ida, Tika, Ain, Endang, Fatimah, Annisa dan juga adik-adik lainnya yang tidak bisa disebut satu per satu. Adik-adik yang selalu memberikan perhatian dan doa kepada penulis.
13.Teman-teman mahasiswa S1-Ilmu Komputer stambuk 2008, terutama kepada Sadifa Asrofa, Rima Lestari, Alvi Syukriati Hsb, Anni Magfirah, Zainuddin Siregar dan Eko Verdianto yang banyak membantu dan juga memotivasi penulis. 14.Teman-teman di Asrama Putri, Dita, Yati, Qomariah,S.Sos, Ema, Yani, Asih, yang
juga sedang mengerjakan skripsi. Teman-teman yang selalu menghibur dan memberikan nasehat serta motivasi.
15.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan, oleh karena itu penulis menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan, Juli 2013
(7)
ABSTRAK
Setiap tahun pergerakan harga minyak dari waktu ke waktu selalu menjadi sorotan pelaku ekonomi dunia. Pada kenyataannya pergerakan harga minyak yang terjadi umumnya dapat dipahami dengan melihat pola kejadian di masa lalu. Penulis memaparkan perancangan sistem prediksi harga minyak mentah dunia menggunakan metode jaringan saraf tiruan backpropagation. Masukan dalam sistem ini adalah harga minyak mentah menurut harga pasar WTI (West Texas Intermediate). Pada sistem ini terdapat tahap pelatihan dan tahap prediksi. Tahap pelatihan digunakan untuk mempelajari pola masukan sebanyak 320 data harga minyak yang terbagi dalam empat neuron masukkan. Sedangkan tahap prediksi digunakan untuk menghasilkan pola harga minyak dengan merujuk pada data yang dihasilkan di tahap pelatihan. Data tersebut antara lain: bobot pelatihan, mean dan standart deviasi. Arsitektur jaringan terdiri dari empat lapisan, satu lapisan masukan, dua lapisan tersembunyi dan satu lapisan keluaran. Terdapat empat neuron pada lapisan masukan, 12 neuron pada lapisan tersembunyi pertama, delapan neuron pada lapisan tersembunyi kedua dan satu neuron pada lapisan keluaran. Dari proses pelatihan didapat nilai kesalahan terbesar 8.86 x 10-6 dengan jumlah epoch terbesar 45 iteration, laju pembelajaran 0.1 dan momentum 0.9. Pada tahap pelatihan secara keseluruhan, hasil pencapaian sistem diperoleh kecocokan 99.9%. Sedangkan, pada tahap prediksi jaringan saraf tiruan diperoleh selisih harga minyak berkisar antara 0.1826 hingga 5.951 dengan tingkat
error RMSE sekitar 2.8996.
Katakunci: Jaringan Saraf Tiruan, Metode Backpropagation, Harga Minyak Mentah, Kenaikan Harga Minyak, Prediksi
(8)
ARTIFICIAL NEURAL NETWORK IMPLEMENTATION FOR PREDICTING THE WORLD CRUDE OIL PRICE MOVEMENT
USING BACKPROPAGATION METHOD
ABSTRACT
Every year the oil price movement is always a highlight in the global economy. In fact the movement of oil price that occurred generally can be understood by looking at the pattern of events in the past. In this study, the Author designed a system to predict crude oil price using the backpropagation method of artificial neural network. Input of this system is the price of crude oil according to the market price of WTI (West Texas Intermediate). In this system, there are training and prediction phases. Training phase is used to learn the patterns of input which consisted of 320 oil price data distributed into four neurons. While the obtained prediction phase is used to produced oil price pattern based on parameter which is obtained during training phase such as: training weight, mean and standard of deviation. Network architecture consisted of four layers, one input layer, two hidden layers and one output layer. There are four neurons in the input layer, 12 neurons in the first hidden layer, eight neurons in the second hidden layer and one neuron in output layer. From the training process the largest obtained error is 8.86 x 10-6 with the maximum epoch reached was 45 iterations, the learning rate 0.1 and momentum 0.9. In training phase, in overall, the results of system was 99.9%. while, in the neural network artificial prediction phase, the different of oil price obtained in the range between 0.1826 to 5.951 with the RMSE error level of 2.8996.
Keywords: Artificial Neural Networks, Backpropagation method, Crude Oil Prices, Rising Oil Prices, Forecasting
(9)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Bab 1 Pendahuluan
1.1Latar Belakang 1
1.2Perumusan Masalah 2
1.3Batasan Masalah 3
1.4Tujuan Penelitian 3
1.5Manfaat Penelitian 3
1.6Metode Penelitian 4
1.7Sistematika Penulisan 5
Bab 2 Tinjauan Pustaka
2.1 Jaringan Saraf Tiruan 7
2.1.1 Arsitektur Jaringan Saraf Tiruan 7 2.1.2 Jaringan Saraf Tiruan Backpropagation 9
2.1.3 Fungsi Aktivasi 11
2.1.4 Algoritma Pembelajaran Metode Backpropagation 13 2.1.5 Prepocessing dan Postprocessing 16 2.2 Aplikasi Backpropagation dalam prediksi 18 2.3 Prediksi Harga Minyak Mentah Dunia 20
2.4 Tinjauan yang relevan 20
Bab 3 Analisis Dan Perancangan Sistem
3.1 Analisis Permasalahan 22
3.2 Analisis Kebutuhan Sistem 25
3.2.1Kebutuhan fungsional Sistem 25 3.2.2 Kebutuhan Non-fungsional Sistem 25
3.3 Permodelan 26
3.3.1 Use Case Diagram 26
3.3.1.1 Use Case Cek Data Harga Minyak 27 3.3.1.2 Use Case Cek Pelatihan 28 3.3.1.2 Use Case Cek Prediksi Harga Minyak 31
3.2.2 Analisis Proses Sistem 32
3.2.2.1 Proses pelatihan Jaringan Saraf Tiruan 32 3.2.2.2 Proses prediksi Jaringan Saraf Tiruan 34
(10)
3.4 Perancangan Antar Muka 36 3.4.1 Perancangan Antar Menu Utama 36
3.4.2 Perancangan Cek data 37
3.4.3 Antar Muka Pelatihan 38
3.4.4 Antar Muka Prediksi 40
3.4.5 Antar Muka Konfirmasi Keluar 41
Bab 4 Implementasi dan Pengujian Sistem
4.1 Implementasi Sistem 42
4.1.1 Tampilan Antarmuka Sistem 43
4.1.1.1 Antarmuka Menu Utama 43
4.1.1.2 Antarmuka Cek Data 43
4.1.1.3 Antarmuka Pelatihan 45
4.1.1.4 Antarmuka Prediksi 50
4.2 Pengujian Sistem 53
4.2.1 Pengujian Arsitektur JST 53
4.2.2 Pengujian Prediksi Harga Minyak 54 Bab 5 Kesimpulan Dan Saran
5.1 Kesimpulan 58
5.2 Saran 59
Daftar Pustaka ` 60
Lampiran Listing Program A-1
(11)
DAFTAR TABEL
Nomor Tabel Keterangan Halaman
3.1 Kelompok Data yang Memiliki Pola yang Berulang 23 3.2 Grafik Data yang Memiliki Pola yang Berulang 24 3.3 Dokumentasi Naratif Use Case Cek Data Harga Minyak
Mentah Dunia
27
3.4 Dokumentasi Naratif Use Case Latih JST 28 3.5 Dokumentasi Naratif Use Case Prediksi Harga Minyak
Mentah Dunia
31
4.1 Hasil Pengujian dengan Beberapa Data Pelatihan JST 53 4.2 Hasil Pengujian Sistem Prediksi Harga Minyak 55
(12)
DAFTAR GAMBAR
Nomor Gambar
Keterangan Halaman
2.1 Model Neuron 8
2.2 Arsitektur Jaringan Saraf Tiruan dengan
Backpropagation
10
2.3 Fungsi Aktivasi Linier 11
2.4 SigmoidBiner 12
2.5 Sigmoid Bipolar 13
3.1 Diagram Ishikawa 22
3.2 Grafik harga minyak tahun 2012 dan awal 2013 22
3.3 Use Case Diagram Sistem Prediksi Harga Minyak
Mentah Dunia
27
3.4 Activity Diagram Cek Harga Minyak 28
3.5 Activity Diagram Pelatihan 30
3.6 Activity Diagram Prediksi Harga Minyak 32
3.7 Sequence Diagram Proses Pelatihan JST 33
3.8 Sequence Diagram Proses Pelatihan JST 35
3.9 Rancangan Antarmuka Depan 36
3.10 Rancangan Antarmuka Cek Data 37
3.11 Rancangan AntarmukaPelatihan 38
3.12 Rancangan Antarmuka Prediksi 40
3.13 Rancangan AntarmukaKonfirmasi Keluar 41
4.1 Antarmuka Menu Utama 43
4.2 Antarmuka Cek Data 44
4.3 Antarmuka Cek Data Ketika telah memilih Bulan dan Tahun
44
4.4 Antarmuka Proses Pemberitahuan proses 45
4.5 Antarmuka Pelatihan 46
4.6 Antarmuka Neural Network Training (nntool) 47 4.7 Antarmuka Pelatihan Setelah Dilakukan Pelatihan 48
(13)
4.8 Antarmuka Pelatihan Setelah mengklik tombol tampil 49
4.9 Antarmuka Prediksi 50
4.10 Antarmuka Pengujian Setelah dilakukan prediksi 51 4.11 Antarmuka Prediksi perbandingan data aktual dengan
hasil prediksi
52
4.12 Antarmuka konfirmasi keluar 52
(14)
ABSTRAK
Setiap tahun pergerakan harga minyak dari waktu ke waktu selalu menjadi sorotan pelaku ekonomi dunia. Pada kenyataannya pergerakan harga minyak yang terjadi umumnya dapat dipahami dengan melihat pola kejadian di masa lalu. Penulis memaparkan perancangan sistem prediksi harga minyak mentah dunia menggunakan metode jaringan saraf tiruan backpropagation. Masukan dalam sistem ini adalah harga minyak mentah menurut harga pasar WTI (West Texas Intermediate). Pada sistem ini terdapat tahap pelatihan dan tahap prediksi. Tahap pelatihan digunakan untuk mempelajari pola masukan sebanyak 320 data harga minyak yang terbagi dalam empat neuron masukkan. Sedangkan tahap prediksi digunakan untuk menghasilkan pola harga minyak dengan merujuk pada data yang dihasilkan di tahap pelatihan. Data tersebut antara lain: bobot pelatihan, mean dan standart deviasi. Arsitektur jaringan terdiri dari empat lapisan, satu lapisan masukan, dua lapisan tersembunyi dan satu lapisan keluaran. Terdapat empat neuron pada lapisan masukan, 12 neuron pada lapisan tersembunyi pertama, delapan neuron pada lapisan tersembunyi kedua dan satu neuron pada lapisan keluaran. Dari proses pelatihan didapat nilai kesalahan terbesar 8.86 x 10-6 dengan jumlah epoch terbesar 45 iteration, laju pembelajaran 0.1 dan momentum 0.9. Pada tahap pelatihan secara keseluruhan, hasil pencapaian sistem diperoleh kecocokan 99.9%. Sedangkan, pada tahap prediksi jaringan saraf tiruan diperoleh selisih harga minyak berkisar antara 0.1826 hingga 5.951 dengan tingkat
error RMSE sekitar 2.8996.
Katakunci: Jaringan Saraf Tiruan, Metode Backpropagation, Harga Minyak Mentah, Kenaikan Harga Minyak, Prediksi
(15)
ARTIFICIAL NEURAL NETWORK IMPLEMENTATION FOR PREDICTING THE WORLD CRUDE OIL PRICE MOVEMENT
USING BACKPROPAGATION METHOD
ABSTRACT
Every year the oil price movement is always a highlight in the global economy. In fact the movement of oil price that occurred generally can be understood by looking at the pattern of events in the past. In this study, the Author designed a system to predict crude oil price using the backpropagation method of artificial neural network. Input of this system is the price of crude oil according to the market price of WTI (West Texas Intermediate). In this system, there are training and prediction phases. Training phase is used to learn the patterns of input which consisted of 320 oil price data distributed into four neurons. While the obtained prediction phase is used to produced oil price pattern based on parameter which is obtained during training phase such as: training weight, mean and standard of deviation. Network architecture consisted of four layers, one input layer, two hidden layers and one output layer. There are four neurons in the input layer, 12 neurons in the first hidden layer, eight neurons in the second hidden layer and one neuron in output layer. From the training process the largest obtained error is 8.86 x 10-6 with the maximum epoch reached was 45 iterations, the learning rate 0.1 and momentum 0.9. In training phase, in overall, the results of system was 99.9%. while, in the neural network artificial prediction phase, the different of oil price obtained in the range between 0.1826 to 5.951 with the RMSE error level of 2.8996.
Keywords: Artificial Neural Networks, Backpropagation method, Crude Oil Prices, Rising Oil Prices, Forecasting
(16)
BAB 1
PENDAHULUAN
1.1Latar Belakang
Perkembangan kecerdasan buatan yang semakin pesat dewasa ini ditunjukkan oleh aplikasinya diberbagai bidang. Salah satu cabang dari kecerdasan buatan yang sudah dikenal adalah jaringan saraf tiruan (artificial neural network). Jaringan saraf tiruan adalah suatu sistem pengolah informasi yang karakteristik kerjanya menyerupai jaringan saraf biologis manusia[1]. Perkembangan ini didukung oleh kemajuan bidang komputer baik dari perangkat lunak (software) maupun perangkat keras (hardware).
Jaringan saraf tiruan telah banyak digunakan pada berbagai riset di berbagai bidang. Dalam ilmu komputer dan Informatika, aplikasi jaringan saraf tiruan telah banyak dibuktikan keberhasilannya, antara lain: sebagai alat pengenalan pola (pattern recognition), signal processing, dan sebagai peramalan atau prediksi.
Jaringan saraf tiruan dapat dipakai untuk memprediksi apa yang akan terjadi di masa yang akan datang berdasarkan pola kejadian yang ada di masa yang lampau. Ini dapat dilakukan mengingat kemampuan jaringan saraf tiruan untuk mengenali pola dan membuat generalisasi dari apa yang sudah ada sebelumnya.
Salah satu metode jaringan saraf tiruan yang digunakan untuk prediksi adalah
Backpropagation. Prediksi yang sering kita dengar adalah prediksi penjualan[4], nilai tukar valuta asing[14], pergerakan saham[8], dll.
(17)
Dalam penitian ini jaringan saraf tiruan yang digunakan adalah model
backpropagation. Backpropagation melatih jaringan untuk mendapatkan
keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa dengan pola yang dipakai selama pelatihan[3].
Sebagaimana telah umum diketahui, setiap tahun pergerakan harga minyak dari waktu ke waktu selalu menjadi sorotan pelaku ekonomi dunia. Hal tersebut tidak lepas dari transmisi yang disalurkan dari salah satu komoditas energi ini. Minyak tidak hanya sebatas mampu mempengaruhi komoditas energi lain maupun komoditas mineral lain, tapi juga sangat berpengaruh terhadap pergolakan sendi perkenomian makro maupun mikro hampir di seluruh negara.
Sebagian kalangan tentunya sudah memahami bagaimana harga minyak dapat naik ataupun turun. Namun bagi sebagian lainnya, hal ini agaknya menjadi pertanyaan menarik mengapa dan apa penyebab serta bagaimana keseimbangan harga minyak terjadi. Di tengah kompleksitasnya, dengan beragam faktor yang berkaitan satu sama lain dan saling mempengaruhi, pada kenyataannya pergerakan harga minyak yang terjadi umumnya dapat dipahami dengan melihat pola kejadian di masa lalu dengan memperhatikan faktor fundamental yang mempengaruhi naik dan turunnya harga minyak mentah dunia
Berdasarkan latar belakang yang telah disebutkan penulis akan membuat suatu penelitian yang berjudul "Penerapan Jaringan Saraf Tiruan untuk Memprediksi Pergerakan Harga Minyak Mentah Dunia Menggunakan Metode Backpropagation”
1.2Rumusan Masalah
Permasalahan yang akan dibahas dalam penelitian ini antara lain :
1. Harga minyak dalam negeri sering berubah-ubah karena mengikuti harga minyak mentah dunia mengakibatkan kesulitan dalam menyusun kebijakan ekonomi. Dengan adanya aplikasi yang dapat memprediksi harga minyak
(18)
mentah dunia diharapkan dapat menjadi alat bantu bagi penyusun kebijakan ekonomi.
2. Meneliti faktor-faktor yang mempengaruhi harga minyak mentah dunia dengan jaringan saraf tiruan
3. Mengukur performa jaringan saraf tiruan dalam memprediksi harga minyak mentah dunia
1.3Batasan Masalah
Batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini adalah:
1. Penerapan jaringan saraf tiruan yang diimplementasikan menggunakan metode
backpropagation
2. Menggunakan data kuantitatif harga minyak mentah dari tanggal 1 Januari 2010 sampai 30 April 2013
3. Input yang diterapkan dalam sistem adalah harga minyak mentah dunia versi pasar minyak WTI (West Texas Intermediate) Selain WTI, ada beberapa pasar minyak, antara lain : Minas, Tapas, Brent.
4. Implementasi sistem pada penelitian ini menggunakan Matlab R2009.
1.4Tujuan Penelitian
Penulisan ini dibuat dengan tujuan menggunakan jaringan saraf tiruan
backpropagation untuk memprediksi pergerakan harga minyak mentah dunia
1.5Manfaat Penelitan
Manfaat dari penelitian ini adalah:
1. Mampu memprediksi pergerakan harga minyak mentah dunia, sebagai alat bantu menetapkan kebijakan perekonomian
(19)
2. Dengan prediksi harga minyak diharapkan dapat menjadi acuan harga minyak di masa depan dan memberi gambaran untuk prediksi hal-hal lain yang terkait dengan harga minyak mentah dunia untuk memudahkan para pengambil kebijakan untuk menetapkan harga minyak mentah dalam negeri
3. Menambah pemahaman mengenai jaringan saraf tiruan dalam hal pembelajaran dan penerapannya.
1.6 Metode Penelitian
Metodologi penelitian yang akan digunakan adalah:
1. Studi Literatur
Mempelajari literatur tentang teori dasar mengenai jaringan saraf tiruan, metode-metode dalam jaringan saraf tiruan, kegunaan jaringan saraf tiruan dalam hal prediksi (forecasting), metode backpropagation dan cara kerjanya. Literatur diambil dari beberapa buku, jurnal, maupun penelitian yang terkait.
2. Analisis Data
Pada tahap ini dilakukan analisis kebutuhan terhadap sistem beserta batasan-batasan yang diperlukan. Menganalisis metode backpropagation dan modifikasi-modifikasi untuk mempercepat pelatihannya. Serta, menganalisis mengenai harga minyak mentah dunia, khususnya mencari periode perulangan pola.
3. Perancangan Sistem
Melakukan perancangan desain dalam bentuk diagram use case, dan antar muka sistem untuk memudahkan proses implementasi pada tahap selanjutnya.
4. Implementasi Sistem
Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan yang sudah didefinisikan sebelumnya. Implementasi sistem dilakukan dengan menggunakan bahasa pemrograman Matlab 2009.
(20)
5. Pengujian Sistem
Pengujian dilakukan terhadap keberhasilan prediksi yang dilakukan oleh jaringan saraf tiruan menggunakan metode backpropagation berdasarkan pada data aktual yang diperoleh. Sejauh mana jaringan saraf tiruan dapat digunakan untuk prediksi dan bagaimana tingkat akurasi antara hasil prediksi dan data aktual.
6. Dokumentasi Sistem
Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).
1.7Sistematika Penulisan
Sistematika penulisan laporan penelitian ini dibagi menjadi 5 bab, yaitu sebagai berikut:
BAB 1 PENDAHULUAN
Berisikan penjelasan tentang konsep dasar penyusunan skripsi, yaitu mengenai latar belakang pemilihan judul, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2 TINJAUAN PUSTAKA
Bab ini akan membahas dasar teori yang menunjang penulisan skripsi, berkaitan mengenai teori jaringan saraf tiruan, arsitektur jaringan saraf tiruan, algoritma pembelajaran backpropagation,
fungsi aktivasi, preprocessing dan postprocessing harga minyak mentah dunia.
(21)
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas tentang analisis dan perancangan sistem dengan menggunakan jaringan saraf tiruan backpropagation.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan menjelaskan implementasi jaringan saraf tiruan backpropagation yang digunakan, serta pengujian akan keberhasilan terhadap sistem yang telah dibangun.
BAB 5 KESIMPULAN DAN SARAN
Bab ini akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.
(22)
BAB 2
TINJAUAN PUSTAKA
2.1 Jaringan Saraf Tiruan
Jaringan saraf tiruan (JST) pertama kali diperkenankan oleh informasi yang memiliki karakteristik-karakteristik menyerupai jaringan saraf biologi [2].
Dengan meniru sistem jaringan biologis maka sistem jaringan saraf tiruan memiliki 3 karakteristik utama, yaitu [1]:
1. Arsitektur jaringan
Merupakan pola keterhubungan antara neuron. Keterhubungan neuron
-neuron inilah yang membentuk suatu jaringan. 2. Algoritma Pembelajaran
Merupakan metode untuk menentukan nilai bobot hubungan. Ada dua jenis metode utama, yaitu metode pelatihan atau pembelajaran (memorisasi) dan metode pengenalan atau aplikasi.
3. Fungsi Aktivasi
Merupakan fungsi untuk menentukan nilai keluaran (output) berdasarkan nilai total masukan (input) pada neuron. Fungsi aktivasi suatu algoritma jaringan dapat berbeda dengan fungsi aktivasi algoritma jaringan lain.
2.1.1 Arsitektur jaringan saraf tiruan
Satu sel saraf dapat dimodelkan secara matematis seperti diilustrasikan oleh Gambar 1. Satu sel saraf terdiri dari tiga bagian, yaitu fungsi penjumlah (summing function),
(23)
Synaptic weights
fungsi aktivasi (activation function) dan keluaran (output). Secara matematis, dapat digambarkan sebuah neuron dengan menuliskan pasangan persamaan sebagai berikut:
Gambar 2.1. Model Neuron[1]
y = f (∑��=1 wi * xi +�)
keterangan:
xi = sinyal masukan ke-i.
wi = bobot hubungan ke-i. � = bias
f(.) = fungsi aktivasi atau elemen pemroses
y = sinyal keluaran.
Beberapa konsep yang berhubungan dengan pemrosesan informasi tersebut seperti yang disebutkan di atas, yaitu:
1. Input
Nilai numerik atau representasi suatu atribut merupakan input dari jaringan. Beberapa tipe data seperti teks, gambar dan suara dapat juga digunakan sebagai input.
2. Output
Output jaringan berisi solusi untuk permasalahan. 3. Bobot (weights)
Unsur kunci Jaringan saraf tiruan adalah bobot. Bobot menunjukkan suatu kekuatan relatif (relative strength) atau nilai matematik dari input data atau
w
2w
iUk Output
Yk Summing function Activation function
w
1∑
f
(.)
x1 x2 xi Input Signal Threshol dθ . . . . . .b
1(24)
banyaknya koneksi yang memindahkan data dari satu lapisan ke lapisan yang lainnya. Bobot sangat penting karena menyimpan pola pembelajaran dari informasi.
4. Fungsi Penjumlahan
Fungsi penjumlahan merupakan perkalian setiap nilai input dengan bobotnya.
5. Fungsi Aktivasi
Fungsi aktivasi merupakan hubungan antara tingkat aktivasi internal dan
output yang bisa berupa linier atau non-linier
Arsitektur pada jaringan saraf tiruan menggambarkan jumlah neuron dan hubungan bobot yang dipakai dan fungsi aktivasi. Secara umum arsitektur jaringan saraf dapat dibedakan menjadi tiga kelas yang berbeda, yaitu jaringan umpan-maju lapisan tunggal (single layer feedforward network atau perceptron), jaringan umpan-maju lapisan jamak (multilayer perceptron) dan jaringan dengan lapisan kompetitif [6].
2.1.2 Jaringan saraf tiruan backpropagation
Terdapat banyak ide dan definisi yang berhubungan dengan “belajar”. Taksonomi proses belajar dalam jaringan saraf tiruan dibagi secara umum menjadi dua bagian [5]:
1. Supervised learning
Supervised learning adalah proses belajar yang membutuhkan guru. Yang dimaksud guru disini adalah sesuatu yang memiliki pengetahuan tentang lingkungan. Guru bisa direpresentasikan sebagai sekumpulan sampel input-ouput.
2. Unsupervised learning
Sesuai dengan namanya, unsupervised atau self-organized learning tidak membutuhkan guru untuk memantau proses belajar. Dengan kata lain, tidak ada sekumpulan input-output atau fungsi tertentu untuk dipelajari oleh jaringan.
(25)
Jaringan saraf tiruan backpropagation dikategotikan sebagai supervised learning yang melakukan pembelajaran sehinggamemberikan output yang masuk akal jika diberi masukan serupa (tidak harus sama) dengan pola yang dipakai dalam pelatihan. Sifat generalisasi ini membuat pelatihan lebih efisien karena tidak perlu dilakukan pada semua data [9].
Backpropagation dibentuk dengan membuat generalisasi aturan pelatihan dalam model widrow-hoff dengan cara menambahkan layer tersembunyi. Kata
backpropagation merujuk pada cara bagaimana gradien perubahan bobot dihitung.
Suatu jaringan saraf tiruan backpropagation memproses informasi masukan pada setiap neuron. Pada gambar 2. ditunjukkan arsitektur JST backpropagation
dengan tiga layer dimana unit masukan X, unit hidden layer Z, dan unit keluaran Y. Sedangkan v0j adalah nilai bias untuk hidden layer Z dan wok adalah nilai bias untuk keluaran Y.
Y1 Yk Ym
w01 w11 wj1 wp1 w0k w1k wjk wpk w0m w1m wjm wpm
Z1 Zj Zp
X1 Xi Xn
v01 v11 vi1 vn1 v0j v1j vij vnj v0p v1p vip vnp
1
1
Gambar 2.2. Arsitektur Jaringan Saraf Tiruan dengan Backpropagation[7] Keterangan:
X = Masukan (input)
V = Bobot lapisan tersembunyi W = Bobot lapisan keluaran
(26)
n = Jumlah unit pengolah lapisan tersembunyi Z = Lapisan tersembunyi (hidden layer) Y = Keluaran (output)
2.1.3 Fungsi Aktivasi
Sebuah sinyal aktivasi diperlukan oleh suatu neuron untuk menyalakan atau memadamkan penjalaran sinyal dari neuron tersebut. Sinyal aktivasi dalam jaringan saraf tiruan ditentukan oleh suatu fungsi aktivasi.
Fungsi aktivasi merupakan fungsi pengolah jumlahan data masukan menjadi data keluaran. Karakteristik pada fungsi aktivasi dari backpropagation adalah
continue, dapat diturunkan, dan tidak menurun secara monoton. Fungsi aktivasi untuk algoritma backpropagation adalah sebagai berikut [6]:
1. Linier atau Purelin
Fungsi linier akan membawa masukkan ke keluaran yang sebanding. Fungsi ini didefinisikan:
Ilustrasi fungsi liner digambarkan pada gambar 2.3 berikut ini:
Gambar 2.3. Fungsi Aktivasi Linier
-1 1
0 x
f(x) x
x f( )=
(27)
2. Sigmoid Biner atau Logsig
Fungsi ini memiliki sifat nonlinier sehingga sangat baik diterapkan dalam penyelesaian masalah yang kompleks. Keluaran dari fungsi sigmoid biner berupa bilangan biner (0 atau 1) atau nilai yang berada di antara 0 sampai 1. Sigmoid biner memiliki range dari [0,1] dan didefinisikan :
) exp( 1 1 ) ( x x f − + =
dan fungsi turunannya adalah : f'(x)= f1(x)[1− f1(x)]
Ilustrasi fungsi sigmoid biner digambarkan pada gambar 2.4 berikut ini:
Gambar 2.4. SigmoidBiner[11]
3. Sigmoid Bipolar atau Tansig
Sigmoid Bipolar memiliki range dari (-1,1) dan didefinisikan :
1 ) exp( 1 2 ) ( − − + = x x f
dan turunan fungsi adalah :
[
1 ( )][
1 ( )]
2 1 ) (
' x f2 x f2 x
f = + −
x f(x)
0
-1 1
(28)
Ilustrasi fungsi sigmoid bipolar digambarkan pada gambar 2.5 berikut ini:
Gambar 2.5. Sigmoid Bipolar[12]
2.1.4 Algoritma pembelajaran metode backpropagation
Proses pelatihan backpropagation meliputi tiga tahap, yaitu tahap umpan maju (feedforward), tahap umpan mundur, dan tahap update bobot dan bias[7]. Algoritma
backpropagation diuraikan sebagai berikut:
Fase I: Propagasi Maju
Selama propagasi maju, sinyal masukan (= xi ) dipropagasikan ke layer tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit layer
tersembunyi (= zj ) tersebut selanjutnya dipropagasikan maju lagi ke layer
tersembunyi di atasnya menggunakan fungsi aktivasi yang ditentukan. Demikian seterusnya hingga menghasilkan keluaran jaringan (=yk ). Berikutnya, keluaran jaringan (= yk ) dibandingkan dengan target yang harus dicapai (= tk ). Selisih dari tk terhadap yk yaitu ( tk – yk ) adalah kesalahan yang terjadi. Jika kesalahan ini lebih kecil dari batas toleransi yang ditentukan, maka iterasi dihentikan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi.
-1
x f(x)
(29)
Fase II: Propagasi Mundur
Berdasarkan kesalahan tk – yk , dihitung faktor δk (k = 1,2,..., m ) yang dipakai untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk . δk juga dipakai untuk mengubah bobot garis yang berhubungan langsung dengan unit keluaran.
Dengan cara yang sama, dihitung faktor δj ( j = 1,2,…, p ) di setiap unit di layer
tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di layerdi bawahnya. Demikian seterusnya hingga semua faktor δ di unit
tersembunyi yang berhubungan langsung dengan unit masukan dihitung.
Fase III: Perubahan Bobot
Setelah semua faktor δ dihitung, bobot semua garis dimodifikasi bersamaan.
Perubahan bobot suatu garis didasarkan atas faktor δ neuron di layer atasnya. Sebagai contoh, perubahan bobot garis yang menuju ke layer keluaran didasarkan atas δk yang ada di unit keluaran. Ketiga fase terebut diulang-ulang terus hingga kondisi penghentian dipenuhi. Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi atau kesalahan. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan. Algoritma pelatihan untuk jaringan dengan satu layer tersembunyi (dengan fungsi aktivasi sigmoid biner) adalah sebagai berikut [4]:
Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil.
Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2 – 9. Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3 – 8.
Fase I : Propagasi maju
Langkah 3 : Tiap unit masukan menerima sinyal dan meneruskannya ke unit tersembunyi di atasnya.
Langkah 4 : Hitung semua keluaran di unit tersembunyi j z ( j = 1,2,…, p ).
(30)
Langkah 5 : Hitung semua keluaran jaringan di unit k
Fase II : Propagasi mundur
Langkah 6 : Hitung faktor δ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk ( k = 1,2,…,m ). δk merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layer dibawahnya (langkah 7). Hitung suku perubahan bobot wkj (yang akan dipakai nanti untuk merubah bobot wkj) dengan laju perceptron α
Δwkj =αδk zj ; k = 1,2,…,m ; j = 0,1,…, p
Langkah 7 : Hitung faktor δ unit tersembunyi berdasarkan kesalahan di setiap unit
tersembunyi zj ( j = 1,2,…, p ).
Faktor δ unit tersembunyi :
δj= δ_netj f ’(z_netj) = δ_netj zj ( 1– zj )
Hitung suku perubahan bobot Vji (yang akan dipakai nanti untuk merubah bobot Vji).
Δvji= α δj xi ; j = 1,2,…,p ; I = 0,1,…,n Fase III : Perubahan bobot
Langkah 8 : Hitung semua perubahan bobot.
Perubahan bobot garis yang menuju ke unit keluaran :
Wkj (baru) = Wkj (lama) + ΔWkj ( k = 1,2,…,m ; j = 0,1,…,p )
(31)
Vji (baru) = Vji (lama) + Δvji ( j = 1,2…,p ; I = 0,1,…,n )
Setelah selesai dilakukan, jaringan dapat dipakai untuk pengenalan pola. Dalam hal ini, hanya propagasi maju (langkah 4 dan 5) saja yang dipakai untuk menentukan keluaran jaringan. Apabila fungsi aktivasi yang dipakai bukan sigmoid biner, maka langkah 4 dan 5 harus disesuaikan. Demikian juga turunannya pada langkah 6 dan 7.
2.1.5 Preprocessing dan postprocessing
1. Min dan Max
Sebelum dilakukan pelatihan, seringkali dilakukan penskalaan pada input dan target sedemikian hingga data input dan target tersebut masuk dalam satu range tertentu[5]. Fungsi premnmx digunakan untuk menskala input dan output sedemikian hingga data-datanya akan terletak pada range [1,1].
Systax:
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t), atau [pn,minp,maxp] = premnmx(p), atau [tn,mint,maxt] = premnmx(t)
Dengan p adalah hasil input, dan t adalah matriks output. Fungsi ini akan menghasilkan:
pn : matriks input yang ternormalisasi (terletak pada range [-1,1]) tn : matriks target yang ternormalisasi (terletak pada range [-1,1]) minp : nilai minimum pada matriks input asli(p).
maxp : nilai maksimum pada matriks input asli(p). mint : nilai minimum pada matriks target asli(p). maxt : nilai maksimum pada matriks target asli(p).
Apabila matriks yang sudah ternormalisasi ini ingin dikembalikan kebentuk aslinya, maka dapat digunakan fungsi postmnmx.
Systax:
(32)
[p] = postmnmx (pn,minp,maxp), atau [t] = postmnmx (tn,mint,maxt)
Dengan p dan t adalah matriks yang telah didenormalisasi.
Apabila pada jaringan saraf tiruan yang telah dilatih menggunakan premnmx untuk
preprocessing, maka apabila ada data input baru yang akan disimulasikan, data baru tersebut juga harus disesuaikan dengan nilai minimum dan maksimum dari jaringan. Untuk keperluan ini, dapat digunakan fungsi tramnmx.
2. Mean dan standar deviasi
Selain dengan meletakkan data input dan target pada range tertentu, proses normalisasi juga dapat dilakukan dengan bantuan mean dan standar deviasi[5]. Fungsi
prestd akan membawa data ke bentuk normal dengan mean=0 dan deviasi standar=1. Syntax:
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t), atau [pn,meanp,stdp] = prestd(p), atau [tn,meant,stdt] = prestd(t)
Dengan p adalah hasil input, dan t adalah matriks output. Fungsi ini akan menghasilkan:
pn : matriks input yang ternormalisasi (terletak pada range [-1,1]) tn : matriks target yang ternormalisasi (terletak pada range [-1,1]) meanp : mean pada matriks input asli(p).
stdp : standar deviasi pada matriks input asli(p) meant : mean pada matriks input target(t).
stdt : standar deviasi pada matriks target asli(p)
Apabila matriks yang sudah ternormalisasi ini ingin dikembalikan kebentuk aslinya, maka dapat digunakan fungsi poststd.
Systax:
[p,t] = poststd(pn,meanp,stdp,tn,meant,stdt), atau [p] = poststd (pn,meanp,stdp), atau
(33)
[t] = poststd (tn,meant,stdt)
Dengan p dan t adalah matriks yang telah didenormalisasi.
Apabila pada jaringan saraf tiruan yang telah dilatih menggunakan trastd untuk
preprocessing, maka apabila ada data input baru yang akan disimulasikan, data baru tersebut juga harus disesuaikan dengan nilai mean dan standar deviasi dari jaringan. Untuk keperluan ini, dapat digunakan fungsi trastd.
2.2 Aplikasi Backpropagation Dalam Prediksi
Prediksi adalah perkiraan tentang sesuatu yang akan terjadi pada waktu yang akan datang yang didasarkan pada data waktu sekarang dan waktu lampau (historical data)[4].
Prediksi merupakan suatu proses untuk memperkirakan kejadian ataupun perubahan di masa yang akan datang[11]. Dalam suatu proses kegiatan, proses prediksi ini merupakan awal dari rangkaian kegiatan, dan sebagai titik tolak kegiatan berikutnya. Permodelan time series sering sekali dikaitkan dengan proses prediksi (forecasting) suatu nilai karakteristik tertentu pada periode kedepan, melakukan pengendalian suatu proses ataupun untuk mengenali pola perilaku sistem[15].
Dengan mendeteksi pola dan kecendrungan data time series, kemudian memformulasikannya dalam suatu model, maka dapat digunakan untuk memprediksi data yang akan datang. Model dengan akurasi yang tinggi akan menyebabkan nilai prediksi cukup valid untuk digunakan sebagai pendukung dalam proses pengambilan keputusan.
Salah satu metode prediksi yang berkembang saat ini adalah menggunakan jaringan saraf tiruan (artificial neural network), dimana jaringan saraf tiruan telah menjadi penelitian yang menarik dan banyak digunakan untuk menyelesaikan masalah pada beberapa bidang kehidupan. Salah satu diantaranya adalah untuk analisis data
(34)
Salah satu jaringan pada JST yang dapat diaplikasikan dengan baik dalam bidang prediksi (forecasting) adalah backpropagation. Prediksi yang sering kita dengar adalah prediksi jumlah penjualan, nilai tukar, valuta asing, prediksi besarnya aliran air sungai, dll[4].
Secara umum, masalah prediksi dapat dinyatakan sebagai berikut: Diketahui sejumlah data runtun waktu (time series) x1, x2, …, xn. Masalahnya adalah memperkirakan berapa harga xn+1 berdasarkan x1, x2, …, xn.
Dengan backpropagation, record data dipakai sebagai data pelatihan untuk mencari bobot yang optimal. Untuk itu kita perlu menetapkan besarnya periode dimana data berfluktuasi secara teratur. Besarnya periode ini kita tentukan secara intuitif. Misalnya: perminggu, perbulan, perempat bulan atau pertahun.
Bagian tersulit dari memprediksi sesuatu menggunakan jaringan saraf tiruan
backpopagation adalah menentukan jumlah layer (dan unitnya). Tidak ada teori yang dengan pasti yang dapat dipakai. Tapi secara praktis dicoba jaringan yang kecil terlebih dahulu (misalnya terdiri dari satu layer tersembunyi dengan beberapa unit saja). Jika gagal (kesalahan tidak turun dalam epoch yang besar), maka jaringan diperbesar dengan menambahkan unit tersembunyi atau bahkan menambah layer
tersembunyi.
2.3 Prediksi Harga Minyak Mentah Dunia
Energi adalah mesin pertumbuhan ekonomi yang utama dan minyak bumi adalah primadonanya karena kemudahan dan fleksibilitas penggunaannya paling tinggi dibandingkan energi lainnya. Minyak bumi telah berperan besar dalam memajukan negara-negara industri yang mengkonsumsinya dalam jumlah besar dan harga murah sedangkan dewasa ini negara-negara ekonomi baru yang sedang tumbuh juga sangat memerlukan namun pada situasi pasokan yang sudah sedikit dan pada harga yang jauh lebih tinggi[12].
(35)
Kecukupan pasokan dan harga minyak yang stabil sangat diperlukan dalam mendorong pertumbuhan ekonomi maupun kegiatan usaha. Karena itu harga yang dapat diprediksi dengan baik akan sangat bermanfaat bagi banyak pihak, baik pemerintah, badan usaha maupun investor agar semua kegiatan dapat direalisasikan sesuai rencana[14].
Sebaliknya, harga minyak yang naik-turun saat ini, sering membuat cemas para pelaku ekonomi bahkan dapat mengancam stabilitas pertumbuhan perekonomian jika tidak di-manage dengan baik. Pada kenyataannya pergerakan harga minyak dalam runut waktu tertentu dapat digolongkan data time series yang umumnya dapat dipahami dengan melihat pola kejadian di masa lalu dan saat ini.
Pada pengamatan data time series harga minyak, terdapat beberapa reverensi yang dapat diambil, yaitu harga dari pasar minyak mentah dunia. Dari beberapa pasar minyak mentah yang terbesar antara lain: WTI (West Texas Intermediate), NYMEX (New York Mercantile Exchange), Brent North Sea, Tapis, Minas[10].
2.4 Tinjauan Penelitian yang Relevan
Berikut ini penelitian tentang jaringan saraf tiruan backpropagation, khususnya penggunaan dalam hal prediksi:
1. Penelitian oleh Dini Otaviani ini membahas tentang penggunaan jaringan saraf tiruan backpropagation untuk memprediksi kurs mata valuta asing. Hasil dari penelitian ini, jaringan saraf tiruan backpropagation dapat memprediksi nilai kurs valuta asing dengan faktor penentu keberhasilan pelatihan antara lain: jumlah layer, jumlah neuron dan parameter pelatihan. Pelatihan perbulan menghasilkan pencapaian yang baik, namun pada pelatihan periode lain seperti harian atau mingguan kurang baik karena data pelatihan yang kurang banyak [14].
(36)
2. Penelitian oleh Edy Suprianto ini mengimplementasikan algoritma
Backpropagation untuk memprediksi harga saham. Dalam penelitian ini dilakukan beberapa prediksi dalam bentuk harian, dengan empat variabel input
yaitu nilai tertinggi, terendah, penutupan dan volume. Dari hasil penelitian algoritma backpropagation bisa digunakan karena sifatnya yang adaptif karena jaringan berusaha mencapai kestabilan kembali untuk mencapai output yang diharapkan [8].
(37)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Permasalahan
.
Ketidakstablian harga minyak menjadi masalah yang cukup rumit dan belum terselesaikan sepenuhnya. Pihak yang terkait dengan pengelolaan harga minyak dalam negeri sebaiknya memiliki sistem prediksi harga minyak yang dapat memperkirakan harga minyak sebagai antisipasi kenaikan atau penurunan harga.
Penyebab dan dampak dari permasalahan tersebut diperlihatkan pada diagram
ishikawa Gambar3.1.
Sulit Memprediksi Harga Minyak Staf
Metode Kurang tepat melakukan
perkiraan harga minyak
Prediksi harga masih dilakukan secara intuitif
Material
Belum ada aplikasi untuk memperkirakan harga minyak
Prosedur Tidak bisa diukur tingkat
validitasnya
Gambar 3.1 Diagram Ishikawa Analisis Permasalahan
Proses prediksi dapat dilakukan dengan mengamati data periode harga minyak dimasa lalu. Misalnya data harga minyak diketahui data harga minyak selama satu tahun yaitu tahun 2010. Data ini bisa dibagi menjadi data bulan Januari-November 2010 sebagai input dan data bulan desember 2010 sebagai target dengan periode input
dan target dimana data berfluktuasi dapat diamati dalam periode satu bulan. Maka, sebelum menentukan jumlah input, target dan periode dimana data berfluktuasi diperlukan analisis terhadap data dimasa lalu agar dapat memahami rancangan sistem
(38)
yang akan dibangun terutama untuk menentukan arsitektur jaringan dan periode pelatihan maupun prediksinya.
Oleh karena itu diperlukan analisis terhadap data terlebih dahulu. Berikut ini adalah grafik harga minyak dari tahun 2010 hingga 2013:
Gambar 3.2 Grafik harga minyak tahun 2010 dan awal 2013
Dari grafik data diatas yang terjadi perulangan pola antara lain: tahun 2010, tahun 2011 pada grafik menaik dan tahun 2012 hingga tahun 2013 yang cendrung stabil. Data dapat dikelompokkan menjadi:
Tabel 3.1 Kelompok Data yang Memiliki Pola yang Berulang
No Tahun Bulan
1. 2010 1,2,3,4,5,6,7,8,9 2. 2010-2011 11,12,1,2,3,4,5,6,7 3. 2012-2013 4,5,6,7,8,9,10,11,12,1 4. 2012-2013 6,7,8,9,10,11,12,1,2 5. 2012-2013 7,8,9,10,11,12,1,2,3 6. 2012-2013 8,9,10,11,12,1,2,3,4
(39)
Tabel 3.2 Grafik Data yang Memiliki Pola yang Berulang
Gambar Grafik Kelompok Data yang Memiliki Pola yang Sama
Data harga minyak yang sepola, tampak dari gambar diatas dapat kemudian dibagi menjadi data untuk pelatihan dan data untuk prediksi. Data pelatihan juga dibagi menjadi data yang dilatih dan data yang dijadikan sebagai target dari pelatihan.
(40)
3.2 Analisis Kebutuhan Sistem
Analisis Kebutuhan Sistem meliputi analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem.
3.2.1 Kebutuhan fungsional sistem
Kebutuhan fungsional yang harus dimiliki oleh sistem prediksi harga minyak mentah dunia adalah:
1. Sistem dapat membaca masukan berupa data harga minyak mentah dunia selama tiga tahun terakhir.
2. Sistem dapat menghasilkan jaringan saraf tiruan dengan kinerja maksimal. 3. Sistem dapat melakukan memprediksi harga minyak mentah dalam jangka waktu
beberapa bulan mendatang
4. Sistem dapat menampilkan hasil prediksi yang akurat dan menampilkan error
yang kurang dari batas toleransi terhadap data sebenarnya.
3.2.2 Kebutuhan non-fungsional sistem
Untuk mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut: 1. Waktu respon sistem cepat, sehingga dapat mengefektifkan waktu pengguna sistem. 2. Tampilan antarmuka sistem dapat dengan mudah dimengerti oleh pengguna sistem. 3. Data yang terdapat pada sistem berupa data yang relevan, sehingga menghasilkan
pengenalan yang tepat.
4. Sistem yang dibuat dapat dikembangkan dengan mudah, sehingga sistem tidak cepat usang.
3.3 Pemodelan
Pada penelitian ini digunakan UML sebagai bahasa pemodelan untuk mendesain dan merancang sistem prediksi harga minyak mentah dunia. Model UML yang digunakan adalah use case diagram, activity diagram dan sequence diagram.
(41)
3.3.1 Use case diagram
Untuk mengetahui aktor dan use case yang akan digunakan, maka dilakukan identifikasi aktor dan identifikasi use case. Setelah mendapatkan aktor dan use case, maka use case diagram dapat digambarkan. Pengidentifikasian aktor dan use case
pada sistem ini dilakukan dengan menjawab pertanyaan-pertanyaan berikut:
1. Siapa yang menggunakan sistem? Jawaban: Pengguna
2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban: Pengguna dan programmer
3. Apa saja yang dapat dilakukan pengguna pada sistem?
Jawaban: Melakukan pelatihan JST, melakukan prediksi harga minyak mentah dunia dan melihat hasil prediksi.
Use case diagram secara grafis yang menggambarkan interaksi antara sistem dan pengguna. Dengan kata lain, secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan dalam cara apa pengguna mengharapkan interaksi dengan sistem itu. Use case diagram berdasarkan aktor dan use case ditampilkan pada Gambar 3.3.
(42)
Sistem Prediksi Harga Minyak Mentah
Prediksi JST
Pemrogram Pengguna
«extends» Pelatihan JST
Cek Data Harga
Gambar 3.3 Use Case Diagram Sistem Prediksi Harga Minyak Mentah Dunia
3.3.1.1 Use case cek data harga
Tabel 3.3 merupakan tabel dokumentasi naratif dari use case cek data harga minyak mentah dunia.
Tabel 3.3 Dokumentasi Naratif Use Case Cek Data Harga Nama Use case Cek Data
Aktor Pengguna
Deskripsi Use case ini mendeskripsikan proses men-cek harga minyak mentah dunia
Prakondisi Sudah masuk dalam tampilan Cek Data
Bidang khas
Kegiatan pengguna Respon sistem
1. Klik popup menu untuk memilih bulan dan tahun yang akan dilihat datanya
1. Menampilkan data 20 harga minyak perhari dari bulan dan tahun yang dipilih juga menampilkan data dalam bentuk grafik
Bidang Alternatif
1. Tekan tombol ke Pelatihan
2. Tekan tombol Menu Utama
1. Menuju antar muka pelatihan
2. Kembali ke antarmuka Menu Utama
(43)
Post-kondisi Sistem menampilkan harga minyak dalam bentuk angka dan grafik berdasarkan bulan dan tahun yang dipilih
Activity diagram untuk use case cek data harga minyak diperlihatkan pada Gambar 3.4.
Pilih Bulan dan Tahun
Tampilan Harga Minyak dalam angka
Tampilan Harga Minyak dalam grafik
Gambar 3.4. Activity Diagram Data Cek Harga
3.3.1.2 Use case pelatihan JST
Tabel 3.4 menunjukkan dokumentasi naratif dari use case pelatihan JST.
Tabel 3.4 Dokumentasi Naratif Use Case Latih JST
Nama Use case Pelatihan JST Aktor Programmer
Deskripsi Use case ini mendeskripsikan proses pelatihan JST
Prakondisi Sudah masuk dalam tampilan antarmuka Pelatihan dan data harga minyak mentah sudah ada sebagai input-an
Bidang khas
Kegiatan pengguna Respon sistem 1. Isi nilai Learning
rate
2. Isi nilai Momentum 3. Isi nilai
Maksimum error
4. Isi nilai
Maksimum jumlah
epoch
5. Klik tombol Latih 6. Klik tombol
1. Input nilai learning rate ke dalam sistem
2. Input nilai momentum ke dalam sistem
3. Input nilai maksimum
error ke dalam sistem 4. Input nilai learningrate ke
dalam sistem
5. Melakukan pelatihan, menampilkan grafik dan menampilkan mse
(44)
Simpan 7. Klik tombol
Tampil
6. Menyimpan bobot ke dalam excel
7. Menampilkan data
pelatihan dalam figure lain
Bidang Alternatif
1. Tekan tombol ke Prediksi
2. Tekan tombol Menu Utama
1. Menuju antar muka prediksi 2. Kembali ke antarmuka Menu
Utama Post-kondisi Sistem menampilkan grafik hasil pelatihan
Activity diagram untuk use case pelatihan harga minyak diperlihatkan pada Gambar 3.5.
(45)
Masukkan learning rate
Masukkan momentum
Masukkan Max. Epoch
Masukkan Max. Error
Klik tombol Latih
Pelatihan kurang dari max error yg ditetapkan?
Klik tombol tampil
Pelatihan Menampilkan grafik
Klik tombol simpan Pilih data pelatihan
Ya tidak
(46)
3.3.1.3 Use case prediksi JST
Berikut ini merupakan tabel dokumentasi naratif dari use case prediksi JST.
Tabel 3.5 Dokumentasi Naratif Use Case Prediksi JST Nama Use case Prediksi Harga Minyak
Aktor Pengguna
Deskripsi Use case ini mendeskripsikan proses memprediksi harga minyak mentah dunia
Prakondisi Sudah masuk dalam tampilan antarmuka Prediksi
Bidang khas
Kegiatan pengguna Respon sistem 1. Pilih dari popupmenu
bulan dan tahun yang akan diprediksi
1. Menampilkan bulan dan tahun yang dipilih untuk diprediksi
2. Klik tombol prediksi 2. Menampilkan data hasil prediksi dalam bentuk grafik dan table serta jumlah error (mse)
Bidang Alternatif
1. Tekan tombol ke Keluar
2. Tekan tombol Menu Utama
1. Menutup Aplikasi 2. Kembali ke
antarmuka Menu Utama
Post-kondisi Sistem menampilkan hasil prediksi yang akan dibandingkan dengan data aktual
Activity diagram untuk use case prediksi harga minyak diperlihatkan pada Gambar 3.6.
(47)
Pilih Data Minyak
Klik Prediksi
Tampilkan Hasil Akhir Prediksi JST melakukan prediksi
sesuai kah dengan data aktual?
Ya Tampilkan hasil prediksi
tidak
Gambar 3.6. Activity Diagram Prediksi Harga Minyak
3.3.2 Analisis proses sistem
Berikut dijelaskan proses yang terjadi pada sistem dengan menggunakan sequence diagram. Sequence diagram adalah diagram yang memodelkan logika sebuah use case
dengan cara menggambarkan interaksi pesan diantara objek-objek dalam rangkaian waktu.
3.3.2.1 Proses pelatihan jaringan saraf tiruan
Sistem dimulai dengan pengecekan data untuk mengetahui jangka waktu data-data yang akan dilatih. Data dimasukkan ke dalam sistem menggunakan sekumpulan daftar harga minyak, diambil dari data yang tersimpan dalam excel. Proses input data dilakukan dengan memilih data harga minyak yang akan dilatih menggunakan perintah xlsread.
(48)
Tahapan selanjutnya pengguna memasukkan parameter pelatihan seperti laju pembelajaran, nilai error maksimal dan besar momentum. Lalu dilakukan pelatihan terhadap jaringan saraf tiruan dengan parameter yang ditentukan oleh pengguna dan masukan berupa matriks normalisasi. Hasil pembelajaran berupa bobot dan bias yang akan disimpan dan digunakan pada proses prediksi.
Sebelum dilakukan pelatihan dengan backpropagation, terlebih dahulu dilakukan normalisasi terhadap input pelatihan. Proses normalisasi dilakukan dengan bantuan mean dan standar deviasi. Fungsi prestd akan membawa data ke bentuk normal dengan mean = 0 dan standar deviasi = 1.
Terakhir dilakukan pelatihan terhadap jaringan saraf tiruan dengan parameter yang ditentukan oleh pengguna dan masukan yang telah diubah bentuknya menjadi matriks normalisasi. Hasil pembelajaran berupa bobot dan bias setelah pelatihan yang akan disimpan dan digunakan pada proses prediksi. Proses tampil hasil menampilkan selisih dalam bentuk tabel dan simpan hasil untuk menyimpan data hasil pelatihan. Berikut ini sequence diagram untuk proses pelatihan diperlihatkan pada Gambar 3.7.
Latih Tampil Hasil Simpan Hasil
Proses latih Simpan bobot
output,target
input hasil pelatihan
Input bobot awal Sistem Pelatihan
Input parameter
input(P,T), normaslisasi Input Parameter
baca parameter
RMSE
selisih output-target
(49)
Berikut adalah pseudocode dari proses pelatihan jaringan saraf tiruan pada sistem prediksi harga minyak.
Proses Pelatihan Jaringan Saraf Tiruan
INPUT PARAMETER
function parameter_Callback(hObject, eventdata, handles) nameParameter=str2num(get(nameProperties,’String’)); handles.nameParameter=nameParameter;
guidata(hObject,handles);
xlswrite(‘Name_fileExcel’,’nameParameter’,’sheet’,’xlrange’); INPUT DATA
function latih_Callback(hObject, eventdata, handles) Input_dataHarga;
nameParameter= handles.nameParameter; target=get(handles.popupmenu1,’Value’); switch target
case number input <-[P,T]
[pn,meanp,stdp,tn,meant,stdt]=prestd(P,T); <-normalisasi preprocessing
net=newff(input, Target,[S1 S2...S(N-l)],{TF1 TF2...TF(N-l)}, BTF)
[net,tr] ← train (net,input, target);
Bobot=net.IW{1,1} <-start Bias=net.b{1} <-start end
PROSES LATIH
net.trainParam.nameParameter=namePreperties; net.train(net,pn,tn);
input to xl <- [bobot,bias] an=sim(net,pn);
a=poststd(an.meant,stdt); <-normalisasi postprocessing handles.a=a;
[y,Pf,Af,e,Perf]=sim(net,P,[],[],T);
3.3.2.2 Proses prediksi jaringan saraf tiruan
Pada proses prediksi digunakan masukan berupa data harga minyak pada rentang waktu tertentu. Sama seperti proses pelatihan, input kemudian dinormalisasi kedalam bentuk matriks antara [-1,1]. Normalisasi pada tahap prediksi ini juga menyertakan hasil dari tahap pelatihan seperti mean dan standar deviasi.
(50)
Kemudian dilakukan pengambilan data hasil dari pelatihan berupa bobot yang sudah dilatih. Bobot tersebut sebelumnya disimpan di excel. Kemudian ketika dilakukan proses prediksi dengan menggunakan xlsread, bobot dibaca oleh sistem. Setelah dilakukan prediksi yaitu disebut proses feedforward karena tidak dilakukan pelatihan mundur untuk mengubah bobot. Hasil prediksi berupa informasi mengenai prediksi harga minyak pada periode mendatang yang telah diketahui sehingga dapat diukur tingkat validasinya. Sequence diagram proses prediksi jaringan saraf tiruan dipaparkan pada Gambar 3.8.
Kontrol Prediksi Input Harga Normalisasi Identifikasi bobot Feedforward
Proses Normalisasi Proses input
input bobot akhir
Input hasil pelatihan
Proses prediksi
Hasil prediksi Input harga
Gambar 3.8 Sequence Diagram Proses Prediksi JST
Berikut adalah pseudocode dari proses prediksi jaringan saraf tiruan pada sistem prediksi harga minyak.
Proses Prediksi JST INPUT DATA
function prediksi_Callback(hObject, eventdata, handles) Input_dataHarga;
target=get(handles.popupmenu1,’Value’); switch target
case number input <-[Q,TQ] end
(51)
Qn=trastd(Q,meanp,stdp);
net=newff(input, Target,[S1 S2...S(N-l)],{TF1 TF2...TF(N-l)}, BTF)
[net,tr] ← train (net,input, Target);
net.IW{1,1}=xlsread(‘Name_fileExcel’,’sheet’,’xlrange’); <-start net.b{1}= xlsread(‘Name_fileExcel’,’sheet’,’xlrange’); <-start bn=sim(net,Qn);
b=poststd(bn,meant,stdt);
UJI JST BACKPROPAGATION
[y,Pf,Af,e,Perf]=sim(net,P,[],[],T);
3.4 Perancangan Antarmuka
Perancangan antarmuka menguraikan bagaimana komunikasi antara sistem dengan pengguna. Tujuan utama dari perancangan antarmuka pengguna adalah untuk menciptakan suatu komunikasi yang efektif antara manusia dan komputer. Antarmuka yang menarik menjadi nilai tambah bagi pengguna maupun perancang sistem tersebut. Pada tahap ini akan dilakukan perancangan antarmuka sistem yang akan digunakan pada sistem nantinya.
3.4.1. Antarmuka menu utama
Antarmuka menu utama sistem merupakan tampilan utama ketika sistem dijalankan. Rancangan antarmuka menu utama pada sistem prediksi harga minyak dapat dilihat pada Gambar 3.9.
(52)
Keterangan:
1. TombolCek Data
Berfungsi menghubungkan antarmuka menu utama dengan antarmuka cek data. 2. TombolPelatihan
Berfungsi menghubungkan antarmuka menu utama dengan antarmuka pelatihan. 3. TombolPrediksi
Berfungsi menghubungkan antarmuka menu utama dengan antarmuka prediksi. 4. Tombol Keluar
Berfungsi menghubungkan antarmuka menu utama dengan antarmuka konfirmasi keluar.
3.4.2. Antarmuka cek data
Terdapat dua bagian utama pada antarmuka cek data, yaitu bagian menampilkan data dalam bentuk angka dan grafik. Rancangan antarmuka cek data diperlihatkan pada Gambar 3.10.
(53)
Keterangan:
1. 1. Popup Menu
Berfungsi untuk menampilkan data dalam bentuk angka dan grafik 2. Textfield Harga dalam angka
Tempat memasukkan nilai harga minyak selama satu bulan 3. Axes
Menampilkan data harga minyak selama satu bulan. 4. Tombol ke Pelatihan
Berfungsi menghubungkan antarmuka cek data dengan antarmuka pelatihan 5. Tombol Menu Utama
Berfungsi menghubungkan antarmuka cek data denganantarmuka menu utama
3.4.3. Antarmuka pelatihan
Terdapat dua bagian utama pada antarmuka pelatihan, yaitu bagian pelatihan JST
backpropagation dan bagian penyimpanan bobot ke dalam excel. Rancangan
antarmuka pelatihan diperlihatkan pada Gambar 3.11.
(54)
Keterangan:
1. Popup Menu
Berfungsi untuk memilih data yang akan dilatih. 2. Textfield Laju Pemahaman
Tempat memasukkan nilai laju pemahaman 3. Textfield Momentum
Tempat memasukkan nilai momentum 4. Textfield Max. Epoch
Tempat memasukkan nilai maksimal epoch dalam pelatihan 5. Textfield Max. Error
Tempat memasukkan nilai maksimal toleransi erroroutput terhadap target 6. TombolLatih
Berfungsi untuk melatih data sesuai dengan parameter-parameter yang telah ditentukan sebelumnya.
7. Textfield MSE
Tempat menampilkan error yang dihasilkan dari proses pelatihan 8. Axes
Menampilkan perbandingan target dan output yang dihasilkan dari pelatihan dalam bentuk grafik
9. TombolTampil
Berfungsi untuk menampilkan perbandingan target dan output yang dihasikan dalam bentuk tabel
10. TombolSimpan
Berfungsi untuk menyimpan bobot-bobot dari hasil pelatihan ke dalam excel. 11. Tombol ke Prediksi
Berfungsi menghubungkan antarmuka pelatihan dengan antarmuka prediksi 12. Tombol Menu Utama
(55)
3.4.4. Antarmuka prediksi
Pada antarmuka pengujian terdapat dua bagian yaitu bagian yang akan diprediksi dan hasil prediksi. Rancangan antarmuka pediksi jaringan saraf tiruan ditunjukkan pada Gambar 3.12.
Gambar 3.12 Rancangan Antarmuka Prediksi
Keterangan:
1. Popup Menu
Berfungsi memilih data yang akan diprediksi 2. Tombol Prediksi
Berfungsi memulai proses prediksi dan memunculkan data dalam bentuk tabel. 3. Axes 1
Tempat menampilkan perbandingan data aktual dengan hasil prediksi dalam bentuk grafik
4. Tombol Menu Utama
Berfungsi menghubungkan antarmuka pengujian dengan antarmuka Menuu Utama.
5. Tombol Keluar
(56)
3.4.5. Antarmuka konfirmasi keluar
Antarmuka konfirmasi keluar adalah antarmuka yang muncul setiap pengguna mengklik tombol keluar pada antarmuka menu utama. Rancangan antarmuka ini diperlihatkan pada Gambar 3.13.
Gambar 3.13Rancangan AntarmukaKonfirmasi Keluar
Keterangan: 1. TombolYa
Berfungsi menjawab 'Ya' pada konfirmasi keluar, maka pengguna keluar dari sistem. 2. TombolTidak
Berfungsi menjawab 'Tidak' pada konfirmasi keluar, maka antarmuka konfirmasi keluar ditutup dan antarmuka awal tetap terbuka.
(57)
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
Implementasi sistem prediksi harga minyak metah dunia menggunakan jaringan saraf tiruan backpropagation ini menggunakan perangkat lunak Matlab R2009. Perangkat lunak pemrograman ini dipilih karena menyediakan banyak fasilitas dan fungsi-fungsi yang membantu dalam perhitungan matematik dan pembuatan grafik juga tools untuk membangun arisektur jaringan saraf tiruan. Hal ini sangat mendukung dalam penulisan skripsi ini, dimana banyak pemrosesan yang menggunakan perhitungan secara matematis, menampilkan grafik dan memudahkan dalam pemrosesan jaringan saraf tiruan. Selain, Matlab R2009 sistem ini juga menggunakan Microsoft Office Excel 2007 sebagai perangkat lunak yang menyimpan data pelatihan.
Penerapan sistem dilakukan dengan menggunakan komputer dengan sistem operasi Windows Seven Ultimate dan perangkat keras yang digunakan dalam mengimplementasikan program simulasi dari jaringan saraf tiruan ini adalah Intel atom N570, memori RAM 1 GB , DDR3 1 GB, harddisk 320 GB, dan Monitor LCD 10.1” dengan resolusi layar (1024 x 600).
4.1.1 Tampilan antarmuka sistem
Sistem prediksi harga minyak mentah dunia diimplementasikan dalam beberapa tampilan antarmuka yang terdiri dari antarmuka menu utama, antarmuka cek data, antarmuka pelatihan, antarmuka prediksi, antarmuka tampilan hasil pelatihan, antarmuka tampilan hasil prediksi, dan antarmuka keluar.
(58)
4.1.1.1 Antarmuka menu utama
Antarmuka menu utama merupakan antarmuka yang pertama kali tampil ketika aplikasi dimulai. Antarmuka ini terdiri dari nama aplikasi, tombol cek data, tombol pelatihan, tombol prediksi, dan tombol keluar. Tombol-tombol ini menghubungkan antarmuka menu utama dengan antarmuka lain.
Tombol cek data menghubungkan antarmuka menu utama dengan antarmuka cek data. Tombol pelatihan menghubungkan antarmuka menu utama dengan antarmuka pelatihan. Tombol prediksi menghubungkan antarmuka menu utama dengan antarmuka prediksi. Tombol keluar, menghubungkan antarmuka menu utama keluar. Tampilan antarmuka menu utama ditunjukkan pada Gambar 4.1.
Gambar 4.1 Antarmuka Menu Utama
4.1.1.2 Antarmuka cek data
Antarmuka cek data berfungsi untuk menampilkan daftar harga minyak mentah dunia dari bulan dan tahun yang dipilih. Daftar harga tersebut ditampilkan pada edit text
yang dapat muncul hasilnya setelah pengguna memilih bulan dan tahun pada popup menu. Begitu juga dengan data berbentuk grafik pada antarmuka cek data yang akan otomatis muncul ketika pengguna memilih bulan dan tahun dalam popup menu yang
(59)
sama. Pada antarmuka ini juga terdapat tombol menu utama dan ke pelatihan yang berfungsi menghubungkan ke antarmuka selanjutnya. Selengkapnya tampilan antarmuka cek data sebelum proses penampilan data pada Gambar 4.2 dan antarmuka cek data setelah pengambilan data dari Microsoft Office Excel 2007 pada Gambar 4.3.
Gambar 4.2 Antarmuka Cek data
(60)
Gambar 4.4 Antarmuka Proses Pemberitahuan Proses
Antar muka pemberitahuan proses terdapat pada antar muka cek data untuk menunggu proses pengambilan data harga minyak dari Microsoft Office Excel 2007. Begitu juga untuk proses lain yang memakan waktu cukup lama, ditampilkan juga pemberitahuan yang serupa untuk memudahkan user mengetahui, proses yang dilakukan oleh sistem. Pada Antar muka pelatihan, juga terdapat pemberitahuan proses sebagai pemberitahuan bahwa sistem sedang menyimpan data pelatihan, antara lain: bobot, momentum, learning rate, max. target, max. epoch, mean input, mean target, standar deviasi input dan standar deviasi target. Sedangkan pada antar muka prediksi, pemberitahuan proses ditampilkan ketika menunggu proses penampilan hasil prediksi dalam bentuk grafik dan dalam bentuk grid.
4.1.1.3 Antarmuka pelatihan
Terdapat dua bagian utama pada antarmuka pelatihan, yaitu pelatihan jaringan saraf tiruan backpropagation dan penyimpanan bobot. Pada bagian pelatihan diawali input
parameter, terdapat textfield untuk memasukkan input parameter yang akan digunakan pada pelatihan. Kemudian, dipilih pula data yang akan dilatih dan untuk memulai pelatihan tersedia tombol latih. Selain textfield untuk memasukkan parameter, pada bagian ini terdapat axes sebagai tempat untuk menampilkan grafik perbandingan input
dan output juga textfield untuk mengetahui error yang dihasilkan setelah pelatihan.
Pada antarmuka ini juga terdapat dua tombol penting lainnyayaitu tampil dan simpan. Tombol tampil untuk menampilkan perbandingan target, output juga selisih antara target dan output dalam bentuk tabel dalam figure lain sehingga pengguna dapat memperhatikan tingkat akurasi jaringan saraf tiruan dalam mencapai target yang
(61)
lain, yaitu menu utama untuk kembali ke antarmuka menu menu utama, dan ke prediksi untuk melanjutkan ke proses selanjutnya.
Pada data pelatihan hanya dipilih enam kelompok data dari rentang waktu Januari 2010 hingga 30 April 2013 dikarenakan tidak semua periode dalam waktu tersebut memiliki pola yang sama. Sebab itu dipilihlah beberapa periode pada rentang waktu tersebut yang sesuai dengan pelatihan jaringan saraf tiruan, yaitu memiliki pola perulangan yang walaupun acak tapi terlihat sedikit pola yang beraturan didalamnya.
Tampilan antarmuka pelatihan diperlihatkan pada Gambar 4.5.
Gambar 4.5 Antarmuka Pelatihan
Setelah memasukkan input parameter dan data yang akan dilatih pada antar muka pelatihan proses pelatihan dimulai dengan mengklik tombol Latih. Setelah pengguna mengklik tombol latih maka akan muncul antarmuka Neural Network Training (nntool) yang ada secara default pada aplikasi Matlab, diperlihatkan Gambar 4.6. Pada tampilan Neural Network Training (nntool) yang terdiri dari tampilan arsitektur jaringan saraf tiruan dengan menampilkan gambar jumlah layer pada arsitektur jaringan saraf tiruan, jenis algoritma pelatihan yang digunakan, performance
(62)
yang dilakukan pelatihan, waktu yang digunakan untuk pelatihan, gradient
kemiringan/penurunan menuju error terkecil, dll.
Gambar 4.6 Antarmuka Neural Network Training (nntool)
Antarmuka training jaringan saraf tiruan yang digunakan dalam sistem prediksi ini adalah antarmuka standar atau bawaan dari aplikasi Matlab. Antarmuka ini melakukan training dengan mekanisme bacth mode yaitu pelatihan dengan metode berkelompok. Setelah pola input selesai dimasukkan, bobot baru diubah.
Pada bagian antarmuka Neural Network Training (nntool) terdapat tiga tampilan grafik untuk mengukur ketepatan hasil yaitu button performance untuk melihat grafik perubahan mse mulai dari pelatihan awal hingga akhir, button training state untuk melihat grafik gradient, mse dan validasi, sedangkan grafik regression
untuk menampilkan perbandingan data hasil pelatihan (output) dengan garis regresi
(63)
Setelah proses training selesai dan mencapai error minimum, akan muncul hasil pelatihan (training) dalam bentuk grafik perbandingan target(o) dan output(*) dan muncul juga hasil error (RMSE) akhir pelatihan.
Tampilan antarmuka setelah Pelatihan diperlihatkan pada Gambar 4.7.
Gambar 4.7 Antarmuka Pelatihan Setelah Dilakukan Pelatihan
Setelah pelatihan selesai, untuk secara detail mengetahui hasil pelatihan (output) dibandingkan dengan target yang dituju serta selisih keduanya, antarmuka ini dapat ditampilkan dengan mengklik tombol tampil. Tampilan antarmuka tampil pelatihan setelah dilakukan training neural network (JST) diperlihatkan pada Gambar 4.8.
(1)
pelatihan_br; close prediksi_br;
end
function pushbutton3_Callback(hObject, eventdata, handles) bulan1=[73.71 74.48 75.23 74.11 76.98 77.27 78.97 79.77 80.04 78.61...
79.75 77.99 79.72 78.71 79.62 80.91 80.21 81.5 81.85 81.5]; bulan2=[82.07 82.1 81.26 79.79 81.75 82.93 82.16 80.58 81.26 81.68...
80.29 80.25 79.75 81.92 82.14 83.45 84.53 86.36 86.54 85.64]; bulan3=[85.17 84.6 84.07 83.8 85.62 85.25 82.97 81.52 82.98 82.78...
82.89 84.34 84.2 82.43 83.22 85.17 86.07 86.19 82.73 80];
bulan4=[71.61 70.08 69.38 69.91 68.28 68.03 68.23 71.52 74.56 74 ...
72.7 72.88 74.62 71.43 71.55 71.88 74.38 75.48 73.89 74.99]; bulan5=[76.84 77.67 76.82 77.18 77.84 77.15 75.9 75.96 78.45 78.26...
75.93 75.59 72.95 72.06 71.96 74.05 75.46 76.08 74.93 77.16 ];
bulan6=[77.02 76.67 75.96 76.53 77.32 76.27 79.01 78.68 78.93 77.46...
77.06 78.3 78.85 81.25 82.52 82.49 82 80.67 81.46 80.24]; bulan7=[71.24 72.07 73.36 75.17 74.69 71.93 73.97 74.99 74.52 73.98 74.65 74.25...
76.4 77.17 76.78 75.92 74.58 73.63 74.81 72.96];
bulan8=[72.98 73.4 74.63 76.51 76.15 77.85 79.95 81.57 81.43 82.83 83.21 81.34 82.66 82.18...
81.67 83.03 82.71 81.23 83.06 79.57 ];
bulan9=[81.93 80.03 81.15 82 82.6 81.9 82.2 81.45 82.94 84.45 86.49 86.85 87.07 87.04...
87.77 87.77 84.89 84.88 82.33 80.43];
bulan10=[81.57 81.43 82.83 83.21 81.34 82.66 82.18 81.67 83.03 82.71...
81.23 83.06 79.57 81.93 80.03 81.15 82 82.6 81.9 82.2]; bulan11=[82.94 83.91 84.45 86.49 86.85 87.07 87.04 87.77 87.77 84.89...
84.88 82.33 80.43 81.88 81.65 81.24 80.79 83.21 83.87 85.73]; bulan12=[86.75 87.98 89.18 89.33 88.69 88.3 88.35 87.81 88.62
88.33...
88.66 87.71 88.02 88.68 89.3 89.83 90.84 90.99 91.48 91.13]; bulan13=[91.38 91.59 89.39 90.3 88.37 88.07 89.24 91.11 91.85 91.39 91.53 91.38 ...
90.85 88.56 88.22 86.74 85.08 86.15 84.45 88.15];
bulan14=[90.99 89.54 89.78 89.42 87.87 86.3 85.85 85.59 85.44 84.39 83.66 83.13...
83.8 85.05 85.03 92.65 96.04 95.83 96.52 97.1];
bulan15=[99.63 102.27 101.92 104.34 105.37 105.06 104.39 102.73 101.14 101.2 97.23...
97.99 101.47 101.06 102.36 104.53 105.21 105.04 104.89 103.54];
bulan16=[107.55 108.14 107.82 108.38 109.82 112.27 109.5 105.75 106.6 107.73...
109.17 106.7 107.18 110.84 111.72 111.68 111.72 112.31 112.38 113.39];
bulan17=[113.03 110.6 108.79 99.89 96.87 100.32 103.39 97.88 98.53 99.21 96.91...
(2)
bulan18=[100.3 100.41 100.28 99.07 99.18 100.77 101.95 99.3 97.2 99.37 94.83...
94.95 93.02 93.23 93.7 94.96 90.7 90.89 90.65 92.9];
bulan19=[94.81 96.92 96.67 98.7 96.2 95.16 97.41 98.04 95.75 97.24 95.94 97.49...
98.11 98.96 99.53 98.97 99.61 97.4 97.48 95.68];
bulan20=[94.98 93.78 91.87 86.75 86.89 81.27 79.32 83.05 85.48 85.19 87.88 86.65...
87.58 82.38 82.33 84.42 85.35 84.99 85.15 85.37];
bulan21=[88.93 86.45 85.99 89.34 89.05 87.24 88.19 90.21 88.91 89.4 87.96 85.7...
86.92 85.77 80.29 79.58 79.97 84.18 80.94 81.87];
bulan22=[77.34 75.4 79.41 82.32 82.7 85.14 85.54 85.3 83.96 86.8 86.38 88.34...
86.11 86.07 87.19 91.12 92.98 90.2 93.96 93.32];
bulan23=[92.19 92.51 94.07 94.26 95.52 96.8 95.74 97.78 98.99 98.14 99.37 102.59...
98.82 97.67 96.73 97.76 96.16 96.91 98.21 99.79];
bulan24=[100.2 100.97 100.94 101.25 100.45 98.35 99.4 97.77 100.24 94.92 93.84...
93.55 93.86 97.16 98.54 99.42 99.72 101.29 99.44 99.68];
bulan25=[102.96 103.22 101.81 101.56 101.31 102.24 100.89 99.03 98.69 100.7...
100.61 100.32 98.15 99.47 98.84 99.23 99.76 99.47 98.75 98.46];
bulan26=[97.63 96.36 97.8 96.89 98.55 98.8 99.88 98.68 100.39 100.82...
101.82 102.33 103.27 105.88 105.99 107.44 109.39 108.49 106.59 107.08];
bulan27=[108.76 106.68 106.7 104.71 106.16 106.65 107.4 106.34 106.7 105.49...
105.19 107.03 108.09 105.68 106.87 104.98 106.43 107.07 107.32 105.4];
bulan28=[105.25 104.02 101.53 103.29 102.45 101.12 102.66 103.69 102.84 102.92...
104.23 102.65 102.38 103.58 102.68 103.1 103.72 104.56 104.86 104.89];
bulan29=[106.17 105.25 102.56 98.49 97.86 97.13 96.8 97.1 96.03 94.75...
93.97 92.78 92.53 91.51 92.57 91.44 89.4 90.36 90.64 90.75]; bulan30=[83.17 83.95 84.31 85.05 84.78 84.08 82.58 83.35 82.56 83.83...
84.03 83.26 83.99 81.06 77.91 79.33 78.76 79.34 80.27 77.72]; bulan31=[83.72 87.74 87.11 84.37 85.93 83.92 85.88 86.02 87.15
88.41...
89.07 89.88 92.78 91.56 87.77 88.28 88.8 89.4 90.13 89.8]; bulan31=[87.74 87.11 84.37 85.93 83.92 85.88 86.02 87.15 88.41...
89.07 89.88 92.78 91.56 87.77 88.28 88.8 89.4 90.13 89.8 88.08];%JUL
bulan32=[88.99 87.22 91.4 92.3 93.68 93.39 93.39 92.94 92.76 93.4...
94.35 95.66 96 96.03 96.55 96.89 95.87 95.78 95.54 96.3];%AGS
bulan33=[96.47 95.34 95.37 95.58 96.41 96.52 97.03 97.02 98.3 98.94...
96.51 95.25 91.97 92.14 92.64 91.68 91.07 89.92 91.89 92.18];%SEPT
bulan34=[92.44 91.88 88.19 91.69 89.87 89.43 92.42 91.24 92.19 91.83...
91.84 92.07 92.04 92 90 88.3 86.65 85.39 85.59 85.84];%okt
(3)
85.45 86.62 89.05 86.46 87.08 87.01 87.28 86.81 86.1 87.64];%nov
bulan36=[88.69 88.04 87.36 85.47 85.45 85.14 85.36 86.35 85.39 86.32...
86.71 87.46 89.09 89.76 88.2 88.29 90.71 90.91 90.66 91.83];%des
bulan37=[93.14 92.97 93.12 93.2 93.21 93.08 93.81 93.6 94.27 93.26 94.28...
95.49 95.61 96.09 95.06 95.35 95.15 95.95 97.62 97.98];
bulan38=[97.65 97.46 96.21 96.68 96.44 95.84 95.71 97.01 97.48 97.03 97.3...
95.95 96.69 94.92 92.79 93.12 92.74 92.63 92.84 92.03];
bulan39=[90.71 90.13 90.88 90.47 91.53 92.01 92.07 92.44 92.47 93.03 93.49...
93.71 92.44 93.21 92.46 93.41 94.55 95.99 96.53 97.24]; bulan40=[97.1 97.23 95.02 93.26 92.76 93.36 94.18 94.59 93.44 91.23 88.75...
88.73 86.65 87.83 88.04 88.81 89.21 91.07 93.27 92.63]; target=get(handles.popupmenu1,'Value');
switch target case 1
Q=[bulan36; bulan37; bulan38; bulan39]; TQ=[bulan40];
bulan='April 2013'; case 2
Q=[bulan35; bulan36; bulan37; bulan38]; TQ=[bulan39];
bulan='Maret 2013'; case 3
Q=[bulan34; bulan35; bulan36; bulan37]; TQ=[bulan38];
bulan='Februari 2013'; case 4
Q=[bulan33; bulan34; bulan35; bulan36]; TQ=[bulan37];
bulan='Januari 2013'; case 5
Q=[bulan15; bulan16; bulan17; bulan18]; TQ=[bulan19];
bulan='Juli 2012'; case 6
Q=[bulan5; bulan6; bulan7; bulan8]; TQ=[bulan9];
bulan='Januari 2012'
end
h = waitbar(0,'Sedang Proses, Mohon tunggu sebentar'); steps = 1000;
for step = 1:steps
waitbar(step / steps)
end
meanp=xlsread('RWTCd.xlsx','bobot','Q6:Q9'); stdp=xlsread('RWTCd.xlsx','bobot','Q10:Q13'); meant=xlsread('RWTCd.xlsx','bobot','Q14'); stdt=xlsread('RWTCd.xlsx','bobot','Q15'); Qn=trastd(Q,meanp,stdp);
(4)
net=newff([minmax(Qn)],[12 8 1],{'tansig','tansig','purelin'}); net.IW{1,1}=xlsread('RWTCd.xlsx','bobot','A2:D13');
net.b{1,1}=xlsread('RWTCd.xlsx','bobot','N2:N13'); net.LW{2,1}=xlsread('RWTCd.xlsx','bobot','A24:L31'); net.b{2}=xlsread('RWTCd.xlsx','bobot','N24:N31'); net.LW{3,2}=xlsread('RWTCd.xlsx','bobot','A41:H41'); net.b{3}=xlsread('RWTCd.xlsx','bobot','N41:N41'); bn=sim(net,Qn);
b=poststd(bn,meant,stdt); s=TQ-b;
T=TQ; P=Q;
[y,Pf,Af,e,perf]=sim(net,P,[],[],T); time=1:1:20;
axes(handles.axes1);
plot(time,T,'-*b',time,b,'-*r'); axis([1 20 60 120]);
guidata(hObject,handles);
hig = legend('Aktual(o)','Prediksi(*)',2); set(hig,'Interpreter','none');
xlabel('Hari ke-');
ylabel('Harga Aktual/Prediksi');
title('Perbandingan antara Data Aktual(--) dan Hasil Prediksi (*-)'); grid;
eror=s; erorp=s./TQ; persen=erorp*100;
mse=sqrt((eror(1)^2+eror(2)^2+eror(3)^2+eror(4)^2+eror(5)^2+eror(6)^2 +eror(7)^2+eror(8)^2+eror(9)^2+...
eror(10)^2+eror(11)^2+eror(12)^2+eror(13)^2+eror(14)^2+eror(15)^2+ero r(16)^2+eror(17)^2+eror(18)^2+...
eror(19)^2+eror(20)^2)/20);
set(handles.ed_mse,'String',mse);
f = figure('Position',[100 100 400 150]); dat =
{bulan,time(1),T(1,1),b(1,1),s(1,1),persen(1,1);bulan,time(2),T(1,2), b(1,2),s(1,2),persen(1,2);...
bulan,time(3),T(1,3),b(1,3),s(1,3),persen(1,3);bulan,time(4),T(1,4),b (1,4),s(1,4),persen(1,4);...
bulan,time(5),T(1,5),b(1,5),s(1,5),persen(1,5);bulan,time(6),T(1,6),b (1,6),s(1,6),persen(1,6);...
bulan,time(7),T(1,7),b(1,7),s(1,7),persen(1,7);bulan,time(8),T(1,8),b (1,8),s(1,8),persen(1,8);...
bulan,time(9),T(1,9),b(1,9),s(1,9),persen(1,9);bulan,time(10),T(1,10) ,b(1,10),s(1,10),persen(1,10);...
bulan,time(11),T(1,11),b(1,11),s(1,11),persen(1,11);bulan,time(12),T( 1,12),b(1,12),s(1,12),persen(1,12);...
bulan,time(13),T(1,13),b(1,13),s(1,13),persen(1,13);bulan,time(14),T( 1,14),b(1,14),s(1,14),persen(1,14);...
(5)
bulan,time(15),T(1,15),b(1,15),s(1,15),persen(1,15);bulan,time(16),T( 1,16),b(1,16),s(1,16),persen(1,16);...
bulan,time(17),T(1,17),b(1,17),s(1,17),persen(1,17);bulan,time(18),T( 1,18),b(1,18),s(1,18),persen(1,18);...
bulan,time(19),T(1,19),b(1,19),s(1,19),persen(1,19);bulan,time(20),T( 1,20),b(1,20),s(1,20),persen(1,20)}
columnname = {'Bulan', 'Hari', 'Data Aktual', 'Hasil Prediksi','Selisih','Persen'};
columnformat = {'char', 'char',
'numeric','numeric','numeric','numeric'};
columneditable = [true true true true true, true]; fontname= 'Times New Roman';
fontsize=12;
t= uitable('Units','normalized','Position',...
[0.1 0.1 0.9 0.9], 'Data', dat,...
'ColumnName', columnname,...
'ColumnFormat', columnformat,...
'ColumnEditable', columneditable,...
'FontName', fontname,...
'FontSize', fontsize);
(6)