APLIKASI PREDIKSI HARGA SAHAM MENGGUNAKAN JARINGAN SYARAF RADIAL BASIS FUNCTION DENGAN METODE PEMBELAJARAN HYBRID Ferry Tan, Giovani Gracianti, Susanti, Steven, Samuel Lukas Jurusan Teknik Informatika, Fakultas Ilmu Komputer Universitas Pelita Harapan UPH Tower, Lippo Karawaci, Tangerang 15811, Indonesia Telp.: +6221-5460901, e-mail: [email protected] Abstract Prediction of stock price is an activity of analysing historical stock exchange data. This paper discusses one method in predicting the stock price by artificial Neural Network based on Radical Basis Function. Dailly data of one dummy stock exchange prior one month before the time of prediction being done is inputed. These data will be normalized first before be trained by the RBF network. There are five parameter data be inputed into the system. The inputs are opening price, highest price, lowest price, closing price, and the volume of that stock exhange. The system will produce one output that is prediction of stock price at the next day. The result of this paper can be concluded that ANN RBF is able to predict stock price. Eventhough it is not as good as its ability in interpolation. Keywords: artificial neural network radial basis function, hybrid. unsupervised dan supervised learning. Melalui pembelajaran hybrid tersebut, jaringan akan dilatih untuk pada akhirnya menentukan bobot (weight) antar koneksi. Selain algoritma yang digunakan, pemilihan input dan output juga adalah hal yang penting untuk kesuksesan prediksi saham. Pada makalah ini, data input yang dipilih adalah harga pembukaan, harga tertinggi, harga terendah, harga penutupan, dan jumlah saham pada satu hari yang sama sedangkan ouput merupakan sebuah prediksi dari harga penutupan di hari selanjutnya. Pengujian hasil prediksi yang akurat dapat dilihat dari perbandingan hasil prediksi dengan nilai saham aktualnya di hari esoknya. Program ini dibangun dengan bahasa pemrograman Java, dikarenakan memiliki beberapa library yang dibutuhkan dan dapat dijalankan di beberapa sistem operasi komputer. Paper ini diharapkan dapat menjadi pembahasan untuk penerapan jaringan syaraf RBF dengan metode pembelajaran hybrid pada prediksi harga saham. 1. PENDAHULUAN 2. METODE Kemajuan teknologi jaringan syaraf buatan, memungkinkan komputer untuk dapat melakukan prediksi dari data yang telah diketahui. Makalah ini akan mengulas salah satu penerapan teknologi ini yaitu kasus prediksi harga saham. Prediksi harga saham akan sangat bermanfaat bagi investor dalam mengambil keputusan dengan melihat bagaimana prospek investasi saham sebuah perusahaan di masa yang akan datang. Program ini akan mengaplikasikan tipe jaringan syaraf buatan Radial Basis Function (RBF) dalam memprediksi harga saham. Metode ini berbeda dari pendekatan Multi Layer Perceptron (MLP) yang lebih sering digunakan. Jaringan RBF menggunakan kalkulasi yang lebih mudah sehingga metode ini diharapkan dapat belajar lebih cepat dibandingkan jaringan MLP. Algoritma yang akan digunakan adalah metode hybrid yang merupakan kombinasi algoritma Saham adalah tanda penyertaan atau kepemilikan seseorang atau badan dalam suatu perusahaan atau perusahaan terbatas. Wujud saham berupa selembar kertas yang menerangkan siapa pemiliknya. Prediksi harga saham merupakan proses menganalisa dan menentukan harga suatu saham di masa mendatang. Dalam menganalisis atau memilih saham ada dua pendekatan dasar, yaitu analisis fundamental dan analisis teknikal. Analisis teknikal mengamati perubahan harga saham di masa lalu sedangkan pendekatan fundamental menyertakan factor-faktor fundamental yang mungkin mempengaruhi harga saham. Pemikiran yang mendasari analisis teknikal adalah bahwa pola harga saham mencerminkan informasi yang relevan. Ia mempunyai pola tertentu, dan pola tersebut berulang. Aplikasi Prediksi Harga … (F. Tan, G. Gracianti, Susanti, Steven, S. Lukas) 175 Jaringan syaraf tiruan sebagai produk teknologi ilmu komputer yang dengan baik dapat diterapkan pada berbagai bidang peramalan (forecasting) [1,2]. Secara umum peramalan yang dapat dilakukan oleh jaringan syaraf tiruan adalah peramalan runtut waktu (time series) sebagai input, sedangkan target dari output yang diinginkan pada proses pelatihan adalah data periode lalu yang akan diramal. Data tersebut digunakan untuk menentukan bobot yang optimal. Setelah bobot optimal didapatkan dari proses pelatihan, bobot-bobot tersebut digunakan untuk menentukan nilai prediksi selanjutnya. Secara umum ada dua algoritma pembelajaran JST, yaitu pembelajaran terawasi, (supervised) dan tak terawasi (unsupervised) [1,2]. Pada proses pembelajaran terawasi, JST dilatih dengan cara diberikan data pelatihan yang terdiri atas pasangan input-output yang diharapkan. Proses pelatihan diawasi dengan memperhatikan pergerakan error. Pelatihan bisa dilanjutkan atau dihentikan ditentukan dengan apakah error makin membaik atau jusru sebaliknya, semakin besar. Proses pembelajaran tak terawasi tidak menggunakan data target (tanpa target). Data pelatihan hanya terdiri dari data masukan saja. Perbedaan utama antara jaringan Multi Layer Perceptron (MLP) dan Radial Basis Function (RBF) ada empat bagian [2,3]. Pertama adalah pada hubungan antara input layer dan hidden layer yang tidak diberi bobot. Kedua, fungsi aktivasi pada hidden layer node yang radial simetri. Ketiga, RBF hanya menggunakan satu hidden layer berbeda dengan MLP yang dapat lebih dari satu hidden layer sehingga metode RBF diharapkan dapat belajar lebih cepat dibandingkan jaringan MLP. Keunikan lain dari RBF juga terdapat pada transformasi yang digunakan yaitu dari input layer ke hidden layer, sifatnya nonlinier, sedangkan dari hidden layer ke ouput layer sifatnya linear. Fungsi aktivasi RBF pada hidden layer digunakan sebuah fungsi aktivasi yang berbasis radial, misalnya fungsi Gaussian. Hal khusus lain adalah sifat jaringan RBF ialah feed-forward. Seperti halnya jaringan syaraf tiruan yang lain, RBF juga memiliki topologi jaringan. Topologi milik RBF terdiri atas unit lapisan masukan (input), unit lapisan tersembunyi (hidden), dan unit lapisan keluaran (output). Gambar 1 menunjukkan skema dari jaringan RBF dengan t node input, j node hidden dan satu output node. RBF memiliki algoritma pelatihan yang unik yang disebut metode hybrid. Nama metode ini menggambarkan kegiatan pembelajaran yang terjadi yaitu, cara supervised dan unsupervised yang dipakai bersamaan. Pada tahap pembelajaran pertama yang tidak terawasi, terjadi pada input layer ke hidden layer. Data dikelompokkan berdasarkan kedekatan antar vektor masukan. Penentuan kelompok dengan sendirinya akan menghasilkan pusat, center, dari kelompok data. Jumlah kelompok menentukan jumlah hidden node yang dipakai. Dalam menentukan pusat kelompok, ada dua cara yang bisa dipakai. Cara yang mudah ialah menentukan center secara acak dari kelompok data. Cara yang lebih sulit, tetapi lebih baik ialah dengan menggunakan algoritma pengelompokan, clustering. Algoritma yang paling umum ialah algoritma K-means clustering. Dengan algoritma tersebut, jaringan syaraf tiruan mampu mencari sendiri center yang terbaik bagi data. Gambar 1. Skema radial basis function 176 Jurnal Ilmiah Ilmu Komputer, Vol. 8 No. 2 Maret 2012: 175-181 Tahap pembelajaran kedua yang terawasi terjadi antara hidden layer ke output layer. Pada tahap pembelajaran ini, serangkaian perhitungan diperlukan untuk memperbaharui setiap bobot koneksi. Pada tahap ini juga, dibutuhkan data training beserta targetnya. Jaringan syaraf tiruan menyimpan pengetahuannya pada bobot interkoneksi antar node. 3. DISKUSI Parameter dari JST RBF terdiri dari center dan penyebaran dari fungsi basis pada setiap node di hidden layer dan bobot dari node di hidden layer ke node output layer. Center RBF juga menjadi titik pada ruang input. Hal ini akan menjadi ideal bila setiap titik yang berada pada ruang input berbeda, namun pada realitas hanya sedikit titik-titik input yang dipilih menggunakan suatu proses yang disebut clustering. Tahap pelatihan dibagi menjadi dua, yaitu penentuan pusat dengan unsupervised learning dan penentuan bobot dengan supervised learning. Center hasil unsupervised learning akan digunakan untuk menghitung nilai keluaran dari adalah nilai setiap node di hidden layer. Jika keluran node ke-j pada layer hidden atas suatu input vector , dinyatakan dengan: (1) dimana adalah jarak antara titik yang menyatakan input , dan pusat hidden node ke-j sebagaimana diukur oleh beberapa norm (fungsi mutlak). Norm yang digunakan adalah Euclidean norm. Algoritma dalam menentukan pusat yang digunakan adalah k-means clustering algorithm. Algoritma ini terdiri dari beberapa tahapan [3], yaitu: 1) Inisialisasi acak nilai center dengan input sebagai acuan. 2) Ambil nilai j dimana menghasilkan nilai terkecil. dengan perumusan 3) Update nilai dimana adalah learning rate. 4) Ulangi langkah 2 dan 3 untuk satu epoch. 5) Ulangi langkah 4 sampai hasilnya konvergen. Konvergensi dari center dapat dilakukan dengan tahapan sebagai berikut: 1) Simpan nilai yang di-update pada tahap ketiga 2) Bandingkan dengan nilai pada posisi yang sama untuk epoch berikutnya. 3) Ulangi langkah a dan b sampai semua nilai yang dibandingkan adalah sama. Parameter pada hidden layer yang telah didapatkan sebelumnya digunakan untuk menghitung bobot koneksi, dari node ke-j pada hidden layer ke node ke-k pada output layer. Jika merupakan bobot untuk node output atau biasa disebut bias maka: L ok x j x Wkj k (2) j 1 Jika dipilih k 0 0 W k 0 , W k 0 1 L ok x j x Wkj (3) j 0 , dan masing-masing adalah dimana representasi matrix dari dan . Karena tidak selalu berbentuk square matrix, maka digunakan pseudoinverse [4]: (4) dimana (5) Untuk kasus dimana tidak mempunyai inverse digunakan pendekatan singular value decomposition. Menurut pendekatan ini, untuk matrix yang berdimensi dapat dituliskan sebagai , dimana adalah matrix ortogonal berdimensi , adalah matrix pseudodiagonal berdimensi dan adalah matrix ortogonal berdimensi . Lalu dengan Moore-Penrose generalized inverse, pseudoinverse , yaitu , dapat dituliskan dimana adalah matrix berdimensi dengan tiap elemennya bernilai sama dengan tiap elemen yang diberi Aplikasi Prediksi Harga … (F. Tan, G. Gracianti, Susanti, Steven, S. Lukas) 177 pangkat . Lalu digunakan rumus untuk menghitung nilai bobotnya. Nilai bobot inilah yang akan menghasilkan output seperti yang diharapkan berdasarkan pola yang sudah ada dari training data. Setelah bobot dan bias terbaik pada tahap pelatihan didapat, maka nilai-nilai tersebut digunakan untuk mengolah data input untuk menghasilkan output yang sesuai. Hal ini digunakan untuk menguji performa dari jaringan syaraf yang kita bangun untuk prediksi pola data [2]. Bagan arus perancangan diperlihatkan pada gambar 2. Langkah-langkah pada program ini secara berurutan yaitu, perancangan arsitektur dan parameter JST, input data untuk tahap pelatihan, dan tahap pengujian menghasilkan output. Flowchart dari program untuk input data pelatihan baru yang dilanjutkan dengan tahap pengujian dapat dilihat pada gambar 2. Aplikasi JST merujuk pada prediksi harga saham. Data uji coba sistem ini dilakukan dengan mendapat satu data saham aktif dari Bursa Efek Indonesia(BEI). Sejumlah data yaitu harga pembukaan, harga tertinggi, harga terendah, harga penutupan, dan jumlah saham pada satu hari yang sama sebagai input. Harga penutupan juga diambil sebagai ouput yang diharapkan. Data pelatihan tersebut telah diatur sedemikian rupa agar sesuai dengan aplikasinya. Data ini ditujukan baik untuk tahap pelatihan maupun tahap pengujian. Gambar 2. Alur tahap perancangan 178 Jurnal Ilmiah Ilmu Komputer, Vol. 8 No. 2 Maret 2012: 175-181 Gambar 3. Tampilan form perancangan Data ditransformasi ke dalam kisaran 0 dan 1. Proses ini disebut normalisasi. Ada beberapa cara untuk normalisasi, namun pada uji coba ini perhitungan yang digunakan adalah nilai minimum dan maksimum dari data, maka transformasi menjadi: (6) merupakan data asli, sedangkan merupakan data normalisasi. Data harga saham uang digunakan selalu nol atau positif, dan dapat diketahui nilai maksimum dari kumpulan data tersebut, maka diatur sehingga persamaan di atas dapat disederhanakan menjadi: (7) Pengujian program dilakukan pada setiap tahapan. Pengujian dilakukan dengan data uji coba serta ketentuan yang disesuaikan dengan tujuan yang mengarah pada aplikasi prediksi harga saham. Form perancangan merupakan interface pertama pada program. User dapat merancang arsitektur jaringan syaraf dengan menentukan beberapa parameter JST untuk pelatihan dan pengujian. Variabel yang diisi user adalah jumlah input node, hidden node, dan output node. Arsitektur JST akan digambarkan seperti pada gambar 3, sesaat setelah variabel-variabel dikonfirmasi oleh user. Form pelatihan digunakan untuk melatihkan pola-pola data yang ada. Form ini menampilkan kembali parameter dan arsitektur JST yang dirancang sebelumnya dan menambahkan variabel yang harus ditentukan user yaitu learning rate. Selain itu, user dapat mengambil data pelatihan dalam bentuk text document (.txt). Selanjutnya, tombol process digunakan untuk memulai pelatihan. Setelah data diproses, program akan menampilkan hasil dari pelatihan seperti pada gambar 4. Hasil dari pelatihan adalah banyaknya iterasi yang dilakukan, nilai center, nilai gauss, bobot (weight), prediksi output serta error yang merupakan selisih dari prediksi output dan output aktual. Grafik yang disajikan pada form ini adalah Aplikasi Prediksi Harga … (F. Tan, G. Gracianti, Susanti, Steven, S. Lukas) 179 grafik nilai prediksi dan grafik nilai aktual-nya. Dengan grafik ini, user dapat melihat hasil pelatihan secara visual. Kemudian, user dapat menyimpan hasil proses pelatihan tersebut untuk memprediksi data lainnya. Form pengujian digunakan untuk melakukan pengujian keakuratan sistem dalam memprediksi pola data yang tidak dilatihkan. Secara tampilan, form ini tidak memiliki banyak perbedaan dengan form pelatihan, gambar 5. Informasi baru yang tersaji hanyalah nilai prediksi dan error yang dihitung dengan pengambilan data hasil pelatihan. Seperti pada form pelatihan, form pengujian juga menampilkan grafik yang menunjukkan hasil prediksi sistem dan data aktual. Gambar 4. Tampilan form pelatihan Gambar 5. Tampilan form pengujian 180 Jurnal Ilmiah Ilmu Komputer, Vol. 8 No. 2 Maret 2012: 175-181 Beberapa hal yang mempengaruhi tahap pelatihan: 1) Hidden node berpengaruh pada banyaknya iterasi dan tingginya error. Semakin banyak jumlah hidden node, semakin sedikit iterasi yang dilakukan untuk mencapai konvergensi dan semakin kecil error yang dihasilkan. 2) Gaussian variance berpengaruh pada error jika jumlah data yang dilatih cukup besar. Pengaruh Gaussian variance bukan diakibatkan oleh nilai yang lebih tinggi atau rendah, namun pada nilai di tiap node yang tidak boleh sepenuhnya sama. Jika nilai Gaussian variance adalah sama untuk setiap node, maka error tinggi. Jika dibuat random¸ nilai error akan menjadi kecil. Secara intuisi, acak atau tidaknya nilai Gaussian variance seharusnya tidak berpengaruh apapun pada error di RBF karena hasil perhitungan dengan Gaussian function akan di atur oleh supervised learning. 3) Learning rate berpengaruh pada kecepatan JST dalam proses pembelajaran. Semakin besar learning rate, maka JST semakin cepat belajar. Sebaliknya, semakin kecil learning rate, maka JST semakin lambat belajar. 4) Perbedaan waktu dari data latihan dan data pengujian mempengaruhi tingkat akurasi RBF. Jika RBF dilatih dengan data tahun 2009 namun digunakan untuk memprediksi data tahun 2011, tentu saja nilai akurasinya akan sangat rendah. 5) Normalisasi data dilakukan agar hasil nilai prediksi menunjukkan keakuratan yang lebih baik dengan nilai aktualnya. Data hasil normalisasi didapatkan dari nilai asli di pasar saham dibagi dengan nilai tertinggi dari data tersebut. 6) Salah satu faktor lain yang dapat berpengaruh pada keakuratan adalah pembulatan otomatis yang dilakukan oleh program Java. Hal ini terjadi khususnya pada data yang besar atau belum dinormalisasi dan nilai Gaussian variance yang sangat kecil. pengembangan JST. Secara khusus, metode RBF sebagai salah satu model jaringan syaraf memiliki kemampuan yang cukup baik untuk peramalan harga saham meskipun kemampuannya dalam interpolasi adalah sangat baik. Dapat dilihat dari hasil error nilai hasil prediksi dengan data aktual. Model jaringan syaraf RBF menggunakan metode hybrid melalui dua tahap yaitu clustering dan penentuan bobot. Clustering pada tahap pelatihan unsupervised akan berhenti jika nilai error yang dihasilkan program lebih kecil dari nilai toleransi error yang ditetapkan. Sedangkan penentuan bobot hanya dilakukan satu kali dimana ini merupakan bagian pelatihan supervised. Pemilihan jumlah hidden node disesuaikan dengan tujuan dari pelatihan. Jika menitikberatkan pada tingkat akurasi yang tinggi, ambil jumlah hidden node yang banyak, maka proses iterasi lebih cepat menuju konvergensi. Salah satu hal yang dapat dikembangkan dari aplikasi prediksi harga saham dengan menggunakan JST RBF ini adalah metode pengambilan data. Pada program ini, data diambil dari sumbernya dan disimpan dalam format excel(.xls). Namun telah kita ketahui bahwa beberapa informasi saham sudah terpublikasi secara online. Oleh karena itu, jika dimungkinkan program ini langsung dapat mengakses informasi tersebut maka investor akan semakin dimudahkan dalam menggunakan aplikasi ini. 5. DAFTAR PUSTAKA [1] M. Zeidenberg, Neural Networks in Artificial Intelligence, Dept. Of Computer Science, University of Winconsin, Madison, USA, 1990. [2] M. D. Buhmann, Radial Basis Functions: Theory and Implementations, Cambridge University, 2003. [3] M. J. L. Orr, Introduction to Radial Basis Function Networks, Centre for Cognitive Science, University of Edinburgh, 1996. [4] B. Jacob, Linear Algebra, W.H Freeman and Company, New York, 1990. 4. HASIL Prediksi harga saham dapat dilakukan dengan Aplikasi Prediksi Harga … (F. Tan, G. Gracianti, Susanti, Steven, S. Lukas) 181