• Tidak ada hasil yang ditemukan

Uji akurasi algoritma fuzzy neural network untuk memprediksi pergerakan harga saham.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Uji akurasi algoritma fuzzy neural network untuk memprediksi pergerakan harga saham."

Copied!
92
0
0

Teks penuh

(1)

i

UJI AKURASI ALGORITMA FUZZY NEURAL NETWORK UNTUK MEMPREDIKSI PERGERAKAN HARGA SAHAM

ABSTRAK

Saat ini minat terhadap investasi pasar saham sangat tinggi. Hal ini

disebabkan keuntungan besar yang bisa diraih dan juga majunya teknologi

informasi yang ada, sehingga banyak sistem yang berhubungan dengan pasar

saham mulai dikembangkan. Dari latar belakang tersebut, maka dilakukan uji

coba terhadap algoritma yang dapat melakukan prediksi terhadap pergerakan

harga saham. Permasalahan yang ingin diselesaikan di sini adalah untuk menguji

algoritma Jaringan Syaraf Tiruan dan Logika Kabur digunakan bersama untuk

melakukan prediksi terhadap harga saham.

Adapun metodologi penelitian yang akan dilakukan adalah dengan

menggunakan data saham dari Indeks Harga Saham Gabungan Indonesia, Saham

Bank BCA, Saham Astra Argo Lestari, dan Saham Gudang Garam. Dari data

tersebut akan diolah pertama kali menggunakan Logika Kabur dan dilakukan

proses pelatihan dan pengujian menggunakan algoritma Backpropagation Jaringan

Syaraf Tiruan.

Hasil akhir yang diperoleh adalah sebuah sistem yang mengandung

algoritma Backpropgation Jaringan Syaraf Tiruan dan Logika Kabur untuk dapat

memprediksi harga saham. Setelah dilakukan pengujian pada sistem didapat

kesimpulan bahwa algoritma ini bekerja dengan baik untuk melakukan prediksi

(2)

ii

FUZZY NEURAL NETWORK ALGORITHMS ACCURACY TESTING TO PREDICT STOCK MARKET MOVEMENT

ABSTRACT

Currently the interests of investment stock market is very high .This is

because big gains that can be achieved and upward course information technology

is , so many system that deals with the stock market begin to be developed. From

that background then a test against algorithm that can do a prediction of stock

price movements was done. The problems want to be solved here is to test

algorithms artificial neural network and fuzzy logic be used by to do a prediction

of stock prices.

The research methodology that will be done is using data shares from

Indonesian composite stock price index, bank bca shares , shares of astra argo

lestari , and gudang garam shares. The data will be processed first to use fuzzy

logic and done the process of training and testing using algorithms

backpropagation artificial neural network.

The final results obtained was that a system that containing algorithms

backpropgation artificial neural network and fuzzy logic able to predict stock

prices. Through testing on system obtained the conclusion that these algorithms

(3)

UJI AKURASI ALGORITMA FUZZY NEURAL NETWORK

UNTUK MEMPREDIKSI PERGERAKAN HARGA SAHAM

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Disusun oleh

Kevin Aditya Prasetyo

115314041

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(4)

FUZZY NEURAL NETWORK ALGORITHMS ACCURACY

TESTING TO PREDICT STOCK MARKET MOVEMENT

A THESIS

Presented as Partial Fulfillment of the Requirements to Obtain Sarjana Komputer

Degree in Informatic Engineering Study Program

Written by

Kevin Aditya Prasetyo

115314041

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

(5)

i

HALAMAN PERSETUJUAN

TUGAS AKHIR

PREDIKSI PERGERAKAN HARGA SAHAM

MEMPERGUNAKAN ALGORITMA FUZZY NEURAL

NETWORK

Oleh :

Kevin Aditya Prasetyo

115314041

Telah disetujui oleh :

Pembimbing,

(6)
(7)

iii

HALAMAN PERSEMBAHAN

Karya ilmiah ini saya persembahkan kepada :

Tuhan Yesus Kristus, terima kasih telah memberi rahmat dan berkat hingga semua dapat terselesaikan.

Papi, Mami, Ronald, dan semua keluargaku, terima kasih sudah bersabar dan selalu mendukung baik melalui motivasi dan doa.

Pacarku Karin, terima kasih karena selalu mengingatkan dan memotivasi untuk terus giat menyelesaikan studi.

Dosen-dosen Teknik Informatika Sanata Dharma, terima kasih atas bimbingan dari awal hingga akhir proses studi.

(8)

iv

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis

tidak mengandung atau memuat hasil karya orang lain, kecuali yang telah

disebutkan dalam daftar pustaka dan kutipan selayaknya karya ilmiah.

Yogyakarta, 30 Agustus 2015

Penulis

(9)

v

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata

Dharma Yogyakarta :

Nama : Kevin Aditya Prasetyo

NIM : 115314041

Demi pengembangan ilmu pengetahuan, saya memberikan kepada

perpustakaan Univeristas Sanata Dharma karya ilmiah yang berjudul :

UJI AKURASI ALGORITMA FUZZY NEURAL NETWORK

UNTUK MEMPREDIKSI PERGERAKAN HARGA SAHAM

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya

memberikan kepada perpustakaan Universitas Sanata Dharma Yogyakarta hak

untuk menyimpan, mengalihkan dalam bentuk media lain, mengelola dalam

bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di

internet atau media lain untuk kepentingan akademis tanpa meminta ijin dari saya

maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai

penulis.

Demikian pernyataan yang saya buat dengan sebenarnya.

Dibuat di : Yogyakarta

Pada tanggal : 30 Agustus 2015

Yang menyatakan,

(10)

vi

UJI AKURASI ALGORITMA FUZZY NEURAL NETWORK UNTUK MEMPREDIKSI PERGERAKAN HARGA SAHAM

ABSTRAK

Saat ini minat terhadap investasi pasar saham sangat tinggi. Hal ini

disebabkan keuntungan besar yang bisa diraih dan juga majunya teknologi

informasi yang ada, sehingga banyak sistem yang berhubungan dengan pasar

saham mulai dikembangkan. Dari latar belakang tersebut, maka dilakukan uji

coba terhadap algoritma yang dapat melakukan prediksi terhadap pergerakan

harga saham. Permasalahan yang ingin diselesaikan di sini adalah untuk menguji

algoritma Jaringan Syaraf Tiruan dan Logika Kabur digunakan bersama untuk

melakukan prediksi terhadap harga saham.

Adapun metodologi penelitian yang akan dilakukan adalah dengan

menggunakan data saham dari Indeks Harga Saham Gabungan Indonesia, Saham

Bank BCA, Saham Astra Argo Lestari, dan Saham Gudang Garam. Dari data

tersebut akan diolah pertama kali menggunakan Logika Kabur dan dilakukan

proses pelatihan dan pengujian menggunakan algoritma Backpropagation Jaringan

Syaraf Tiruan.

Hasil akhir yang diperoleh adalah sebuah sistem yang mengandung

algoritma Backpropgation Jaringan Syaraf Tiruan dan Logika Kabur untuk dapat

memprediksi harga saham. Setelah dilakukan pengujian pada sistem didapat

kesimpulan bahwa algoritma ini bekerja dengan baik untuk melakukan prediksi

(11)

vii

FUZZY NEURAL NETWORK ALGORITHMS ACCURACY TESTING TO PREDICT STOCK MARKET MOVEMENT

ABSTRACT

Currently the interests of investment stock market is very high .This is

because big gains that can be achieved and upward course information technology

is , so many system that deals with the stock market begin to be developed. From

that background then a test against algorithm that can do a prediction of stock

price movements was done. The problems want to be solved here is to test

algorithms artificial neural network and fuzzy logic be used by to do a prediction

of stock prices.

The research methodology that will be done is using data shares from

Indonesian composite stock price index, bank bca shares , shares of astra argo

lestari , and gudang garam shares. The data will be processed first to use fuzzy

logic and done the process of training and testing using algorithms

backpropagation artificial neural network.

The final results obtained was that a system that containing algorithms

backpropgation artificial neural network and fuzzy logic able to predict stock

prices. Through testing on system obtained the conclusion that these algorithms

(12)

viii

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yang Maha Esa penulis panjatkan, karena

berkat dan rahmat-Nya penulis dapat menyelesaikan tugas akhir sebagai salah satu

syarat untuk mendapatkan gelar Sarjana Komputer dari Program Studi Teknik

Informatika Universitas Sanata Dharma Yogyakarta.

