## ANALISIS DAN IMPLEMENTASI MODEL  PERAMALAN BERBASIS ALGORITMA MOVING AVARAGE UNTUK NILAI TUKAR RUPIAH TERHADAP DOLAR
First Ryan
Fakultas Ilmu Komputer, Program Studi Teknik Informatika Universitas Dian Nuswantoro Semarang Email: firstryan@gmail.com
Wijanarto Fakultas Ilmu Komputer, Program Studi Teknik Informatika Universitas Dian Nuswantoro Semarang Email: wijanarto.udinus@gmail.com

## ABSTRAK
Salah  satu  faktor  yang  mempengaruhi  kuatnya  ekonomi  suatu  negara  adalah  nilai  tukar  mata  uang (kurs).  Pada  beberapa  kasus  yang  terjadi  di  negara  maju  seperti  Eropa  atau  Amerika,  nilai  tukar  mata uang  merupakan  bagian  yang  sangat  vital,  hingga  berpengaruh  menghambat  perdagangan  internasional. Tidak  terkecuali  di  Indonesia,  yang  menganut  sistem  pasar  penuh/bebas  ( free  floating  system )  dimana nilai  tukar  rupiah  terhadap  mata  uang  asing  khususnya  dolar  (USD)  ditentukan  oleh  pasar  mekanisme global. Kebijakan pemerintah dalam menguatkan nilai tukar rupiah perlu dilakukan mengingat dalam 10 tahun terakhir  mengalami kemunduran dari titik  9.087 di tahun 2010  menuju titik 11.900 di awal  tahun 2015,  sehingga  kedepan  perlu  dilakukan  perencanaan  fiskal  yang  fokus,  teliti  dan  tepat.  Paper  ini berusaha mengimplementasikan model regresi linier berbasis algoritma moving average yang didasarkan pada  variasi  musiman  ( seasonal  movement )  yang  didekomposisikan  untuk  nilai  tukar  rupiah  terhadap dolar  dalam  bentuk  aplikasi.  Analisis  dan  visualisasi  model  dilakukan  dengan  bahasa  pemrograman  R, sementara aplikasi dibangun berbasis web dengan php. Data historis diperoleh dari situs Bank Indonesia dalam  kurun  waktu  2011  -  2017.  Berdasarkan  analisa  dan  hasil  penelitian  terhadap  model  yang diimplementasikan,  didapatkan  pengukuran  tingkat  akurasi  dengan  RMSE,  MAE  dan  MAPE  diperoleh masing-masing  sebesar  114.0173,  57.69148  dan  0.64766,  dari  ketiga  hasil  evaluasi  menunjukan  bahwa mempunyai sedikit selisih antara data asli dengan hasil peramalannya. Sementara aplikasi dapat berjalan sempurna dan menghasilkan komputasi peramalan yang sesuai dengan model yang dipilih.
Kata kunci : analisis, peramalan, model, moving average.

## ABSTRACT
One  of  the factors  affecting  the  strength  of  the  country's  economy  is  the  exchange  rate  (exchange rate). In some cases in developed countries like Europe or the United States, currency exchange rates are a vital  part of the  world,  which in  turn has an effect  on hampering  international  trade. No exception in Indonesia,  which  embraces  a  free  /  floating  system  where  the  rupiah  exchange  rate  against  foreign currencies  especially  dollars  (USD)  is  determined  by  global  market  mechanism.  Government  policy  in strengthening rupiah  exchange rate needs to  be done considering  that in  the last  10 years decline  from point 9.087 in 2010 to the point 11,900 at the beginning of 2015, so the future needs to be fiscal planning that  is  focused,  thorough  and  accurate.  This  paper  attempts  to  implement  a  linear  regression-based regression model based on the seasonal movement decomposed for the rupiah exchange rate against the dollar in the form of an application. Analysis and visualiasi model is done with R programming language, while  the  application  built  web-based  with  php.  Historical  data  was  obtained  from  Bank  Indonesia website  during  2011  -  2017.  Based  on  the  analysis  and  the  results  of  the  research  on  the  model implemented, the results obtained by measurement with RMSE, MAE and MAPE obtained respectively of 114.0173,  57.69148  and  0.64766, from  the  three  evaluation  results  show  have  little  difference  between the  original  data  with  the  results  of  forecasting.  While  the  application  can  run  perfectly  and  produce computational forecasting in accordance with the selected model .
Keywords: analysis, forecasting, model, moving average.

