Prediksi Pergerakan Kurva Harga Saham de

FK001

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia

Prediksi Pergerakan Kurva Harga Saham dengan Metode
Simple Moving Average Menggunakan C++ dan Qt
Creator
Andri Rahmadhani*, Mohammad Mandela, Timoty Paul dan Sparisoma Viridi
Abstrak

Simple Moving Average (SMA) dapat digunakan sebagai salah satu teknik untuk
memprediksi pergerakan kurva harga saham khususnya untuk periode data yang
pendek. Definisi Moving Average adalah rata-rata yang bergerak . Maksudnya ialah
nilai rata-rata data dari suatu periode tertentu terus dihitung sesuai dengan pergerakan
data yang bergantung waktu. Dalam kasus ini, digunakan periode SMA sebesar 20, 50,
serta nilai periode tertentu yang dapat dimasukan sendiri ke program. Program yang
digunakan dibuat dengan bahasa C++ menggunakan Qt Creator yang bersifat open
source. Program ini dapat membuka file data berformat CSV hasil unduhan dari situs
Yahoo! Finance untuk kemudian diolah menjadi kurva data harga penutupan saham.
Dengan membandingkan kurva dari periode SMA yang berbeda-beda, dapat dilihat

suatu pola yang nantinya dapat digunakan sebagai prediksi pergerakan harga saham.
Hasil yang didapatkan ternyata cukup baik untuk periode SMA yang kecil tetapi tidak
akurat untuk menentukan secara definitif nilai harga saham.
Kata-kata kunci: C++, open source, Qt Creator, saham, simple moving average
Pendahuluan

Aplikasi prediksi pergerakan harga saham dengan menggunakan metode simple
moving average (SMA) sudah banyak berdedar khusunya di internet. Rata-rata
aplikasi tersebut membutuhkan koneksi internet untuk mengakses data [1]. Biasanya
aplikasi tersebut dibuat menggunakan pemrograman Java atau PHP seperti situs
Yahoo! Finance [2]. Selain menggunakan metode moving average, aplikasi tersebut
telah menerapkan metode neural network di mana program dapat secara aktif
mempelajari pola data pergerakan saham sehingga hasil prediksinya lebih akurat [3].

Penulis kemudian membuat program pembelajaran untuk pembacaan prediksi
harga saham secara offline berbasis GUI C++ dengan menggunakan Qt Creator [4].
Data yang digunakan merupakan data yang bergantung waktu (time series) hasil
unduhan file CSV dari situs Yahoo! Finance [5]. Penulis menggunakan class Qwt yang
diintegrasikan dengan Qt Creator untuk membuat tampilan grafik harga saham [6].
Selain itu, penulis menggunakan array dan variabel penampung (buffer) dalam

algoritma perhitungan simple moving average sesuai dengan definisi dari moving
average itu sendiri [7].
Teori dan Model

Moving Average (MA) merupakan sebuah indikator yang sering digunakan dalam
analisis teknis yang menunjukkan nilai rata-rata data selama periode yang ditetapkan.
Data yang dirata-ratakan merupakan data yang bergantung waktu (time series). Time
Series merupakan kumpulan data pengamatan yang tiap datanya diamati dalam waktu

ISBN 978-602-19655-1-1

Halaman 178 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia

tertentu yang bersifat diskrit [5]. Moving Average biasanya digunakan dalam analisis
teknikal saham untuk mengukur momentum dan menentukan area support dan
resistance yang memungkinkan [1]. Moving Average mempunyai tiga varian yang
berbeda yaitu Simple Moving Average, Weighted Moving Average dan Exponential

Moving Average. Masing-masing merupakan metode Moving Average, hanya saja
cara me-rata-ratakannya yang berbeda satu sama lain. Perbedaan utamanya terletak
pada pembobotan data yang sering muncul. Simple Moving Average menggunakan
pembobotan yang sama untuk setiap data sedangkan Weighted Moving Average dan
Exponential Moving Average menambahkan bobot lebih ke data yang sering muncul.
Namun dalam pembacaannya tetaplah sama dan semuanya mengikuti aturan yang
berlaku pada Moving Average [8]. Pada makalah ini secara khusus dibahas mengenai
metode Simple Moving Average [1][2].

