142 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
Perbandingan Metode Moving Average (MA) Dan Neural
Network yang Berbasis Algoritma Backpropagation Dalam
Prediksi Harga Saham
Darwin Purba Sugumonrong1)
, Diana Astria Gultom2)
1,2Fakultas Ilmu Komputer, Universitas Pelita Harapan
E-mail: [email protected])
Abstract-- Stock prices experience rapid changes from time to time. The movement of
stock prices becomes a benchmark for investors to make decisions when
stocks should be bought, sold or maintained. For that we need an analytical
model with a high degree of accuracy in helping investors make decisions to
reduce the risk of loss. This study uses a comparison of the Moving Average
method and the Neural Network Backpropagation algorithm in predicting
stock prices. The data used is historical Jakarta Stock Exchange (^ JKSE)
data from 2010 - April 2018 obtained through Yahoo Finance. From the
results of the study it can be concluded that the smaller the error results, the
better the accuracy value. The smaller the error target, the greater the
number of epochs in the calculation using the Neural Network
Backpropagation algorithm method. Stock price predictions using the Moving
Average method are more accurate than the Neural Network
Backpropagation algorithm method, where the accuracy rate for Moving
Average (MA) is 80.11% and for the Neural Network the Backpropagation
algorithm is 78.91%.
Keywords:stock pricing prediction, moving average, neural network, backpropagtion
Abstrak-- Harga saham mengalami perubahan yang cepat dari waktu ke waktu.
Pergerakan harga saham menjadi tolak ukur bagi para investor untuk
mengambil keputusan kapan sebaiknya saham dibeli, dijual atau
dipertahankan. Untuk itu diperlukan suatu model analisis dengan tingkat
akurasi yang tinggi dalam membantu para investor mengambil keputusan
untuk mengurangi resiko kerugian. Penelitian ini menggunakan perbandingan
metode Moving Average dan Neural Network algoritma Backpropagation
dalam memprediksi harga saham. Data yang digunakan merupakan data
historis Jakarta Stock Exchange (^JKSE) dari tahun 2010 - April 2018yang
diperoleh melalui Yahoo Finance. Dari hasil penelitian dapat disimpulkan
adalah semakin kecil hasil error, maka nilai akurasinya semakin baik.
Semakin kecil target error, maka jumlah epoch akan semakin besar dalam
perhitungan menggunakan metode Neural Network algoritma
Backpropagation. Prediksi harga saham menggunakan metode Moving
Average lebih akurat dibandingan metode Neural Network algoritma
Backpropagation, dimana tingkat akurasi untuk Moving Average (MA)
adalah 80,11% dan untuk Neural Network algoritma Backpropagation adalah
78,91%.
143 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
Kata Kunci: prediksi harga saham, moving average, neural network, backpropagtion
PENDAHULUAN
Dunia investasi dan trading berkembang
cukup pesat di Indonesia. Berinvestasi
pada saham, forex atau komoditas
memang sangat menggiurkan, karena
kita bisa mendapatkan keuntungan yang
cukup besar. Puluhan, bahkan ratusan
persen dalam kurun waktu yang singkat
(sehari, seminggu, sebulan, tergantung
kondisi). Keuntungan yang diperoleh
juga bisa berkali lipat dari keuntungan
deposito. Namun, apabila terjadi salah
perhitungan, mampu membangkrutkan
investor dalam waktu yang singkat pula.
Saham merupakan asset yang paling
mudah untuk dilikuidasi, yang artinya
ketika kita membutuhkan uang tunai,
kita bisa mendapatkannya dengan cepat.
Harga saham mengalami perubahan
setiap saat dalam hitungan detik,
dikarenakan penilaian sesaat oleh para
pembeli maupun penjual yang
dipengaruhi oleh beberapa faktor.
Faktor-faktor yang dapat mempengaruhi
pergerakan harga saham yaitu mulai dari
inverstor emotions, economic ups and
downs, supply and demand, global
conditions(Cagan, 2016). Fluktuasi
jangka pendek pasti akan terjadi, tetapi
bertahan pada investasi jangka panjang
masih merupakan cara paling pasti untuk
melihat hasil terbaik.
Agar tidak terjadi kerugian dalam
berinvestasi maka diperlukan suatu
model analisis dalam memprediksi harga
saham untuk mengambil keputusan.
Dalam penilitian ini, metode yang
digunakan adalah metode Moving
Average (MA) dan Neural Network
yang berbasis algoritma
Backpropagation dalam memprediksi
harga saham. Dataset yang digunakan
merupakan data historis dari harga
saham JakartaStockExchange (^JKSE)
tahun 2010 - April 2018 yang diperoleh
melalui YahooFinance.
Saham
Saham adalah bagian dari kepemilikan
suatu perusahaan, dan merupakan klaim
atas asset dan penghasilan perusahaan.
Ketika perusahaan membutuhkan lebih
banyak modal untuk memperluas
perusahaannya, perusahaan akan
menerbitkan sahamnya di pasar saham.
Pasar saham adalah tempat dimana
pembeli dan penjual saham bertemu dan
memutuskan harga untuk trade. Saat ini,
sebagian besar transaksi telah
dilaksanakan dengan sarana elektronik.
Bahkan, sebagian besar saham telah
disimpan dalam format elektronik atau
virtual, bukan dalam bentuk sertifikat
fisik(Investopedia, LLC, 2018).
Moving Average
Moving average adalah salah satu yang
paling serbaguna dan indikator yang
banyak digunakan di technical analysis.
Pada dasarnya, Moving Average adalah
perangkat pengikut trend dan perangkat
merapikan. Tujuannya adalah untuk
mengidentifikasi atau menandai bahwa
trend baru telah dimulai atau trend lama
telah berakhir. Dengan merata-ratakan
data harga, menghasilkan garis yang
lebih halus. Moving Average terbagi atas
3 (tiga) tipe yaitu simple moving
average, linear weighted average, dan
exponential moving average
(Investopedia, LLC, 2018). Contoh dari
Moving Average dapat dilihat pada
gambar dibawah ini.
144 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
Gambar 1. Moving Average
Sumber: Investopedia (2019)
Backpropagation
Backpropagation adalah algoritma
perhitungan untuk menemukan error
terkecil sehingga menghasilkan output
yang sempurna. Tahap perhitungan dari
algoritmaini yaitu perhitungan maju
untuk error antara output dan target, dan
perhitungan mundur yang
mempropagasikan balik error tersebut
untuk memperbaiki bobot-bobot pada
semua neuron yang ada. Arsitektur dari
Backpropagtion dapat dilihat pada
gambar di bawah ini.
Gambar 2. Arsitektur Backpropagation
Sumber: Medium (2017)
Langkah-langkah detail dari algoritma
Backpropagation, antaralain:
1. Inisialisasi, menentukan arsitektur
jaringan, nilai ambang MSE sebagai
stopping condition, learning rate,
serta menetapkan nilai bobot-bobot
melalui pembangkitan nilai acak
dengan interval nilai sembarang.
Bisa membangkitkan nilai acak
dalam interval [-1, +1] atau [-0.5,
+0.5] ataupun lainnya. Tidak ada
aturan yang baku mengenai interval
ini.
2. Selama stopping condition bernilai
false, maka lakukan langkah-langkah
berikut:
a. Feedforward
Setiap unit input (Xi,
i=1,2,3,…,n) menerima sinyal xi
dan meneruskan sinyal tersebut
ke semua unit pada hidden layer.
Setiap unit hidden (Zj,
j=1,2,3,…,p) menjumlah sinyal-
sinyal input terbobot.
z_inj = v0j + 𝑥𝑛𝑖=1 ivij
Gunakan fungsi aktivasi untuk
menghitung sinyal output:
y = 𝑓 𝑥 =1
(1+ 𝑒−𝑥 )
dan kirimkan sinyal tersebut ke
semua unit di output layer.Setiap
unit output (Yk, k=1,2,3,…,m)
menjumlah sinyal sinyal input
terbobot.
y_ink = w0k + 𝑧𝑝𝑖=1 iwjk
Gunakan fungsi aktivasi untuk
menghitung sinyal output:
y = 𝑓 𝑥 =1
(1+ 𝑒−𝑥 )
Dan kirimkan sinyal tersebut ke
semua unit output layer.
b. Backpropagation
Setiap unit output (Yk,
k=1,2,3,...,m) menerima target
pola yang berhubungan dengan
pola input pembelajaran, hitung
informasi error.
k = (tk – yk) f’(y_ink)
Kemudian hitung koreksi bobot
(yang nantinya akan digunakan
untuk memperbaiki nilai wjk).
wjk = k zj
Hitung juga koreksi bias (yang
nantinya akan digunakan untuk
memperbaiki nilai w0k).
w0k = k
Setiap unit hidden (Zj,
j=1,2,3,…,p) menjumlah delta
input.
_inj = 𝑚𝑖=1 kwjk
145 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
Kalikan nilai ini dengan turunan
dari fungsi aktivasi untuk
menghitung informasi error.
j = _inj f’(y_inj)
Kemudian hitung koreksi bobot
(yang nantinya akan digunakan
untuk memperbaiki nilai vij):
vij = j xi
kemudian hitung koreksi bias
(yang nantinya akan digunakan
untuk memperbaiki nilai v0j):
v0j = j
setiap unit output (Yk,
k=1,2,3,...,m) memperbaiki bias
dan bobotnya (j=0,1,2,…,p).
wjk (baru) = wjk (lama) + wjk
Setiap unit hidden (Zj,
j=1,2,3,…,p) memperbaiki bias
dan bobotnya (i=0,1,2,…,n)
vij (baru) = vij (lama) + vij
3. Memeriksa stopping condition, jika
stopping condition telah terpenuhi,
maka pelatihan jaringan dapat
dihentikan. Dalam menentukan
stopping condition terbagi atas 2
(dua) cara yang bisa digunakan,
yaitu:
a. Membatasi iterasi yang ingin
dilakukan. Misalnya jaringan
akan dilatih sampai pada iterasi
yang ke-500. Yang dimaksud
dengan satu iterasi adalah
perulangan langkah-langkah yang
digunakan pada saat stopping
condition belum terpenuhi untuk
semua training data yang ada.
b. Membatasi error. Misalnya
menentukan besar MSE antara
output yang dikehendaki dan
output yang dihasilkan oleh
jaringan.
METODE PENELITIAN
Penelitian ini akan menerapkan metode
Moving Average dan Neural Network
berbasis algoritma Backpropagation dan
membandingkan keakuratan kedua
metode dalam memprediksi harga
saham. Dataset yang digunakan adalah
data historis dari JakartaStock Exchange
(^JKSE) tahun 2010 sampai dengan
April 2018. Dalam evaluasi tingkat
akurasi, metode yang digunakan adalah
Mean Squared Error (MSE).
Menggunakan dataset statistik
merupakan tipikal penelitian kuantitatif.
Penggunaan dataset ini merupakan
dataset yang sudah tersedia, digunakan,
dikumpulkan oleh pihak ketiga yang
memiliki otoritas. Dataset yang
digunakan dalam penelitian ini adalah
data historis dari harga saham Jakarta
Stock Exchange (^JKSE) periode tahun
2010 sampai dengan April 2018 yang
diperoleh dari Yahoo Finance, yang
akan dibagi menjadi data training dan
data testing.
Metode Prediksi dengan Moving
Average
Pada penelitian ini memprediksi harga
saham dengan Moving Average akan
menggunakan tipe Simple Moving
Average dan menggunakan MATLAB
sebagai tool-nya. Adapun langkah-
langkah metode prediksi dengan Moving
Average adalah:
1. Pembagian Data Training dan Data
Testing
Memisahkan data ke dalam training
dan testing set merupakan bagian
yang penting. Biasanya, ketika
memisahkan data menjadi training
set dan testing set, sebagian besar
data digunakan sebagai training set.
Pembagian training set dan testing
set akan dibagi dengan komposisi
sebagai berikut:
a. Training set diambil sebanyak
75% dari keseluruhan data
b. Testing set diambil sebanyak
25% dari keseluruhan data
2. Training Moving Average
Training Moving Average akan
dilakukan dengan menggunakan tool
MATLAB. Proses training akan
146 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
melalui langkah-langkah sebagai
berikut.
𝑥𝑡+1 = 𝑥𝑡 + 𝑥𝑡−1 + ⋯ + 𝑥𝑡−𝑛+1
𝑛
dimana:
xt+1 = forecast untuk period eke t+1
xt = Data periode t
n = Jangka waktu Moving Average
3. Testing Moving Average
Setelah melalui proses training,
maka tahap selanjutnya adalah
melakukan peramalan dengan
Moving Average. Pada tahap ini data
input yang digunakan merupakan
langkah-langkah yang sama dalam
tahap training yakni:
𝑥𝑡+1 = 𝑥𝑡 + 𝑥𝑡−1 + ⋯ + 𝑥𝑡−𝑛+1
𝑛
dimana:
xt+1 = forecast untuk period eke t+1
xt = Data periode t
n = Jangka waktu Moving Average
Metode Prediksi dengan Neural
Network Algoritma Backpropagation
Pada penelitian ini memprediksi harga
saham dengan Neural Network
algoritma Backpropagation dan
menggunakan MATLAB sebagai tool-
nya. Adapun langkah-langkah metode
prediksi dengan Neural Network
berbasis algoritma Backpropagation
adalah :
1. Pembagian Data Training dan Data
Testing
Proses training dan testing
diperlukan dalam proses evaluasi
metode. Memisahkan data ke dalam
training dan testing set merupakan
bagian yang penting. Setelah metode
diproses dengan training set, maka
akan dilakukan pengujian dengan
membuat prediksi terhadap testing
set. Pembagian training set dan
testing set akan dibagi dengan
komposisi sebagai berikut:
a. Training set diambil sebanyak
75% dari keseluruhan data
b. Testing set diambil sebanyak
25% dari keseluruhan data
2. Training Neural Network Algoritma
Backpropagation
Training Neural Network akan
dilakukan menggunakan tool
MATLAB. Proses training akan
melalui langkah-langkah sebagai
berikut.
a. Normalisasi Data Training
Data input akan melalui proses
normalisasi sehingga mempunyai
nilai dengan rentang data [0,1].
Berikut ini merupakan rumus
yang digunakan untuk
normalisasi data;
x =(𝑥𝑝 − min𝑥𝑝)
(max 𝑥𝑝 − min 𝑥𝑝)
dimana:
x = nilai hasil normalisasi dengan
rentang antara 0 sampai 1
xp = nilai data asli yang belum
dinormalisasi
min xp = nilai minimum pada
dataset
max xp = nilai maximum pada
data set
b. Menentukan Fungsi Aktivasi,
Jumlah Hidden Neuron, Learning
Rate, Bobot dan Epoch
Pada proses training, fungsi
aktivasi, jumlah hidden neuron,
learning rate, bobot dan epoch
akan ditentukan terlebih dahulu.
Penelitian ini memakai fungsi
aktivasi Sigmoid. Apabila Neural
Network menghasilkan
outputyang kurang optimal, maka
jumlah hidden neuron akan
diubah. Bobot akan diinisiasi
secara random. Nilai learning
rate yang digunakan adalah 0.25.
Jumlah epoch yang
digunakanadalah 50.000.
c. Denormalisasi Data Training
Output yang dihasilkan dari
proses training akan
didenormalisasi. Berikut rumus
147 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
yang digunakan untuk
denormalisasi.
x = (𝑥𝑝 × max 𝑥𝑝 − 𝑚𝑖𝑛𝑥𝑝) + min 𝑥𝑝
dimana:
x = nilai hasil denormalisasi
xp = nilai data asli yang belum
didenormalisasi
min xp = nilai minimum pada
dataset sebelum normalisasi
max xp = nilai maximum pada
data set sebelum normalisasi
Testing Neural Network Algoritma
Backpropagation
Setelah melalui proses training, maka
tahap selanjutnya adalah melakukan
peramalan dengan Neural Network. Pada
tahap ini data input dinormalisasi dan
didenormalisasi dengan menggunakan
langkah-langkah yang sama dalam tahap
training.
Metode Analisis dengan MSE
Metode yang digunakan dalam evaluasi
tingkat akurasi hasil prediksi dari
Moving Average dan Neural Network
algoritma Backpropagation adalah Mean
Squared Error (MSE). Maka rumus
untuk menghitung MSE digunakan
persamaan berikut:
MSE = (𝑡𝑘 − 𝑦𝑘)2𝑛
𝑖=1
𝑛
dimana:
n = jumlah data
tk = mewakili observedvalues
yk = mewakili predictedvalues
HASIL DAN PEMBAHASAN
Dengan melakukan pencarian data pada
situs Yahoo Finance, dapat diperoleh
data set harga saham yang bersifat
klasifikasi. Data set ini terdiri dari 2.057
data harga saham harian dari Jakarta
Stock Exchange (^JKSE). Informasi nilai
data set akan disediakan dalam file excel
dengan format seperti yang ditampilkan
pada gambar di bawah ini.
Gambar 1. Data Set
Training Moving Average
Setelah data set dibagi atas data training
dan data testing, maka selanjutnya
melakukan metode.
Gambar 2. Hasil Training Moving
Average
Testing Moving Average
Pada tahap ini data input yang
digunakan merupakan langkah-langkah
yang sama dalam tahap training. Data
yang digunakan merupakan data testing
sebanyak 25% dari keseluruhan data,
sehingga total data testing adalah 515
data harga saham harian. Hasil testing
Moving Average dapat dilihat pada di
bawah ini.
148 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
Gambar 3. Hasil Testing Moving
Average
Prediksi dengan NeuralNetwork
Algoritma Backpropagation Hal yang perlu ditentukan dalam prediksi
menggunakan Neural Network algoritma
Backpropagation adalah jumlah input.
Penilitian ini menggunakan 3 (tiga) variabel input yakni harga close, harga open, dan
jumlah split.
Gambar 4. Neural Network Training
Testing Neural Network
Setelah melalui proses training, maka
tahap selanjutnya adalah melakukan
peramalan dengan Neural Network. Pada
tahap ini data input dinormalisasi dan
didenormalisasi dengan menggunakan
langkah-langkah yang sama dalam tahap
training. Data yang digunakan
merupakan data testing sebanyak 25%
dari keseluruhan data, sehingga total
data testing adalah 515 data harga saham
harian.
Gambar 5. Hasil Testing Neural
Network
Tabel 1. Nilai MSE Dengan Perbedaan
Jumlah Epoch menunjukkan nilai MSE
yang dihasilkan dari testing dengan
jumlah epoch berbeda-beda.
Tabel 1. Nilai MSE Dengan Perbedaan
Jumlah Epoch
Hasil
Testing
Jumlah Epoch
100
00
150
00
300
00
500
00
100
000
150
000
MSE 524
391
582
337
305
125
438
179
208
243
135
681
Analisis Hasil Prediksi
Tahap terakhir dari penelitian ini adalah
mengukur performance Moving Average
dan Neural Network yang digunakan
untuk memprediksi pada penelitian ini.
Evaluasi tingkat akurasi hasil prediksi
dari Moving Average dan Neural
Network algoritma Backpropagation
adalah Mean Squared Error (MSE) yang
telah ditetapkan nilainya. Oleh karena
keakuratan metode dilihat dari hasil
testing, maka perbandingan metode
Moving Average dan Neural Network
algoritma Backpropagation hanya
dilihat dari hasil proses testing. Proses
dari analisis hasil prediksi dapat dilihat
pada
KESIMPULAN
Dari hasil penelitian dan analisis
perbandingan metodeMoving Average
(MA) dan Neural Network berbasi
149 | Perbandingan Metode Moving…
INFORMATION SYSTEM DEVELOPMENT [ISD] [VOLUME 3 NO.2 JULI 2018]
salgoritma Backpropagation, maka dapat
diambil kesimpulan sebagaib erikut:
1. Prediksi harga saham dengan metode
Moving Average (MA) lebih akurat
dibandingkan dengan Neural
Network algoritma Backpropagation,
dimana tingkat akurasi untuk
Moving Average (MA) adalah
80,11% dan untuk Neural Network
algoritma Backpropagation adalah
78,91%.
2. Penerapan Neural Network
membutuhkan waktu yang lebih
lama dalam prediksi karena perlu
melakukan banyak percobaan dalam
menetapkan jumlah input data,
jumlah neuron dalam hidden layer,
penentuan besarnya learning rate.
3. Semakin kecil target error, maka
jumlah epoch akan semakin besar.
Semakin kecil hasil error, maka nilai
akurasinya semakin baik.
DAFTAR PUSTAKA [1] Abbas, I, Penerapan Metode
Moving Average Berbasis
Algoritma Support Vector Machine
Untuk Membandingkan Pola Kurva
dengan Trend Kurva Pada Trading
Forex Online, 2016.
[2] Cagan, M., Stock Market 101.
Adams Media, 2016.
[3] Group, Forex Training. (2018,
December 15). Basic Tenets Of
The Dow Theory In Technical
Analysis. Retrieved from Forex
Training Group:
https://forextraininggroup.com/basi
c-tenets-dow-theory-technical-
analysis/
[4] Hidayat, A. (2017, June 2).
Statistikian. Retrieved from
Statistikian:
http://www.google.co.id/amp/s/ww
w.statistikian.com/2012/10/peneliti
an-kuantitatif.html
[5] Hidayat, R, Prediksi Harga Saham
Menggunakan Neural Network,
2016.
[6] Investopedia, LLC. (2018). Stock
Market. Retrieved from
Investopedia:
https://www.investopedia.com/ter
ms/s/stockmarket.asp
[7] Jumaidi, H. (2018, January 10).
Astronacci. Retrieved from
Astronacci:
https://www.astronacci.com/blog/r
ead/kenali-trend-dan-candlestick-
pada-awal-trading
[8] Kholis, I, Analisis Variasi
Parameter Backpropagation
Artificial Neural Network
Terhadap Pengenalan Pola Data
Iris, 2015.
[9] Kusumodestoni, R. H., & Sarwido,
Komparasi Support Vector
Machines (SVM) dan Neural
Network Untuk Mengetahui
Tingkat Akurasi Prediksi Tertinggi
Harga Saham, 2017.
[10] Nurlifa, A., & Kusumadewi, S,
Sistem Peramalan Jumlah
Penjualan Menggunakan Metode
Moving Average Pada Rumah
Jilbab Zaky, 2017.
[11] Sekolah Saham. (2019). Sekolah
Saham. Retrieved from Sekolah
Saham: https://sekolahsaham.com/
[12] Siahaan, L. E., Umbara, S.Si, MSi,
R. F., & Sibaroni, S.T., M.T., Y,
Prediksi Indeks Harga Saham
dengan Metode Gabungan Support
Vector Regression dan Jaringan
Syaraf Tiruan, 2017.
[13] Suyanto, Artificial Intelligence.
Yogyakarta: Informatika Bandung,
2014.
[14] T, N. A., Murnomo, A., &
Suryanto, A, Implementasi Neural
Network pada Matlab untuk
Prakiraan Konsumsi Beban Listrik
Kabupaten Ponorogo Jawa Timur,
2017.
[15] Widodo, P. P., & Handayanto, R.
T, Penerapan Soft Computing
Dengan Matlab. Bandung:
Rekayasa Sains, 2012.