## 1. PENDAHULUAN
Dalam  tatanan  sebuah  negara  sektor  ekonomi  merupakan  salah  satu  hal  terpenting.  Dan  salah  satu faktor yang mempengaruhi kuatnya ekonomi suatau negara adalah nilai tukar mata uang (kurs). Terlebih di era global  ini pertukaran  mata uang antar negara makin  sering terjadi. Baik dikalangan pemerintahan hingga masyarakat sekarang sudah bertransaksi  dan  bertukar  mata  uang  antar negara. Pada  beberapa kasus    yang    terjadi    di  negara  maju  seperti  di  wilayah  Eropa  atau  Amerika,  nilai  tukar  mata  uang merupakan bagian yang sangat vital. Bahkan pengaruh resiko nilai tukar mata uang akan mempengaruhi dan menghambat perdagangan internasional [1,2]. Oleh karena itu negara- negara yang tergabung dalam Uni-Eropa membentuk kesepakatan untuk menyatukan  nilai tukar mata uang dengan negara Uni-  Eropa lainya sehingga terbitlah mata uang euro. Hal ini merupakan langkah dari Uni- Eropa untuk mengurangi resiko  yang  disebabkan  nilai  tukar  mata  uang.  Indonesia    sendiri    menganut    sistem  pasar  penuh/bebas (free  floating  system)  dimana  nilai  tukar  rupiah  terhadap  mata  uang  asing  khususnya  dolar  (USD) ditentukan  oleh  pasar  mekanisme  global.  Kebijakan  pemerintah  dalam  menguatkan  nilai  tukar  rupiah salah  satunya  dengan      mendorong  sektor  ekspor  dalam  negeri.  Salah  satunya  menaikan  harga  minyak (BBM)  untuk  harga  jual  ke  luar  negeri  dan  kebijakan  dengan  menaikan  BI  Rate  dalam  upaya meningkatkan ketahanan fiskal [3].

## Gambar 1. Kurs Rupiah 2010-2015
Berdasarkan  data  dari  Bank  Indonesia  nilai  tukar  rupiah  terus  melemah  dari  tahun  2010  dari  poin 9.087  menuju  poin  11.900  di  awal  tahun  2015  seperti  ditunjukan  pada  gambar  1.  Dan  pada tahun  2015 akhir nilai  tukar  rupiah  sempat  mencapai  angka 14.000 yang  merupakan nilai terburuk dalam  kurun waktu 10 tahun terakhir. Beberapa penelitian nterkait dengan tema diatas sudah banyak dilakukan, Zhang dan  Berardi  [4]  membahas  tentang  penggabungan    algoritma  neural  network  untuk  peningkatan  kinerja dalam peramalan time series.
Hasil penelitian juga menunjukkan bahwa ensambel saraf berdasarkan partisi yang berbeda dari data lebih efektif daripada yang dikembangkan dengan data pelatihan penuh diluar sampel peramalan. Dalam bagian  lainnya,  Emam[5]  memaparkan  hasil  penelitian  empiris  yang  cenderung  mengkonfirmasi penerapan model jaringan saraf ke peramalan pasar kurs valuta asing. Syaraf tiruan jaringan telah terbukti efisien  dan  menguntungkan  dalam  peramalan.  Keuangan time  series khususnya,  yang  menggunakan topologi ANN optimal yang menunjukan hasil yang baik dalam hasil premalan. Hasil predikasi mingguan menunjukkan  hasil  yang  baik  dan  lebih  sedikit  kegagalan  karena  memiliki  banyak  sampel  data. Sedangkan  peramalan  bulanan  lebih kurang akurat karena kurangnya sampel data. Richard, Bermudez dan  Honeine  [6]  membahas  seberapa  cocok  algoritma time  series ini  terhadap  data  kernel  yang  telah dikumpulkan  kedalam  aplikasi  online.  Sehingga  aplikasi  tersebut  bisa  menjadi  pembanding  cocok tidaknya algoritma time series dimasukan kedalam aplikasi online . Penelitian nilai tukar rupiah terhadap dolar  Amerika  oleh  Wahyudi  [7]  menyebutkan  bahwa  meramal  nilai  tukar  mata  uang  khususnya  kurs dolar  merupakan  salah  satu      kunci      strategis      dalam      dunia      bisnis  internasional.  Dan  pada  proses dengan  membandingkan  data  riil  (nyata)  dengan  hasil  simulasi  menggunakan  jaringan  syaraf  tiruan. Dalam penelitian  lainnya [8, 9, 10] memaparkan, terdapat tiga  jenis kurs  yaitu, kurs  jual, kurs  beli, dan kurs  tengah.  Kurs  juga  dibutuhkan  untuk  menentukan  keputusan  penganggaran  modal,  keputusan investasi jangka pendek, penilaian laba dan keputusan pembiayaan jangka panjang [11, 12, 13, 14]. Paper ini  akan  mengimplementasikan  model  regresi  linier,  dengan  basis  algoritma center  moving  average , karena kesederhanaanya tetapi mampu melakukan peramalan dengan bagus.

## 2. METODOLOGI PENELITIAN
Metode  yang  dipakai  dalam  paper  ini  dibagi  menjadi  2  bagian  besar. Pertama ,  analisa  dan visualisasi model, untuk mendapatkan gambaran mengenai data yang akan diteliti, analisa akan dilakukan dengan cara melihat data yang diterapkan pada model, dimana model yang dipakai adalah menggunakan library forecast , quantmod , tseries dan zoo pada  bahasa  pemrograman  R  [15,  16,  17,  18],  begitu  juga visualisasi data dalam bentuk grafiknya. Metode ini dipakai untuk menguji model apakah sudah tepat atau belum guna diimplementasikan menjadi suatu aplikasi. Kedua , membangun aplikasi berbasis web sebagai implementasi  model  yang  dipilih,  aplikasi  dibangun  berbasis  web  yang  ditulis  dengan  bahasa pemrograman server php , sementara server basisdata dipakai adalah mysql . Aplikasi  dirancang  berbasis  teknik  RAD  ( Rapid  Application  Development )  [19]  dengan memodelkan  secara objek  orientied dan  implementasi  bahasa  menggunakan server  side  web programming . Secara umum metode yang akan dipakai dalam penelitian ini seperti tampak pada gambar 2 dibawah ini :