Pada kesempatan ini pula, penulis ingin mengucapkan terima kasih kepada

beberapa pihak yang telah mendukung dan membantu penulis dalam

menyelesaikan tugas akhir. Penulis mengucapkan terima kasih kepada :

1. Romo Dr. Cyprianus Kuntoro Adi, S.J. M.A., M.Sc., sebagai dosen

pembimbing Tugas Akhir.

2. Papi, Mami, Ronald, dan Karin yang selalu memberi semangat untuk

cepat menyelesaikan Tugas Akhir.

3. Romo Poldo yang selalu siap membantu ketika penulis mengalami

kesulitan dalam penyelesaian Tugas Akhir.

4. Seluruh teman-teman Teknik Informatika 2011 yang telah ikut

memberi dukungan dan doa.

5. Semua pihak yang tidak dapat penulis sebutkan satu per satu yang

telah membantu menyelesaikan Tugas Akhir ini.

Akhir kata penulis berharap semoga Tugas Akhir ini dapat berguna bagi

semua pihak yang membaca.

Penulis,

(13)

ix

DAFTAR ISI

HALAMAN PERSETUJUAN………. i

HALAMAN PENGESAHAN..………. ii

HALAMAN PERSEMBAHAN ………...……….. iii PERNYATAAN KEASLIAN KARYA………. iv

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ……….. v

ABSTRAK ………...… vi

1.3Tujuan dan Manfaat Penulisan ……… 3

1.4Batasan Masalah ……… 3

1.5Metodologi Penulisan………. 4

1.6Sistematika Penulisan ……… 5

BAB II LANDASAN TEORI………. 6

2.1 Saham……….. 6

2.2 Analisis Pergerakan Harga Saham ……….. 6

(14)

x

2.2.2 Analisis Teknikal………. 7

2.3 Jaringan Syaraf Tiruan………. 7

2.3.1 Arsitektur Jaringan……… 8

2.3.2 Fungsi Aktivasi, Bias, dan Threshold……….. 10

2.3.3 Backpropagation (Propagasi Balik)……… 12

2.3.4 Normalisasi ………14

2.3.5 Denormalisasi……… 15

2.4 Logika Kabur………... 15

2.4.1 Konsep Logika Kabur……….. 15

2.4.2 Fuzzyfikasi………. 16

2.4.3 Fungsi Keanggotaan……….. 16

2.4.4 Representasi Kurva-S………... 16

2.5 Jaringan Syaraf Tiruan dan Logika Kabur……….. 17

BAB III METODOLOGI PENELITIAN……… 18

3.1 Data……… 18

3.2 Metode Penelitian………. 19

3.2.1 Algoritma dan Langkah Penelitian………. 19

3.2.2 Arsitektur Jaringan……….. 20

3.3 Pengujian Sistem……….. 21

3.4 Diagram Blok……… 21

BAB IV IMPLEMENTASI DAN HASIL……… 23

4.1 Implementasi Sistem……… 23

4.2 Pengujian……….. 23

(15)

xi

4.2.2 Optimalisasi Delay pada Data……….. 26

4.2.3 Optimalisasi Penggunaan Data Training……… 28

4.2.4 Pengujian Terhadap Sistem………. 29

4.2.5 Optimalisasi Menggunakan Data Pelatihan Lampau… 30 4.2.6 Pengujian Menggunakan Fungsi Keanggotaan Linear 31

4.3 Analisis Hasil……… 32

BAB V PENUTUP………. 36

5.1 Kesimpulan………... 36

5.2 Saran……….. 37

DAFTAR PUSTAKA………. 38

LAMPIRAN……… 40

Daftar Gambar

Gambar 2.1 Jaringan Layar Tunggal ……….. 8

Gambar 2.2 Jaringan Layar Jamak ………. 9

Gambar 2.3 Jaringan dengan Bias ……… 11

Gambar 2.4 Arsitektur Jaringan Backpropagation ………... 12

Gambar 2.5 Gambar Kurva-S atau Kurva Sigmoid ………. 17

Gambar 3.1 Arsitektur Jaringan yang Dibangun ……….. 20

Gambar 3.2 Diagram Proses ……… 21

Gambar 4.1 Tampilan Sistem ………... 23

(16)

xii

Gambar 4.3 Grafik Akurasi Pengujian Delay ……….. 27

Gambar 4.4 Grafik Pengujian Jumlah Data Train ……… 29

Gambar 4.5 Gambar Tampilan Arsitektur Jaringan dan Pelatihan Optimal …… 33

Gambar 4.6 Gambar Tampilan Salah Satu Hasil Pengujian Data IHSG ………. 33

Daftar Tabel

Tabel 4.1 Tabel Pengujian 1 Neuron ……… 24

Tabel 4.2 Tabel Pengujian 2 Neuron ……… 24

Tabel 4.3 Tabel Pengujian Learning Rate ……… 25

Tabel 4.4 Tabel Pengujian Jumlah Neuron dan Learning Rate ………... 25

Tabel 4.5 Tabel Pengujian Metode Train ………. 26

Tabel 4.6 Tabel Pengujian Jumlah Delay ……… 27

Tabel 4.7 Tabel Pengujian Jumlah Data Train ………. 28

Tabel 4.8 Tabel Pengujian Sistem ……… 30

Tabel 4.9 Tabel Pengujian Menggunakan Data Pelatihan Lampau ………. 31

(17)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Dewasa ini minat terhadap investasi sangat tinggi. Pentingnya investasi

dan juga majunya teknologi informasi yang ada berdampak langsung terhadap

pengetahuan akan investasi di khalayak masyarakat.

Investasi sendiri ada banyak macamnya, salah satunya adalah investasi di

pasar modal. Beberapa tahun terakhir ini investasi pasar modal makin banyak

diminati, karena menawarkan keuntungan finansial yang relatif cukup tinggi

dalam waktu yang singkat. Selain itu dengan adanya teknologi informasi yang

berkembang pesat sekarang ini menjadikan investasi pasar modal sangat mudah

untuk dilakukan.

Seiring dengan perkembangan teknologi itulah masyarakat mulai mencari

cara yang dapat membantu mendapatkan keuntungan yang berlipat dari investasi

pasar modal secara tepat dan meminimalisir kerugian. Hal ini dikarenakan

sulitnya melakukan prediksi dengan perhitungan manual terhadap berbagai

macam saham sekaligus dalam rentang waktu yang singkat. Dari sini muncul

berbagai algoritma yang digunakan untuk menciptakan prediksi terhadap harga

saham sehingga dapat diketahui kapan saham akan bergerak naik dan saham akan

bergerak turun. Hal ini dikarenakan pergerakan naik atau turunnya harga saham

sangat penting untuk menentukan waktu membeli atau menjual saham untuk

(18)

Hingga saat ini algoritma yang banyak digunakan untuk melakukan

análisis terhadap pergerakan harga saham adalah algoritma dari Jaringan Syaraf

Tiruan. Selain algoritma tersebut juga digunakan algoritma K-Nearest Neighbor,

algoritma genetika, ataupun algoritma Naïve-Bayesian. Namun dari semua

algoritma itu hingga saat ini yang akurasinya paling tinggi adalah algoritma dari

Jaringan Syaraf Tiruan yaitu Propagasi Balik atau Backpropagation. Algoritma ini

digunakan karena dapat dengan efektif membuat prediksi terhadap grafik

pergerakan saham yang relatif cukup akurat. Penelitian terbaru mengenai

pergerakan harga saham dengan menggunakan algoritma Jaringan Syaraf Tiruan

menghasilkan jurnal yang berjudul “Stock Market Prediction Using Artificial

Neural Network” (Chauhan et.al, 2014).

Untuk meningkatkan akurasi dari algoritma Backpropagation ini dapat

dilakukan dengan memperbanyak jumlah layer serta neuron yang digunakan. Di

samping itu juga dapat ditambahkan satu algoritma lagi sebgagai algoritma

pendamping. Salah satunya adalah dengan logika kabur atau fuzzy-logic. Sehingga

algoritma yang digunakan nantinya adalah penggabungan dari algoritma Neural

Networks (Jaringan Syaraf Tiruan) dengan Fuzzy-Logic (Logika Kabur).

Diharapkan dengan algoritma ini dapat menghasilkan akurasi yang lebih baik dari

yang sudah dilakukan sebelumnya.

Oleh karena itu pada penelitian kali ini penulis akan membuat suatu

pengujian akurasi dari penggabungan algoritma Fuzzy Neural Network untuk