Simple Moving Average (SMA) dapat digunakan untuk membuat kurva harga
saham yang halus atau smooth dan menyaring noise data sehingga lebih mudah untuk
melihat trend data tersebut [5]. SMA digunakan untuk menentukan arah pergerakan
harga saham berdasarkan harga masa lalu, namun tidak cukup akurat untuk
memprediksi harga saham. Kelebihan dari penggunaan metode ini adalah
kesederhanaan perhitungannya meskipun akurasi yang dihasilkan kurang baik untuk
trend harga saham jangka panjang, namun informasi yang diperoleh dari penggunaan
metode ini dapat membantu pialang dan investor dalam menentukan waktu yang tepat
untuk membeli atau menjual saham. Kekurangannya adalah dapat menyebabkan
kesalahan prediksi yang cukup fatal untuk trend harga saham jangka panjang. Berikut
merupakan persamaan umum dari Simple Moving Average,


SMA( N ) 

( X M 1  X M  2  X M 3    X M  N )
, M N
N

(1)

dengan M adalah indeks harga penutupan saham hari ini (sekarang) dan N adalah
periode data atau banyaknya data yang dirata-ratakan. X M 1 sampai X M  N

merupakan data harga penutupan saham N hari sebelumnya.

Untuk memprediksi harga penutupan saham hari ini, diasumsikan bahwa nilai SMA
hari ini sama dengan nilai SMA hari sebelumnya. Persamaannya dapat ditulis sebagai
berikut

X M  X M N
atau


(2)





X M  SMASEKARANG * N  X M 1  X M  2    X M  N 1 .

(3)

Contoh dalam kasus berikut digunakan SMA dengan periode 50 hari (SMA 50) dan
20 hari (SMA 20).

ISBN 978-602-19655-1-1

Halaman 179 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia


Gambar 1. Kurva harga saham penutupan Adaro Energy Tbk. dengan SMA 50 hari
dan 20 hari [2].

Ketika garis merah (MA20) menyilang garis hijau (MA50) ke bawah, maka
kondisinya disebut dead cross yang merupakan tanda bahwa harga akan miring atau
downtrend dan merupakan saat yang baik untuk menjual saham. Akan tetapi, ketika
garis merah (MA20) menyilang garis hijau (MA50) ke atas, maka kondisinya disebut
golden cross yang merupakan kebalikan dari dead cross dan merupakan saat yang
baik untuk membeli saham [2].

Gambar 2. Tampilan program prediksi pergerakan harga saham menggunakan
metode Simple Moving Average.

ISBN 978-602-19655-1-1

Halaman 180 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia


Dalam kasus ini, pemodelan yang digunakan untuk aplikasi SMA berupa program
komputer untuk desktop yang dibuat dengan bahasa C++ menggunakan GUI Qt
Creator dan Qwt Class. Bahasa C++ merupakan bahasa pemrograman universal yang
mudah digunakan dan multiplatform. Bahasa C++ ini dapat diintegrasikan dengan
Graphical User Interface (GUI) sehingga pengguna dengan mudah memahami cara
pakai program. Qt Creator merupakan salah satu aplikasi pengembang C++ dan GUI
yang bersifat open source [4]. Sebagai tambahan, program yang dibuat menggunakan
Qwt Class yang digunakan untuk membuat tampilan plot data saham dan kurva SMA
[6]. Tampilan program yang dibuat dapat dilihat pada gambar 2.

Gambar 3. Diagram alir program.
Algoritma Perhitungan SMA :
buffer = 0
i=N
For j = 0 to (nSMA 1)
data_SMA_x[j] = j
data_SMA_y[j] = 0
End For
For j = nSMA to i

For k = nSMA to (j 1)
buffer = buffer + data_y[k]
End For
data_SMA_x[j] = j
data_SMA_y[j] = buffer/nSMA
buffer = 0
End For

// Nol-kan variabel penampung
// N jumlah data
// Nol-kan data yang indeksnya
// kurang dari nSMA (periode SMA)
// Hitung nilai SMA sampai data akhir
// Tambahkan data sebanyak nSMA
// ke variabel penampung
// Isikan data sumbu x
// Isikan data sumbu y
// Nol-kan lagi variabel penampung

Gambar 4. Algoritma perhitungan SMA pada program


Diagram alir program dapat dilihat pada gambar 3. Pengguna dapat membuka file
data harga penutupan saham per hari berformat CSV hasil unduhan dari situs Yahoo!
Finance. Program kemudian secara otomatis menggambar grafik harga penutupan
saham terhadap hari. Pengguna cukup memilih periode SMA yang ingin digunakan
dan secara otomatis program akan menggambarkan kurva SMA-nya. Bilamana

ISBN 978-602-19655-1-1

Halaman 181 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia

