BAB 3 PERANCANGAN PROGRAM APLIKASI 3.1
Analisis Masalah Penelitian peramalan harga saham sudah banyak dilakukan, seperti
Zulkarnain(2013) menggunakan ARIMA dan Kombinasi Main Chart + Ichimoku Chart yang menghasilkan MAPE sebesar 4.14%. Pada penggunaan metode HMM beberapa diantaranya adalah Hassan (2005) yang menggunakan kombinasi metode Continous HMM. Penelitian tersebut menghasilkan peramalan dengan MAPE sebesar 2.01% dan 1.92% dengan menggunakan gabungan metode HMM, ANN and GA (Hassan, Nath, Kirley, 2007). Kemajuan teknologi baik dari perangkat keras (hardware) maupun perangkat lunak (software) sangat cepat. Dengan majunya teknologi maka proses pengolahan banyak data dapat dilakukan secara cepat, akurat, mudah dan efisien. Tentunya hal ini sangat bermanfaat untuk melakukan peramalan kejadian dimana peramalan membutuhkan data yang banyak dan memiliki dituntut menghasilkan peramalan yang akurat. Salah satu peramalan yang sering digunakan adalah peramalan harga saham. Sulit untuk meramalkan harga saham dikarenakan polanya yang tidak linier.Dengan menggunakan indikator-indikator teknikal pola pergerakan harga saham dapat terlihat diwaktu yang tepat. Ada ratusan indikator teknikal yang tersedia, tetapi tidak semua indikator berguna. Misalnya, beberapa indikator memberikan informasi yang cocok untuk saham A tetapi tidak cocok digunakan untuk menjelaskan informasi untuk saham B.
44
45
3.2
Usulan Pemecahan Masalah Agar peramalan harga saham memiliki tingkat akurasi yang tinggi maka
dibutuhkan data yang banyak dengan indikator-indikator teknikal yang tepat. Untuk itu dibutuhkan sebuah aplikasi program yang bisa memberikan informasi peramalan harga saham dengan memilih indikator-indikator saham yang tepat guna memberikan hasil peramalan dengan tingkat akurasi yang tinggi. Metode Hidden Markov Model (HMM) merupakan salah satu solusi untuk peramalan harga saham dengan tingkat akurasi yang tinggi, karena metode ini sering digunakan untuk menganalisis dan memprediksi fenomena data time series. Metode tersebut dapat disertai dengan metode Principal Component Analysis (PCA) untuk mencari indikator saham yang tepat guna menyediakan informasi yang tepat untuk harga saham yang akan diramal.
3.3
Desain Penelitian Berikut tahapan yang akan dilakukan dalam penelitian ini:
a.
Identifikasi masalah
b.
Studi literatur
c.
Pemilihan variabel penelitian yang akan digunakan
d.
Pengumpulan data
e.
Perancangan progam
f.
1.
Analisa kebutuhan
2.
Desain Sistem
3.
Penulisan Program
4.
Pengujian Program
5.
Penerapan Program
Penarikan kesimpulan
46
Tahapan-tahapan yang akan dilakukan dalam penelitian ini dapat dilihat dari gambar berikut :
IdentifikasiMasalah : • Data dalam jumlah banyak • Indikator dalam jumlah banyak • Peramalan yang akurat
Studi literatur
Pemilihan variabel penelitian
Data Penelitian : • Pengumpulan data • Rekap data
Analisa Kebutuhan
Perancangan Program
Desain Sistem
Penulisan Program
Pengujian Program
Penerapan Program
Gambar 3.1 Desain Penelitian
Kesimpulan
47
3.4
Perancangan Program Program ini diharapkan digunakan dapat meramalkan harga saham untuk
open, high, low dan close price, dapat memberikan nilai ketepatan peramalan, dan menampilkan grafik pergerakan saham. Untuk pengembangan arsitektur dari program, maka program dibuat berdasarkan Use Case Diagram, Activity Diagram, Sequence Diagram, Class Diagram.
3.4.1. Use Case Diagram
Import File << depends on >>
Configure Dataset << depends on >>
Forecast << depends on >>
Configure Likelihood and Dataset Evaluate
Gambar 3.2 Use Case Diagram
48
3.4.2. Activity Diagram 3.4.2.1. Activity Diagram Import Data
User
System
Display Browse File DIalog
Push Import
Choose File
Push Cancel
Push Ok Show Data
Display Main Form
Gambar 3.3 Activity Diagram Import Data
3.4.2.2. Activity Diagram ConfigureDataset
User
System
Display Advance Panel
Push Advance
Choose Default
Choose Custom
Display Dataset Setting
Disable Confirm button Configure Dataset
Invalid Configure
Valid Configure
Push Confirm Button
Enabled Confirm Button
Display Main Form
Gambar 3.4 Activity Diagram Configure Dataset
49
3.4.2.3. Activity Diagram Forecast
User
System
Push Forecast
Calculate Forecast
Display Result
Gambar 3.5 Activity Diagram Forecast
3.4.2.4. Activity Diagram Configure Likelihood Tolerance dan Evaluate Dataset
User
Choose Likelihood Tolerance
System
Choose Amount of Dataset Evaluate
Calculate Forecast
Display Result
Gambar 3.6 Activity Diagram Configure Likelihood dan Evaluate Dataset
50
3.4.3. Sequence Diagram 3.4.3.1. Sequence Diagram Import Data
User
form1
HistoricalDownloader
HistoricalStock
Click Import btnImport_Click()
populateData() display data
data table populate data
DownloadData() retval list data
Gambar 3.7 Sequence Diagram Import File
3.4.3.2. Sequence Diagram Configure Dataset
User
form1
OptionForm
Option
Click Advance btnAdvance_Click() Show Panel Advance Configure Dataset numericTrainingEnd_ValueChanged()
numericTestingStart_ValueChanged()
btnConfirm_Click() Hide Panel Advance opt Click Option btnOption_Click() showDialog() OptionForm() Get Option Data Configure Option
Send Option Data
opt Click Ok
btnOk_Click()
Hide Panel Advance Close Dialog
opt Click Cancel Hide Panel Advance
btnCancel_Click() Close Dialog
Gambar 3.8 Sequence Diagram Configure Dataset
51
3.4.3.3. Sequence Diagram Forecast
User
Component Properties
form1
HMM Properties
Extract
Click Forecast btnForecast_Click()
populateIndicator()
makeIndicator()
calculatePCA()
Result PCA ComponentProperties()
flag() showPCA() calculateHMM() Data Obs Extract() Send Data Matrix Send Data HMM HMMProperties() showHMM() populateTesting() obsMakers() forecasting() mainChart() Display Result
Gambar 3.9 Sequence Diagram Forecast
3.4.3.4. Sequence Diagram Configure Likelihood Tolerance dan Evaluate Dataset
User
form1
Choose Likelihood Tolerance comboboxTolerance_SelectedIndexChanged()
calculateSummary()
mainChart() Display Result Choose Amount Dataset Evaluate comboboxEva_SelectedIndexChanged()
calculateSummary()
mainChart() Display Result
Gambar 3.10 Sequence Diagram Configure Likelihood Tolerance dan Dataset Evaluate
52
3.4.4. Class Diagram
0..*
0..*
0..*
1
4
1
4
1
15
1
Gambar 3.11 Class Diagram Program
53
3.5
Metodologi Penelitian
3.5.1. Sumber Data Data yang digunakan pada bagian evaluasi penelitian ini adalah data sekunder yaitu historis dari data harga harian saham, berupa open, high, low, close price dan volume yang diperoleh dari finance.yahoo.com.
3.5.2. Variabel Penelitian Pada penelitian ini menggunakan variable penelitian harga harian saham, berupa open, high, low, close price dan volume dan variabel teknikal indikator. Variabel teknikal indikator tersebut meliputi Accumulation Distribution Line (AD), Positive Volume Index (PVI), Negative Volume Index (NVI), On Balance Volume (OBV), Price and Volume Trend Index ( PVT), Rate of Change dengan 7-periode (ROC), Weighted Close (WC), 14-days William %R (William), 20-periode Chaikin Money Flow (CMF), 14-days Average True Range (ATR), 14-days Vortex Index (+VI dan –VI), 20-days Commodity Channel Index (CCI), Ulcer Index (Ulcer), dan ADX (Average Directional Movement).
3.5.3. Teknik Pengumpulan Data Teknik Pengumpulan data dilakukan dengan metode non-probability sampling, yaitu mengambil data dengan mengumpulkan data harian harga saham berupa open, high, low, close price dan volume dari saham. Data tersebut diambil dari 11 saham dengan periode yang berbeda-beda, yaitu 1.
S&P500 periode dari 4 Januari 2010 hingga 7 Juni 2013.
2.
Electronic Art Inc periode 26 Maret 1990 hingga 19 Juli 2013.
3.
Apple periode 8 September 2008 hingga 19 Juli 2013.
54
4.
Facebook periode 18 Mei 2012 hingga 19 Juli 2013.
5.
Google periode 19 Agustus 2010 hingga 19 Juli 2013.
6.
IBM periode 1 April 2010 hingga 19 Juli 2013.
7.
NASDAQ Composite periode 7 Febuari 2011 hingga 19 Juli 2013.
8.
Jakarta Composite periode 21 Juli 2000 hingga 19 Juli 2013.
9.
Microsoft periode 15 Maret 2010 hingga 19 Juli 2013.
10.
New York Times periode 16 Juli 2003 hingga 19 Juli 2013.
11.
Yahoo Inc periode 21 Juli 2008 hingga 19 Juli 2013.
3.5.4. Teknik Pengolahan Data Pengolahan data akan dilakukan dengan cara sebagai berikut : 1.
Proses peramalan dimulai dari pengumpulan data harian harga saham berupa open, high, low, close price dan volume. Data open/high/low/close disebut variabel interest disimbolkan dengan huruf V.
2.
Indikator-indikator teknikal akan diolah menggunakan data harian harga saham, indikator-indikator teknikal ini meliputi Accumulation Distribution Line (AD), Positive Volume Index (PVI), Negative Volume Index (NVI), On Balance Volume (OBV), Price and Volume Trend Index (PVT), Rate of Change dengan 7-periode (ROC), Weighted Close (WC), 14-days William %R (William), 20-periode Chaikin Money Flow (CMF), 14-days Average True Range (ATR), 14-days Vortex Index (+VI dan –VI), 20-days Commodity Channel Index (CCI), Ulcer Index (Ulcer), ADX.
3.
Data hasil perhitungan tiap indikator teknikal akan distandarisasi dengan cara:
55
dimana, = Nilai indikator = Rata-rata dari indikator teknikal = Standar devisiasi dari indikator teknikal 4.
Indikator-indikator teknikal akan dipilih mengunakan Principal Component Analysis (PCA) sehingga mendapatkan P indikator yang paling efektif menggambarkan pola pergerakkan data harga saham.
5.
Data harga saham beserta indikator yang telah diseleksi akan dibagi menjadi tiga bagian, yaitu dataset dan indikator training, dataset dan indikator test, dan dataset dan indikator evaluate.
6.
Proses HMM dilakukan dengan menggunakan 3 state yaitu state increase dimana harga variabel interest pada t+1 mengalami kenaikan dari harga variabel interest pada saat t, state decrease dimana harga variabel interest pada t+1 mengalami penurunan dari harga variabel interest pada saat t, dan state no change dimana harga variabel interest pada t+1 sama dengan harga variabel interest pada saat t.
7.
Data untuk membentuk transition matrix dan untuk membuat observation squence diolah dengan cara mensimbolkan data, yaitu :
8.
a.
Vt – Vt-1> 0 bearti state increase disimbolkan dengan “I”
b.
Vt – Vt-1< 0 bearti state decrease disimbolkan dengan “D”
c.
Vt – Vt-1= 0 bearti state no change disimbolkan dengan “S”
Dataset training akan diolah untuk menentukan transition matrix pada proses inisialisasi HMM sesuai dengan variabel interest dan indikator training akan diolah menjadi training observation squence.
56
9.
Inisialisasi HMM dilakukan dengan parameter transition matrix: A(3x3) yang telah diolah dari dataset training, untuk nilai dari parameter observation matrix: B(3xM) dan prior probability:π(3x1)diambil secara random. HMM dilambangkan dengan model λ=(A, B, π).
10.
HMM akan diolah menggunakan algoritma Baum-Welch menggunakan data training observation squence sehingga model λ= (A, B, π) akan memiliki parameter yang cocok dengan keadaan dataset training, yang akan disebut sebagai trained HMM.
11.
Dataset test dan dataset evaluate diolah untuk mendapatkan likelihood dari tiap t menggunakan menggunakan algoritma forward dengan trained HMM dan data observation squence diolah dari indikator pada saat t.
12.
Peramalan dilakukan dengan menggunakan rumus 2.33.
13.
Hasil Peramalan akan dievaluasi dengan cara menghitung Percentage Error (PE) dan Mean Absolute Percentage Error (MAPE).
3.6
Perancangan Layar
3.6.1. Rancangan Menu Utama Menu yang terdapat pada Program ‘One Day Ahead” ditampilkan pada tabel 3.1. Dijelaskan juga fungsi tiap menu yang ditampilkan.
Tabel 3.1 Rancangan Menu Program Menu Menu ‘File’
fungsi Membuka layar file
Submenu ‘File →Import’
Untuk import data file (*.csv, *.xls, *.xlsx)
Submenu ‘File →Exit’
Untuk keluar dari program
Tabel 3.1 Rancangan Menu Program (Lanjutan)
57
Menu Menu ‘Help’
Tujuan Membuka layar help
Submenu ‘Help →Show Help’
Untuk membuka layar help
Submenu ‘Help →Option’
Untuk membuka layar option
Submenu ‘Help →About us’
Untuk membuka layar profile pembuat
3.6.2. Rancangan Layar Utama Pada rancangan layar utama program ‘One Day Ahead’ user dapat memilih ‘File’ dan ‘Help’ pada menu utama program dan terdapat juga Worktab dan Progressbar (Hidden). User dapat memilih file data yang akan dijadikan dataset untuk proses peramalan atau keluar dari program melalui menu ‘File’. Menu ‘Help’dapat diakses oleh user untuk pengaturan dan penjelasan program. ProgressBar akan tampil apabila program sudah memiliki dataset yang valid, apabila program belum memiliki dataset yang valid maka ProgressBar akan tetap tidak terlihat oleh user dan menampilkan pesan bahwa file data tidak valid.
Gambar 3.12 Rancangan Layar Utama
Pada menu ‘File’, user dapat memilih submenu Import dan Exit. Submenu Import akan menampilkan layar browse file untuk user memilih file data, submenu Import
58
dapat diakses dengan memilih submenu atau menekan tombol Alt + I. Untuk menutup program, user dapat memilih submenu Exit atau menekan tombol Alt + F4.
Gambar 3.13 Rancangan Layar Menu File Ditekan
Jika SubMenu Import ditekan tampil layar browse file untuk user memilih fil edata dengan format *.csv, *.xls atau *.xlsxdari harddisk ataupun media penyimpanan lainnya seperti Flashdisk, Memory Card
atau media lain yang
mendukung penyimpanan data berformat *.csv, *.xls atau *.xlsx. Setelah berhasil diimport menjadi dataset ke program maka Worktab dan StatusBar akan terlihat. Menu ‘Help’ mempunyai Submenu Show Help dengan tombol shortcut Ctrl + H, Option dengan tombol shortcutShift + O dan Aboutdengan tombol shortcut Ctrl + U. Submenu Show Help berfungsi untuk menampilkan petunjuk bagi user untuk menggunakan program. Submenu Option berfungsi mengatur perhitungan PCA dan banyak angka dibelakang koma untuk setiap nilai yang diolah oleh program. Submenu About berfungsi untuk menampilkan profile pembuat program.
59
Gambar 3.14 Rancangan Layar Menu Help Ditekan
3.6.3. Perancangan Layar Data Layar data berada di tab pertama pada WorkTab. Pada tab layar data terdapat 3 panel, yaitu panel Main berisikan tombol untuk import file, tombol untuk menampilkan pengaturan dataset, dan tombol untuk memulai proses peramalan, panel table data untuk menampilkan data date, open price, high price, low price, close price dan volume dari dataset, dan panel table eksplorasi data untuk menampilkan means, variance, maximum, minimum value dari dataset pada table data. Pada panel main terdapat tombol Advance akan menampilkan panel baru yang berfungsi untuk mengatur jumlah dataset untuk training dan testing. Tombol Forecast yang berfungsi untuk memulai proses peramalan. Setelah proses peramalan dimulai ProgressBar akan berfungsi.
60
Gambar 3.15 Perancangan Layar Tab Data
3.6.4. Perancangan Layar Result Layar Result merupakan tab ketiga pada WorkTab. Layar Result terdiri dari 5 tab yaitu tab Summary, Open Price, High Price, Low Price dan Close Price. Setelah pengolahan data selesai tab Result dapat diakses.
Gambar 3.16 Perancangan Layar Tab Summary pada Tab Result
61
Pada Gambar 3.16 menampilkan rancangan layar tab Summary yang berisikan 3 bagian yaitu 1.
Panel yang berfungsi untuk menampilkan tanggal hari terakhir dari data, combobox yang berfungsi untuk mengatur likelihood tolerance dan jumlah dataset evaluate.
2.
Table Summary Forecasting berisikan data hasil peramalan dan MAPE dari peramalan satu hari kedepan harga open, high, low, dan close, dan informasi kategori MAPE.
3.
Chart berfungsi untuk menampilkan plot dengan nilai aktual dan nilai peramalan dari harga open, high, low, dan close pada dataset evaluate.
Gambar 3.17 Perancangan Layar Tab Open pada Tab Result
Pada Gambar 3.17 ditampilkan tab Open, untuk tab High, Low, dan Close memiliki bagian yang sama seperti tab Open yang berisikan 3 bagian yaitu 1.
Panel yang berfungsi untuk menampilkan nilai peramalan untuk satu hari kedepan berserta nilai MAPE dari dataset evaluate.
62
2.
Table Forecasting berisikan data aktual, hasil peramalan, likelihood, dan percentage error dari dataset evaluate,
3.
Chart berfungsi untuk menampilkan plot dengan nilai aktual dan nilai peramalan.
3.6.5. Perancangan Layar Statistic Tab terakhir pada WorkTab adalah layar statistic. Layar statistic terdiri dari 3 tab yaitu tab Indicator, PCA, dan HMM. Setelah pengolahan data selesai tab statistic dapat diakses. Pada tab Indicator ditampilkan Table Indicator yang berisikan nilai indikatorindikator yang telah diolah dari dataset.
Gambar 3.18 Perancangan Layar Tab Indicator pada Tab Result
Tab PCA berisikan data hasil perhitungan PCA yaitu label Result PCA berfungsi untuk menampilkan secara deskriptif hasil pengolahan PCA, nilai component loadings ditampilkan pada table principal loading, dan table summary
63
PCA berisikan standard deviation, proportions of variance dan cummulative proportions.
Gambar 3.19 Perancangan Layar Tab PCA pada Tab Result
Gambar 3.20 Perancangan Layar Tab HMM pada Tab Result
Tab HMM dibagi menjadi 4 tab yaitu tab Open, High, Low, dan Close. Tiap tab berisikan 2 panel yaitu panel summary Initial HMM menampilkan model awal
64
dari HMM dan panel summary trained HMM menampilkan model HMM yang sudah dilatih melalui algoritma BaumWelchdari variabel yang dipilih.
3.6.6. Perancangan Layar Help
Gambar 3.21 Perancangan Layar Help
Gambar 3.21 menampilkan perancangan layar submenu Help, layar Help berisikan informasi penggunaan program ‘One Day Ahead’.
3.6.7. Perancangan Layar Option
Gambar 3.22 Perancangan Layar Option
Gambar 3.22 menampilkan perancangan layar submenu Option, layar Option berisikan combobox untuk mengatur proses PCA dan angka dibelakang koma.
65
3.6.8. Perancangan Layar About
Gambar 3.23 Perancangan Layar About
Gambar 3.23 menampilkan perancangan layar submenu About, layar About berisikan informasi program ‘One Day Ahead’, logo program dan profile dari pembuat program.