BAB 2 LANDASAN TEORI 2.1. Peramalan -...
Transcript of BAB 2 LANDASAN TEORI 2.1. Peramalan -...
BAB 2
LANDASAN TEORI
2.1. Peramalan
Pada bagian ini diberikan beberapa definisi tentang peramalan dan teori-teori
mengenai metode peramalan yang digunakan.
2.1.1 Definisi Peramalan
Menurut Assauri (1984,p1), peramalan merupakan kegiatan untuk
memperkirakan apa yang terjadi pada masa yang akan datang. Sedangkan peramalan
atau forecasting menurut Levine et al. (2002, p654) adalah sebuah teknik yang dapat
membantu perencanaan untuk kebutuhan masa depan berdasarkan pengalaman atau
data masa lalu yang relevan.
2.1.2 Kegunaan dan Peran Peramalan
Menurut Makridakis et al. (2000, p229), perencanaan adalah suatu tugas yang
dilakukan sebelum mengambil tindakan. Perencanaan biasanya merupakan
pengambilan keputusan yang dilakukan lebih awal, walaupun tidak semua bentuk
pengambilan keputusan merupakan perencanaan. Assauri (1984,p2) menerangkan
bahwa, dalam usaha mengetahui atau melihat perkembangan pada masa depan,
peramalan sangat dibutuhkan untuk menentukan kapan suatu peristiwa akan terjadi
atau suatu kebutuhan akan timbul. Jika perbedaan waktu dalam kegiatan tersebut
panjang, dapat dipersiapkan kebijakan dan tindakan-tindakan yang perlu dilakukan.
Dengan demikian dapat dikatakan bahwa peramalan merupakan dasar untuk
penyusunan rencana.
8
Kegunaan dari peramalan terlihat pada saat pengambilan keputusan. Keputusan
yang baik adalah keputusan yang didasarkan atas pertimbangan apa yang akan
terjadi pada waktu keputusan itu dilaksanakan. Apabila kurang tepat ramalan yang
disusun atau yang dibuat, maka makin kurang baiklah keputusan yang diambil. Oleh
karena itu, dalam suatu perusahaan, ramalan dibutuhkan untuk memberikan
informasi kepada pimpinan sebagai dasar untuk membuat suatu keputusan dalam
berbagai kegiatan, seperti penjualan, permintaan dan persediaan keuangan. Dengan
demikian dapat dilihat bahwa peramalan memiliki peranan yang sangat penting, baik
dalam penelitian, perencanaan maupun dalam pengambilan keputusan. Tetapi dapat
diperhatikan bahwa peramalan memiliki tujuan untuk memperkecil kemungkinan
kesalahan. Baik tidaknya suatu ramalan sangat tergantung pada unsure atau faktor
data dan metode yang digunakan.
2.1.3 Jenis-Jenis Peramalan
Menurut Assauri (2002,pp. 3-4), peramalan dapat dibedakan dari berbagai segi
tergantung dari cara melihatnya. Apabila dilihat dari cara penyusunannya, maka
peramalan dapat dibedakan menjadi dua macam, sebagai berikut.
a. Peramalan yang subjektif, yaitu peramalan yang didasarkan atas perasaan
atau intuisi dari orang yang menyusunnya. Dalam hal ini, pandangan dari orang
yang menyusunnya sangat menentukan baik atau tidaknya hasil ramalan
tersebut.
b. Peramalan yang objektif, adalah peramalan yang didasarkan atas data yang
relevan pada masa lalu, dengan menggunakan teknik-teknik dan metode-
metode dalam penganalisisan data tersebut.
9
Dilihat dari jangka waktu ramalan yang disusun, maka peramalan dapat
dibedakan atas dua macam sebagai berikut.
a. Peramalan jangka panjang, yaitu peramalan yang dilakukan untuk menyusun
hasil ramalan yang jangka waktunya lebih dari satu setengah tahun atau tiga
semester.
b. Peramalan jangka pendek, yaitu peramalan yang dilakukan untuk penyusunan
hasil ramalan dengan jangka waktu yang kurang dari satu setengah tahun, atau
tiga semester.
Umumnya peramalan jangka pendek didasarkan pada analisis deret waktu.
Oleh karena itu, peramalan jangka pendek menggunakan teknik analisis hubungan di
mana satu-satunya variabel yang mempengaruhi adalah waktu. Dalam peramalan
jangka pendek selalu ditemui adanya pola musiman. Dapat terjadi bulan-bulan atau
triwulan yang sama setiap tahun mempunyai nilai variabel cukup tinggi, dan pada
bulan-bulan atau triwulan tertentu lainnya mempunyai nilai variabel yang cukup
rendah. Oleh karena itu maka dalam peramalan jangka pendek perlu ditinjau dulu
apakah deret data yang ada memiliki pola musiman. Berdasarkan sifat ramalannya,
menurut Assauri (2002,pp. 3-4), ada dua pendekatan umum yang dipakai sebagai
berikut.
a. Peramalan kualitatif, yaitu peramalan yang didasarkan atas data kualitatif
pada masa lalu atau dengan kata lain peramalan yang didasarkan atas
permikiran yang bersifat intuisi, judgement atau pendapat, dan pengetahuan
serta pengalaman dari penyusunnya. Metode ini penting saat data historis tidak
tersedia.
10
b. Peramalan kuantitatif, yaitu peramalan yang didasarkan pada data historis.
Tujuan metode ini adalah mempelajari apa yang terjadi pada masa lalu untuk
prediksi nilai-nilai yang akan datang.
2.1.4 Metode Peramalan Kuantitatif
Menurut Makridakis et al. (1999, pp.19-20), metode peramalan kuantitatif
dapat dibagi sebagai berikut.
a. Metode peramalan yang didasarkan atas penggunaan analisis pola hubungan
antara variabel yang akan diperkirakan dengan variabel waktu, yang
merupakan deret waktu atau ”time series”.
b. Metode peramalan yang didasarkan atas penggunaan analisis pola hubungan
antara variabel yang akan diperkirakan dengan variabel lain yang
mempengaruhinya, yang bukan waktu atau sering disebut sebagai motede
korelasi atau model regresi (”causal methods”).
c. (Rosadi,2006,p1) Panel atau Pooled data, yakni tipe data yang dikumpulkan
menurut urutan waktu dalam suatu rentang waktu tertentu pada sejumlah
individu atau kategori.
2.1.5 Deret Waktu (Time Series)
Data time series adalah data yang dikumpulkan, dicatat atau diobservasi
berdasarkan urutan waktu, yang secara umum bertujuan untuk menemukan bentuk
pola variasi dari data dimasa lampau dan menggunakan pengetahuan ini untuk
melakukan peramalan terhadap sifat-sifat dari data dimasa yang akan datang
(Rosadi,2005, p16).
Peramalan dengan menggunakan analisis deret waktu, mendasarkan hasil
ramalan yang disusun atas pola hubungan antara variabel yang dicari atau
11
diramalkan dengan variabel waktu yang merupakan satu-satunya variabel yang
mempengaruhi atau bebas. Dalam peramalan dengan analisis deret waktu, dilakukan
usaha untuk menemukan pola deret data historis dan kemudian mengekstrapolasikan
pola tersebut untuk masa yang akan datang. Suatu langkah yang penting dalam
memilih metode analisis deret waktu adalah mempertimbangkan jenis pola yang
terdapat dari data observasi (Assauri,1984,p45). Menurut Rosadi (2005,p16), di
dalam pola deret waktu terdapat komponen-komponen yang membangun pola data
dan dikelompokan dalam empat komponen utama sebagai berikut.
a. Trend : bentuk penurunan atau pertambahan data.
b. Musiman (seasonal) : bentuknya berupa fluktuasi berulang (dan beraturan)
atau naik-turunnya variabel dalam jangka waktu periode yang sama, yang
ditemui setiap tahun.
c. Siklikal (cyclical) : berupa pola siklus, umumnya periode waktu relatif lebih
panjang dibanding musiman.
d. Komponen tak beraturan (irregular atau random) : berupa pola acak.
Sedangkan pola yang dibentuk dari komponen tersebut dapat dikelompokkan
lagi ke dalam empat jenis pola data antara lain (Assauri,1984,p46):
a. Pola horizontal atau stationary, bila nilai-nilai dari data observasi berfluktuasi
di sekitar nilai konstan rata-rata. Dengan demikian dapat dikatakan pola ini
sebagai stationary pada rata-rata hitungnya (means). Pola jenis ini terdapat
pada suatu produk yang mempunyai jumlah penjualan yang tidak menaik atau
menurun selama beberapa waktu atau periode, seperti terlihat pada gambar 2.1.
12
Gambar 2.1 Pola Data Horizontal (Assauri,1984,p46)
b. Pola Musiman atau seasonal, bila suatu deret waktu dipengaruhi oleh faktor
musim (seperti kuartalan, bulanan, mingguan dan harian). Banyak produk yang
penjualannya menunjukkan pola musiman, seperti minuman segar, ice cream,
jasa angkutan, obat-obatan tertentu, dan ban mobil. Contoh pola musiman
kwartalan seperti terlihat pada gambar 2.2.
Gambar 2.2 Pola Data Musiman (Assauri,1984,p46)
c. Pola siklus atau cyclical bila data observasi dipengaruhi oleh fluktuasi
ekonomi jangka panjang yang berkaitan atau tergabung dengan siklus usaha
(business cycle). Ada beberapa produk yang penjualannya menunjukkan pola
siklus, seperti mobil sedan, besi baja, dan perkakas atau peralatan bengkel.
Pola dari jenis ini seperti terdapat pada gambar 2.3.
Gambar 2.3 Pola Data Siklus (Assauri,1984,p47)
13
d. Pola trend bila ada pertambahanataukenaikan atau penurunan dari data
observasi untuk jangka panjang. Pola trend ini dapat dilihat pada gambar
2.4.
Gambar 2.4 Pola Data Trend (Assauri,1984,p47)
Oleh karena itu, harus dilakukan penyaringan adaptasi dengan metode yang
dapat menyesuaikan pola data yang ada (Assauri,1984,p169). Menurut Levine et. al.
(2002,p655), metode peramalan deret waktu melibatkan proyeksi nilai yang akan
datang dari sebuah variabel berdasarkan pada pengamatan masa lalu dan sekarang
dari variabel tersebut. Metode peramalan deret waktu dapat dibagi menjadi beberapa
metode sebagai berikut.
a. Metode smoothing.
Metode ini digunakan untuk melakukan pemulusan terhadap suatu deret
berkala dengan membuat rata-rata tertimbang dari sederetan data yang lalu.
Metode ini sangat efektif untuk peramalan jangka pandek dan tidak
membutuhkan banyak data.
b. Metode Box Jenkins.
Metode ini menggunakan dasar deret waktu dengan model matematis dan
hanya cocok untuk jangka pendek.
14
c. Metode Proyeksi Trend.
Metode ini berdasarkan garis trend untuk suatu persamaan matematis. Cocok
untuk jangka pendek maupun jangka panjang. Makin banyak data yang
tersedia, hasilnya akan makin baik.
d. Metode Dekomposisi.
Metode ini memisahkan tiga komponen yaitu trend, siklis, dan musiman.
Metode ini cocok bagi rencana jangka pendek dan semakin banyak data yang
tersedia akan semakin baik hasil peramalannya.
2.1.6 Pemilihan Metode Peramalan Deret Waktu
Pola atau karakteristik data mempengaruhi teknik peramalan yang dipilih.
Seringkali, pola data tersebut merupakan karakteristik inherent dari kegiatan yang
sedang diteliti. Hubungan antar data dengan jangka waktu semakin jelas dengan
mengamati bahwa pola trend merupakan kecenderungan jangka panjang. Sedangkan
variasi musiman menunjukkan pola data yang berulang dalam satu tahun. Teknik
regresi cocok untuk hampir semua pola yang dapat diidentifikasi.
Dalam mengevalusi teknik-teknik yang dikaitkan dengan pola data, dapat saja
diterapkan lebih dari satu teknik untuk data yang sama. Misalnya, teknik-teknik
tertentu mungkin lebih akurat dalam memprediksi titik balik, sedangkan lainnya
terbukti lebih handal dalam peramalan pola perubahan yang stabil. Dapat terjadi
beberapa model meramalkan terlalu tinggi (overestimate) atau terlalu rendah
(underestimate) dalam situasi tertentu. Selain itu, mungkin juga terjadi bahwa
prediksi jangka pendek dari suatu model lebih baik dari model lain yang memiliki
prediksi jangka panjang yang lebih akurat. Hakim (2001,p372) dan Rosadi
(2005,pp.16-17) menggambarkan sebuah bagan seperti pada gambar 2.5 yang berisi
15
pemilihan metode peramalan deret berkala yang tepat sesuai dengan situasi dan jenis
plot data yang ada.
Gambar 2.5 Pemilihan Metode Peramalan Deret Berkala (Sumber: Rosadi,2005,pp.16-17).
16
2.2 ARIMA (Autoregressive Integrated Moving Average)
ARIMA merupakan model yang dikembangkan secara intensif oleh George Box
dan Gwilyn Jenkins sehingga nama mereka sering disinonimkan dengan proses Box-
Jenkins yang diterapkan untuk analisis dan peramalan data runtun waktu (time series).
Dalam membentuk model ARIMA ada beberapa langkah yang digunakan adalah
sebagai berikut.
a. Identifikasi model, menggunakan grafik, statistik, dan alat lainnya untuk
mengenali suatu pola dan komponen model.
b. Estimasi parameter dan diagnosis model, menentukan koefisien dari suatu
fungsi yang tepat dan penentuan apakah suatu model akan digunakan jika
valid dan pengulangan langkah dari identifikasi hingga diagnosis jika suatu
model tidak valid untuk mendapatkan suatu model yang benar-benar valid.
c. Aplikasi, penggunaan model yang telah diterima atau valid dalam proses
peramalan.
17
Gambar 2.6 Metode Peramalan Box-Jenkins
(Sumber :Assauri,1984,p128)
Langkah-langkah dalam membentuk suatu model peramalan tersebut juga secara
umum digunakan untuk metode-metode peramalan lainnya.
Persamaannya untuk bentuk paling sederhana ARIMA(p,d,q) sebagai berikut.
tt BYBB εθφ )1()1)(1( 11 −=−− (2.2. 1)
Sedangkan bentuk umumnya untuk orde yang lebih tinggi adalah sebagai berikut.
tq
qtdp
p BBBYBBB εθθθφφ )...1()1)(...1( 22
11
11 −−−−=−−−− (2.2.2)
Pada persamaan (2.2.1) dapat ditulis secara simbolik dalam bentuk yang lebih
compact sebagai berikut.
tqtd
p BYB εθφ )()( =∇ , (2.2.3)
dengan
ppp BBB φφφφ −−−−= ...1 2
21
1 , (2.2.4)
18
dan
qqq BBB θθθθ −−−−= ...1 2
21
1 , (2.2.5)
dan
dd B)1( −=∇ (2.2.6)
, di mana B adalah back shift operator dan tdY∇ adalah diferensiasi tY sebanyak d.
Bentuk umum model ARIMA(p,d,q) menghasilkan variasi yang sangat beragam
pada pola ACF dan PACF. Pada aplikasinya di dunia nyata, yang sering digunakan
adalah model-model dengan nilai p, d, atau q berkisar antara 0, 1, atau 2. Karena dengan
range nilai yang sangat kecil untuk p, d, atau q, sudah dapat mencakup berbagai situasi
peramalan praktis.
Secara umum model ARIMA dinotasikan dengan notasi ARIMA(p,d,q) dengan
ordo p,d dan q di mana berturut- turut sebagai berikut.
a. Ordo pertama p menunjukkan derajat dari autoregressive (AR).
b. Ordo kedua d menunjukkan derajat dari integrasi atau pembeda.
c. Ordo ketiga q menunjukkan derajat dari moving average (MA).
2.2.1 Model AR orde-p
Secara umum, model ARIMA(p,0,0) sama dengan model AR(p) dan
persamaannya dapat ditulis sebagai berikut.
tptpttt YYYY εφφφ ++++= −−− ...2211 (2.2.7)
dengan notasi backshift persamaan tersebut dapat dituliskan sebagai berikut.
ttp
p YBB εφφ =−−− )...1( 11 (2.2.8)
19
2.2.2 Model MA orde-q
Secara umum, model ARIMA(0,0,q) sama dengan model MA(q) dan
persamaannya dapat ditulis sebagai berikut.
qtqttttY −−− ++++= εθεθεθε ...2211 (2.2.9)
dengan notasi backshift persamaan tersebut dapat dituliskan sebagai berikut.
tq
qt BBBY εθθθ )...1( 22
11 −−−−= (2.2.10)
2.2.3 Model ARMA
Gabungan model AR(1) dengan model MA(1), disebut model
ARMA(1,1) atau ARIMA(1,0,1). Model ARMA seharusnya mampu
menghasilkan hasil ramalan yang lebih akurat daripada model AR maupun MA
secara terpisah karena model ARMA kedua model tersebut. Model ARMA(1,1)
atau model ARIMA(1,0,1) dapat dituliskan dalam persamaan berikut.
1111 −− −+= tttt YY εθεφ (2.2.11)
Dengan notasi backshift persamaan tersebut dapat dituliskan sebagai berikut.
ttYB εθφ )1()1( 11 −=− (2.2.12)
Sedangkan untuk ARMA dengan orde yang lebih tinggi (ARMA (p,q) atau
ARIMA(p,0,q)), persamaannya sebagai berikut.
qtqttptpttt YYYY −−−−− −−−++++= εθεθεφφφ ...... 112211 (2.2.13)
Atau dengan operator backshift sebagai berikut.
tq
qtp
p BBBYBBB εθθθφφφ )....1()...1( 221
221 −−−−=−−−− (2.2.14)
Jika bentuk non-stasioner ditambahkan pada model ARMA, maka model umum
untuk ARIMA(p,d,q) diperoleh.
20
2.3 Identifikasi Model
Dalam membentuk suatu model ARIMA terdapat beberapa langkah yang
dilakukan sebagai berikut.
a. Pengidentifikasian model, yang dapat dilakukan dengan statistik, grafik, dan
alat lainnya dalam mengenali pola.
b. Estimasi parameter dan diagnosis model dari suatu fungsi yang tepat dalam
menentukan apakah model yang digunakan valid atau tidak.
c. Pengaplikasian dari model yang sudah diterima dalam proses peramalan.
Identifikasi model untuk pemodelan data deret waktu menggunakan metode ini
memerlukan perhitungan dan penggambaran dari hasil fungsi autokorelasi (ACF) dan
fungsi autokorelasi parsial (PACF). Hasil perhitungan ini untuk menentukan model
ARIMA apakah yang sesuai.
2.3.1 Fungsi Autokorelasi (ACF)
Korelasi merupakan hubungan antara satu variabel dengan variabel lainnya.
Nilai korelasi dinyatakan oleh koefisien yang nilainya bervariasi antara +1 hingga –
1. Nilai koefisien tersebut menyatakan apa yang akan terjadi pada suatu variabel jika
terjadi perubahan pada variabel lainnya.
Nilai koefisien yang bernilai positif menunjukkan hubungan antar variabel
yang bersifat positif, yakni jika satu variabel meningkat nilainya, variabel lainnya
juga akan meningkat nilainya. Sedangkan nilai koefisien yang bernilai negatif
menunjukkan hubungan antar variabel yang bersifat negatif, yakni jika satu variabel
meningkat nilainya, variabel lainnya akan menurun nilainya, dan sebaliknya. Bila
suatu koefisien bernilai nol, berarti variabel-variabel tersebut tidak memiliki
21
hubungan. Jika terjadi peningkatan atau penurunan terhadap suatu variabel, variabel
lainnya tidak akan terpengaruh oleh perubahan nilai tersebut.
Koefisien autokorelasi memiliki makna yang hampir sama dengan koefisien
korelasi, yakni hubungan antara dua atau lebih variabel. Pada korelasi, hubungan
tersebut merupakan dua variabel yang berbeda pada waktu yang sama, sedangkan
pada autokorelasi, hubungan tersebut merupakan dua variabel yang sama dalam
rentang waktu yang berbeda. Autokorelasi dapat dihitung menggunakan fungsi
autokorelasi (AutoCorrelation Function), ACF(k), yang dapat dinotasikan sebagai
berikut.
∑
∑
=
+=−
−
−−= n
tt
n
ktktt
YY
YYYYkACF
1
2
1
)(
))(()( (2.3.1)
Secara umum, ACF digunakan untuk melihat apakah ada sifat Moving Average
(MA), dari suatu deret waktu, yang dalam persamaan ARIMA direpresentasikan oleh
besaran q. Besar nilai q dinyatakan sebagai banyaknya nilai ACF sejak lag 1 hingga
lag ke-k secara berurut yang terletak di luar selang kepercayaan Z. Jika terdapat sifat
MA, q pada umumnya bernilai 1 atau 2, sangat jarang ditemui suatu model dengan
nilai q lebih dari 2.
Nilai d, sebagai derajat pembeda (differencing) untuk menentukan stasisoner
atau tidaknya suatu deret waktu, juga ditentukan dari nilai ACF. Bila ada nilai-nilai
ACF setelah time lag ke-k untuk menentukan nilai q berada di luar selang
kepercayaan Z, maka deret tersebut tidak stasioner, sehingga nilai d tidak sama
dengan nol (d > 0), biasanya antara 1 atau 2, sedangkan bila nilai-nilai ACF tersebut
22
berada dalam selang kepercayaan Z, maka deret tersebut dapat dibilang stasioner,
sehingga nilai d sama dengan nol (d = 0).
Selang kepercayaan Z, yang besarnya ditentukan oleh derajat bebas dan selang
kepercayaan (α ), dinyatakan sebagai berikut.
n
zkACFn
z 1)(1≤≤− . (2.3.2)
Galat standar dari ACF tersebut adalah
n
se kACF1
)( = (2.3.3)
dengan n merupakan banyak pengamatan dalam deret.
2.3.2 Fungsi Autokorelasi-Parsial (PACF)
Fungsi autokorelasi parsial pada lag-p adalah suatu korelasi di antara tY dan
ktY + . PACF digunakan untuk mengidentifikasikan ada atau tidaknya sifat AR yang
dinotasikan dengan p. Jika terdapat sifat AR, pada umumnya nilai PACF bernilai 1
atau 2, jarang ditemukan sifat AR bernilai lebih besar dari 2.
Misalkan }{ tY adalah suatu model autoregressive yang stasioner dengan rata-
rata nol dan ktY + dapat ditulis dalam model linier
kttkkktkktkkt YYYY +−+−++ ++++= εφφφ ...2211 (2.3.4)
di mana kiφ adalah parameter ke-i dari persamaan regresi dan kt+ε adalah eror yang
tidak berkorelasi dengan jktY −+ untuk 1≥j . Kalikan jktY −+ pada kedua sisi kemudian
ambil nilai ekspektasinya, maka diperoleh
)(...)2()1()( 21 kjjjj kkkk −++−+−= γφγφγφγ (2.3.5)
kemudian bagi kedua sisi dengan )0(γ , sehingga diperoleh
23
).(...)2()1()( 21 kjjjj kkkk −++−+−= ρφρφρφρ (2.3.6)
Untuk kj ,...,2,1= maka diperoleh suatu sistem persamaan
),1(...)1()0()1( 21 −+++= kkkkk ρφρφρφρ (2.3.7)
),2(...)2()1()2( 21 −+++= kkkkk ρφρφρφρ (2.3.8)
M
).0(...)1()1()( 21 ρφρφρφρ kkkk kkk ++−+−= (2.3.9)
Sehingga fungsi PACF dapat dituliskan sebagai berikut:
).(...)2()1( 21 pkkk pk −++−+−= ρφρφρφρ (2.3.10)
di mana:
k adalah time lag, dengan k =1,..., p.
ρ adalah nilai dari fungsi autokorelasi (ACF).
φ adalah nilai dari fungsi autokorelasi parsial (PACF).
Koefisien autokorelasi parsial ber-orde n didefinisikan sebagai suatu koefisien
autoregressive terakhir dari model autoregressive dengan ordo-p yaitu AR(1), AR(2),
AR(3),…, AR(p) yang ditunjukkan dalam hubungan
ttt YY εφ += −11 , (2.3.11)
tttt YYY εφφ ++= −− 2211 , (2.3.12)
ttttt YYYY εφφφ +++= −−− 332211 , (2.3.13)
M
tptpttt YYYY εφφφ ++++= +−−−− 112211 ... , (2.3.14)
tptpptpttt YYYYY εφφφφ +++++= −+−−−− 112211 ... , (2.3.15)
Misalkan }{ tY adalah model autoregressive dengan ordo-1
24
),0(~, 211 σεεφ WNYY tttt += − (2.3.16)
di mana AR(1) selalu bersifat dapat dibalik (invertible) yang ditunjukkan dalam
),0(~, 211 σεεφ WNYY tttt =− − (2.3.17)
dan bersifat kausal jika akar atau 1||
1
1
>Z
atau 1|| 1 <φ . Maka pp φφφφ ,,...,, 121 −
dapat dicari dengan mengalikan ktY − pada kedua sisinya.
,11 kttkttktt YYYYY −−−− += εφ (2.3.18)
Untuk keadaan kausal penerapan nilai ekspektasi E pada persamaan (2.3.18) berlaku
),()()( 11 tktkttktt YEYYEYYE εφ −−−− += (2.3.19)
dan
1),1()( 1 ≥−= kkk γφγ (2.3.20)
sehingga diperoleh fungsi autokorelasinya
.1),1()( 1 ≥−= kkk ρφρ (2.3.21)
Dari 1)0( =ρ diperoleh dari substitusi secara berulang 1,)( 1 ≥= kak kρ , fungsi yang
meluruh menuju nol untuk ∞→k .
Penetapan fungsi autokorelasi pertama dilakukan dengan membagi persamaan
(2.3.20) dengan )1( −kγ , sehingga diperoleh
)1(/)(1 −= kk γγφ , (2.3.22)
Sebagai contoh untuk mendapatkan nilai PACF pada time lag 1, k bernilai 1
diperoleh
),0()1( 1ρφρ = dengan 1)0( =ρ sehingga 1)1( φρ = .
25
Dengan melihat hubungan dari 11 φρ = , maka )1(/)(1 −= kk γγρ merupakan
cara dalam menetapkan autokorelasi pertamanya. 11 ρφ = dapat diartikan bahwa
autokorelasi parsial yang pertama sama dengan autokorelasi yang pertama dengan
nilai parameter 1ρ tidak diketahui dan nilai 1φ ditaksir dalam sampel dengan 1r
(koefisien autokorelasi dengan lag-1 periode).
Sedangkan untuk memperoleh nilai PACF pada time lag 2 digunakan
persamaan (2.3.12) dengan k=2, diperoleh
)1()1( 21 ρφφρ += dan 21 )1()2( φρφρ += (2.3.23)
Dengan mensubtitusikan 1φ ke dalam persamaan (2.3.23) maka didapat
,)1(1
)1()2(
11
1
1)1()1(1)2()1()1(1
2
2
1
1
211
1
22 ρρρ
φφφφφ
ρρρρρ
φ−−
=
⎥⎦
⎤⎢⎣
⎡
⎥⎦
⎤⎢⎣
⎡
=
⎥⎦
⎤⎢⎣
⎡
⎥⎦
⎤⎢⎣
⎡
=
dengan cara yang sama berlaku 2,0 ≥= kkkφ .
Untuk k= 3 dengan menggunakan persamaan (2.3.13) diperoleh
)2()1()1( 321 ρφρφφρ ++=
)1()1()2( 321 ρφφρφρ ++= (2.3.24)
321 )1()2()3( φρφρφρ ++=
Demikian seterusnya untuk time lag selanjutnya.
Rumus PACF tersebut juga dapat dituliskan sebagai berikut dengan r
menyatakan nilai ACF (seperti ρ pada persamaan sebelumnya dari suatu lag k)
111 r=φ (2.3.25)
26
[ ][ ]2
1
212
22 1 rrr
−−
=φ (2.3.26)
1,...,2,1,...;2;,1,1 −==−= −−− kjkjkkkkjkjk φφφφ (2.3.27)
,...3;,1
,
1
11
1
11
=−
−=
∑
∑−
=−
−
=−−
kr
rr
k
jjjk
k
jjkjkk
kk
φ
φφ (2.3.28)
Untuk menentukan besar nilai p yang menyatakan derajat AR, maka diperlukan
perbandingan nilai PACF pada selang kepercayaan z. Selang kepercayaan tersebut
mempunyai persamaan.
n
zkPACFn
z 1)(1≤≤− . (2.3.29)
Galat standar dari PACF tersebut adalah
n
se kPACF1
)( = (2.3.30)
Gambar 2.7 Nilai ACF dan PACF Teoritis untuk Model AR(1)
(Sumber :Assauri,1984,p149)
27
Gambar 2.8 Nilai ACF dan PACF Teoritis untuk Model MA(1)
(Sumber :Assauri,1984,p150)
Tabel 2.1 Pola Umum ACF dan PACF untuk Model AR dan MA Sederhana
(Sumber: Box, G.E.P., Jenkins, G.M., and Reinsel, G.C,1994,p84) Proses ACF PACF
AR(1) Penurunan secara eksponensial;
pada sisi positif jika 01 >φ dan
terbalik pada sisi negatif jika 01 <φ .
Puncak di lag 1, lalu turun ke nol;
puncak positif jika 01 >φ , negatif
jika 01 <φ .
AR(p) Penurunan secara eksponensial atau
Gelombang sinus yang dimampatkan.
Pola tepatnya bergantung pada tanda
dan besar pφφ ,...,1 .
Puncak di lag 1 hingga p, lalu turun ke nol.
MA(1) Puncak di lag 1 lalu turun ke nol;
puncak positif jika 01 <θ , negatif
jika 01 >θ .
Penurunan secara eksponensial; pada sisi negatif jika 01 >θ dan berbalik-balik tanda mulai dari sisi positif jika
01 <θ .
MA(q) Puncak di lag 1 hingga q, lalu turun ke nol.
Penurunan secara eksponensial atau
Gelombang sinus yang dimampatkan.
Pola tepatnya bergantung pada tanda
dan besar qθθ ,...,1 .
28
2.3.3 Notasi Backshift
Model ARIMA secara umum adalah sulit untuk dituliskan. Model ini
berhubungan dengan variabel dependen atau bergantung pada unsur rentang atau lag
itu sendiri dan kesalahan rentang atau lag. Karena itu dibutuhkan penggunaan suatu
notasi yang menyederhanakan bentuk suatu persamaan, sehingga lebih sederhana
dan lebih mudah bila dikerjakan secara aljabar.
Sebuah notasi yang sangat berguna yakni operator backward shift, B,
dinyatakan sebagai berikut.
1)( −= tt YYB (2.3.31)
Dengan kata lain, B, digunakan pada Yt, memiliki efek menggeser data mundur satu
periode. Dua aplikasi dari B terhadap Yt memundurkan data dua periode sebagai
berikut.
tt YBBYB 2)( = (2.3.32)
Operator ini memudahkan untuk menggambarkan proses diferensiasi. Diferensiasi
pertama atau turunan tingkat satu dapat dituliskan sebagai berikut.
tttttt YBBYYYYY )1(1' −=−=−= − (2. 3.33)
Secara serupa, turunan tingkat dua dapat dituliskan sebagai berikut.
t
t
ttt
ttt
tttt
ttt
YB
YBB
YBBYY
YYYYYYY
YYY
2
2
221
211
1''"
)1(
)21(
)2(
2)()(
)(
−=
+−=
+−=
+−=−−−=
−=
−−
−−−
−
Secara umum, turunan tingkat-d dapat dituliskan sebagai berikut.
29
td YB)1( − (2.3.34)
2.3.4 Estimasi Parameter dan Diagnosis Model
Setelah diperoleh model dari perhitungan pada bagian sebelumnya maka
langkah selanjutnya adalah menentukan nilai parameter yang menyertai model
tersebut. Berbagai langkah yang dapat dilakukan untuk mengestimasi nilai parameter
adalah sebagai berikut.
a. Menggunakan metode “trial and error”, di mana metode ini dilakukan
dengan cara mencoba- coba dalam penentuan nilai parameternya.
b. Melakukan proses iterasi dengan menggunakan program komputer untuk
memperoleh nilai yang lebih akurat, karena apabila perhitungan dilakukan
secara manual akan membutuhkan waktu yang tidak sedikit.
Setelah nilai parameter diperoleh proses dilanjutkan dengan pengujian apakah
model sudah representatif atau tidak. Suatu model dapat dikatakan sudah cukup
representatif apabila deret dari residunya (sisaan atau error) terdistribusi secara acak
di sekitar nol.
Suatu model dikatakan sesuai apabila terdapat nilai nol dalam selang
autokorelasi sisaannya. Selang autokorelasi sisaan dinyatakan dalam persamaan
berikut.
SEkre 2)(2 ± (2.3.35)
, di mana SE (standard error) di dapat dari persamaan (2.3.30) dengan k merupakan
time-lag dan re merupakan nilai autokorelasi sisaan.
Cara lain yang dapat digunakan adalah dengan menggunakan statistik uji Chi-
Square dengan persamaan sebagai berikut.
30
∑=
−=k
ke krdNQ
1
2 )()( (2.3.36)
, di mana re merupakan nilai autokorelasi sisaan dari suatu time-lag k, d sebagai
derajat pembeda dan N merupakan banyak periode waktu.
Berdasarkan statistik hitung di atas, suatu model dapat dikatakan sesuai apabila
model tersebut memenuhi kriteria sebagai berikut.
2)( qpkXQ −−≤ α (2.3.37)
Model dikatakan tidak sesuai apabila sebagai berikut.
2)( qpkXQ −−> α (2.3.38)
2.4 Ketepatan Metode Peramalan
Dalam statistik, untuk menghitung besar kesalahan peramalan dapat dilakukan
dengan menghitung selisih antara nilai asli dengan nilai peramalannya.
Percentage Error: %100)ˆ(×
−=
t
ttt Y
YYPE (2.4.1)
Mean Percentage Error: n
PEMPE
n
it∑
== 1 (2.4.2)
Mean Absolute Percentage Error: n
PEMAPE
n
it∑
== 1
|| (2.4.3)
Mean Squared Error: ∑=
−=n
itt yy
nMSE
1
2)ˆ(1 (2.4.4)
, di mana :
n adalah jumlah sampel.
tY adalah nilai pengamatan pada periode ke-i.
31
tY adalah nilai pendugaan pada periode ke-i.
Persamaan yang biasa digunakan untuk mengetahui kesalahan peramalan adalah
MAPE dan MSE. Semakin kecil nilai yang dihasilkan oleh persamaan tersebut, semakin
baik dan akurat metode tersebut.
2.5 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan merupakan teknologi yang lahir dari upaya manusia untuk
mencari tahu bagaimana suatu sistem koordinasi hewan terjadi, bagaimana syaraf
bekerja, mengoptimasi diri, dan mampu menjadi pusat segala sistem hayati hewan.
Suatu jaringan saraf tiruan memproses sejumlah besar informasi secara paralel
dan terdistribusi, yang terinspirasi oleh model kerja otak biologis. Terdapat beberapa
definisi tentang jaringan saraf tiruan adalah sebagai berikut.
a. Jaringan syaraf tiruan adalah suatu struktur pemroses informasi yang
terdistribusi dan bekerja secara paralel, terdiri atas elemen pemroses (yang
memiliki memori lokal dan beroperasi dengan informasi lokal) yang
diinterkoneksi bersama dengan alur sinyal searah yang disebut koneksi.
Setiap elemen pemroses memiliki koneksi keluaran tunggal yang bercabang
(fan out) ke sejumlah koneksi kolateral yang diinginkan (setiap koneksi
membawa sinyal yang sama dari keluaran elemen pemroses tersebut).
Keluaran dari elemen pemroses tersebut dapat merupakan sembarang jenis
persamaan matematis yang diinginkan. Seluruh proses yang berlangsung
pada setiap elemen pemroses harus benar-benar dilakukan secara lokal, yaitu
keluaran hanya bergantung pada nilai masukan pada saat itu yang diperoleh
melalui koneksi dan nilai yang tersimpan dalam memori lokal (Hecht-
32
Nielsend, 1988).
b. Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan
mempuyai kecenderungan untuk menyimpan pengetahuan yang
didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk
digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu pengetahuan
diperoleh oleh jaringan melalui suatu proses belajar dan kekuatan hubungan
antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk
menyimpan pengetahuan (Haykin, S, 1994).
c. Jaringan syaraf tiruan sebagai sistem saraf tiruan atau jaringan saraf tiruan
merupakan sebuah sistem dalam pemrosesan informasi yang memiliki suatu
kemampuan karakteristik umum sama seperti syaraf biologi (Laurene, 1994,
p3).
Neuron adalah unit pemroses informasi yang menjadi dasar dalam pengoperasian
jaringan syaraf tiruan. Neuron terdiri atas tiga elemen pembentuk (Laurene, 1994, p3)
sebagai berikut.
a. Himpunan unit-unit yang dihubungkan dengan jalur koneksi. Jalur-jalur
tersebut memiliki bobot atau kekuatan yang berbeda-beda. Bobot yang
bernilai positif akan memperkuat sinyal dan yang bernilai negatif akan
memperlemah sinyal yang dibawanya. Jumlah, struktur, dan pola hubungan
antar unit-unit tersebut akan menentukan arsitektur jaringan dan juga model
jaringan yang terbentuk.
b. Suatu unit penjumlah yang akan menjumlahkan input-input sinyal yang
sudah dikalikan dengan bobotnya.
c. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan
33
diteruskan ke neuron lain atau tidak.
Gambar skematik tipikal neuron dapat dilihat pada gambar 2.8.
Gambar 2.9 Saraf Biologis
(Sumber : Fausset, Laurene, 1994,p6)
Teknologi jaringan syaraf tiruan memberikan perubahan epistemologis pada
sistem pemrograman dibandingan pemrograman tradisional. Jaringan syaraf tiruan
memproses informasi dengan cara yang sangat berbeda dengan cara konvensional.
Perbedaan pemrograman jaringan syaraf tiruan dan cara konvensional disajikan pada
tabel 2.2.
Tabel 2.2 Perbedaan Pemrograman Jaringan Syaraf Tiruan dan Pemrograman Tradisional
(Sumber : Situngkir dan Surya 2003b diringkas) Jaringan syaraf tiruan Pemrograman Tradisional
Komputasi dilakukan secara paralel dan terdistribusi dalam unit pemrosesan data dengan jumlah yang banyak.
Komputasi dilakukan secara serial.
Informasi terdistribusi dalam jaringan syaraf tiruan. Informasi teralokasi dalam tempat tertentu.
Disebut teknologi pemroses paralel terdistribusi (Parallel distributed processing).
34
Pemrosesan informasi dalam jaringan syaraf tiruan dapat disingkat sebagai
berikut.
a. Sinyal (baik berupa aksi maupun potensial) yang muncul sebagai
masukan unit (sinapsis).
b. Kemudian efek dari tiap sinyal ini dinyatakan sebagai bentuk perkalian
dengan sebuah nilai bobot untuk mengindikasikan kekuatan dari
sinapsis. Semua sinyal yang diberi pengali bobot ini kemudian
dijumlahkan satu sama lain untuk menghasilkan unit aktivasi. Jika
aktivasi ini melampaui sebuah batas ambang tertentu maka unit tersebut
akan memberikan keluaran dalam bentuk respon terhadap masukan. Unit
aktivasi ini kemudian dibandingkan dengan sebuah nilai ambang, dan
hasilnya dimasukkan ke dalam fungsi transfer (fungsi non-linier) yang
akan menghasilkan sebuah keluaran. Secara ringkas proses tersebut
dapat digambarkan dalam gambar 2.9.
Gambar 2.10 Neuron Buatan McCulloch-Pitts Ssebagai Operator Matematis
(Sumber : Fausset, Laurene, 1994,p26)
Aktivasi dari unit masukan diatur dan diteruskan melalui jaringan hingga nilai
dari keluaran dapat ditentukan. Jaringan berperan sebagai fungsi vektor yang mengambil
35
satu vektor pada masukan dan mengeluarkan satu vektor lain pada keluaran. Model
jaringan syaraf tiruan dapat memiliki sebuah lapisan bobot, di mana masukan
dihubungkan langsung dengan keluaran, atau beberapa lapisan yang di dalamnya
terdapat beberapa lapisan tersembunyi. Karena berada tersembunyi diantara neuron
masukan dan keluaran jaringan syaraf tiruan menggunakan unit tersembunyi untuk
menghasilkan representasi pola masukan secara internal. Fungsi transfer (non-linier)
yang digunakan dalam tiap neuron (baik dilapisan masukan, keluaran atau lapisan
tersembunyi) dapat berupa fungsi nilai ambang, fungsi linier, fungsi sigmoid maupun
fungsi gaussian, tergantung dari karakter neuron sesuai keinginan. Hal ini dapat dilihat
pada gambar 2.10.
Gambar 2.11 Tipikal Sebuah Jaringan Syaraf Tiruan
(Sumber: Situngkir dan Surya 2003b)
2.5.1 Komponen Jaringan Syaraf
Terdapat beberapa tipe jaringan syaraf, hampir semuanya memiliki komponen-
komponen yang sama. Seperti halnya otak manusia, jaringan syaraf juga terdiri atas
36
beberapa neuron dan ada hubungan antar neuron tersebut. Neuron-neuron tersebut
akan mentransformasikan informasi yang diterima melalui sambungan keluaran
menuju ke neuron-neuron yang lain. Pada jaringan syaraf, hubungan ini dikenal
dengan nama bobot.
Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut.
Neuron ini sebenarnya mirip dengan sel neuron biologis. Neuron-neuron buatan
tersebut bekerja dengan cara yang sama pula dengan neuron biologis. Informasi atau
input akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan
diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua
bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan
suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron.
Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut
akan diaktifkan, tapi kalau tidak, maka neuron tersebut tidak akan diaktifkan.
Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan output
melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannnya.
(Kusumadewi, 2003)
Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan (layer)
yang disebut dengan lapisan neuron (neuron layer). Neuron-neuron pada satu lapisan
akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali lapisan
input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan
dirambatkan dari lapisan ke lapisan. Mulai dari lapisan input sampai ke lapisan
output melalui lapisan lainnya, yang sering disebut sebagai lapisan tersembunyi
(hidden layer).
37
2.5.2 Arsitektur Jaringan Syaraf Tiruan
A. Jaringan Lapisan Tunggal (single layer net)
Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan
bobot-bobot terhubung. Jaringan ini hanya menerima input kemudian secara
langsung akan mengolahnya menjadi output tanpa harus melalui lapisan
tersembunyi.
B. Jaringan Banyak Lapisan (multilayer net)
Jaringan dengan banyak lapisan memiliki satu atau lebih lapisan yang
terletak di antara lapisan input dan lapisan output (memiliki satu atau lebih
lapisan tersembunyi). Umumnya, ada lapisan bobot-bobot yang terletak antara
dua lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat
menyelesaikan permasalahan yang lebih sulit daripada jaringan dengan lapisan
tunggal, tentu saja dengan pembelajaran yang lebih rumit. Namun demikian,
pada banyak kasus, pembelajaran pada jaringan dengan banyak lapisan ini
lebih sukses dalam menyelesaikan masalah meski membutuhkan waktu yang
lebih lama.
2.5.3 Fungsi Aktivasi
Ada beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf
tiruan salah satunya adalah fungsi Sigmoid Bipolar.
Fungsi sigmoid bipolar mempunyai output dengan jarak antara 1 sampai -1.
Fungsi sigmoid bipolar dirumuskan sebagai berikut.
x
x
eexfy −
−
+−
==11)( .
38
dengan [ ][ ])(1)(12
)(' xfxfxf −+=σ . (2.5.1)
Fungsi ini sangat dekat dengan fungsi hyperbolic tangent. Keduanya memiliki jarak
antara -1 sampai 1. Untuk fungsi hyperbolic tangent, dirumuskan sebagai berikut.
xx
xx
eeeexfx −
−
+−
== )()tanh( (2.5.2)
atau
x
x
eexfx 2
2
11)()tanh( −
−
+−
== (2.5.3)
dengan [ ][ ])(1)(1)(' xfxfxf −+= . (2.5.4)
2.5.4 Proses Pembelajaran
Kelemahan dari jaringan syaraf tiruan dengan menggunakan layar tunggal
membuat perkembangan jaringan syaraf tiruan menjadi terhenti sekitar tahun 1970-
an. Penemuan backpropagation yang terdiri atas beberapa lapisan membuka kembali
cakrawala (Siang, 2005). Jaringan syaraf tiruan dengan layar tunggal memiliki
keterbatasan dalam pengenalan pola. Kelemahan ini dapat ditanggulangi dengan
menambahkan satu atau beberapa lapisan tersembunyi diantara layar masukan dan
keluaran. Meskipun penggunaan lebih dari satu lapisan tersembunyi memiliki
kelebihan manfaat untuk beberapa kasus, tetapi pelatihannya memerlukan waktu
yang lama. Pada umumnya pelatihan dimulai dengan mencoba sebuah lapisan
tersembunyi lebih dahulu.
Jaringan syaraf tiruan yang akan digunakan adalah jaringan syaraf tiruan
propagasi balik. Kusumadewi (2004) menjelaskan, propagasi balik menggunakan
error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward).
39
Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus
dikerjakan terlebih dahulu.
Input yang akan digunakan dalam pelatihan ini adalah angka penjualan pada
data historis. Diberikan satu buah lapisan tersembunyi dengan memiliki q unit
tersembunyi di dalamnya. Lapisan output berisi nilai perhitungan peramalan.
Terdapat dua tipe pembelajaran dalam jaringan syaraf tiruan sebagai berikut
(Kusumadewi, 2003).
A. Pembelajaran Terawasi (supervised learning)
Metode pembelajaran pada jaringan syaraf tiruan disebut terawasi jika
output yang diharapkan telah diketahui sebelumnya. Pada proses pembelajaran,
satu pola input akan diberikan ke satu neuron pada lapisan input. Pola ini akan
dirambatkan di sepanjang jaringan syaraf hingga sampai ke neuron pada
lapisan output. Lapisan output ini akan membangkitkan pola output yang
nantinya akan dicocokkan dengan pola output targetnya. Apabila terjadi
perbedaan antara pola output hasil pembelajaran dengan pola target, maka akan
muncul error. Apabila nilai error ini masih cukup besar, mengindikasikan
bahwa masih perlu dilakukan lebih banyak pembelajaran lagi. Terdapat
berbagai tipe pembelajaran terawasi beberapa di antaranya Hebb Rule,
Perceptron, Delta Rule, Backpropagation, Heteroassociative Memory,
Bidirectional Associative Memory (BAM), Learning Vector Quantization
(LVQ).
Dalam pembahasan ini hanya akan digunakan propagasi balik
(backpropagation) sebagai metode pembelajaran.
40
B. Pembelajaran Tak Terawasi (unsupervised learning)
Pembelajaran tak terawasi tidak memerlukan target output. Pada
metode ini, tidak dapat ditentukan hasil yang seperti apakah yang diharapkan
selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun
dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan
pembelajaran ini adalah mengelompokkan unit-unit yang hampir sama dengan
suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk
pengelompokan (klasifikasi) pola.
2.5.5 Standard Backpropagation
Backpropagation adalah suatu algoritma pembelajaran terawasi dan biasanya
digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot
yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya.
Pembelajaran network dengan backpropagation meliputi tiga langkah yaitu
feedforward sebagai pola pembelajaran input, propagasi dari kesalahan dan
penetapan bobot.
Backpropagation mempunyai peranan dalam mengembangkan metode yang
sangat efektif yaitu training pada multilayer networks. Metode tersebut dikenal
dengan backpropagation (of error) atau generalized delta rule. Pada dasarnya
merupakan gradient descent method yang meminimumkan total squared error dari
output yang dihitung oleh networks.
Algoritma backpropagation ada dua yaitu sebagai berikut.
1. Algoritma untuk training yang terdiri dari dua fase yaitu feedforward
dan backward. Algoritma training digunakan untuk menyimpan
pasangan-pasangan pola ke dalam backpropagation networks.
41
2. Algoritma untuk aplikasi yang hanya terdiri dari satu fase saja yaitu
feedforward.
Algoritma dari backpropagation adalah sebagai berikut.
Langkah 0: Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup
kecil).
Langkah 1: Kerjakan langkah-langkah berikut selama kondisi berhenti bernilai salah
lakukan langkah 2-9.
Langkah 2: Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran,
kerjakan:
Feedforward :
Langkah 3: Tiap-tiap unit input (Xi, i=1,2,3,...,n) menerima sinyal input xi dan
meneruskan sinyal tersebut ke semua unit pada lapisan yang ada pada lapisan
atasnya (lapisan tersembunyi).
Langkah 4: Tiap-tiap unit tersembunyi (Zj, j=1,2,3,...,p) menjumlahkan sinyal-sinyal
input terbobot sebagai berikut.
∑=
+=n
iijijj vxvinz
10_
Gunakan fungsi aktivasi untuk menghitung sinyal outputnya sebagai berikut.
Zj = f(z_inj)
Lalu kirimkan sinyal tersebut ke semua unit pada lapisan atasnya (unit-unit output).
Langkah 5: Tiap-tiap unit output (Yk, k=1,2,3,...,m) menjumlahkan sinyal-sinyal
input terbobot.
∑=
+=p
ijkikj wzwiny
10_
42
Gunakan fungsi aktivasi untuk menghitung sinyal outputnya sebagai berikut.
yk=f(y_ink)
Lalu kirimkan sinyal tersebut ke semua unit pada lapisan atasnya (unit-unit output).
Backward:
Langkah 6: Tiap-tiap unit output (Yk, k=1,2,3,...,m) menerima target pola yang
berhubungan dengan pola input pembelajaran, hitung informasi error nya sebagai
berikut.
)_()( kkkk inyfyt ′−=δ
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk
memperbaiki nilai wjk) sebagai berikut.
jkjk zW αδ=Δ
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki
nilai w0k ) sebagai berikut.
kkw αδ=Δ 0
Kirimkan δk ini ke unit-unit yang ada pada lapisan bawahnya.
Langkah 7: Tiap-tiap unit tersembunyi (Zj, j=1,2,3,...,p) menjumlahkan delta
inputnya (dari unit-unit yang berada pada lapisan di atasnya) sebagai berikut.
∑=
=m
ijkkj win
1
_ δδ
Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung
informasi error sebagai berikut.
)_(_ jjj inzfin ′= δδ
43
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk
memperbaiki nilai vij) sebagai berikut.
ijjk xv αδ=Δ
Kemudian hitung koreksi bias (yang nantinya akan digunakan untuk
memperbaiki nilai v0j) sebagai berikut.
jjv αδ=Δ 0
Langkah 8: Tiap-tiap unit output (Yk, k=1,2,3,...,m) memperbaiki bias dan bobotnya
(j=0,1,2,...,p) sebagai berikut.
jkjkjk wlamawbaruw Δ+= )()(
Tiap-tiap unit tersembunyi (Zj, j=1,2,3,...,p) memperbaiki bias dan bobotnya
(i=0,1,2,...,n) sebagai berikut.
ijijij wlamavbaruv Δ+= )()(
Langkah 9: Tes Kondisi berhenti.
A. Penentuan Bobot dan Bias
Pemilihan inisial bobot dan bias akan mempengaruhi apakah net
mencapai global minima atau lokal minima dari error. Pembaharuan nilai
bobot di antara dua buah unit bergantung pada produk dari fungsi aktivasi unit
yang berada di atasnya atau di bawahnya. Oleh karena itu, sangat penting untuk
menghindari penginisialisasian bobot yang dapat membuat nilai aktivasi atau
produk aktivasi menjadi nol. Nilai dari inisial bobot tidak boleh terlalu besar
atau inisial sinyal input ke setiap unit tersembunyi atau output akan
mempunyai nilai turunan fungsi sigmoid yang kecil. Jika terlalu kecil maka net
44
input pada lapisan tersembunyi akan mendekati nol yang mana akan
berdampak pada lamanya proses pembelajaran.
Sebuah prosedur umum dalam penginisialisasian nilai awal bobot
biasanya merupakan nilai acak antara -0,5 dan 0,5 atau antara -1 dan 1.
Nguyen-Widrow mengembangkan sebuah modifikasi dalam penginisialisasian
bobot yaitu sebagai berikut.
nn pp 7,0)(7,0 /1 ==β (2.5.5)
dengan
n adalah jumlah input.
p adalah jumlah unit tersembunyi.
β adalah scale factor.
Penginisialisasian bobot dari unit input ke unit tersembunyi didesain
untuk meningkatkan kemampuan pembelajaran dari unit tersembunyi.
Prosedur tersebut terdiri dari langkah sederhana sebagai berikut.
Untuk setiap unit tersembunyi (j=1,...,p):
a. Inisialisasi vektor bobot (dari unit input):
)(lamavij = nilai acak antara -0,5 dan 0,5 atau antara -γ dan γ .
b. Hitung nilai dari ||)(|| lamav j . Reinisialisasi bobot:
||)(||)(
lamavlamav
vj
ijij
β= . (2.5.6)
c. Pengaturan bias:
jv0 = nilai acak antara -β dan β .
Analisis Nguyen-Widrow ini berdasarkan pada fungsi aktivasi
45
xx
xx
eeeex −
−
+−
=)tanh( (2.5.7)
yang memiliki kesamaan dengan fungsi aktivasi sigmoid bipolar.
B. Waktu yang Diperlukan untuk Pembelajaran Net
Untuk mendapatkan sebuah keseimbangan antara respon yang tepat
dalam melatih sebuah pola yang baru (keseimbangan antara mengingat dan
menggeneralisasi), tidak perlu melanjutkan pembelajaran hingga total squared
error mencapai minimum. Menurut Hecht-Nielsen (1990), menganjurkan agar
menggunakan dua buah set data selama pembelajaran yaitu sebuah set training
patterns dan sebuah set training-testing patterns.
Banyaknya training patterns yang cukup, akan membuat net mampu
untuk menggeneralisasi dengan maksimal. Untuk mendapatkan training
patterns yang akurat ditentukan oleh kondisi sebagai berikut.
ePW
= , (2.5.8)
atau
e
WP = (2.5.9)
dengan
P adalah jumlah training patterns yang mungkin.
W adalah nilai bobot yang akan dilatih.
e adalah akurasi dari klasifikasi yang diharapkan.
Pengaturan nilai bobot didasarkan pada training patterns dan kesalahan
yang diperoleh dari perhitungan dengan training-testing patterns selama
pembelajaran berlangsung. Saat kesalahan mulai meningkat maka net akan
46
mulai mengingat training patterns secara spesifik dan akan kehilangan
kemampuan untuk menggeneralisasi dan proses pembelajaran akan dihentikan.
C. Momentum
Pada backpropagation dengan momentum, perubahan bobot merupakan
gabungan antara gradient sekarang dengan sebelumnya. Merupakan modifikasi
dari gradient descent (sebuah teknik matematika untuk optimasi yang menjadi
dasar bagi algoritma backpropagation) yang memberi keuntungan apabila
terdapat data yang sangat berbeda dengan data utama bahkan jika data tersebut
tidak benar. Momentum memungkinkan untuk menggunakan learning rate
yang kecil untuk menghindari masalah utama dalam pembelajaran yaitu saat
suatu training patterns yang tidak biasa digunakan.
Dalam penggunaan momentum, bobot yang sudah diperbaharui dari
training patterns sebelumnya akan disimpan. Sebagai contoh, sebuah bobot
baru pada pembelajaran t+1 didasarkan pada bobot pada pembelajaran t dan t-
1. Maka formula pembaharuan bobotnya dengan momentum adalah sebagai
berikut.
)],1()([)()1( −−++=+ twtwztwtw jkjkjkjkjk μαδ
atau
),()1( twztw jkjkjk Δ+=+Δ μαδ
dan
)],1()([)()1( −−++=+ tvtvxtvtv ijijijijij μαδ
atau
),()1( tvxtv ijijij Δ+=+Δ μαδ
47
di mana parameter dari momentum μ berkisar antara 0 hingga 1.
D. Prosedur Aplikasi
Setelah pembelajaran, backpropagation neural net akan diaplikasikan
dengan fase feedforward dari algoritma training. Prosedur dari aplikasi ini
adalah sebagai berikut.
Langkah 0 Inisialisasi bobot (dari algoritma training)
Langkah 1 Untuk setiap input vektor, lakukan langkah 2-4
Langkah 2 Untuk i=1,....,n:tetapkan aktivasi untuk input xi;
Langkah 3 Untuk j=1,...,p,
∑=
+=n
iijijj vxvinz
10_ ; Zj = f(z_inj)
Langkah 4 Untuk k=1,...,m , ∑=
+=p
ijkikj wzwiny
10_ ; yk=f(y_ink)
2.6 Perancangan Program Simulasi
Perancangan program merupakan salah satu langkah terpenting dalam pembuatan
aplikasi. Perancangan diperlukan untuk membuat sebuah bentuk dasar dan langkah-
langkah yang akan dilakukan dalam pembuatan sebuah aplikasi.
2.6.1 Rekayasa Piranti Lunak
Rekayasa Piranti Lunak menurut Fritz Bauer (Pressman, 2005, p23)
adalah penetapan dan pemakaian prinsip-prinsip rekayasa dalam rangka
mendapatkan piranti lunak yang ekonomis yaitu terpecaya dan bekerja efisien
pada mesin (komputer).
Menurut Pressman (2005, p24), rekayasa piranti lunak mencakup 3
elemen yang mampu mengontrol proses pengembangan piranti lunak,yaitu:
48
1. Metode-metode (methods)
Menyediakan cara-cara teknis untuk membangun piranti lunak.
2. Alat-alat bantu (tools)
Mengadakan dukungan otomatis atau semi otomatis untuk metode-
metode seperti CASE (Computer Aided Software Engineering) yang
mengkombinasikan software, hardware, dan software engineering
database.
3. Prosedur-prosedur (procedures)
Merupakan pengembangan metode dan alat bantu.
Dalam perancangan software dikenal istilah software life cycle yaitu
serangkaian kegiatan yang dilakukan selama masa perancangan software.
Pemakaian jenis software life cycle yang cocok salah satunya ditentukan oleh
jenis bahasa pemrograman yang cocok. Contohnya, Waterfall Model merupakan
model yang paling umum dan paling dasar pada software life cycle. Rapid
Application Development (RAD) dan Joint Application Development (JAD)
cocok untuk software berbasis objek (OOP), sedangkan Sync+Stabilize dan
Spiral Model yang merupakan pengembangan model waterfall dengan
komponen prototyping cocok untuk sebuah aplikasi yang rumit dan cenderung
mahal pembuatannya.
Menurut Dix (1997, p180), visualisasi dari kegiatan pada software life
cycle model waterfall adalah sebagai berikut.
49
1. Spesifikasi kebutuhan (Requirement specification)
Pada tahap ini, pihak pengembang dan konsumen
mengidentifikasi apa saja fungsi-fungsi yang diharapkan dari sistem
dan bagaimana sistem memberikan layanan yang diminta.
Pengembang berusaha mengumpulkan berbagai informasi dari
konsumen.
2. Perancangan arsitektur (Architectural design)
Pada tahap ini, terjadi pemisahan komponen-komponen sistem
sesuai dengan fungsinya masing-masing.
3. Detailed design
Setelah memasuki tahap ini, pengembang memperbaiki deskripsi
dari komponen-komponen dari sistem yang telah dipisah-pisah pada
tahap sebelumnya.
4. Coding and unit testing
Pada tahap ini, disain diterjemahkan ke dalam bahasa
pemrograman untuk dieksekusi. Setelah itu komponen-komponen
dites apakah sesuai dengan fungsinya masing-masing.
5. Integration and testing
Setelah tiap-tiap komponen dites dan telah sesuai dengan
fungsinya, komponen-komponen tersebut disatukan lagi. Lalu sistem
dites untuk memastikan sistem telah sesuai dengan kriteria yang
diminta konsumen.
50
6. Pemeliharaan (maintenance)
Setelah sistem diimplementasikan, maka perlu dilakukannya
perawatan terhadap sistem itu sendiri. Perawatan yang dimaksud
adalah perbaikan error yang ditemukan setelah sistem
diimplementasikan.
Gambar 2.12 Waterfall Model untuk Sistem Software Life-cycle
(Sumber: Dix. 1997, p181)
2.6.2 Interaksi Manusia dan Komputer
Menurut Shneiderman (2005, p4), Interaksi manusia dan komputer
merupakan disiplin ilmu yang berhubungan dengan, perancangan, evaluasi, dan
implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta
studi fenomena-fenomena besar yang berhubungan dengannya.
Pada interaksi manusia dan komputer ditekankan pada pembuatan
antarmuka pemakai (user interface), dimana user interface yang dibuat
diusahakan sedemikian rupa sehingga seorang user dapat dengan baik dan
nyaman menggunakan aplikasi perangkat lunak dibuat. Antar muka pemakai
51
(user interface) adalah bagian sistem komputer yang memungkinkan manusia
berinteraksi dengan komputer. Tujuan antar muka pemakai adalah agar sistem
komputer dapat digunakan oleh pemakai (user interface), istilah tersebut
digunakan untuk menunjuk kepada kemampuan yang dimiliki oleh piranti lunak
atau program aplikasi yang mudah dioperasikan dan dapat membantu
menyelesaikan suatu persoalan dengan hasil yang sesuai dengan keinginan
pengguna atau biasa disebut user friendly.
Pedoman untuk menghasilkan suatu rancangan antar muka program yang
user friendly adalah dengan menggunakan pedoman Eight Golden Rules. Eight
Golden Rules tersebut menjelaskan mengenai beberapa aturan yang
diperbolehkan dan tidak diperbolehkan sebagai pedoman untuk merancang antar
muka program. Kedelapan aturan tersebut antara lain sebagai berikut.
a. Strive for consistency, konsistensi dalam perancangan antar muka.
b. Enable frequent user to use shorcuts, memungkinkan pengguna
menggunakan shortcuts secara berkala.
c. Offer informative feed back, memberikan umpan balik yang
informative.
d. Design dialogs to yield closure, merancang dialog untuk
menghasilkan keadaan akhir.
e. Offer simple error handling, memberikan penanganan kesalahan yang
sederhana.
52
f. Permit easy reversal of actions, mengijinkan pembalikkan aksi
dengan mudah.
g. Support internal locus of control, mendukung pengguna menguasai
system yang dibuat.
h. Short-term memory load, mengurangi beban jangka pendek kepada
pengguna.
2.7 Microsoft Visual C#
Bahasa pemograman C# (dibaca C sharp) adalah sebuah bahasa pemograman
modern yang bersifat general purpose, berorientasi objek yang dikembangkan oleh
Microsoft sebagai inisiatif kerangka .NET Framework. Bahasa pemograman ini
dicipatakan berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek maupun
fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java,
Delphi, dan Visual Basic dengan beberapa penyederhanaan. Bahasa pemrograman ini
dikembangkan oleh sebuah tim pengembang di Microsoft yang dipimpin oleh Anders
Hejlsberg, seseorang yang telah lama berpengalaman di dunia pengembangan bahasa
pemrograman karena memang ialah yang membuat Borland Turbo Pascal, Borland
Delphi, dan juga Microsoft J++.
Menurut standar ECMA-334 C# Language Specification, nama C# terdiri atas
sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang menandakan #
(U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik
(U+266F), dan tanda pagar # (U+0023) tersebut digunakan karena karakter kres dalam
seni musik tidak terdapat di dalam keyboard standar.
53
2.7.1 Sejarah C#
Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual J++
sebagai sebuah langkah percobaan untuk menggunakan Java di dalam sistem operasi
Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model
(COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa
pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan
J++, dan beralih untuk membuat pengganti J++, kompilernya dan mesin virtualnya
sendiri dengan menggunakan sebuah bahasa pemrograman yang bersifat general-
purpose. Untuk menangani proyek ini, Microsoft merekrut Anders Helsberg, yang
merupakan mantan karyawan Borland yang membuat bahasa Turbo Pascal, dan
Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang
digunakan di dalam J++. Sebagai hasil dari usaha tersebut, C# pun pertama kali
diperkenalkan pada bulan Juli 2000 sebagai sebuah bahasa pemrograman modern
berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam
pengembangan di dalam platform Microsoft .NET Framework.
C# didesain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih
ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan
dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic).
Seperti halnya bahasa Java, bahasa C# telah membuang beberapa fitur berbahaya
dari bahasa C. Memang, pointer belum sepenuhnya "dicabut" dari C#, tetapi
sebagian besar pemrograman dengan menggunakan bahasa C# tidak membutuhkan
pointer secara ekstensif, seperti halnya C dan C++. Persamaan lainnya antara Java
dan C# mencakup peran dari kompiler. Pengalaman Helsberg sebelumnya dalam
pendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal) dengan
54
mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common
Language Runtime (CLR). Untuk menjalankan suatu program C#, di komputer atau
alat elektronik lain yang bersangkutan harus tersedia CLR (Common Language
Runtime).
Jalannya sebuah program C# akan dikelola sepenuhnya oleh CLR, oleh karena
itu program C# dikatakan sebagai program yang managed. Sedangkan program-
program klasik yang langsung berinteraksi dengan operating system maupun
hardware tertentu disebut program unmanaged. Biasanya, kompiler menerjemahkan
kode sumber (berkas teks yang berisi bahasa pemrograman tingkat tinggi) ke dalam
kode mesin. Kode mesin tersebut membentuk sebuah berkas yang dapat dieksekusi
(executable atau EXE), yang berupa sebuah berkas yang siap untuk dijalankan kapan
saja secara langsung oleh komputer. Tetapi, karena kode mesin hanya diasosiasikan
dengan sebuah jenis mesin tertentu saja, berkas yang dapat dieksekusi tersebut hanya
dapat berfungsi di atas satu jenis komputer saja. Inilah sebabnya mengapa program
yang sama tidak berfungsi di atas sistem operasi Windows di atas sistem operasi
GNU atau Linux, Apple Macintosh atau sistem operasi lainnya, dan begitu pula
sebaliknya.
Alat bantu kompiler yang digunakan oleh C# tidak menerjemahkan kode
sumber ke dalam kode mesin, tetapi hanya menerjemahkan ke dalam sebuah bahasa
perantara atau In termediate Language (disingkat menjadi IL), yang merupakan
sebuah jenis kode mesin yang telah digeneralisasikan. Ketika program dijalankan di
atas sebuah mesin, maka IL akan diterjemahkan ke dalam kode mesin secara
keseluruhan. Dilihat dari perspektif pengguna, proses translasi ini tidak terlihat.
Tetapi, dalam teorinya, ternyata di balik itu terdapat proses dua langkah rumit yang
55
mengizinkan program dengan bahasa IL yang sama untuk berjalan di atas mesin
yang berbeda. Selain itu, sebuah program dalam bentuk IL dapat diuji lebih mudah
oleh sistem operasi dari keberadaan kode yang merusak atau kode yang
mencurigakan. Kemampuan ini telah menjadi lebih penting saat program tersebut
dipertukarkan melalui jaringan publik, seperti halnya Internet.
Bahasa C, C++, Java dan C# kini dikenal dengan sebutan "keluarga besar
bahasa pemrograman C" atau "bahasa pemrograman berbasis bahasa C". C++
mengandung semua hal yang dimiliki oleh C tetapi memiliki fitur yang tidak dimiliki
oleh C. Java dan C# meskipun masih berbasis bahasa C, keduanya tidaklah serta-
merta merupakan pengganti dari bahasa C. Bahasa Java dan C# memiliki kesamaan
dalam berbagai bidang, walaupun mirip dengan bahasa C++. Meskipun demikian,
semuanya menggunakan banyak sintaksis yang mirip, seperti void, int, struct dan
lain sebagainya.
2.7.2 Tujuan Desain C#
Standar European Computer Manufacturer Association (ECMA) mendaftarkan
beberapa tujuan desain dari bahasa pemrograman C#, sebagai berikut.
a. Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat
general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan
sederhana.
b. Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan
komponen perangkat lunak yang mampu mengambil keuntungan dari
lingkungan terdistribusi.
c. Kemudahan programmer sangatlah penting, khususnya bagi programmer
yang telah lama menggunakan bahasa pemrograman C dan C++.
56
d. C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik
mulai dari program aplikasi yang sangat besar yang menggunakan sistem
operasi yang canggih hingga kepada program aplikasi yang sangat kecil yang
memiliki fungsi-fungsi tertentu.
e. Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan
pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing
secara langsung dengan kinerja dan ukuran program aplikasi yang dibuat
dengan menggunakan bahasa pemrograman C dan bahasa rakitan.
f. Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat,
pengecekan larik (array), pendeteksian percobaan terhadap penggunaan
variabel-variabel yang belum diinisialisasikan dan kemudahan kode sumber.
Pada bab 2 ini telah dibahas mengenai berbagai metode dan teori yang akan
digunakan sebagai dasar untuk membuat aplikasi Forecasting. Metode dan teori tersebut
dijelaskan sesuai dengan batasan dalam pembuatan aplikasi ini. Forecasting adalah
sebuah konsep time series yang dapat dibentuk dengan berbagai metode, namun dalam
penulisan di bab 2 ini hanya metode tertentu saja yang digunakan untuk membuat
aplikasi yang akan dibuat.