dibutuhkan prediksi harga saham, program menyediakan fasilitas prediksi harga
saham meskipun hasilnya tidak cukup akurat. Pengguna juga bisa memperbesar atau
memperkecil rentang tampilan data agar grafiknya lebih mudah dilihat.
Hasil dan Diskusi

Hasil yang didapat menunjukkan bahwa kurva SMA memiliki bentuk yang lebih

halus dibandingkan dengan kurva data referensi saham. Dapat dilihat pada gambar 5
bahwa semakin besar periode SMA, dalam hal ini nilai N, maka kurva SMA yang
dihasilkan semakin halus. Artinya, kurva tersebut lebih resistan terhadap fluktuasi data.
Data saham biasanya naik turun seperti halnya fungsi sinusoidal [9]. Oleh karena itu,
jika rentang data yang dimasukkan sangat banyak, maka sesuai persamaan 1 nilai
rata-ratanya akan relatif konstan. Berbeda dengan nilai periode yang besar, nilai
periode yang kecil menyebabkan kurva SMA relatif sama dengan kurva data referensi
saham. Kurva ini lebih sensitif terhadap perubahan karena hanya mengambil sedikit
data sebelumnya.
Keterangan :
SMA 5
SMA 20
SMA 50

Gambar 5. Kurva harga saham dan SMA periode 4 Agustus 2011
2011 saham Adaro Energy Tbk.

24 Nopember
Keterangan :
SMA 5

SMA 20
SMA 50

Gambar 6. Kurva harga saham dan SMA periode 24 Maret 2011
Adaro Energy Tbk.

ISBN 978-602-19655-1-1

25 Juli 2011 saham

Halaman 182 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia

Dari gambar 5 dan 6 dapat disimpulkan beberapa hubungan antara posisi kurva
SMA dan kurva referensi saham dengan prediksi trend harga saham, yaitu seperti
yang tercantum pada tabel 1 [1][2].
Tabel 1. Hubungan posisi SMA dengan prediksi trend harga saham.
Posisi SMA
SMA berada dibawah referensi
SMA berada diatas referensi
SMA memotong referensi dari
bawah.
SMA memotong referensi dari
atas
SMA periode lebih pendek
memotong
SMA periode lebih panjang
dari bawah
SMA periode lebih pendek
memotong
SMA periode lebih panjang
dari atas.
SMA dengan periode lebih
panjang berada diatas SMA
berperiode lebih pendek.
SMA dengan periode lebih
panjang berada dibawah SMA
berperiode lebih pendek.

Arti / Prediksi
Trend naik
Trend turun
Perubahan trend
menuju trend turun
Perubahan trend
menuju trend naik
Perubahan trend
menuju trend naik
(golden cross)

Perubahan trend
menuju trend turun
(dead cross)
Trend turun
Trend naik

Hubungan pada tabel 1 terjadi akibat pengaruh nilai data yang dirata-ratakan.
Misalkan ketika trend turun, kurva SMA akan berada di atas kurva referensi harga
saham karena nilai rata-rata datanya masih lebih besar dibandingkan data itu sendiri.
Sebaliknya, ketika trend naik, nilai rata-rata datanya masih lebih kecil dibandingkan
data itu sendiri sehingga kurva SMA akan berada di bawah kurva referensi harga
saham.

Pada tabel 2 dan 3, dapat dilihat galat dari prediksi harga saham yang dihasilkan
untuk tiap periode SMA. Hasil yang didapat menunjukkan bahwa periode SMA yang
kecil (jangka pendek) cukup baik untuk memprediksi trend harga saham, namun untuk
SMA jangka panjang, hasilnya masih jauh dari referensi. Untuk pergerakan kurva SMA,
ternyata hasilnya tidak sesuai dengan kurva referensi. Hal ini disebabkan data
referensi harga saham yang sangat fluktuatif jika ditinjau dalam selang per hari. Tetapi
ketika ditinjau dalam selang mingguan atau bulanan, ternyata hasilnya cukup akurat.
Jadi, metode SMA ini cukup baik digunakan untuk memprediksikan pergerakan kurva
harga saham dalam jangka mingguan atau bulanan [1][2].

ISBN 978-602-19655-1-1

Halaman 183 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia

Tabel 2. Galat prediksi harga saham dan pergerakan kurva SMA saham Adaro Energy
Tbk. tanggal 24 Nopember 2011
nSMA

Galat (%)

Harga Saham

10

8,64

Tetap

5

20
50

100
200

4,71
8,64
1,57

25,65
25,65

SMA

Tetap

Turun

Tetap

Turun

Tetap
Tetap
Tetap