## Gambar 2. Metodelogi Penelitian
Data  kurs  akan  dilakukan  analisis  dengan  model  yang  dipilih  (MA  dan  CMA),  steelah  model  di buat,  langkah  selanjutnya  adalah  meberi  nilai  random  untuk  menentukan  variasi  musiman  untuk mendapatkan  nilai  regresinya,  setelah  itu  akan  dilakukan  dekomposisi  untuk  menghasilkan  nilai peramalan. Nilai peramalan yang di hasilkan akan dievaluasi tingkat perbedaan antara data aktual dengan data hasil peramalan dengan MAE, MAPE dan RMSE.

## 2.1 Analisa Data
Metode yang pertama akan dilakukan dalam penelitian ini adalah melakukan analisa terhadap model dan  algoritma  yang  dipilih  untuk  melakukan  peramalan  nilai  tukar  atau  kurs  dollar  terhadap  rupiah dengan  menggunakan  bahasa  pemrograman  R,  berikut  langkah-langkah  yang  akan  dilakukan  sesuai model pada gambar 2 diatas yang terdiri  dari :
a. Analisa pola data awal
b. Konversi data time series
c. Periksa stasionary data
d. Seasonal differencing
e. Menghapus variasi musiman
f. Peramalan
g. Interpretasi Model Peramalan
h. Validasi dengan Prediction error
i. Evaluasi akurasi peramalan

## 2.2 Perancangan Arsitektur Aplikasi
Aplikasi  yang  akan  dibuat,  akan  dirancang  dan  dibangun  berdasarkan  pendekatan  pengembangan system  dalam  hal  ini  teknik  RAD,  yaitu  mulai  analisa  kebutuhan  system,  disain  dan  implementasi. Gambar 3 menunjukan arsitektur umum aplikasi.
(a) (b)
Gambar 3. Arsitektur Umum (a) dan Realtime Aplikasi (b)
Aplikasi server (php) bertindak sebagai aplikasi utama yang akan melayani klien yang menggunakan aplikasi,  dimana    saat  menjalankan  permintan  klien,  aplikasi  akan  menggunakan  data  pada  RDBMS (mysql)  melalui service  web yang  dipakai  (apache).  Sementara  pada  system  realtime    Aplikasi menggunakan  API untuk mengakses data keuangan dari sumber ( yahoo , google dan BI) untuk disimpan ke dalam basisdata, seperti dalam gambar 4 arsitektur database aplikasi di bawah ini

## Gambar 4. Arsitektur DBMS
Terdapat  2  database  yang  akan  mengelola  data  aplikasi  yaitu  data  nominal  dari  sumber  ( yahoo , google dan  BI)  yang  disimpan  dalam  database  rupiah,  serta  data  hasil  perhitungan  peramalan  dalam database peramalan.

## 2.2.1 Analisa Kebutuhan
Hasil  analisa  ini  akan  menentukan  kebutuhan  aplikasi  yang  akan  dibangun,  mulai  dari  kebutuhan software  (RDBMS, web  server , browser ,  API,  bahasa  pemrograman,  bahasa  pemodelan),  Hardware (kebutuhan  minimum  untuk  menjalankan  aplikasi).  RDBMS  yang  di  pilih  adalah mysql server, webservicenya adalah open source apache dengan bahasa server php yang di paket mengggunakan xamp, API  yang  dipakai  untuk  Browser  dapat  menggunakan ie , firefox ataupun chrome ,  pemodelan menggunakan  visual  paradigm.  Sementara  kebutuhan  hardware  adalah  minimal  prosesor  sekelas  dual core, dengan RAM 4 GB, HDD 250 GB dipasang OS Window 7.

## 2.2.1 Desain
Untuk perancangan aplikasi akan dibuat model object oriented dengan UML,  mulai dari disain use case, state diagram, sequence diagram hingga class diagram.
a. Use Case
Usecase diagram  adalah gambaran  fungsionalitas  dari suatu system, sehingga pengguna system paham dan mengerti mengenai kegunaan system yang akan dibangun. Dalam disain use case ini aplikasi utama seperti tampak pada gambar 5 dibawah ini,
Gambar 5. Use Case
User (pengguna) dapat memilih 2 menu yaitu melakukan peramalan dan menampilkan nilai kurs, dalam periode tertentu.
b. State Diagram
Diagram ini menggambarkan keadaan objek pada suatu waktu didalam sistem. Diagram ini juga menunjukan  bagaimana  suatu  objek  beroperasi.  Berikut  adalah  state  diagram  untuk  aktifitas proses  menampilkan  grafik  kurs  dan  perhitungan  peramalan  kurs  rupiah  seperti  pada  gambar6 dibawah ini.
(a) (b) Gambar 6. State Diagram (a). Grafik Kurs (b) Komputasi Peramalan
c. Sequence Diagram
Sequence  diagram adalah  suatu  diagram  yang  memberikan  gambaran  tentang  interaksi  antar obyek yang mengindikasikan komunikasi diantara obyek-obyek tersebut. Berikut gambaran dari sequence diagram dalam penelitian ini seperti pada gambar 7 dibawah ini.
Gambar 7. Sequence Diagram Aplikasi
Sequence diagram dimulai dari posisi awal dimana pengguna  mulai  menggunakan system  yang dibangun.  Setelah  itu  melewati  beberapa  proses class dimana  terdapat  proses  input  atau output dan bagaimana proses tersebut kembali ke posisi sebelumnya.
d. Class Diagram
Class  diagram adalah  model  statis  yang  menggambarkan    struktur  dan  deskripsi  class  serta hubungannya  antara  class.  Dalam  penelitian  ini  class  diagram  utama  terdiri  dari  class  user, Peramalan, Kurs dan Akurasi, seperti pada gambar 8 berikut,
Gambar 8. Class Diagram
Class User berisi atribut utama nama user , password dan email yang dipakai sebagai data dasar pengguna  aplikasi,  class  Kurs  akan  menyimpan  data  nominal kurs yang  diambil  dari  sumber data,  class  Prediksi  akan  menyimpan  komputasi  mulai  dari  data  nominal,  hasil  perhitungan MA/CMA,  data  musiman,  nilai  regresi  dan  peramalan,  class  Akurasi  menyimpan  data  hasil perhitungan akurasi dari data actual dan data peramalan.

