• Tidak ada hasil yang ditemukan

Peramalan atau forecasting merupakan aktivitas dalam bisnis yang memperkirakan jumlah produk yang akan terjual yang mendekati dari perkiraan permintaan konsumen akan produk tersebut. Peramalan ini berguna sebagai menentukan kebijakan pengendalian, membuat perencanaan produksi, serta untuk menentukan tingkat tenaga kerja selama periode produksi (Winny, 2014). Peramalan tidak hanya digunakan untuk memperkirakan permintaan produk saja, namun secara luas juga digunakan dalam sistem lainnya. Dalam suatu industri, peramalan dilakukan oleh berbagai departemen, seperti departemen pemasaran, produksi, pembelian, persediaan, dan keuangan.

Berdasarkan sifat ramalan yang telah disusun, maka peramalan dapat dibagi atas 2 macam, yaitu peramalan kualitatif dan peramalan kuantitatif. Peramalan kualitatif adalah peramalan yang yang didasarkan oleh data kualitatif pada masa lalu. Hasil peramalan yang dibuat sangat tergantung pada orang yang menyusunnya. Hal ini penting karena hasil peramalan tersebut ditentukan berdasarkan pemikiran yang bersifat pendapat, intuitif, pengetahuan dan pengalaman. Metode kualitatif didasarkan

pada informasi yang bersifat kualitatif. Dasar informasi ini dapat memprediksi kejadian-kejadian di masa yang akan datang.

Peramalan kuantitatif merupakan peramalan yang didasarkan atas data kuantitatif pada masa lalu. Hasil peramalan yang dibuat tergantung pada metode yang digunakan pada peramalan tersebut. Baik tidaknya metode yang digunakan ditentukan oleh besarnya penyimpangan (error) dari perbandingan data aktual dengan yang diramalkan. Peramalan kuantitatif dapat digunakan apabila terdapat 3 kondisi yaitu :

1. Adanya informasi masa lalu yang dapat digunakan

2. Informasi tersebut dapat dikuantitatifkan dalam bentuk data

3. Dapat diasumsikan bahwa pola yang terbentuk pada masa lalu akan terus berlanjut dimasa yang akan datang.

Metode peramalan kuantitatif dapat dibagi menjadi dua tipe, yaitu : 1. Metode Causal

Metode causal mendasarkan hasil ramalan yang disusun atas pola hubungan antara variabel yang dicari atau diramalkan dengan variabel-variabel lainnya yang tidak terkait dengan waktu. Dalam analisa ini, faktor atau variabel yang menunjukkan suatu hubungan pengaruh sebab akibat dengan satu atau lebih variabel diasumsikan bebas. Maksud dari analisa metode causal adalah untuk menemukan pola hubungan yang saling mempengaruhi antara variabel yang dicari dan variabel - variabel yang mempengaruhinya, serta menggunakannya untuk meramalkan nilai-nilai dari variabel pada masa yang akan datang. Metode causal sering digunakan untuk pengambilan ketupusan (Winny, 2014). 2. Metode Time Series

Metode time series merupakan metode peramalan secara kuantitatif dengan waktu sebagai dasar peramalan. Dimana untuk membuat suatu peramalan dibutuhkan data historis, data inilah yang diakumulasikan dalam beberapa periode waktu. Metode time series mengasumsikan bahwa apa yang telah terjadi di masa lalu akan terus terjadi pada masa yang akan datang. Peramalan dengan time series tidak memperhatikan setiap faktor yang mempengaruhi perubahan, melainkan berdasarkan pada pola tingkah laku pada peubah itu sendiri pada masa lalu. Kemudian dengan informasi yang didapat dari pola tersebut, dilakukan proses pendugaan terhadap pola peubah tersebut untuk di

16

masa yang akan datang. Pada umumnya perhatian utama dalam analisis time series bukan pada titik waktu pengamatan, melainkan pada urutan pengamatan. Tujuan metode time series ini adalah untuk menemukan pola yang terdapat pada data historis dan pola tersebut akan diekstrapolasikan ke masa depan.