memprediksi pergerakan harga saham. Diharapkan hasil dari pengujian nanti

(19)

1.2 Rumusan Masalah

1. Bagaimana cara menggabungkan algoritma Jaringan Syaraf Tiruan dengan

Logika Kabur untuk melakukan prediksi harga saham ?

2. Bagaimana cara melakukan prediksi harga saham dengan menggunakan

Algoritma Fuzzy Neural Network ?

3. Bagaimana cara menguji akurasi Algoritma Fuzzy Neural Network dalam

memprediksi pergerakan harga saham?

1.3 Tujuan dan Manfaat Penulisan

Tujuan yang ingin dicapai dari penelitian ini adalah untuk mengetahui

akurasi dari algoritma Fuzzy Neural Network dalam melakukan prediksi harga

saham di Indonesia.

1.4 Batasan Masalah

Mengingat luasnya cakupan dari topik yang akan dibahas, maka penulis

memberi batasan masalah sebagai berikut :

1. Analisa yang dilakukan hanya terhadap Indeks Harga Saham Gabungan

Indonesia, Saham Bank BCA, Saham Gudang Garam, dan Saham Astra

Argo Lestari.

2. Data yang akan digunakan dalam penelitian adalah harga penutupan

saham tiap harinya.

3. Analisa yang dilakukan tidak memperhatikan faktor eksternal seperti

(20)

4. Data yang akan digunakan adalah data saham dari tahun 2011 hingga

2014.

5. Hasil yang akan dicari dan dibandingkan akurasinya adalah harga

penutupan saham tiap harinya.

1.5 Metodologi Penulisan

1. Studi Literatur dengan tujuan :

a. Mempelajari dan memahami saham.

b. Mempelajari dan memahami Algoritma Backpropagation Jaringan

Syaraf Tiruan.

c. Mempelajari dan memahami konsep Logika Kabur.

d. Mempelajari dan menggabungkan algoritma Jaringan Syaraf

Tiruan dengan Logika Kabur.

2. Pengumpulan data melalui website Yahoo Finance.

3. Pengujian algoritma dengan perhitungan manual terhadap saham.

4. Perancangan system perhitungan otomatis terhadap pergerakan harga

saham.

5. Implementasi algoritma ke dalam sistem perhitungan saham.

6. Membandingkan hasil perhitungan pergerakan harga saham di dalam

system dengan harga saham nyata.

(21)

1.6 Sistematika Penulisan

Dokumen tugas akhir ini terdiri dari 5 bab yaitu :

a. BAB I PENDAHULUAN

Pada bab ini membahas mengenai latar belakang dan gambaran umum

penelitian yang akan dilakukan, rumusan masalah, tujuan, batasan dalam

penelitian, dan metodologi yang digunakan dalam penelitian.

b. BAB II LANDASAN TEORI

Bab ini berisi dasar-dasar teori serta hasil penelitian terdahulu yang akan

digunakan dalam pembahasan tugas akhir ini.

c. BAB III METODOLOGI PENELTIAN

Bab ini membahas mengenai cara kerja algoritma yang digunakan dan

proses yang akan dibangun untuk melakukan perhitungan prediksi harga

saham.

d. BAB IV IMPLEMENTASI DAN ANALISIS HASIL

Bab ini berisi tentang implementasi algoritma dan analisa terhadap hasil

prediksi serta algoritma yang digunakan.

e. BAB V PENUTUP

Bab ini berisi kesimpulan dan saran untuk mengembangkan algoritma

(22)

BAB 2

LANDASAN TEORI

Pada bab ini akan berisikan dasar-dasar teori serta hasil penelitian

terdahulu yang akan digunakan dalam proses penyusunan dan pembahasan tugas

akhir. Sehingga bab ini akan berisikan beberapa pengertian dan penjelasan yang

berhubungan dengan saham, Jaringan Syaraf Tiruan, dan Logika Kabur.

2.1 Saham

Saham dapat didefinisikan sebagai tanda penyertaan atau pemilikan

seseorang atau badan dalam suatu perusahaan. Wujud saham adalah selembar

kertas yang menerangkan bahwa pemilik kertas tersebut adalah pemilik

perusahaan yang menerbitkan kertas tersebut (Wira, 2011).

2.2 Analisis Pergerakan Harga Saham

Dalam permainan saham biasa dikenal dengan adanya analisis pergerakan

harga saham. Ada 2 teknik analisis yang biasa dipakai trader untuk mengetahui

dan memprediksi pergerakan harga suatu instrumen finansial yaitu Analisis

Fundamental dan Analisis Teknikal (Wira, 2011).

2.2.1 Analisis Fundamental

Analisis fundamental memperhitungkan berbagai faktor, seperti kondisi

(23)

makro, dapat diketahui kondisi ekonomi negara tersebut, apakah masih sehat atau

tidak. Sedangkan dalam skala mikro, analisis fundamental digunakan untuk

mengetahui valuasi suatu instrumen finansial, berapa nominal harga yang layak

bagi suatu mata uang, saham, atau komoditas tertentu. Pada prinsipnya suatu

analisis fundamental digunakan untuk mengetahui apakah suatu harga terlalu

mahal atau terlalu murah (Wira, 2011).

2.2.2 Analisis Teknikal

Analisis teknikal adalah teknik yang menganalisa fluktuasi harga dalam

rentang waktu tertentu atau dalam hubungannya dengan faktor lain misal volume

transaksi. Karena itu analisis teknikal banyak menggunakan grafik. Dari

pergerakan tersebut akan terlihat pola tertentu yang dapat dipakai sebagai dasar

untuk melakukan pembelian atau penjualan. Pada dasarnya analisis teknikal

digunakan untuk menentukan apakah suatu harga sudah jenuh beli atau jenuh jual

(Wira, 2011).

2.3 Jaringan Syaraf Tiruan

Jaringan Syaraf Tiruan adalah system pemroses informasi yang memiliki

karakteristik mirip dengan jaringan syaraf biologi. Jaringan Syaraf Tiruan

dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi,

dengan asumsi menurut Jong (2009) bahwa :

 Pemrosesan informasi terjadi pada banyak elemen sederhana

(24)

 Sinyal dikirimkan di antara neuron-neuron melalui

penghubung-penghubung.

 Penghubung antar neuron memiliki bobot yang akan memperkuat

atau memperlemah sinyal.

 Untuk menentukan output, setiap neuron menggunakan fungsi

aktivasi (biasanya bukan fungsi linear) yang dikenakan pada

jumlahan input yang diterima. Besarnya output ini selanjutnya

dibandingkan dengan suatu batas ambang.

2.3.1 Arsitektur Jaringan

Beberapa arsitektur jaringan yang sering digunakan dalam Jaringan Syaraf

Tiruan menurut Jong (2009) antara lain :

a. Jaringan Layar Tunggal (Single Layer Network)

Dalam jaringan ini, sekumpulan input neuron dihubungkan

langsung dengan sekumpulan outputnya. Dalam beberapa model, hanya

ada sebuah unit neuron output.

(25)

Gambar di atas menunjukkan arsitektur jaringan dengan n unit

input(X) dan m unit output(Y).

Dalam jaringan ini semua unit input dihubungkan dengan semua

unit output, meskipun dengan bobot yang berbeda. Tidak ada unit input

yang dihubungkan dengan unit input lainnya begitu juga dengan unit

output.

Besaran w menyatakan bobot hubungan antara unit input dengan

unit output. Bobot-bobot ini saling independen. Selama proses pelatihan,

bobot-bobot tersebut akan dimodifikasi untuk meningkatkan keakuratan

hasil. Model semacam ini tepat digunakan untuk pengenalan pola karena

kesederhanaannya.

b. Jaringan Layar Jamak (Multi Layer Network)

Jaringan layar jamak merupakan perluasan dari layar tunggal.

Dalam jaringan ini, selain unit input dan output, ada unit lain yang biasa

disebut layar tersembunyi. Dimungkinkan pula ada beberapa layar

tersembunyi. Sama seperti unit input dan output, unit-unit dalam satu layar

tidak saling berhubungan.

(26)

Gambar di atas adalah jaringan dengan n buat unit input(X), sebuah

layar tersembunyi(Z) yang terdiri dari p buah unit, dan m buah unit

output(Y).

Jaringan layar jamak dapat menyelesaikan masalah yang lebih

kompleks dibandingkan dengan layar tunggal, meskipun kadangkala

proses pelatihan lebih kompleks dan lama.