## 2.2.1 Notasi Algoritmik Prediksi Nilai Rupiah
Berikut  disajikan  notasi  algoritmik  yang  akan  diimplementeasikan  dalam  aplikasi  peramalan  nilai rupiah  terhadap  dolar,  yang  menjadi  inti  aplikasi  dalam  class  Prediksi,  yaitu  perhitungan prediksi dan akurasi .
Notasi untuk perhitungan prediksi Input (awal) Input (akhir) Input (periode) data  SELECT  TABEL `kurs` data  Array_reverse(data) n_c  count(data) if ( periode > 1) then n  periode chunk  array_chunk (c, n) n_ma  ceil(n / 2) n_maf  ceil(n / 2) i_start  n_maf i_end  n_c - n_maf n_chunk  count(chunk) else END FOREACH Output (cc)
/*Moving Average */ i  0 nma←average(sum(periode)) /*Centered Moving Average*/ i  0 j  1 r  1 iterate nma in cma do if (!empty(nma[i][3]) AND
//RANDOM PERIODIK chunk  array_chunk(nma, n) iterate nma in cma do nma[i][rp]  rp[j] nma[i]['asli']  nma[i][1] nma[i]['waktu']  nma[i][0] nma[i]['cma']  nma[i][4] nma[i]['nilairandom']  nma[i][1]/rp[j] if (i < n_c) then array_push(lr1, i+1) array_push(lr2,
nma[i]['nilairandom']) else nma[i]['waktu']  nma[i- 1]['waktu'] +  integer_harian unset(nma[i][1]) unset(nma[i][0]) if (j=n) then j  0 j++ i++ /*enditerate*/
lr  linear_regression(lr1, lr2) i  0 iterate nma in cma do
!empty(nma[i+1][3])) then nma[i][4]  (nma[i][3] + nma[i+1][3]) / 2
// smothing CMA nma[i][5]  nma[i][1]/nma[i][4] // St, It rp[j][0]  rp[j][0] + nma[i][5] rp[j][1]  rp[j][1] + 1 ccc  rp[j][1] – 1 else nma[i][4]  null nma[i][5]  null
if (j>= n) then j  0 i++ j++ /*enditerate*/
n_chunk  count(chunk) – 1 i  1 iterate rp in rk do rp[i]  rp[i][0]/rp[i][1] i++ for i  n_c to i<n+n_c do data  data_raw array_push(nma,data)
i  0 j  1 lr1  Array lr2  Array
nma[i]['dekomposisi']  lr['b']+ lr['m']*(i+1) nma[i]['prediksi']  nma[i]['dekomposisi']*nma[i][rp] nma[i]['selisih']  abs(nma[i]['prediksi']- nma[i]['asli']) i++ /*enditerate*/ iterate nma in cma do nma[i]['dekomposisi']  lr['b']+lr['m']*(i+1) nma[i]['prediksi']  nma[i]['dekomposisi'] * nma[i][rp] nma[i]['selisih']  abs(nma[i]['prediksi'] – nma[i]['asli']) i++ /*enditerate*/
output  Array i  0 iterate nma in cma do type  _GET['type'] array_push( output,
[nma[i]['waktu'],nma[i][type]]) i++ last_array  0 Output (output);
Notasi untuk perhitungan akurasi MAPE selisih  abs(nilai_asli - prediksi) data  Array(kurs) jumlah_nilai  sum(data) jumlah_data  count(data) mape  jumlah_nilai *  (selisih/nilai_asli) *100 / jumlah_data Output (mape) Notasi untuk perhitungan akurasi MAE selisih  abs(nilai_asli - prediksi) data  Array(kurs) jumlah_nilai  sum(data) jumlah_data  count(data) mae  jumlah_nilai *  selisih / jumlah_data Output ( mae) Notasi untuk perhitungan akurasi RMSE selisih  abs(nilai_asli - prediksi) data  Array(kurs) jumlah_nilai  sum(data) jumlah_data  count(data) rmse  SQRT (jumlah_nilai *  (selisih ^ 2)  / jumlah_data) Output (rmse)

## 3. HASIL DAN PEMBAHASAN