Prediksi dengan metode time series telah sering digunakan dalam peramalan, sedangkan metode causal lebih banyak dan lebih berhasil digunakan dalam pengambilan keputusan dan kebijakan. Peramalan dengan time series harus mendasarkan analisisnya pada pola dari data yang digunakan. Ada 4 pola data yang lazim ditemui dalam peramalan time series, yaitu :

1. Pola Data Horizontal

Pola ini terjadi apabila nilai-nilai dari data observasi berfluktuasi di sekitar rata-rata dari nilai konstannya. Dapat dikatakan bahwa pola ini sebagai stationary pada rata-rata hitungannya. Misalnya pada suatu produk yang mempunyai jumlah penjualan yang tidak menaik atau menurun selama beberapa periode waktu. Contoh pola data horizontal dapat dilihat pada gambar 2.1.

Gambar 2.1 Pola Data Horizontal

2. Pola Data Siklis

Pola data siklis terjadi bila datanya berubah sesuai dengan fluktuasi ekonomi jangka panjang yang berhubungan dengan siklus bisnis ataupun siklus yang berulang secara periodik. Contoh pola data siklis dapat dilihat pada gambar 2.2.

Gambar 2.2 Pola Data Siklis

3. Pola Data Musiman

Pola data musiman terjadi apabila suatu deret data dipengaruhi oleh faktor musiman, misalnya pada hari-hari tertentu, mingguan, bulanan ataupun pada kuartal tahun tertentu. Contoh pola data musiman dapat dilihat pada gambar 2.3.

18

4. Pola Data Trend

Pola data trend terjadi apabila ada kenaikan atau penurunan secara sekuler dalam jangka panjang pada datanya. Contoh pola data trend dapat dilihat pada gambar 2.4.

Gambar 2.4 Pola Data Trend

2.3 Fuzzy Logic

Logika Fuzzy atau Fuzzy Logic adalah suatu cara untuk memetakan suatu inputan menjadi output tertentu dimana pemetaan tersebut dimisalkan sebagai blackbox, jadi antara input dan output terdapat suatu kotak hitam yang harus memetakan input ke output yang sesuai (Kusumadewi, 2010). Dalam Fuzzy Logic, terdapat sebuah rule base untuk mengontrol variabel output, dimana rule dari fuzzy tersebut merupakan rule sederhana yang terdiri dari IF-THEN rule dengan sebuah kondisi dan kesimpulan (Singhala, 2014). Istilah Fuzzy Logic memiliki berbagai arti, salah satu arti fuzzy logic adalah perluasan crisp logic, sehingga dapat mempunyai nilai antara 0 dan 1, dimana pada bilangan crisp nilai hanya terpaku pada 0 dan 1.

Alasan-alasan mengapa logika fuzzy digunakan (Kusumadewi, 2010) yaitu : 1. Konsep logika fuzzy mudah dimengerti. Dimana konsep matematis sebagai

dasar dari penalaran fuzzy sangat sederhana dan mudah dimengerti. 2. Logika fuzzy bersifat fleksibel.

3. Logika fuzzy dapat mentolerasi data-data yang kurang tepat.

4. Logika fuzzy dapat memodelkan fungsi-fungsi nonlinear yang sangat kompleks.

5. Logika fuzzy dapat mengaplikasikan pengalaman terhadap data yang didapat dari pakar tanpa melalui proses pelatihan.

6. Logika fuzzy secara konvensional dapat bekerja sama dengan teknik-teknik kendali.

7. Logika fuzzy didasarkan oleh bahasa yang alami.

2.3.1 Himpunan Fuzzy

Set fuzzy adalah sebuah set tanpa batas kepastian atau ketepatan (Poonam, 2012). Pada himpunan tegas (crisp), bila dimisalkan nilai keanggotaan suatu benda x dalam suatu himpunan A, akan hanya memiliki 2 kemungkinan (Kusumadewi, 2010), yaitu :

1. Bernilai nol (0), yang artinya bahwa benda tersebut tidak termasuk dalam keanggotaan dalam suatu himpunan A.

2. Bernilai satu (1), yang artinya bahwa benda tersebut menjadi anggota dalam suatu himpunan