c. Jaringan Reccurent

Model jaringan recurrent mirip dengan jaringan layar tunggal

ataupun ganda. Hanya saja, ada neuron output yang memberikan sinyal

pada unit input atau sering disebut dengan feedback loop.

2.3.2 Fungsi Aktivasi, Bias, dan Threshold

Dalam jaringan syaraf tiruan, fungsi aktivasi dipakai untuk menentukan

keluaran suatu neuron. Argumen fungsi aktivasi adalah net masukan (kombinasi

linear masukan dan bobotnya).

Beberapa fungsi aktivasi yang sering dipakai adalah sebagai berikut :

a. Fungsi Threshold (Batas Ambang)

f(x) = 1 jika x a dan f(x) = 0 jika x < a ( 2.1 )

Untuk beberapa kasus, fungsi threshold yang dibuat tidak berharga

0 atau 1, tapi berharga -1 atau 1 (sering disebut threshold bipolar).

Sehingga :

(27)

b. Fungsi Sigmoid

f(x) =

( 2.3 )

Fungsi sigmoid sering dipakai karena nilai fungsinya yang terletak

antara 0 dan 1 dan dapat diturunkan dengan mudah.

f`(x) = f(x) (1-f(x)) ( 2.4 )

c. Fungsi Identitas

f(x) = x ( 2.5 )

Fungsi identitas sering dipakai apabila kita menginginkan keluaran

jaringan berupa sembarang bilangan riil bukan hanya pada range [0,1] atau

[-1,1].

Kadang-kadang dalam jaringan ditambahkan pula sebuah unit masukan

yang nilainya selalu = 1. Unit yang sedemikian itu disebut bias. Bias dapat

dipandang sebagai sebuah unit input yang nilainya = 1. Bias berfungsi untuk

mengubah nilai threshold menjadi 0. Jika melibatkan bias maka keluaran unit

penjumlah adalah net = b + ∑

Fungsi aktivasi threshold menjadi :

f(net) = 1 jika net 0 dan f(net) = -1 jika net < 0

(28)

2.3.3 Backpropagation (Propagasi Balik)

Backpropagation merupakan suatu teknik pembelajaran atau pelatihan

jenis supervised learning yang paling banyak digunakan. Metode ini merupakan

salah satu metode yang sangat baik dalam menangani masalah pengenalan

pola-pola kompleks. Di dalam jaringan ini, setiap unit yang berada di lapisan input

berhubungan dengan setiap unit yang ada di lapisan tersembunyi. Sedangkan

setiap unit di lapisan tersembunyi berhubungan dengan setiap unit di lapisan

output. Arsitektur backpropagation termasuk dalam jaringan layar jamak.

Dalam pola pelatihannya, jaringan ini akan diberi inputan yang akan

diteruskan ke dalam layar tersembunyi dan menuju hingga output. Ketika hasil

keluaran ternyata tidak sesuai dengan harapan maka keluaran akan kembali

disebarkan mundur (backward) pada lapisan tersembunyi hingga menuju input.

Tahap selanjutnya adalah dengan melakukan perubahan bobot. Iterasi ini terus

dilakukan hingga ditemukan penyelesaian yang optimal (Jong, 2009).

(29)

Algoritma pelatihan jaringan backpropagation terdiri dari 3 tahapan utama

yaitu :

1. Tahap Propagasi Maju

2. Tahap Propagasi Mundur

3. Tahap Perubahan Bobot

Secara terperinci algoritma dari pelatihan jaringan backpropagation adalah

sebagai berikut :

0. Inisialisasi semua bobot dengan bilangan acak kecil

1. Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-9

2. Untuk setiap pasang data pelatihan, lakukan langkah 3-8

3. Tiap unit masukan menerima sinyal dan meneruskannya ke unit

tersembunyi di atasnya

4. Hitung semua keluaran di unit tersembunyi Z

Znet j = + ∑ ( 2.6 )

Zj = f(Z_net j) =

( 2.7 )

5. Hitung semua keluaran jaringan di unit Y

Ynet k = + ∑ ( 2.8 )

Yk = f(Y_net k) =

( 2.9 )

6. Hitung faktor error lapisan output ( ) unit keluaran berdasarkan

kesalahan di setiap unit keluaran Y

= ( - ) (1 - ) ( 2.10 )

merupakan unit kesalahan yang akan dipakai dalam perubahan

(30)

Hitung suku perubahan bobot Wkj (yang akan dipakai nanti

merubah bobot Wkj) dengan laju percepatan

= . . Zj ( 2.11 )

7. Hitung faktor error lapisan tersembunyi ( ) unit tersembunyi

berdasarkan kesalahan di setiap unit tersembunyi Z

= ∑ ( 2.12 )

Faktor unit tersembunyi :

j = _net j . Zj (1 – Zj) ( 2.13 )

Hitung suku perubahan bobot Vji (yang akan dipakai nanti

merubah bobot Vji)

= . . Xi ( 2.14 )

8. Hitung semua perubahan bobot

Perubahan bobot garis yang menuju ke unit keluaran :

Wkj (baru) = Wkj (lama) +

Perubahan bobot garis yang menuju ke unit tersembunyi :

Vji (baru) = Vji (lama) +

9. Uji kondisi berhenti (akhir iterasi)

2.3.4 Normalisasi

Normalisasi adalah suatu teknik yang dilakukan untuk mengorganisasi

sekelompok data ke dalam bentuk yang lebih stabil agar kelompok data tersebut

(31)

2.3.5 Denormalisasi

Denormalisasi adalah suatu teknik yang memiliki fungsi kebalikan dari

proses normalisasi. Sehingga nilai data yang sudah stabil atau normal kembali

dijabarkan untuk keperluan peningkatan performa dari suatu kelompok data.

2.4 Logika Kabur (Fuzzy Logic)

Logika kabur atau fuzzy logic adalah suatu cara yang tepat untuk

memetakan suatu ruang input ke dalam suatu ruang output. Titik awal dari konsep

modern mengenai ketidak pastian diperkenalkan oleh Lofti A Zadeh di mana dia

memperkenalkan teori yang memiliki banyak obyek dari himpunan fuzzy yang

memiliki batasan yang tidak presisi dan keanggotaan dalam himpunan fuzzy bukan

dalam bentuk logika benar atau salah tapi dinyatakan dalam derajat. Logika kabur

berkenaan dengan semantic dari suatu kejadian, fenomena atau pernyataan itu

sendiri (Susilo, 2006).

2.4.1 Konsep Logika Kabur

Logika kabur memberikan suatu pemecahan masalah terhadap persoalan

yang tidak pasti. Dikarenakan logika konvensional yang hanya berpendapat

bahwa logika benar atau logika salah tidak dapat mengatasi kejadian yang ada di

dunia nyata. Untuk mengatasi masalah tersebut maka dikembangkanlah ilmu

logika kabur. Sehingga bila dinilai dalam bentuk angka, posisi logika kabur ada di

antara 0 dan 1, di mana 0 adalah logika salah dan 1 adalah logika benar (Susilo,

(32)

2.4.2 Fuzzyfikasi

Fuzzyfikasi adalah proses yang dilakukan untuk memetakan variabel

nyata ke dalam variabel kabur.. Fuzzyfikasi digunakan ketika variabel yang akan

digunakan belum berada dalam nilai kabur. Pemetaan dilakukan dengan bantuan

model dari fungsi keanggotaan agar dapat diketahui besar masukan tersebut

(derajat keanggotaan) (Kusumadewi, 2010).

2.4.3 Fungsi Keanggotaan

Fungsi keanggotaan adalah suatu kurva yang menunjukkan pemetaan

titik-titik input data ke dalam nilai keanggotaannya. Salah satu cara yang dapat

digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui

pendekatan fungsi (Kusumadewi, 2010).

2.4.4 Reperesentasi Kurva-S

Kurva-S atau kurva sigmoid adalah kurva yang berhubungan dengan

kenaikan dan penurunan permukaan secara tak linear. Kurva-S untuk

pertumbuhan akan bergerak dari sisi paling kiri dengan nilai keanggotaan = 0 ke

sisi paling kanan dengan nilai keanggotaan = 1. Fungsi keanggotaannya akan

tertumpu pada 50% nilai keanggotaannya. Sedangkan kurva-S untuk penyusutan

akan bergerak dari sisi paling kiri dengan nilai keanggotaan = 1 ke sisi paling

(33)

Kurva-S didefinisikan dengan menggunakan 3 parameter, yaitu nilai

keanggotaan nol, nilai keanggotaan lengkap, dan titik infleksi yaitu titik yang

memiliki domain 50% benar (Kusumadewi, 2010).

Gambar 2.5 Gambar Kurva-S atau Kurva Sigmoid (Kusumadewi, 2010)

2.5 Jaringan Syaraf Tiruan dan Logika Kabur

Jaringan Syaraf Tiruan dapat dikembangkan melalui penggabungan

dengan ilmu logika kabur. Sehingga berubah menjadi Jaringan Syaraf Kabur /

Fuzzy Neural Network. Dalam implementasinya, yang digunakan adalah arsitektur

jaringan dari Backpropagation dengan perhitungan di dalamnya melibatkan

(34)

BAB 3

METODOLOGI PENELITIAN

Pada bab ini akan dibahas mengenai cara kerja algoritma yang digunakan

dan proses yang akan dibangun untuk melakukan perhitungan prediksi harga

saham.

3.1 Data

Data yang digunakan dalam penelitian ini adalah harga saham penutupan

harian dari tahun 2011 hingga tahun 2014 untuk saham-saham berikut :

1. Indeks Harga Saham Gabungan Indonesia

2. Saham Bank BCA

3. Saham Astra Argo Lestari Tbk

4. Saham Gudang Garam

Seluruh data saham yang digunakan diambil dari website

finance.yahoo.com kemudian diunduh dan disimpan ke dalam format Excel

dengan menghilangkan harga pembukaan, harga tertinggi, dan harga terendah tiap

harinya sehingga siap digunakan.

Data tersebut akan diambil dan akan dibagi ke dalam data yang digunakan

untuk pelatihan dan pengujian dalam jaringan syaraf tiruan. Untuk input dari data

pelatihan akan dilakukan fuzzifikasi harga saham ke dalam nilai kabur dan target

keluaran akan dinormalisasi. Pada saat melakukan pengujian data input juga akan

(35)

3.2. Metode Penelitian

3.2.1. Algoritma dan Langkah Penelitian

Pada penelitian ini algoritma yang akan digunakan untuk memprediksi

harga saham adalah algoritma jaringan syaraf tiruan dan logika kabur.

Algoritma jaringan syaraf tiruan yang akan digunakan adalah propagasi balik,

sedangkan logika kabur akan digunakan untuk mengubah harga saham

menjadi nilai kabur dengan menggunakan perhitungan kurva-S.

Langkah penelitian yang akan dilakukan untuk melakukan prediksi

terhadap harga saham adalah sebagai berikut :

1. Memilih Data Saham yang akan digunakan.

2. Menentukan tanggal yang harga sahamnya akan diprediksi melalui

pengujian sistem.

3. Menentukan data input pelatihan, target pelatihan, data input

pengujian.

4. Data input pelatihan diubah ke dalam nilai kabur dengan

perhitungan kurva-S

5. Target pelatihan diubah ke dalam nilai normalisasi.

6. Data pelatihan dimasukkan ke dalam arsitektur jaringan syaraf

tiruan propagasi balik untuk dilakukan pelatihan terhadap input

pelatihan dan target pelatihan.

7. Data input pengujian diubah ke dalam nilai kabur dengan

perhitungan kurva-S.

8. Data pengujian dimasukkan ke dalam arsitektur jaringan syaraf

(36)

9. Hasil output dari pengujian akan didapat dan nilai didenormalisasi

sehingga akan didapat nilai hasil prediksi harga saham pada tanggal

yang telah ditentukan di awal.

3.2.2. Arsitektur Jaringan

Berikut ini adalah arsitektur jaringan awal yang akan digunakan untuk

melakukan pengujian terhadap system prediksi harga saham yang dibangun :

Gambar 3.1 Arsitektur Jaringan yang Dibangun

Arsitektur jaringan awal yang akan digunakan dimulai dengan adanya

input 50 data yang akan dimasukkan ke dalam proses fuzzyfikasi dengan

menggunakan kurva-S untuk mendapatkan nilai kabur. Nilai kabur yang 50 Data Input

50 Data Nilai Kabur 50 Neuron

Fuzzyfikasi

Kurva-S

(37)

dihasilkan akan dimasukkan ke dalam tahap pelatihan dengan jumlah neuron

50 dan fungsi transfer logsig yang akan menghasilkan 1 nilai output.

3.3. Pengujian Sistem

Dalam penelitian ini dilakukan evaluasi terhadap hasil pengujian dengan

cara membandingkan nilai output hasil dari pengujian di dalam sistem dengan

nilai nyata harga saham yang sudah ada. Sehingga sistem juga akan dapat

membaca nilai nyata harga saham dari tanggal yang sudah ditentukan dan

menghitung selisih nilai dengan output hasil pengujian. Dari selisih nilai tersebut

akan didapat persentase akurasi dari sistem yang ada.

3.4. Diagram Blok

Gambar 3.2 Diagram Proses

Pada proses yang akan dilakukan pada pengujian data yang diinput akan

diubah ke dalam bentuk kabur dengan melalui proses fuzzyfikasi. Nilai kabur

yang didapat akan dimasukkan ke dalam proses backpropagation untuk

mendapatkan nilai output yang tentunya masih dalam bentuk kabur. Output kabur

INPUT DATA FUZZYFIKASI BACKPROPAGATION

(38)

yang dihasilkan akan diubah ke dalam nilai normal melalui proses denormalisasi

(39)

BAB 4

IMPLEMENTASI DAN ANALISIS HASIL

Pada bab ini berisikan tentang implementasi dari algoritma yang sudah

digunakan serta analisa terhadap hasil prediksi keluaran sistem.

4.1 Implementasi Sistem

Gambar 4.1 Tampilan Sistem

4.2 Pengujian

Pada saat melakukan implementasi sistem dilakukan pula beberapa kali

pengujian untuk mendapatkan hasil yang paling optimal dimulai dari menguji dan

merubah jaringan, delay data, hingga jumlah data train. Semua ini dilakukan

(40)

4.2.1 Optimalisasi Jaringan

Pada proses optimalisasi jaringan ini akan digunakan data

pelatihan sebanyak 900 data dengan delay 50 data dan total epoch

1000 kali. Berikut hasil dari proses optimalisasi jaringan yang

dilakukan :

Hidden Layer = 1 ; Fungsi Transfer = Logsig

Metode Train = traingdm ; Learning Rate = 0,1

Tabel 4.1 Tabel Pengujian 1 Neuron

Kombinasi Jumlah Neuron Rataan Akurasi

1 50 85,4 %

2 100 83,8 %

Hidden Layer = 2

Fungsi Transfer Hidden Layer 1 = Tansig

Fungsi Transfer Hidden Layer 2 = Logsig

Metode Train = traingd ; Learning Rate = 0,1

Tabel 4.2 Tabel Pengujian 2 Neuron

(41)

Hidden Layer = 2

Neuron Hidden Layer 1 = 50 ; Fungsi Transfer = Logsig

Neuron Hidden Layer 2 = 50 ; Fungsi Transfer = Logsig

Metode Train = traingd

Tabel 4.3 Tabel Pengujian Learning Rate

Kombinasi Learning Rate Rataan Akurasi

5 0,1 86,3 %

6 0,5 76,8 %

7 0,05 86,3 %

8 0,01 87, 4 %

Hidden Layer = 2

Fungsi Transfer Hidden Layer 1 = Logsig

Fungsi Transfer Hidden Layer 2 = Logsig

Metode Train = traincgf

Tabel 4.4 Tabel Pengujian Jumlah Neuron dan Learning Rate

Kombinasi

(42)

Neuron Hidden Layer 2 = 100 ; Fungsi Transfer = Logsig

Learning Rate = 0,01

Tabel 4.5 Tabel Pengujian Metode Train

Kombinasi Metode Train Rataan Akurasi 12 trainscg 86,9 %

13 traincgb X

14 traingdm X

15 trainoss X

16 traincgp X

Sehingga dari proses pengujian yang dilakukan didapatkan

hasil dalam bentuk grafik sebagai berikut :

Gambar 4.2 Grafik Akurasi Pengujian Jaringan

4.2.2 Optimalisasi Delay pada Data

Pada proses ini akan dilakukan pengujian terhadap beberapa delay

untuk menemukan delay yang paling optimal untuk system yang akan

digunakan. Hasil yang didapat adalah sebagai berikut :

(43)

Hidden Layer = 2

Neuron Hidden Layer 1 = 100 ; Fungsi Transfer = Logsig

Neuron Hidden Layer 2 = 100 ; Fungsi Transfer 2 = Logsig

Metode Training = traingd ; Epoch = 1000 ; Learning Rate = 0,01

Tabel 4.6 Tabel Pengujian Jumlah Delay

Kombinasi Delay Rataan Akurasi

1 10 86,2 %

Dari proses pengujian untuk delay yang dilakukan didapatkan hasil

dalam bentuk grafik sebagai berikut :

Gambar 4.3 Grafik Akurasi Pengujian Delay

0%

Delay 10 Delay 20 Delay 30 Delay 40 Delay 50 Delay 60 Delay 100

Akurasi

(44)

4.2.3 Optimalisasi Penggunaan Data Training

Pada proses ini dilakukan pengujian terhadap beberapa

penggunaan data pelatihan atau training untuk menemukan jumlah data

pelatihan atau training yang paling optimal untuk sistem yang akan

digunakan. Hasil yang didapat adalah sebagai berikut :

Hidden Layer = 2

Neuron Hidden Layer 1 = 100 ; Fungsi Transfer = Logsig

Neuron Hidden Layer 2 = 100 ; Fungsi Transfer 2 = Logsig

Metode Training = traingd

Learning Rate = 0,01 ; Epoch = 1000

Delay = 50

Tabel 4.7 Tabel Pengujian Jumlah Data Train

Kombinasi Jumlah Data Train Rataan Akurasi

1 900 93,4 %

2 600 94,3 %

3 500 98,3 %

(45)

Dari proses pengujian untuk menentukan jumlah data pelatihan

atau training yang dilakukan didapatkan hasil dalam bentuk grafik sebagai

berikut :

Gambar 4.4 Grafik Pengujian Jumlah Data Train

4.2.4 Pengujian Terhadap Sistem

Dalam proses pengujian ini dilakukan pengujian terhadap sistem

yang bertujuan untuk mengetahui kapabilitas sistem yang dibangun

terhadap beragam data. Pada pengujian ini diambil 500 data untuk proses

pelatihan dan 50 data untuk pengujian. Dalam proses ini akan dilakukan 11

kali pengujian dengan data tes yang berbeda-beda. Hasil dari pengujian

sistem adalah sebagai berikut :

90% 92% 94% 96% 98% 100%

Data Train 900 Data Train 600 Data Train 500 Data Train 400

Akurasi

(46)

Tabel 4.8 Tabel Pengujian Sistem

Percobaan Data Pengujian Rataan Akurasi 1 1 hingga 50 98,3 %

2 51 hingga 100 95,4 %

3 101 hingga 150 97,3 %

4 151 hingga 200 97,9 %

5 201 hingga 250 96,6 %

6 251 hingga 300 97,1 %

7 301 hingga 350 96,9 %

8 351 hingga 400 96,7 %

9 401 hingga 450 97,2 %

10 451 hingga 500 95,7 %

11 501 hingga 550 98,5 %

4.2.5 Pengujian Menggunakan Data Pelatihan Lampau

Dalam proses pengujian ini dilakukan pengujian terhadap sistem

dengan menggunakan data pelatihan dan data pengujian yang tidak berurut

serta data pelatihan yang akan digunakan berselisih 1 tahun dengan data

pengujian yang digunakan. Tujuan dari pengujian ini adalah untuk

mengetahui kemampuan sistem untuk melakukan prediksi dengan

menggunakan data pelatihan yang tidak update. Pada pengujian ini diambil

500 data dari awal tahun 2011 untuk proses pelatihan dan 50 data untuk

(47)

Tabel 4.9 Tabel Pengujian Menggunakan Data Pelatihan Lampau

Percobaan Akurasi (%)

1 83,2

2 84,9

3 79,7

4 88,4

5 81,6

Rataan Akurasi = 83,6 %

4.2.6 Pengujian Menggunakan Fungsi Keanggotaan Liner

Dalam proses pengujian ini dilakukan pengujian dengan

menggunakan fungsi keanggotaan linear. Tujuan dari pengujian ini adalah

untuk membandingkan hasil yang didapat sistem dengan proses

fuzzyfikasi menggunakan fungsi keanggotaan linear dan fungsi

keanggotaan kurva-S. Sehingga akan didapat kesimpulan mengenai rumus

fuzzyfikasi yang paling sesuai untuk data yang digunakan. Hasil dari

pengujian ini dan perbandingan dengan hasil menggunakan fungsi

(48)

Tabel 4.10 Tabel Perbandingan Pengujian Menggunakan

Fungsi Keanggotaan Linear dan Fungsi Keanggotaan Kurva-S

Percobaan

Setelah semua pengujian selesai dilakukan, didapat kombinasi dan

spesifikasi terbaik untuk jaringan yang dibangun yaitu :

Hidden Layer = 2 ; Output = 1

Neuron Hidden Layer 1 = 100 ; Neuron Hidden Layer 2 = 100

Fungsi Transfer Hidden Layer 1 = Logsig

Fungsi Transfer Hidden Layer 2 = Logsig

Fungsi Transfer Output = Purelin

Metode Training = traincgf

Data Train = 500 ; Delay = 50

(49)

Gambar 4.5 Gambar Tampilan Arsitektur Jaringan dan Pelatihan Optimal

Hasil yang didapat dari pengujian sangat baik dengan akurasi rata-rata

mencapai 98%. Hasil ini didapat dengan jumlah data pelatihan yang tidak banyak

yaitu hanya 500 data saja. Hal ini dikarenakan data saham pada rentang 500 hari

adalah yang paling optimal. Sehingga data saham tidak terlalu lama yang dapat

mengakibatkan perbedaan / margin yang terlalu besar antara data tertinggi dan

terendah yang akan berdampak pada buruknya hasil fuzzyfikasi. Dan juga data

saham tidak terlalu pendek sehingga Jaringan Syaraf Tiruan masih dapat

membaca pola dengan baik.

(50)

Untuk data pengujian didapat hasil optimal dengan 50 delay, sehingga data

pengujian juga menjadi 50 saja. Hal ini disebabkan oleh pergerakan saham yang

cenderung lebih fluktuatif apabila lebih dari 50 data. Bisa dikatakan 50 data

adalah sekitar 2 bulan pergerakan saham. Sehingga melalui 2 bulan saja sistem

sudah dapat membaca pola dan menyesuaikan dengan data pelatihan. Apabila data

yang digunakan kurang dari 50 data atau kurang dari 2 bulan pergerakan saham

terbukti sistem belum bisa membaca secara maksimal, sedangkan apabila lebih

dari 50 data atau 2 bulan maka pola pergerakan saham sudah cenderung berubah

lebih fluktuatif yang mengakibatkan sistem juga mengalami penurunan

kemampuan untuk membaca pola yang ada.

Saat melakukan pengujian terhadap sistem terdapat hal yang menarik.

Ketika data pengujian ada pada awal dan akhir seluruh data maka sistem bekerja

dengan sangat baik dengan memperoleh akurasi yang tinggi. Sedangkan apabila

data pengujian ada tepat sebelum data awal dan data akhir didapat akurasi yang

paling rendah di antara pengujian lainnya. Hal ini bisa jadi disebabkan karena data

pelatihan yang terpotong di awal dan akhir data sehingga tidak terbaca dan tidak

membentuk pola dengan baik. Sebaliknya ketika pengujian ada di awal dan akhir

rangkaian data maka sistem dapat membaca dengan baik, karena pergerakan data

saham yang cenderung bergerak kontinu sehingga ketika data pelatihan sama

sekali tidak mengalami perpotongan maka hasil akan menjadi optimal. Hal ini

dipertegas dengan pengujian yang dilakukan menggunakan data pelatihan lampau.

Hasil dari pengujian dengan data pelatihan lampau menunjukkan kelemahan

(51)

untuk pelatihan adalah data yang sudah terlalu lampau dikarenakan pergerakan

saham sudah tidak sama lagi dengan keadaan terbaru.

Terakhir ketika dilakukan pengujian dengan menggunakan proses

fuzzyfikasi yang berbeda yaitu dengan fungsi keanggotaan linear didapat hasil

yang cukup baik namun tetap tidak lebih baik dibandingkan dengan fungsi

keanggotaan kurva-S. Hal ini dikarenakan pergerakan saham yang dinamis dan

sangat berbeda dengan ciri kurva linear yang bergerak cenderung stabil

(52)

BAB 5

PENUTUP

5.1 Kesimpulan

Berdasarkan hasil análisis, pengujian, dan implementasi sistem didapatkan

kesimpulan sebagai berikut :

a. Sistem Prediksi Harga Saham Menggunakan Algoritma Fuzzy Neural

Network ini dapat memprediksi harga saham dengan cukup akurat

dengan persentase akurasi mencapai 98%.

b. Kombinasi Backpropagation Jaringan Syaraf Tiruan dengan Logika

Kabur menggunakan fungsi keanggotaan kurva-S dapat menghasilkan

hasil yang memuaskan.

c. Arsitektur optimal untuk sistem yang didapat adalah dengan spesifikasi

jaringan 2 layer tersembunyi masing-masing memiliki 100 neuron

dengan fungsi transfer masing-masing adalah logsig. Metode training

yang digunakan adalah traincgf dengan jumlah epoch 1000 dan learning

rate 0,01. Jumlah data pelatihan yang digunakan adalah 500 data dengan

delay 50 data.

d. Kekurangan sistem ini adalah selisih harga saham hasil prediksi dengan

harga real masih cukup besar apabila dilihat secara nilai real. Hal ini

dikarenakan harga saham yang sudah cukup tinggi sehingga selisih 1%

saja bisa menghasilkan selisih harga di atas 50 poin.

e. Sistem ini lebih bekerja baik digunakan untuk memprediksi pergerakan

saham yaitu naik atau turun dibanding dengan memprediksi harga real

(53)

5.2 Saran

Saran yang penulis dapat berikan untuk mengembangkan sistem ini adalah :

a. Pengembangan sistem dapat dilakukan dengan mengubah proses

fuzzyfikasi dengan melakukan fuzzyfikasi di tiap perpotongan delay

bukan secara keseluruhan data pelatihan seperti yang penulis lakukan.

b. Pengembangan dari sisi tampilan juga dapat dilakukan untuk

memudahkan pengguna memilih langsung jenis saham yang ingin

diprediksi.

c. Algoritma Logika Kabur bisa digunakan lebih banyak sehingga

menghilangkan proses normalisasi dan denormalisasi lalu digantikan

(54)

DAFTAR PUSTAKA

Brockwell, P. J dan Davis, R. A. (1991), Time Series: Theory and Methods.

Second Editon, New York: Springer.

Chauhan,B., Bidave,U., Gangathade,A., Kale,S. Januari 2014, “Stock Market

Prediction Using Artificial Neural Network”. IJCSI International Journal

of Computer Science Issues. Volume 5, No 1 , 17 Oktober 2014.

Galavi,H. dan Shui,L.T. Mei 2012, “Neuro-Fuzzy Modelling and Forecasting in

Water Resources”. Scientific Research and Essays. Volume 7, No 24, 25

November 2014.

Gately, Edward J. (1996), “Neural Networks for Financial Forecasting”. New

York : John Wiley & Sons.

Granger, C. e Morgenstern, O. (1970), Predictability of Stock Market Prices.

Massachusetts: Health Lexington.

Hagan,M.T., Demuth,H.B., Beale,M.H. (1996). Neural Network Design. Boston:

PWS Publishing Company.

Hemanth,K., Prashanth,K., Nirmala,T., Patil,S.B. Juli 2012, “Neuro Fuzzy based

Techniques for Predicting Stock Trends”. IJCSI International Journal of

Computer Science Issues. Volume 9, No 3, 11 April 2014.

Hendarto, Kusumarsono. (2005). Belajar Trading. Yogyakarta: Andi.

Jong, J.S. (2009). Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan

Matlab. Yogyakarta: Andi.

Kusumadewi, S. dan Hartati, S. (2010). Neuro-Fuzzy Integrasi Sistem Fuzzy dan

(55)

Naba, Agus Eng. (2009). Belajar Cepat Fuzzy Logic Menggunakan Matlab.

Yogyakarta: Andi.

Susilo, Frans. (2006). Himpunan dan Logika Kabur Serta Aplikasinya.

Yogyakarta: Graha Ilmu.

Setiawan, Wahyudi, November 2008, “Prediksi Harga Saham Menggunakan

Jaringan Syaraf Tiruan Multilayer Feedforward Network Dengan

Algoritma Backpropagation”. Konferensi Nasional Sistem dan Informatika

2008, 18 November 2014.

Wira, Desmond. (2011). Analisis Teknikal Untuk Profit Maksimal. Jakarta:

(56)

LAMPIRAN

1. Kode Program Kelas GUI

function varargout = NeuroFuzzyGUI(varargin)

% NEUROFUZZYGUI MATLAB code for NeuroFuzzyGUI.fig

% NEUROFUZZYGUI, by itself, creates a new NEUROFUZZYGUI or

raises the existing

% NEUROFUZZYGUI('CALLBACK',hObject,eventData,handles,...)

calls the local

% function named CALLBACK in NEUROFUZZYGUI.M with the given

input arguments.

%

% NEUROFUZZYGUI('Property','Value',...) creates a new

NEUROFUZZYGUI or raises the

% existing singleton*. Starting from the left, property

value pairs are

% applied to the GUI before NeuroFuzzyGUI_OpeningFcn gets

called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to NeuroFuzzyGUI_OpeningFcn

via varargin.

(57)

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help NeuroFuzzyGUI

% Last Modified by GUIDE v2.5 23-Feb-2015 20:04:29

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

(58)

% --- Executes just before NeuroFuzzyGUI is made visible.

function NeuroFuzzyGUI_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to NeuroFuzzyGUI (see

VARARGIN)

% Choose default command line output for NeuroFuzzyGUI

handles.output = hObject;

clc;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes NeuroFuzzyGUI wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = NeuroFuzzyGUI_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of

(59)

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on selection change in jenisSaham.

function jenisSaham_Callback(hObject, eventdata, handles)

% hObject handle to jenisSaham (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns

jenisSaham contents as cell array

% contents{get(hObject,'Value')} returns selected item from

jenisSaham

% --- Executes during object creation, after setting all

properties.

function jenisSaham_CreateFcn(hObject, eventdata, handles)

% hObject handle to jenisSaham (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: popupmenu controls usually have a white background on

Windows.

(60)

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

function tanggalSaham_Callback(hObject, eventdata, handles)

% hObject handle to tanggalSaham (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of tanggalSaham as

text

% str2double(get(hObject,'String')) returns contents of

tanggalSaham as a double

% --- Executes during object creation, after setting all

properties.

function tanggalSaham_CreateFcn(hObject, eventdata, handles)

% hObject handle to tanggalSaham (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

(61)

set(hObject,'BackgroundColor','white');

end

% --- Executes on selection change in popupmenu2.

function popupmenu2_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu2 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns

popupmenu2 contents as cell array

% contents{get(hObject,'Value')} returns selected item from

popupmenu2

% --- Executes during object creation, after setting all

properties.

function popupmenu2_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu2 (see GCBO)

% eventdata reserved - to be defined in a future version of

MATLAB

% handles empty - handles not created until after all

CreateFcns called

% Hint: popupmenu controls usually have a white background on

Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'),

(62)

set(hObject,'BackgroundColor','white');

end

% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

[hargaCloseIHSG, dataTanggalIHSG] = xlsread('data\IHSG.xlsx');

tanggal=get(handles.tanggalSaham,'String');

index = indexTanggal(tanggal,dataTanggalIHSG);

hargaReal = hargaCloseIHSG(index);

%Train 500 Data | Perpotongan 50

indexAwalTrain550 = index - 550;

n=indexAwalTrain550;

for i = 1 : 550-50

for j = 1 : 50

data_train550(i,j) = hargaCloseIHSG(indexAwalTrain550);

indexAwalTrain550 = indexAwalTrain550+1;

end

target_train550(i) = hargaCloseIHSG(indexAwalTrain550);

indexAwalTrain550 = n+1;

n = n+1;

end

%_________________________________________________________________

______________________________________________________

%Fungsi untuk fuzzyfikasi data train sebelum ke data_train

data_train_min = min(data_train550');

data_train_max = max(data_train550');

(63)

titik_rendah = data_train_min + (selisih_nilai/4);

titik_tinggi = data_train_max - (selisih_nilai/4);

titik_tengah = (titik_tinggi + titik_rendah) / 2;

data_train_awal = data_train550';

assignin('base','data_train_min',data_train_min);

assignin('base','data_train_max',data_train_max);

assignin('base','selisih_nilai_train',selisih_nilai);

assignin('base','titik_rendah_train',titik_rendah);

assignin('base','titik_tinggi_train',titik_tinggi);

for x = 1 : 500

for y = 1 : 50

nilai_rendah(x,y) = titik_rendah(x);

end

end

nilai_rendah = nilai_rendah';

for x = 1 : 500

for y = 1 : 50

nilai_tinggi(x,y) = titik_tinggi(x);

end

end

nilai_tinggi = nilai_tinggi';

(64)

for x = 1 : 500

for y = 1 : 50

nilai_tengah(x,y) = titik_tengah(x);

(65)

end

end

assignin('base','data_train',data_train);

%_________________________________________________________________

_______________________________________________________________

%Fungsi untuk normalisasi target train sebelum ke target_train

[target_train_tes,settings] = mapminmax(target_train550);

assignin('base','target_train',target_train_tes);

%_________________________________________________________________

_______________________________________________________________

indexAwalTest550 = index - 50;

indexAkhirTest550 = index - 1;

data_test550 = hargaCloseIHSG(indexAwalTest550:indexAkhirTest550);

%_________________________________________________________________

________________________________________________________________

%Fungsi untuk fuzzyfikasi data test sebelum ke data_test

data_tes_min = min(data_test550');

data_tes_max = max(data_test550');

selisih_nilai_tes = data_tes_max - data_tes_min;

titik_rendah_tes = data_tes_min + (selisih_nilai_tes/4);

titik_tinggi_tes = data_tes_max - (selisih_nilai_tes/4);

titik_tengah_tes = (titik_rendah_tes + titik_tinggi_tes) / 2;

assignin('base','data_tes_min',data_tes_min);

assignin('base','data_tes_max',data_tes_max);

assignin('base','selisih_nilai_tes',selisih_nilai_tes);

(66)

assignin('base','titik_tinggi_tes',titik_tinggi_tes);

for tes = 1 : 50

nilai_rendah_tes(tes) = titik_rendah_tes;

nilai_tinggi_tes(tes) = titik_tinggi_tes;

nilai_tengah_tes(tes) = titik_tengah_tes;

(67)

data_tes(a) =

1-(2*(((nilai_tinggi_tes(a)-data_test550(a))/(nilai_tinggi_tes(a)-nilai_rendah_tes(a)))^2));

else

data_tes(a) = 0.5;

end

end

data_tes = data_tes';

assignin('base','data_tes',data_tes);

%_________________________________________________________________

_______________________________________________________

%JST550

fungsi = Neurofuzzy;

[test] =

fungsi.backpropagation(data_train,target_train_tes,data_tes);

assignin('base','test',test);

%Fungsi untuk Denormalisasi Hasil Test

nilai_hasil_test = mapminmax.reverse(test,settings);

set(handles.tabelPrediksi,'Data',nilai_hasil_test);

set(handles.tabelPrediksi,'ColumnName','500 Data Train');

set(handles.tabelPrediksi,'RowName','IHSG');

%_________________________________________________________________

(68)

%Akurasi

target_hasil_tes = hargaCloseIHSG(index);

assignin('base','target_hasil_tes',target_hasil_tes);

[akurasi] = fungsi.akurasi(target_hasil_tes,nilai_hasil_test);

assignin('base','akurasi',akurasi);

set(handles.tabelError,'Data',akurasi);

set(handles.tabelError,'ColumnName','Akurasi(%)');

set(handles.tabelError,'RowName','IHSG');

function [index] = indexTanggal(tanggal,dataTanggal)

jumlah = size(dataTanggal,1);

for i=1:jumlah

if strcmp(dataTanggal(i,1),tanggal)

index = i;

end

(69)

2. Kode Program Kelas Neurofuzzy

function fungsi = Neurofuzzy

%UNTITLED3 Summary of this function goes here

% Detailed explanation goes here

fungsi.backpropagation=@backpropagation;

fungsi.akurasi=@akurasi;

end

function [ test ] = backpropagation(

data_train,target_train,data_test)

%UNTITLED Summary of this function goes here

% Detailed explanation goes here

net=newff(minmax(data_train),[100,100,1],{'logsig','logsig','purel

function [ akurasi ] = akurasi( output_test_target,output_test )

%UNTITLED2 Summary of this function goes here

% Detailed explanation goes here

error = abs(output_test_target-output_test);

akurasi = (1-(error/output_test_target))*100;

%disp(akurasi);

(70)

3. Rincian Pengujian Optimalisasi Jaringan

a. Spesifikasi Sistem Kombinasi 1 :

Hidden Layer = 1 ; Neuron = 50 ; Output = 1

Fungsi Transfer Neuron = Logsig

Fungsi Transfer Output = Purelin

Metode Training = traingd

Data Train = 900 ; Delay = 50

Epoch = 1000 ; Learning Rate = 0,1

Hasil :

Percobaan Akurasi (%)

1 85,6

2 86,1

3 84,5

4 85,2

5 85,5

Rata-Rata Akurasi = 85,4%

b. Spesifikasi Sistem Kombinasi 2 :

Hidden Layer = 1 ; Neuron = 100 ; Output = 1

Fungsi Transfer Neuron = Logsig

Fungsi Transfer Output = Purelin

Metode Training = traingd

Data Train = 900 ; Delay = 50

(71)

Hasil :

Percobaan Akurasi (%)

1 83,9

2 83,8

3 83,8

4 84,1

5 83,6

Rata-Rata Akurasi = 83,8%

c. Spesifikasi Sistem Kombinasi 3 :

Hidden Layer = 2 ; Output = 1

Neuron Hidden Layer 1 = 50 ; Neuron Hidden Layer 2 = 50

Fungsi Transfer Hidden Layer 1 = Tansig

Fungsi Transfer Hidden Layer 2 = Logsig

Fungsi Transfer Output = Purelin

Metode Training = traingd

Data Train = 900 ; Delay = 50

Epoch = 1000 ; Learning Rate = 0,1

Hasil :

Percobaan Akurasi (%)

1 86,3

2 84,3

3 84,4

(72)

5 87,2

Rata-Rata Akurasi = 85,9%

d. Spesifikasi Sistem Kombinasi 4 :

Hidden Layer = 2 ; Output = 1

Neuron Hidden Layer 1 = 100 ; Neuron Hidden Layer 2 = 100

Fungsi Transfer Hidden Layer 1 = Tansig

Fungsi Transfer Hidden Layer 2 = Logsig

Fungsi Transfer Output = Purelin

Metode Training = traingd

Data Train = 900 ; Delay = 50

Epoch = 1000 ; Learning Rate = 0,1

Hasil :

Percobaan Akurasi (%)

1 84

2 84

3 85,6

4 84

5 84

Rata-Rata Akurasi = 84,3%

e. Spesifikasi Sistem Kombinasi 5 :

Hidden Layer = 2 ; Output = 1

Gambar

Gambar 2.1 Jaringan Layar Tunggal …………………………………………….. 8
Gambar 2.1 Jaringan Layar Tunggal (Jong, 2009)
Gambar 2.2 Jaringan Layar Jamak (Jong, 2009)
Gambar di atas adalah jaringan dengan n buat unit input(X), sebuah
+7

Referensi

Dokumen terkait

Tidak terdapat perbedaan yang signifikan antara model pembelajaran Discovery Learning dan Reception Learning terhadap hasil belajar peserta didik kelas X SMA

Tujuan penelitian ini adalah mengkaji tentang Manajemen Peningkatan Mutu Sumber Daya Manusia Di Pondok Pesantren Shalatiyah Bitin. Fokus penelitian ini adalah 1)

Tabel 5 juga menunjukkan bahwa proporsi pengeluaran rumah tangga untuk bahan pangan selama periode 2004-2009 lebih besar dari 60 persen interpretasinya bah- wa akses masyarakat

1) Adanya survey tracking terhadap pembuatan peta kota di wilayah kota Manado yaitu agar dapat menentukan setiap titik-titik koordinat di wilayah tersebut. Untuk mempermudah

sebagaimana firman Allah SWT di dalam Al-Qur’an Surah Ar-Rad Ayat 11 dimana ayat tersebut dengan jelas mengisyaratkan kepada manusia agar berusaha sebaik mungkin

Sedangkan untuk penelitian perushaan yang melakukan merger bila dibandingkan secara relatif dengan perushaan yang tidak melakukan merger adalah untuk variabel

Sedangkan proses pencocokan menggunakan metode backpropagation, koefisien yang didapatkan dari hasil ekstraksi ciri pada data uji, akan diproses dengan menggunakan