## 3.1 Analisa Dan Visualisasi Model Yang Di Pilih
Tahap pertama dalam serangkaian langkah analisa dan visualisasi model adalah melihat sebaran data awal nilai tukar dollar terhadap rupiah (data harian diperoleh dari secara online dari yahoo finance dengan libraray quantmod )  mulai  dari  Januari  2010  hingga  Januari  2018,  berikut  potongan  data  yang  dapat disajikan dalam table 1 dibawah ini.
df =getSymbols(Symbols=“IDR=X”,src="yahoo",from=startDate, auto.assign=FALSE) colnames(df)=c("close") write.zoo(df,paste(thePath,“IDR=X”,".csv",sep=""),sep=",", row.names=FALSE)
Tabel 1. Data historis kurs rupiah terhadap dollar Januari 2010-2018
"Index" "open" "high" "low" "close" "volume" "adj." 2010-01-01 9427 9427 9378 9386 0 9386 2010-01-04 9386 9470 9240 9364 0 9364 2010-01-05 9363 9383 9200 9305 0 9305 2010-01-06 9304 9355 9153 9218 0 9218 … … … … … … … 2018-01-01 13562 13568 13477 13542 0 13542 2018-01-02 13556 13557 13467 13550 0 13550 2018-01-03 13496 13506 13422 13496 0 13496 2018-01-04 13472 13478 13405 13468 0 13468 2018-01-05 13414 13427 13384 13415 0 13415
Dengan  melakukan  ploting  terhadap  data  tersebut  diperoleh  grafik  seperti  tersaji  pada  gambar  9 dibawah ini sebagai berikut,
plot(df,main="Kurs Rupiah Terhadap USD 2010-2018", xlab="Tanggal", ylab="Jual",type="l")

## Gambar 9. Grafik Nilai Kurs Rupiah Terhadap Dolar 2010 - 2018
Dari  gambar  9  diatas  jelas  terlihat  adanya trend yang  cenderung  naik  dari  tahun  ke  tahun,  tetapi tidak  menunjukan  adanya  variasi  musiman,  juga  data  nampak  terdapat noise ( irregular  remainder ), sehingga  perlu  didekomposisi  supaya  mudah  untuk  diramalkan.  Selanjutnya  kita  perlu  membuat  data harian time series mulai tahun 2010-2018 untuk dapat meramalkan nilai kurs (jual),
df.ts<-ts(df$Jual,frequency=365,start=c(2010,as.numeric(format(df[,1], "%j"))),end = c(2018,as.numeric(format(df[,1], "%j"))))
Hasil ploting seperti terlihat pada gambar 10 dibawah ini, dimana data tidak stasioner , terlihat dari nilai mean tidak constant , yang menyebabkan komponen trend tak terisi, variance fluktuatif , sementara variasi musiman tidak terlihat, sehingga terlihat seperti random white noise .
Dengan melakukan test terhadap data time series diatas kita akan pastikan apakah data sebaran data diatas  stasioner  atau  tidak  dengan  menggunakan Augmented  Dickey-Fuller  Test (ADF  Test)  dan Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test, dengan memanfaatkan library tseries .
adf.test(df.ts); kpss.test(df.ts) Augmented Dickey-Fuller Test data:  df.ts Dickey-Fuller = -1.2033, Lag order = 14, p-value = 0.906 alternative hypothesis: stationary KPSS Test for Level Stationarity data:  df.ts KPSS Level = 4.8048, Truncation lag parameter = 12, p-value = 0.01
Terlihat  hasil  ADF  memberi  nilai  p-value  0.906  yang  berarti  hipotesa  nul  ditolak  jadi  data  tidak statsioner, begitu  juga dengan KPSS, kebalikan dari  ADF,  nilai p-value semakin kecil  menunjukan data tidak  stasioner,  sehingga  perlu  distasionerkan  untuk  mendapatkan  variasi  musiman  dengan  library forecast .
ns<-nsdiffs(df.ts) if(ns  >  0)  {xstar  <-  diff(df.ts,lag=frequency(df.ts),differences=ns)}  else  { xstar <- df.ts} nd <- ndiffs(xstar) if(nd > 0) {xstar <- diff(xstar,differences=nd)} plot(xstar, type="l", main="Seasonally Differenced")
Pertama dihitung jumlah perbedaan data time series yang diperlukan ( ns ), jika hasilnya lebih dari 0 maka  lakukan  differensiasi  dan  jika  hasilnya  masih  belum  lebih  besar  dari  0  lakukan  diferensiasi  lagi, setelah memenuhi lihat grafik sebaran datanya seperti disajikan pada gambar 11 dibawah ini.