Bila pada himpunan crisp, nilai keanggotaan hanya ada 2 kemungkinan yaitu 0 dan 1, Pada himpunan fuzzy, nilai keanggotaan terletak dalam jarak rentang antara 0 sampai 1. Apabila x memiliki nilai keanggotaan fuzzy µA[x] = 0 artinya x bukanlah anggota himpunan A. Demikian pula apabila x memiliki nilai keanggotaan fuzzy µA[x] = 1 artinya x menjadi anggota penuh pada himpunan A. Terdapat kemiripan dalam probabilitas dengan keanggotaan dalam fuzzy yang menimbulkan kerancuan karena keduanya memiliki nilai pada interval 0 dan 1, namun antara kedua kasus tersebut memiliki interpretasi nilai yang sangat berbeda. Letak perbedaannya yaitu keanggotaan fuzzy memberikan suatu ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang (Kusumadewi, 2010).

Himpunan fuzzy memiliki 2 atribut yaitu :

1. Linguistik, yaitu pemberian nama terhadap suatu grup yang menjadi perwakilan dari suatu keadaan atau kondisi dengan menggunakan bahasa alami.

2. Numeris, yaitu suatu atribut nilai atau angka yang menunjukkan ukuran dari suatu variabel.

20

2.3.2 Fungsi Keanggotaan

Fungsi keanggotaan atau membership function adalah suatu kurva yang menunjukkan pemetaan terhadap titik-titik input data ke dalam nilai keanggotaannya atau derajat keanggotaan yang memiliki interval antara 0 dan 1 (Kusumadewi, 2010). Pendekatan fungsi merupakan salah satu cara dalam mendapatkan nilai keanggotaan. Ada beberapa fungsi yang bisa digunakan yaitu :

1. Representasi Linear

Pada representasi linear, proses pemetaan input ke dejarat keanggotaan digambarkan sebagai suatu garis lurus. Representasi ini merupakan yang paling sederhana dan sangat baik jika digunakan untuk pendekatan terhadap suatu konsep yang kurang jelas.

Himpunan fuzzy yang linear memiliki 2 keadaan. Pertama yaitu representasi linear naik, kenaikan pada himpunan bermula pada domain dengan derajat keanggotaan nol bergerak ke nilai domain yang derajat keanggotaannya lebih tinggi. Contoh representasi nilai naik dapat dilihat pada gambar 2.5.

Gambar 2.5 Representasi Linear Naik (Kusumadewi, 2010)

Fungsi Keanggotaannya :