Turun
Turun
Turun
Turun

Tabel 3. Galat prediksi harga saham dan pergerakan kurva SMA saham Adaro Energy
Tbk. tanggal 31 Oktober 2011
nSMA

Galat (%)

Harga Saham

SMA

10

3,21

Turun

Naik

5

3,70

20

20,49

100

19,75

50

200

14,81
37,04

Turun
Turun

Naik
Naik

Turun

Turun

Turun

Turun

Turun

Turun

Selain menggunakan metode SMA, terdapat juga metode regresi [10] dan neural
network [3] dalam prediksi harga saham. Metode regresi menggunakan persamaan
tertentu untuk aproksimasi kurva saham dan hasilnya cukup baik [10]. Metode neural
network menggunakan algoritma di mana program dapat mempelajari secara aktif
kurva saham sehingga didapatkan suatu pola. Hasil yang didapat lebih akurat dari
metode regresi dan SMA tetapi algoritma yang dipakai rumit sehingga memerlukan
komputasi yang canggih [3].
Program yang dibuat penulis hanya menganalisis harga saham berdasarkan data
masa lalu, tidak terdapat parameter-paramater lain yang mungkin dapat berpengaruh
pada prediksi harga saham. Oleh karena itu, diperlukan studi dan pengembangan lebih
lanjut terkait permasalahan tersebut.
Kesimpulan

Metode Simple Moving Average (SMA) menggunakan data-data yang telah ada
untuk memprediksi nilai selanjutnya yang belum diketahui. Metode SMA tidak dapat
secara definitif menentukan nilai harga saham yang belum diketahui, namun cukup
efektif untuk memprediksi trend naik turunnya harga saham dalam jangka pendek.
Ucapan Terima Kasih

Penulis mengucapkan terima kasih kepada Dr. rer. nat. Sparisoma Viridi atas
bimbingannya dalam penyusunan makalah ini. Penulis juga mengucapkan terima kasih
kepada panitia SKF 2011 yang telah memberikan kesempatan untuk berkontribusi
dalam acara SKF 2011.
ISBN 978-602-19655-1-1

Halaman 184 dari 216

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia

Referensi
[1]

Tim
BelajarForex,
Moving
Average ,
update
10.05.2007,
url
http://belajarforex.com/walking-lamb/6-moving-average-ma.html [diakses 5.12.11]
[2] Dosen Pojok Saham, Membaca Trend Harga Saham Menggunakan Moving
Average , update 09.04.2010, url http://pojoksaham.com/2010/04/09/membacatrend-harga-saham-menggunakan-moving-average/ [diakses 5.12.11]
[3] Myungsook Klassen, Investigation of Some Technical Indexes in Stock
Forecasting Using Neural Networks , World Academy of Science Engineering and
Technology 5, 75-79 (2005)
[4] Daniel Molkentin, The Book of Qt 4: The Art of Building Qt Applications , Penerbit
Open Source Press GmbH, Munich, 2007, pp. 25-184
[5] Peter J. Brockwell dan Richard A. Davis, Introduction to time series and
forecasting , Edisi Kedua, Springer-Verlag, New York, 2002, pp. 1-46
[6] Uwe Rathmann dan Josef Wilgen,
QwtPlot Class Reference , url
http://qwt.sourceforge.net/class_qwt_plot.html [diakses 5.12.11]
[7] Kontributor RosettaCode, Averages/Simple moving average , update 18.11.2011,
url http://rosettacode.org/wiki/Averages/Simple_moving_average [akses 5.12.11]
[8] Steven B. Achelis, Technical Analysis from A to Z , Equis, 2003, pp. 193-196
[9] Nikhil Bakshi, Stock Market Prediction Using Online Data: Fundamental and
Technical Approaches , Master s Thesis in Computer Science, ETH Zurich, 2008,
pp. 7-37
[10] S. Abdulsalam S. Olaniyi, Adewole, Kayode S., Jimoh R. G, Stock Trend
Prediction Using Regression Analysis - A Data Mining Approach , ARPN Journal
of Systems and Software 1 (4), 154-157.
Andri Rahmadhani*

Departemen Fisika
Institut Teknologi Bandung
andrewflash@gmail.com

Mohammad Mandela

Departemen Fisika
Institut Teknologi Bandung

Timoty Paul

Departemen Fisika
Institut Teknologi Bandung

Sparisoma Viridi

Nuclear Physics and Biophysics Research Division
Institut Teknologi Bandung

*Corresponding author

ISBN 978-602-19655-1-1

Halaman 185 dari 216