## Gambar 11. Grafik Time Series Kurs Rupiah Terhadap Dolar 2010 – 2018
Langkah selanjutnya adalah menghapus variasi musiman jika ada, penting untuk mengetahui tingkat fluktuasi nilai  tukar    yang  dikaitkan  dengan  waktu  atau  musim  ( season )  tertentu  dalam  tahun  tertentu. Musiman atau Seasonality dalam time series dapat mempengaruhi nilai yang diramalkan (diprediksikan) dan  biasanya  merupakan  praktik  yang  baik  untuk  menghilangkan  variasi  dari  data  time  series.  Untuk menghilangkan variasi musiman, time series harus didekonstruksi ke komponennya dengan menggunakan fungsi decompose() yang membagi data time series menjadi komponen $musiman/seasonal dan $trend.
df.tsCompose <-decompose(df.ts) plot(df.tsCompose) df.tsSeasonalAdjusted <- df.ts -df.tsCompose$seasonal dev.new();plot.ts(df.tsSeasonalAdjusted )
Gambar 12. a. Dekomposisi Data Time Series ; b. Penghilangan Variasi Musiman
Tampak dari ploting gambar 12.a dan 12.b diatas kita tidak lagi membutuhkan data variasi musiman dan  lebih  membutuhkan  data  trend  untuk  melakukan  peramala.Perlu  dicatat  bahwa ts yang  disesuaikan tidak menunjukkan  banyak penyimpangan/deviasi dari sebelumnya. Hal ini menunjukkan bahwa variasi musiman  dalam  hal  ini  minimal.  Langkah  berikut  yang  paling  penting  adalah  melakukan  peramalan, sejauh  ini  data  historis  telah  diplot  sebagai  time  series  yang  sudah  disesuaikan  untuk  variasi  musiman. Sekarang  kita  beralih  ke  peramalan.  Fluktuasi  plot  time  series  data df.ts cukup  konsisten  seiring  waktu sehingga  peramalan  dapat  dilakukan  dengan  menggunakan  smoothing  eksponensial  sederhana,  fungsi HoltWinters() pada R yang digunakan untuk smoothing eksponensial sederhana, seperti pada gambar 13 a dan b.
class(df.tsSeasonalAdjusted) df.tsHW <-HoltWinters(df.tsSeasonalAdjusted, beta=FALSE,gamma=FALSE) plot(df.tsHW);df.tsHWforecast <- forecast(df.tsHW,h=30) dev.new();plot(df.tsHWforecast)
Tampak data setelah difilter dengan dengan HoltWinters (garis merah), lebih halus dari sebelumnya (garis hitam), dan saat dilakukan peramalan hasilnya
a. Smoothing  exponensial  data  time series
b. Hasil  peramalan  30  hari  kedepan (h=30)
c. Zoom out hasil peramalan