µ[x]{

(2.1)

Keterangan :

a = nilai domain dengan derajat keanggotaan nol b = nilai domain dengan derajat keanggotaan satu x = nilai input

Representasi linear yang kedua merupakan kebalikan yang pertama yaitu representasi linear turun, dimana garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak menurun ke nilai domain dengan nilai keanggotaan lebih rendah. Contoh representasi linear turun dapat dilihat pada gambar 2.6

22

Fungsi Keanggotaannya :

µA[x] { (2.2)

Keterangan :

a = nilai domain dengan derajat keanggotaan satu b = nilai domain dengan derajat keanggotaan nol x = nilai input

2. Representasi Kurva Segitiga

Pada dasarnya, Representasi dari kurva segitiga merupakan gabungan antara 2 garis atau linear. Contoh representasi dari kurva segitiga dapat dilihat pada gambar 2.7.

Gambar 2.7 Representasi Kurva Segitiga (Kusumadewi, 2010)

Fungsi Keanggotaannya :

µA[x]{

(2.3)

Keterangan :

a = nilai domain terkecil dengan derajat keanggotaan nol b = nilai domain dengan derajat keanggotaan satu

c = nilai domain terbesar dengan derajat keanggotaan satu x = nilai input

3. Representasi Kurva Trapesium

Representasi kurva trapesium pada dasarnya merupakan bentuk segitiga, perbedaannya terletak pada beberapa titik yang memiliki derajat keanggotaan satu. Contoh representasi kurva trapesium dapat dilihat pada gambar 2.8

24 Fungsi Keanggotaannya : µA[x]{ (2.4) Keterangan :

a = nilai domain terkecil dengan derajat keanggotaan nol b = nilai domain terkecil dengan derajat keanggotaan satu c = nilai domain terbesar dengan derajat keanggotaan satu d = nilai domain terbesar dengan derajat keanggotaan nol x = nilai input

2.3.3 Operator Dasar Untuk Operasi Himpunan Fuzzy

Sama seperti himpunan konvensional, fuzzy memiliki beberapa operasi yang didefinisikan secara khusus untuk mengkombinasikan dan memodifikasi himpunannya. Nilai keanggotaan sebagai hasil dari operasi 2 himpunan sering dikenal dengan nama fire strength atau α-predikat. Ada 3 operator dasar himpunan fuzzy (Kusumadewi, 2010) :

1. Operator AND

Operator ini berhubungan dengan operasi interseksi pada himpunan. α-predikat

sebagai hasil dari operasi dengan operator AND diperoleh dengan pengambilan dari keanggotaan terkecil antar elemen pada himpunan-himpunan yang bersangkutan. Persamaan operator AND dapat dituliskan sebagai berikut

µA∩B = min(µA[x], µB[y])

2. Operator OR

Operator ini berhubungan dengan operasi union pada himpunan. α-predikat

merupakan hasil dari operator OR yang didapat dengan pengambilan nilai

keanggotaan terbesar antar elemen pada himpunan-himpunan yang bersangkutan. Persamaan operator OR dapat dituliskan sebagai berikut :

µAUB = max(µA[x], µB[y]) 3. Operator NOT

Operator ini berhubungan dengan operasi komplemen pada himpunan. α-predikat

merupakan hasil dari operator NOT yang didapat dengan pengurangan nilai keanggotaan elemen pada himpunan yang bersangkutan dari 1. Persamaan operator NOT dapat dituliskan sebagai berikut :

µA` = 1- µA[x] 2.3.4 Fuzzy Inference System

Fuzzy Inference System atau disebut juga fuzzy inference engine adalah sistem yang dibuat sedemikian rupa sehingga dapat melakukan penalaran dengan prinsip yang sama seperti manusia dalam melakukan penalaran dengan nalurinya. Proses dalam fuzzy inference system dapat dilihat pada gambar 2.9.

Gambar 2.9 Fuzzy Inference System

Input yang diberikan kepada fuzzy inference system adalah berupa bilangan tertentu dan output yang dihasilkan juga dalam bilangan tertentu. Kaidah-kaidah yang digunakan seperti contohnya dalam bahasa linguistik, dapat digunakan sebagai input

26

namun harus dikonversikan terlebih dahulu, lalu lakukan penalaran berdasarkan rule base dan mengkonversi hasilnya menjadi output. Dalam fuzzy inference system terdapat 4 elemen dasar yaitu :

1. Basis Kaidah (Rule Base), yang berisi aturan-aturan secara linguistik yang bersumber dari para pakar atau narasumber.

2. Mekanisme Pengambilan Keputusan (Inference Engine), merupakan bagian yang menerapkan proses bagaimana seorang pakar mengambil suatu keputusan dengan menerapkan pengetahuan yang dimiliki (Knowledge).

3. Fuzzifikasi (Fuzzification), proses mengubah besaran tegas (crisp) ke besaran fuzzy.

4. Defuzzifikasi (Defuzzification), proses yang mengubah besaran fuzzy yang telah diproses oleh inference engine, menjadi besaran crisp.

2.4 Evolving Fuzzy Neural Network

Evolving fuzzy neural network (EFuNN) merupakan struktur dari fuzzy neural network (FuNN) yang berevolusi berdasarkan prinsip evolving connectionist system (ECoS) (Kasabov, 2007). EFuNN merupakan fuzzy neural network yang dikembangkan dan dimodifikasi dimana salah satunya modifikasinya yaitu mengubah struktur koneksionis yang tetap menjadi struktur fluktuasi yang dapat berkembang berdasarkan masukan node dan menyusut saat terjadi pengumpulan atau pemangkasan node (Kong, 2007). Seluruh node dalam efunn terbentuk dalam proses training. Node-node tersebut merepresentasikan fungsi keanggotaan (fuzzy label neurons) yang dapat dimodifikasi dalam proses training. Setiap variabel input direpresentasikan oleh sebuah grup neuron yang tersusun secara spasial untuk merepresentasikan domain area fuzzy yang berbeda dari variabel tersebut.

2.4.1 Arsitektur Evolving Fuzzy Neural Network

EFuNN terdiri dari 5 layer network yang bergerak maju (Feed Forward), dimana pada setiap layer memiliki fungsi yang spesifik (Watts, 2012) seperti yang ditunjukkan pada gambar 2.10. Kelima layer tersebut yaitu input layer, condition layer, rule layer, action layer dan output layer. EFuNN memiliki struktur dengan 5 layer dimana node dan koneksi yang terbentuk atau terhubung sebagai data contoh yang dipresentasikan. Pada EFuNN terdapat sebuah layer memori sementara (short-term memory) yang

digunakan melalui sebuah koneksi feedback dari rule node layer. Layer dari koneksi feedback tersebut dapat digunakan apabila relasi sementara diantara input-input data dapat tersimpan secara structural (Kasabov, 2001). Arsitektur EFuNN dengan short-term memory dapat dilihat pada gambar 2.11.

28

Gambar 2.11 Arsitektur EFuNN dengan Short-Term Memory (Kasabov, 2001)

Layer pertama merupakan layer input dari seluruh variabel data yang akan digunakan dalam proses (X1, X2, ….. , Xn).

Layer kedua merupakan layer fuzzy input yang merepresentasikan persamaan fuzzy dari masing masing bagian input. Setiap input variabel direpresentasikan disini oleh grup neuron yang tersusun secara spasial untuk merepresentasikan area domain fuzzy yang berbeda dari variabel tersebut. Contohnya 2 input fuzzy pada jaringan atau dalam bentuk neuron merepresentasikan “kecil” dan “besar” dalam sebuah input variabel umum. Fungsi keanggotaan yang berbeda dapat digunakan pada neuron tersebut seperti triangular, trapezoida, Gaussian dan lain-lain.

Layer ketiga merupakan layer rule base dimana neuron dalam EFuNN berevolusi melalui proses pembelajaran hibrida yang terawasi ataupun tidak terawasi. Setiap rule node r didefinisikan dalam 2 vektor koneksi yaitu W1(r) dan W2(r). Aturan yang paling akhir disesuaikan dengan pembelajaran yang terawasi berdasarkan output error dan aturan awal disesuaikan melalui pembelajaran tidak terawasi berdasarkan kesamaan pengukuran dalam area input. Setiap rule node merepresentasikan sebuah hubungan antara hyper-sphere (lengkungan kurva pada fungsi keanggotaan) pada area input dengan hyper-sphere pada area output, dimana bobot koneksi W1(r)

merepresentasikan koordinat nilai tengah dari sphere dalam area fuzzy input, sedangkan bobot koneksi W2(r) merepresentasikan koordinat nilai tengah dari sphere pada area fuzzy output.

Layer keempat merupakan layer fuzzy output, layer ini merepresentasikan kuantisasi dari fuzzy untuk variabel output, dimana terdapat kemiripan dengan representasi fuzzy input neuron. Kuantisasi yang dimaksud adalah operasi pemotongan (truncation), atau pembulatan (rounding) dari nilai data dengan suatu presisi (precision) tertentu untuk mendapatkan nilai kurva (Sani, 2013).

Layer kelima merupakan layer output, layer ini merepresentasikan nilai sebenarnya dari variabel output. Pada layer ini terdapat fungsi aktivasi linier yang digunakan dalam menghitung nilai pada defuzzifikasi variabel output.

2.4.2 Parameter Pada Evolving Fuzzy Neural Network

Dalam Evolving Fuzzy Neural Network, terdapat parameter yang digunakan sebagai batas minimum dari suatu fungsi aktivasi (Sensitive Threshold), batasan kesalahan dalam pembelajaran (Error Threshold), serta kontrol ukuran dalam bobot (Learning Rate). Parameter yang digunakan dalam evolving fuzzy neural network (Kasabov, 2001) yaitu :

1. Sensitive Threshold (sThr) merupakan parameter yang digunakan dalam menentukan nilai minimum aktivasi. Range nilai dari Sensitive Threshold yaitu lebih besar dari 0 dan lebih kecil sama dengan 1.

2. Error Threshold (errThr) merupakan batasan yang ditoleransi dalam proses pembelajaran. Nilai error threshold sangat kecil dan biasa digunakan dalam range lebih besar dari 0 dan lebih kecil sama dengan 1.

3. Learning Rate 1 (lr1) merupakan parameter yang digunakan dalam mengontrol bobot (W1) antara layer kedua dengan layer ketiga dengan range nilai lebih besar dari 0 dan lebih kecil sama dengan 1.

4. Learning Rate 2 (lr2) merupakan parameter yang digunakan dalam mengontrol bobot (W2) antara layer ketiga dengan layer keempat dengan range nilai lebih besar dari 0 dan lebih kecil sama dengan 1.

30

2.4.3 Algoritma Evolving Fuzzy Neural Network

Berikut ini merupakan langkah – langkah dari evolving fuzzy neural network dalam melakukan prediksi data time series (Kasabov, 2007) :

1. Menentukan nilai parameter pada EFuNN yaitu sensitive threshold(sThr), error threshold (errThr), learning rate 1 (lr1) dan learning rate 2 (lr2).

2. Melakukan fuzzifikasi terhadap data input dengan fungsi keanggotaan (membership function).

xFi = fuzzy (xi) i = 1 …. N (2.5) Keterangan :

i = indeks data xi = data ke i N = Jumlah data

xFi = hasil fuzzifikasi data ke i

fuzzy() = fungsi keanggotaan (membership function)

3. Membuat rule node pertama r = 1 untuk merepresentasikan data yang pertama dan mengisi nilai pada bobot satu (W1) dan bobot dua (W2).

r = 1; W1 = xFi ; W2 = target (2.6) Keterangan :

r = rule node

W1 = nilai bobot dari koneksi antara layer 2 dan layer 3 W2 = nilai bobot dari koneksi antara layer 3 dan layer 4 Target = fuzzy output vector

4. Lakukan pengulangan selama data masih ada ( i <= N)

1. Menghitung normalized fuzzy local distance (D) diantara input terbaru fuzzy input vector dengan fuzzy input vector yang berada dalam penyimpanan sementara (short-term memory) pada saat rule node (rj), j = 1 …. R, dimana R

adalah nilai rule node pada saat ini.

D(xFi,rj) = ∑

(2.7)

2. Menghitung nilai aktivasi (A1rj) dari rule node (rj) dengan fungsi radial basis (radbas).

Radbas (n) = e-2 (2.8) A1rj = radbas (D(xFi,rj)) (2.9) 3. Cari rule node (rj) dengan nilai aktivasi tertinggi (max A1rj).

4. Jika nilai max A1rj lebih besar dari sThr maka menuju ke langkah (e). Jika nilai max A1rj lebih kecil dari sThr maka lakukan persamaan berikut :

i = i + 1 (2.10)

W1j = xFi ; W2j = targeti (2.11) 5. Melakukan propagasi ke fuzzy output terhadap nilai aktivasi dari rule node (rj)

A2 = A1rj . W2rj (2.12)

6. Menghitung fuzzy output error

Err = | A2 – targeti | (2.13) 7. Cari action node (k) dari nilai aktivasi tertinggi A2.

8. Jika Error (k) lebih kecil dari ErrThr atau r sama dengan i maka menuju ke langkah (i). Jika Error (k) lebih besar dari ErrThr atau r tidak sama dengan i maka lakukan persamaan berikut :

i = i + 1 (2.14)

W1j = xFi ; W2j = targeti (2.15) Ulangi langkah (a).

9. Update bobot W1 dan W2 dengan persamaan

Dis = xFi– W1(k) (2.16)

W1(k) = W1(k) + lr1 . Dis (2.17) W2(k) = W2(k) + lr2 . Err (2.18) i = i + 1

Dokumen terkait