## Gambar 13. Peramalan Dan Penghalusan Data Kurs 2010-2018
Gambar 13.c dapat di jelaskan sebagai berikut dengan melihat data angka bahwa interpretasi model peramalan,  area  abu-abu  gelap  dalam  plot  mewakili  kisaran  nilai  tukar df.ts untuk  30  hari  ke  depan
dengan  prediksi  80%.    Dalam  hal  ini  berada  di  kisaran  13647.53-13988.07 IDR.  Warna  abu-abu  terang mewakili nilai tukar df.ts dengan prediksi 90% yang berada pada kisaran 13617.59 sampai 14138.40 IDR
df.tsHWforecast # Point
Forecast    Lo 80    Hi 80    Lo 95    Hi 95
# 2018.0000       13704.09 13647.53 13760.65 13617.59 13790.59 # 2018.0027       13704.09 13627.48 13780.70 13586.92 13821.26 # 2018.0055       13704.09 13611.68 13796.50 13562.76 13845.42 # 2018.0082       13704.09 13598.21 13809.97 13542.16 13866.02 ... # 2018.0795       13704.09 13420.11 13988.07 13269.78 14138.40
Interpretasi model peramalan, area abu-abu gelap dalam plot mewakili kisaran nilai tukar df.ts untuk 30 hari ke depan dengan prediksi 80%.  Dalam hal ini berada di kisaran 13647.53-13988.07 IDR. Warna abu-abu terang mewakili nilai tukar df.ts dengan prediksi 90% yang berada pada kisaran 13617.59 sampai 14138.40 IDR. Selanjutkan kita akan lakukan validasi peramalan dengan menganalisa Prediction Errors , potongan  kode  berikut  akan  melakukan  validasi,  hitung histogram ,  lakukan  normalisasi  residual, tampilkan  plot  grafiknya.  Jika  data  terdistribusi  normal  maka, plot menunjukkan  kesalahan  perkiraan terdistribusi  normal    dengan  rata-rata  mendekati  0.  Ini  memvalidasi  bahwa  model  peramalan  adalah benar-benar cocok dan nilai prediksi cukup akurat, seperti disajikan pada gambar 14 a dan b dibawah ini.
hist(df.tsHWforecast$residuals, col="yellow") dnormResiduals
<- dnorm(df.tsHWforecast$residuals,mean=mean(as.matrix(df.tsHWforecast$residuals) ,na.rm=TRUE), sd=sd(as.matrix(df.tsHWforecast$residuals),na.rm=TRUE )) plot(df.tsHWforecast$residuals,dnormResiduals,col="blue")
1. Histogram time series 2. Data residual time series
Gambar 14. Validasi Peramalan Data
Langkah  terakhir  adaalah  evaluasi  akurasi  hasil  peramalan,  Akurasi  peramalan  hanya  dapat ditentukan  oleh  seberapa  baik  performa  model  pada  data  baru  yang  tidak  dipakai  saat  fitting  model. Ukuran  data  testing  biasanya  20%  dari  total  sampel,  jadi  kita  akan  membagi  data  time  series  menjadi training set dan test set, seperti kode dan gambar 15 sebagai berikut :
Untuk training gunakan data dari 2016, hari ke 1 hingga 2017 hari ke 150
sr=window(df.ts,frequency=365,start = c(2016,1),end = c(2017,150)) sementara test menggunakan sisanya ser=window(df.ts,frequency=365,start=c(2017,151),end= c(2017,365))
Setelah  itu  kita  lakukan  forecasting  dengan  4  teknik  evaluasi  akurasi  (Mean, Naïve, Drift  dan Seasonal naïve method)
lines(meanf(sr,h=30)$mean, col=4) lines(rwf(sr,h=30)$mean, col=2) lines(rwf(sr,drift=TRUE,h=30)$mean, col=3) lines(snaive(sr,h=30)$mean, col=5) legend("topleft", lty=1, col=c(4,2,3,5),legend=c("Mean method", "Naive method","Drift method","Seasonal naïve method"),bty="n") lines(ser, col="red")
Gambar 15.  Validasi Peramalan Data
Akurasi peramalan dari sr (data yang diramalkan data) pada ser (data asli yang dipakai untuk testing dan  model terbaik dengan tingkat error terkecil, seperti terlihat dari hasil  evaluasi pada table 2 dibawah ini.
accuracy(meanf(sr,h=30), ser) accuracy(rwf(sr,h=30), ser) accuracy(rwf(sr,drift=TRUE,h=30), ser) accuracy(snaive(sr,h=30), ser)
Tabel 2. Evaluasi akurasi data training Teknik ME RMSE        MAE           MPE MAPE MASE mean  8.115202e-14 231.1657  186.7288 -0.06817767 2.114142 0.9939498 naif  -0.03638132 114.0173    57.69148 -0.008219836 0.6476601 0.3070894 drift  6.228481e-13 114.0173    57.69162 -0.007810046 0.64766 0.3070902 Seasonal naif  23.3646 243.7740  187.8654 0.224639 2.082259 1.000000
Berdasarkan  evaluasi  akurasi,  Nilai  ME  yang  rendah  mungkin  menyembunyikan  ketidakakuratan peramalan  karena  efek  mengimbangi  kesalahan  perkiraan  positif  dan  negatif  yang  besar,  hal  itu  terlihat pada  teknik  naïf,  sementara  teknik  lainnya  cukup  bagus  (seasonal  naif),  Sementara  MAE  (57.69148) cenderung  lebih  kecil  dari  RMSE  (114.0173)  dan  selalu  begitu,  nilai  akurat  terbagus  diperoleh  pada teknik drift. Untuk MPE (0.224639) tidak ditemukan tingkat akurasi yang bagus pada semua teknik yang dipakai  kecuali  seasonal  naif,  karena  bernilai  negative.  Nilai  MAPE  (0.64766)  memberikan  akurasi  yag bagus untuk semua teknik yang dipakai, begitu pula MASE (0.3070902).

## 3.2 Aplikasi Peramalan
Berikut disajikan hasil pembangunan aplikasi berbasis web sebagai implementasi model yang telah di  analisis  berbasis  web  yang  terdiri  dari  bagian  grafik  nilai  rupiah,  prediksi  dan  live  stock.  Tab  menu grafik  menampilkan grafik kurs harian,  mingguan, bulanan dan tahunan seperti tampak pada gambar 16 bagian a.
a. Grafik                                   b. Prediksi                             c. Live Stock
Sementara  tab  Prediksi,  merupakan  suatu  form  yang  terdiri  dari  inputan  tanggal,  periode  ,  jumlah data test  dan  tombol  prediksi,  seperti  terlihat  pada  gambar  16.b  diatas.  Dalam  tab  ini  akan  ditampilkan grafik hasil prediksi, dengan legend garis biru muda adalah data asli, hitam hasil prediksi untuk periode n hari kedepan, hijau hasil smoothing dengan exponesial. Sementara tab live stock hanya menampilkan data berkala tiap menit, seperti disajikan dalam gambar 16.c diatas.
Berdasarkan eksperimen  yang dilakukan dengan  aplikasi  maka dapat di sajikan hasil prediksi pada table 3 yaitu harian sebanyak 14 hari, mingguan sebanyak 32 hari dan bulanan sebanyak 61 hari dibawah ini.
Tabel 3. Hasil eksperimen peramalan harian, mingguan dan bulanan dengan aplikasi
Tanggal Asli CMA Dekomposisi Prediksi Ekperimen harian 14 hari 01/12/2016  13 582  0.00 13 546.44 13 574.45 02/12/2016  13 524  0.00 13 523.92 13 519.58 03/12/2016  13 524  13 530.25  13 501.39 13 489.77 04/12/2016  13 524  13 507.13  13 478.87 13 477.92 09/12/2016  13 337  13 328.63  13 366.27 13 393.92 … … … … … 17/12/2016  - 0.00 13 186.11 13 213.38 18/12/2016  - 0.00 13 163.59 13 159.37 Eksperiment mingguan 32 hari 01/12/2016  13582  0.00 13 423.92 13 396.52 02/12/2016  13524  0.00 13 424.11 13 388.14 03/12/2016  13524  0.00 13 424.30 13 429.00 04/12/2016  13524  13 492.00  13 424.49 13 438.87 15/12/2016  13367  13 365.75  13 426.57 13 431.27 … … … … … 03/01/2017 0.00 13 430.17 13 444.56 04/01/2017 0.00 13 430.36 13 459.23 Eksperimen bulanan 61 hari 01/08/2016  13080  0.00 13 160.15 13 093.27 02/08/2016  13079  0.00 13 159.46 13 130.79 03/08/2016  13114  0.00 13 158.76 13 139.49 04/08/2016  13138  0.00 13 158.06 13 188.31 … … … … … 07/10/2016 0.00 13 113.44 13 131.16 08/10/2016 0.00 13 112.74 13 150.33

## 4. KESIMPULAN
Berdasarkan  analisa  dan  hasil  penelitian  yang  sudah  dilakukan  diperoleh  kesimpulan  sementara sebagai berikut :
a. Terbukti hasil analisis dan visualisasi model menunjukan ketepatan pemilihan model peramalan yang  sederhana  dengan tingkat  akurasi  yang  cukup  rendah  yang  diuji  dengan  4 teknik  evaluasi dengan menghitung RMSE nilai terbaiknya dengan teknik drift sebesar 114.0173, MAE dengan teknik naif sebesar 57.69148 dan MAPE dengan teknik drift sebesar 0.64766
b. Aplikasi yang dibangun berbasis web telah berhasil menginplementasikan disaian model prediksi yang di pilih yaitu siving average dengan smoothing eksponensial dan perhitungan nilai akurasi seperti disajikan dalam  notasi algoritmik. Berdasarkan hasil eksperimen baik  harian,  mingguan, bulanan diperoleh hasil yang tepat seperti tersaji dalam tabel

## DAFTAR PUSTAKA
[1] Ekananda, Mahyus. 2004. “Estimasi Persamaan Sistem Non Linear Seemingly Unrelated Regression pada Model Perdagangan  Internasional”. Jurnal Ekonomi dan Pembangunan Indonesia Vol 4, No 2.
[2] Bergen, Janson Van. 2008. “6 Factors That Influence Exchange”. http://www.investopedia.com/articles/basics/04/050704.asp. (Diakses pada tanggal 13 Mei 2017)
[3] Bachtiar,  Adella.  (2010). Analisis  Pergerakan    Nilai  Tukar  Terhadap  Neraca  Transaksi  Berjalan dan Pertumbuhan Ekonomi di Indonesia . Fakultas Ekonomi, Universitas Indonesia.
[4] G. P. Zhang and V. L. Berardi. (2001). Time series forecasting with neural network ensembles: an application for exchange rate prediction .
[5] Emam,  Ahmed.  (2008). Optimal  artificial  neural  network  topology  for  foreign  exchange forecasting . Western Kentucky University.
[6] C´edric Richard, Jos´e Carlos M. Bermudez dan Paul  Honeine.  (2008). Online  prediction  of  time series data with kernels .
[7] Wahyudi, Adhie Tri. 2008. “ Prediksi Nilai Tukar Rupiah terhadap  Dolar AS (US$) pada Kurs Spot dengan Pemanfaatan Artificial Intelligence (AI)” . Surakarta: Universitas Setia Budi Surakarta.
[8] Anwar,  Ahmad  Awiruddin.  2011. “ Prediksi  Kurs  Rupiah  Terhadap  Dolar  Amerika  Menggunakan Metode Fuzzy Time Series ”. Semarang: Universitas Diponegoro Semarang.
[9] Ihaka, Ross. (2005). Time Series Analysis : Lecture Notes for 475.726 . University of Auckland.
[10] Rahcmawansah, Komet. 2014.  “Average-Based Fuzzy Time Series Untuk Peramalan Kurs Valuta Asing  (Studi  Kasus  Pada    Nilai  Tukar  USD-IDR)”.  Jurusan  Matematika,  F.MIPA,  Universitas Brawijaya.
[11] Amiruddin Anwary, Ahmad. 2011. “Prediksi Kurs Rupiah Terhadap Dollar Amerika Menggunakan Metode Fuzzy Time Series”. Skripsi. Semarang: Universitas Diponegoro.
[12] Dwijayanthy  dan  Naomi.  2009.  “Analisis  Pengaruh  Inflasi,  BI  Rate,  dan  Nilai  Tukar  Mata  Uang terhadap Profitabilitas Bank Periode 2003-2007”. Jakarta: Universitas Paramadina Jakarta.
[13] Triyono.  (2008). Analisis  Perubahan Kurs Rupiah Terhadap Dollar Amerika . Surakarta: Fakultas Ekonomi Universitas Muhammmadiyah Surakarta.
[14] Wibowo     dan     Saiychu.     2013.     “Analisis Pengaruh Suku Bunga, Inflasi, Car, Bopo,  Npf Terhadap  Profitabilitas  Bank  Syariah”.  Semarang:  Jurusan  Manajemen  Fakultas  Ekonomika  dan Bisnis Universitas Diponegoro.
[15] Galit  Shmueli.  (2011). Practical  Time  Series  Forecasting  with  R ,  University  of  Maryland,  USA and Indian School of Business, India.
[16] Robert  H.  Shumway  ,  David  S.  Sto ﬀ er.(2017). Time  Series  Analysis  and  Its  Applications  With  R Examples, Springer International Publishing
[17] Jonathan  D.  Cryer,  Kung-Sik  Chan.(2008). Time  Series  Analysis With  Applications  in  R , Springer International Publishing.
[18] Tlegenofa. (2015) .   Forecasting   Exchange   Rates Using   Time Series  Analysis: The sample  of the currency of Kazakhstan. Singapore.
[19] Kendall, Julie dan Kenneth  Kendall, (2011), SYSTEMS  ANALYSIS and DESIGN . New Jersey: Pearson Education, Inc